{"version":3,"file":"js/app.bc0d26a6.js","mappings":"oDAAA,SAA2CA,EAAMC,GAE/CC,EAAOC,QAAUF,EAAQ,EAAQ,KAAwB,EAAQ,KAOlE,EATD,CASoB,qBAATG,MAAuBA,MAAc,CAACC,EAAiCC,IAClE,MACN,aACA,IAAIC,EAAsB,CAE9B,IACA,CAAEC,EAAyBL,KAOjCA,EAAQM,EAAI,CAACC,EAAKC,KACd,MAAMC,EAASF,EAAIG,WAAaH,EAChC,IAAK,MAAOI,EAAKC,KAAQJ,EACrBC,EAAOE,GAAOC,EAElB,OAAOH,CAAM,CAIV,EAED,GACEV,IAERA,EAAOC,QAAUE,CAEV,EAED,IACEH,IAERA,EAAOC,QAAUG,CAEV,GAKOU,EAA2B,CAAC,EAGhC,SAAS,EAAoBC,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaf,QAGrB,IAAID,EAASc,EAAyBC,GAAY,CAGjDd,QAAS,CAAC,GAOX,OAHAI,EAAoBU,GAAUf,EAAQA,EAAOC,QAAS,GAG/CD,EAAOC,OACf,CAIA,MAEC,EAAoBiB,EAAI,CAACjB,EAASkB,KACjC,IAAI,IAAIP,KAAOO,EACX,EAAoBC,EAAED,EAAYP,KAAS,EAAoBQ,EAAEnB,EAASW,IAC5ES,OAAOC,eAAerB,EAASW,EAAK,CAAEW,YAAY,EAAMC,IAAKL,EAAWP,IAE1E,CAED,EATD,GAYA,MACC,EAAoBa,EAAI,WACvB,GAA0B,kBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOC,MAAQ,IAAIC,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,kBAAXC,OAAqB,OAAOA,MACxC,CACA,CAPuB,EAQxB,EATD,GAYA,MACC,EAAoBV,EAAI,CAACW,EAAKC,IAAUX,OAAOY,UAAUC,eAAeC,KAAKJ,EAAKC,EAClF,EAFD,GAKA,MAEC,EAAoBI,EAAKnC,IACH,qBAAXoC,QAA0BA,OAAOC,aAC1CjB,OAAOC,eAAerB,EAASoC,OAAOC,YAAa,CAAEC,MAAO,WAE7DlB,OAAOC,eAAerB,EAAS,aAAc,CAAEsC,OAAO,GAAO,CAE9D,EARD,GAWA,MACC,EAAoBC,EAAI,EACxB,EAFD,GAKV,IAAI,EAAsB,CAAC,EAgmPjB,MA9lPV,MAmBA,GAjBA,EAAoBJ,EAAE,GAGtB,EAAoBlB,EAAE,EAAqB,CACzCuB,mBAAoB,IAAM,GAC1BC,aAAc,IAAM,GACpBC,qBAAsB,IAAM,GAC5BC,kBAAmB,IAAM,GACzBC,aAAc,IAAM,GACpBC,YAAa,IAAM,GACnBC,SAAU,IAAM,KAOI,qBAAXjB,OAAwB,CACjC,IAAIkB,EAAgBlB,OAAOmB,SAASD,cAGhCE,EAAMF,GAAiBA,EAAcE,IAAIC,MAAM,2BAC/CD,IACF,EAAoBV,EAAIU,EAAI,GAEhC,CAsBA,IAAIE,EAAgB,SAASlC,EAAGmC,GAI9B,OAHAD,EAAgB/B,OAAOiC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUtC,EAAGmC,GAAKnC,EAAEqC,UAAYF,CAAG,GAC1E,SAAUnC,EAAGmC,GAAK,IAAK,IAAIb,KAAKa,EAAOhC,OAAOY,UAAUC,eAAeC,KAAKkB,EAAGb,KAAItB,EAAEsB,GAAKa,EAAEb,GAAI,EAC7FY,EAAclC,EAAGmC,EAC1B,EAEA,SAASI,EAAUvC,EAAGmC,GACpB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIK,UAAU,uBAAyBC,OAAON,GAAK,iCAE7D,SAASO,IAAOjC,KAAKkC,YAAc3C,CAAG,CADtCkC,EAAclC,EAAGmC,GAEjBnC,EAAEe,UAAkB,OAANoB,EAAahC,OAAOyC,OAAOT,IAAMO,EAAG3B,UAAYoB,EAAEpB,UAAW,IAAI2B,EACjF,CAEA,IAAIG,EAAW,WAQb,OAPAA,EAAW1C,OAAO2C,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAI3B,KADT0B,EAAIG,UAAUF,GACAD,EAAO7C,OAAOY,UAAUC,eAAeC,KAAK+B,EAAG1B,KAAIyB,EAAEzB,GAAK0B,EAAE1B,IAE9E,OAAOyB,CACX,EACOF,EAASQ,MAAM5C,KAAM0C,UAC9B,EA0EA,SAASG,EAAUC,EAASC,EAAYC,EAAGC,GACzC,SAASC,EAAMtC,GAAS,OAAOA,aAAiBoC,EAAIpC,EAAQ,IAAIoC,GAAE,SAAUG,GAAWA,EAAQvC,EAAQ,GAAI,CAC3G,OAAO,IAAKoC,IAAMA,EAAII,WAAU,SAAUD,EAASE,GAC/C,SAASC,EAAU1C,GAAS,IAAM2C,EAAKN,EAAUO,KAAK5C,GAAS,CAAE,MAAOV,GAAKmD,EAAOnD,EAAI,CAAE,CAC1F,SAASuD,EAAS7C,GAAS,IAAM2C,EAAKN,EAAU,SAASrC,GAAS,CAAE,MAAOV,GAAKmD,EAAOnD,EAAI,CAAE,CAC7F,SAASqD,EAAKG,GAAUA,EAAOC,KAAOR,EAAQO,EAAO9C,OAASsC,EAAMQ,EAAO9C,OAAOgD,KAAKN,EAAWG,EAAW,CAC7GF,GAAMN,EAAYA,EAAUL,MAAME,EAASC,GAAc,KAAKS,OAClE,GACF,CAEA,SAASK,EAAYf,EAASgB,GAC5B,IAAsGC,EAAGC,EAAG1B,EAAGxC,EAA3GmE,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAP7B,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAG8B,KAAM,GAAIC,IAAK,IAChG,OAAOvE,EAAI,CAAE0D,KAAMc,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX5D,SAA0BZ,EAAEY,OAAO6D,UAAY,WAAa,OAAOvE,IAAM,GAAIF,EACvJ,SAASwE,EAAK7B,GAAK,OAAO,SAAU+B,GAAK,OAAOjB,EAAK,CAACd,EAAG+B,GAAK,CAAG,CACjE,SAASjB,EAAKkB,GACV,GAAIV,EAAG,MAAM,IAAIhC,UAAU,mCAC3B,MAAOjC,IAAMA,EAAI,EAAG2E,EAAG,KAAOR,EAAI,IAAKA,MACnC,GAAIF,EAAI,EAAGC,IAAM1B,EAAY,EAARmC,EAAG,GAAST,EAAE,UAAYS,EAAG,GAAKT,EAAE,YAAc1B,EAAI0B,EAAE,YAAc1B,EAAE9B,KAAKwD,GAAI,GAAKA,EAAER,SAAWlB,EAAIA,EAAE9B,KAAKwD,EAAGS,EAAG,KAAKd,KAAM,OAAOrB,EAE3J,OADI0B,EAAI,EAAG1B,IAAGmC,EAAK,CAAS,EAARA,EAAG,GAAQnC,EAAE1B,QACzB6D,EAAG,IACP,KAAK,EAAG,KAAK,EAAGnC,EAAImC,EAAI,MACxB,KAAK,EAAc,OAAXR,EAAEC,QAAgB,CAAEtD,MAAO6D,EAAG,GAAId,MAAM,GAChD,KAAK,EAAGM,EAAEC,QAASF,EAAIS,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKR,EAAEI,IAAIK,MAAOT,EAAEG,KAAKM,MAAO,SACxC,QACI,GAAMpC,EAAI2B,EAAEG,OAAM9B,EAAIA,EAAEK,OAAS,GAAKL,EAAEA,EAAEK,OAAS,MAAkB,IAAV8B,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAER,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVQ,EAAG,MAAcnC,GAAMmC,EAAG,GAAKnC,EAAE,IAAMmC,EAAG,GAAKnC,EAAE,IAAM,CAAE2B,EAAEC,MAAQO,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYR,EAAEC,MAAQ5B,EAAE,GAAI,CAAE2B,EAAEC,MAAQ5B,EAAE,GAAIA,EAAImC,EAAI,KAAO,CACpE,GAAInC,GAAK2B,EAAEC,MAAQ5B,EAAE,GAAI,CAAE2B,EAAEC,MAAQ5B,EAAE,GAAI2B,EAAEI,IAAIM,KAAKF,GAAK,KAAO,CAC9DnC,EAAE,IAAI2B,EAAEI,IAAIK,MAChBT,EAAEG,KAAKM,MAAO,SAEtBD,EAAKX,EAAKtD,KAAKsC,EAASmB,EAC5B,CAAE,MAAO/D,GAAKuE,EAAK,CAAC,EAAGvE,GAAI8D,EAAI,CAAG,CAAE,QAAUD,EAAIzB,EAAI,CAAG,CACzD,GAAY,EAARmC,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE7D,MAAO6D,EAAG,GAAKA,EAAG,QAAK,EAAQd,MAAM,EAC9E,CACF,CAEsBjE,OAAOyC,OAgB7B,SAASyC,EAAiBnF,GACxB,IAAI8C,EAAsB,oBAAX7B,QAAyBA,OAAO6D,SAAUM,EAAItC,GAAK9C,EAAE8C,GAAIC,EAAI,EAC5E,GAAIqC,EAAG,OAAOA,EAAErE,KAAKf,GACrB,GAAIA,GAAyB,kBAAbA,EAAEkD,OAAqB,MAAO,CAC1Ca,KAAM,WAEF,OADI/D,GAAK+C,GAAK/C,EAAEkD,SAAQlD,OAAI,GACrB,CAAEmB,MAAOnB,GAAKA,EAAE+C,KAAMmB,MAAOlE,EACxC,GAEJ,MAAM,IAAIsC,UAAUQ,EAAI,0BAA4B,kCACtD,CAEA,SAASuC,EAAOrF,EAAGgD,GACjB,IAAIoC,EAAsB,oBAAXnE,QAAyBjB,EAAEiB,OAAO6D,UACjD,IAAKM,EAAG,OAAOpF,EACf,IAAmBgB,EAAYP,EAA3BsC,EAAIqC,EAAErE,KAAKf,GAAOsF,EAAK,GAC3B,IACI,YAAc,IAANtC,GAAgBA,KAAM,MAAQhC,EAAI+B,EAAEgB,QAAQG,KAAMoB,EAAGJ,KAAKlE,EAAEG,MACxE,CACA,MAAOoE,GAAS9E,EAAI,CAAE8E,MAAOA,EAAS,CACtC,QACI,IACQvE,IAAMA,EAAEkD,OAASkB,EAAIrC,EAAE,YAAYqC,EAAErE,KAAKgC,EAClD,CACA,QAAU,GAAItC,EAAG,MAAMA,EAAE8E,KAAO,CACpC,CACA,OAAOD,CACT,CA+DyBrF,OAAOyC,OAyDkB,oBAApB8C,iBAAiCA,gBAyD/D,IAAIC,EAAgD,EAAoB,KAIpEC,GAAa,EAMjB,SAASC,EAAQrG,EAAQE,EAAKC,GAC5B,OAAI2C,MAAMwD,QAAQtG,IAChBA,EAAO4D,OAAS2C,KAAKC,IAAIxG,EAAO4D,OAAQ1D,GACxCF,EAAOyG,OAAOvG,EAAK,EAAGC,GACfA,IAETH,EAAOE,GAAOC,EACPA,EACT,CAcA,SAASuG,IACL,OAAOC,IAAYC,4BACvB,CACA,SAASD,IAEL,MAA6B,qBAAdE,WAA+C,qBAAXzF,OAC7CA,OACiC,qBAA1B,EAAoBL,EACvB,EAAoBA,EACpB,CAAC,CACf,CACA,MAAM+F,EAAoC,oBAAVC,MAG1BC,EAAa,wBACbC,EAA2B,sBAGjC,IAAIC,EACAC,EA6KAC,EA5KJ,SAASC,IACL,IAAIC,EACJ,YAAkB/G,IAAd2G,IAGkB,qBAAX9F,QAA0BA,OAAOmG,aACxCL,GAAY,EACZC,EAAO/F,OAAOmG,aAEwB,qBAA1B,EAAoBxG,IAAkE,QAA3CuG,EAAK,EAAoBvG,EAAEyG,kBAA+B,IAAPF,OAAgB,EAASA,EAAGC,cACtIL,GAAY,EACZC,EAAO,EAAoBpG,EAAEyG,WAAWD,aAGxCL,GAAY,GAXLA,CAcf,CACA,SAASO,IACL,OAAOJ,IAA2BF,EAAKM,MAAQC,KAAKD,KACxD,CAKA,MAAME,EACF,WAAAxE,CAAYyE,EAAQC,GAChB5G,KAAKjB,OAAS,KACdiB,KAAK6G,YAAc,GACnB7G,KAAK8G,QAAU,GACf9G,KAAK2G,OAASA,EACd3G,KAAK4G,KAAOA,EACZ,MAAMG,EAAkB,CAAC,EACzB,GAAIJ,EAAOK,SACP,IAAK,MAAMC,KAAMN,EAAOK,SAAU,CAC9B,MAAME,EAAOP,EAAOK,SAASC,GAC7BF,EAAgBE,GAAMC,EAAKC,YAC/B,CAEJ,MAAMC,EAAsB,mCAAmCT,EAAOM,KACtE,IAAII,EAAkB3H,OAAO2C,OAAO,CAAC,EAAG0E,GACxC,IACI,MAAMO,EAAMC,aAAaC,QAAQJ,GAC3BK,EAAOC,KAAKC,MAAML,GACxB5H,OAAO2C,OAAOgF,EAAiBI,EACnC,CACA,MAAOvH,GAEP,CACAF,KAAK4H,UAAY,CACb,WAAAC,GACI,OAAOR,CACX,EACA,WAAAS,CAAYlH,GACR,IACI2G,aAAaQ,QAAQX,EAAqBM,KAAKM,UAAUpH,GAC7D,CACA,MAAOV,GAEP,CACAmH,EAAkBzG,CACtB,EACA,GAAA4F,GACI,OAAOA,GACX,GAEAI,GACAA,EAAKqB,GAAGjC,GAA0B,CAACkC,EAAUtH,KACrCsH,IAAalI,KAAK2G,OAAOM,IACzBjH,KAAK4H,UAAUE,YAAYlH,EAC/B,IAGRZ,KAAKmI,UAAY,IAAIrC,MAAM,CAAC,EAAG,CAC3BjG,IAAK,CAACuI,EAAS/H,IACPL,KAAKjB,OACEiB,KAAKjB,OAAOkJ,GAAG5H,GAGf,IAAIgI,KACPrI,KAAK8G,QAAQnC,KAAK,CACd2D,OAAQjI,EACRgI,QACF,IAKlBrI,KAAKuI,cAAgB,IAAIzC,MAAM,CAAC,EAAG,CAC/BjG,IAAK,CAACuI,EAAS/H,IACPL,KAAKjB,OACEiB,KAAKjB,OAAOsB,GAEL,OAATA,EACEL,KAAKmI,UAEPzI,OAAO8I,KAAKxI,KAAK4H,WAAWa,SAASpI,GACnC,IAAIgI,KACPrI,KAAK6G,YAAYlC,KAAK,CAClB2D,OAAQjI,EACRgI,OACAlF,QAAS,SAENnD,KAAK4H,UAAUvH,MAASgI,IAI5B,IAAIA,IACA,IAAIjF,SAAQD,IACfnD,KAAK6G,YAAYlC,KAAK,CAClB2D,OAAQjI,EACRgI,OACAlF,WACF,KAM1B,CACA,mBAAMuF,CAAc3J,GAChBiB,KAAKjB,OAASA,EACd,IAAK,MAAMmI,KAAQlH,KAAK8G,QACpB9G,KAAKjB,OAAOkJ,GAAGf,EAAKoB,WAAWpB,EAAKmB,MAExC,IAAK,MAAMnB,KAAQlH,KAAK6G,YACpBK,EAAK/D,cAAcnD,KAAKjB,OAAOmI,EAAKoB,WAAWpB,EAAKmB,MAE5D,EAUJ,SAASM,EAAoBC,EAAkBC,GAC3C,MAAMC,EAAaF,EACb7J,EAAS2G,IACTkB,EAAOnB,IACPsD,EAAclD,GAAoBiD,EAAWE,iBACnD,IAAIpC,IAAS7H,EAAOkK,uCAA0CF,EAGzD,CACD,MAAMG,EAAQH,EAAc,IAAIrC,EAASoC,EAAYlC,GAAQ,KACvDuC,EAAOpK,EAAOqK,yBAA2BrK,EAAOqK,0BAA4B,GAClFD,EAAKxE,KAAK,CACNiE,iBAAkBE,EAClBD,UACAK,UAEAA,GACAL,EAAQK,EAAMX,cACtB,MAZI3B,EAAKyC,KAAKtD,EAAY6C,EAAkBC,EAahD,CAuBA,MAAMS,EAAkBC,GAAWpD,EAAcoD,EAK3CC,EAAyD9I,SAE/D,SAAS+I,EAEThK,GACI,OAAQA,GACS,kBAANA,GAC+B,oBAAtCC,OAAOY,UAAUoJ,SAASlJ,KAAKf,IACX,oBAAbA,EAAEkK,MACjB,CAMA,IAAIC,GACJ,SAAWA,GAQPA,EAAa,UAAY,SAMzBA,EAAa,eAAiB,eAM9BA,EAAa,iBAAmB,gBAEnC,EAtBD,CAsBGA,IAAiBA,EAAe,CAAC,IAEpC,MAAMC,EAA8B,qBAAX1J,OAOnB2J,GAAgB,EAYhBC,EAAwB,KAAyB,kBAAX5J,QAAuBA,OAAOA,SAAWA,OAC/EA,OACgB,kBAAT5B,MAAqBA,KAAKA,OAASA,KACtCA,KACkB,kBAAX,EAAAuB,GAAuB,EAAAA,EAAOkK,SAAW,EAAAlK,EAC5C,EAAAA,EACsB,kBAAfC,WACHA,WACA,CAAEkK,YAAa,MARH,GAS9B,SAASC,EAAIC,GAAM,QAAEC,GAAU,GAAU,CAAC,GAGtC,OAAIA,GACA,6EAA6EC,KAAKF,EAAKG,MAChF,IAAIC,KAAK,CAACvI,OAAOwI,aAAa,OAASL,GAAO,CAAEG,KAAMH,EAAKG,OAE/DH,CACX,CACA,SAASM,EAASC,EAAKC,EAAMC,GACzB,MAAMC,EAAM,IAAIC,eAChBD,EAAIE,KAAK,MAAOL,GAChBG,EAAIG,aAAe,OACnBH,EAAII,OAAS,WACTC,EAAOL,EAAIM,SAAUR,EAAMC,EAC/B,EACAC,EAAIO,QAAU,WACVC,QAAQrG,MAAM,0BAClB,EACA6F,EAAIS,MACR,CACA,SAASC,EAAYb,GACjB,MAAMG,EAAM,IAAIC,eAEhBD,EAAIE,KAAK,OAAQL,GAAK,GACtB,IACIG,EAAIS,MACR,CACA,MAAOpL,GAAK,CACZ,OAAO2K,EAAIW,QAAU,KAAOX,EAAIW,QAAU,GAC9C,CAEA,SAASC,EAAMC,GACX,IACIA,EAAKC,cAAc,IAAIC,WAAW,SACtC,CACA,MAAO1L,GACH,MAAM2L,EAAMvK,SAASwK,YAAY,eACjCD,EAAIE,eAAe,SAAS,GAAM,EAAM5L,OAAQ,EAAG,EAAG,EAAG,GAAI,IAAI,GAAO,GAAO,GAAO,EAAO,EAAG,MAChGuL,EAAKC,cAAcE,EACvB,CACJ,CACA,MAAMG,EACgB,kBAAdpG,UAAyBA,UAAY,CAAEqG,UAAW,IAIpDC,EAA+B,KAAO,YAAY7B,KAAK2B,EAAWC,YACpE,cAAc5B,KAAK2B,EAAWC,aAC7B,SAAS5B,KAAK2B,EAAWC,WAFO,GAG/Bf,EAAUrB,EAGqB,qBAAtBsC,mBACH,aAAcA,kBAAkB7L,YAC/B4L,EACCE,EAEE,qBAAsBJ,EAChBK,EAEEC,EAVlB,OAWN,SAASF,EAAejC,EAAMQ,EAAO,WAAYC,GAC7C,MAAM2B,EAAIjL,SAASkL,cAAc,KACjCD,EAAE9B,SAAWE,EACb4B,EAAEE,IAAM,WAGY,kBAATtC,GAEPoC,EAAEG,KAAOvC,EACLoC,EAAEI,SAAWC,SAASD,OAClBpB,EAAYgB,EAAEG,MACdjC,EAASN,EAAMQ,EAAMC,IAGrB2B,EAAExN,OAAS,SACX0M,EAAMc,IAIVd,EAAMc,KAKVA,EAAEG,KAAOG,IAAIC,gBAAgB3C,GAC7B4C,YAAW,WACPF,IAAIG,gBAAgBT,EAAEG,KAC1B,GAAG,KACHK,YAAW,WACPtB,EAAMc,EACV,GAAG,GAEX,CACA,SAASF,EAASlC,EAAMQ,EAAO,WAAYC,GACvC,GAAoB,kBAATT,EACP,GAAIoB,EAAYpB,GACZM,EAASN,EAAMQ,EAAMC,OAEpB,CACD,MAAM2B,EAAIjL,SAASkL,cAAc,KACjCD,EAAEG,KAAOvC,EACToC,EAAExN,OAAS,SACXgO,YAAW,WACPtB,EAAMc,EACV,GACJ,MAIA3G,UAAUqH,iBAAiB/C,EAAIC,EAAMS,GAAOD,EAEpD,CACA,SAAS2B,EAAgBnC,EAAMQ,EAAMC,EAAMsC,GAOvC,GAJAA,EAAQA,GAASnC,KAAK,GAAI,UACtBmC,IACAA,EAAM5L,SAAS6L,MAAQD,EAAM5L,SAASwC,KAAKsJ,UAAY,kBAEvC,kBAATjD,EACP,OAAOM,EAASN,EAAMQ,EAAMC,GAChC,MAAMyC,EAAsB,6BAAdlD,EAAKG,KACbgD,EAAW,eAAejD,KAAKrI,OAAO+H,EAAQE,eAAiB,WAAYF,EAC3EwD,EAAc,eAAelD,KAAKzE,UAAUqG,WAClD,IAAKsB,GAAgBF,GAASC,GAAapB,IACjB,qBAAfsB,WAA4B,CAEnC,MAAMC,EAAS,IAAID,WACnBC,EAAOC,UAAY,WACf,IAAIhD,EAAM+C,EAAO/J,OACjB,GAAmB,kBAARgH,EAEP,MADAwC,EAAQ,KACF,IAAIS,MAAM,4BAEpBjD,EAAM6C,EACA7C,EACAA,EAAIkD,QAAQ,eAAgB,yBAC9BV,EACAA,EAAMN,SAASF,KAAOhC,EAGtBkC,SAASvK,OAAOqI,GAEpBwC,EAAQ,IACZ,EACAO,EAAOI,cAAc1D,EACzB,KACK,CACD,MAAMO,EAAMmC,IAAIC,gBAAgB3C,GAC5B+C,EACAA,EAAMN,SAASvK,OAAOqI,GAEtBkC,SAASF,KAAOhC,EACpBwC,EAAQ,KACRH,YAAW,WACPF,IAAIG,gBAAgBtC,EACxB,GAAG,IACP,CACJ,CAQA,SAASoD,EAAaC,EAASzD,GAC3B,MAAM0D,EAAe,MAAQD,EACS,oBAA3BE,uBAEPA,uBAAuBD,EAAc1D,GAEvB,UAATA,EACLe,QAAQrG,MAAMgJ,GAEA,SAAT1D,EACLe,QAAQ6C,KAAKF,GAGb3C,QAAQ8C,IAAIH,EAEpB,CACA,SAASI,EAAQ3O,GACb,MAAO,OAAQA,GAAK,YAAaA,CACrC,CAMA,SAAS4O,IACL,KAAM,cAAezI,WAEjB,OADAkI,EAAa,iDAAkD,UACxD,CAEf,CACA,SAASQ,EAAqBtJ,GAC1B,SAAIA,aAAiB2I,OACjB3I,EAAM+I,QAAQQ,cAAc9F,SAAS,8BACrCqF,EAAa,kGAAmG,SACzG,EAGf,CACAU,eAAeC,EAAsBlF,GACjC,IAAI8E,IAEJ,UACUzI,UAAU8I,UAAUC,UAAUjH,KAAKM,UAAUuB,EAAMqF,MAAMhO,QAC/DkN,EAAa,oCACjB,CACA,MAAO9I,GACH,GAAIsJ,EAAqBtJ,GACrB,OACJ8I,EAAa,qEAAsE,SACnFzC,QAAQrG,MAAMA,EAClB,CACJ,CACAwJ,eAAeK,EAAuBtF,GAClC,IAAI8E,IAEJ,IACIS,GAAgBvF,EAAO7B,KAAKC,YAAY/B,UAAU8I,UAAUK,aAC5DjB,EAAa,sCACjB,CACA,MAAO9I,GACH,GAAIsJ,EAAqBtJ,GACrB,OACJ8I,EAAa,sFAAuF,SACpGzC,QAAQrG,MAAMA,EAClB,CACJ,CACAwJ,eAAeQ,EAAsBzF,GACjC,IACI2B,EAAO,IAAIX,KAAK,CAAC7C,KAAKM,UAAUuB,EAAMqF,MAAMhO,QAAS,CACjD0J,KAAM,6BACN,mBACR,CACA,MAAOtF,GACH8I,EAAa,0EAA2E,SACxFzC,QAAQrG,MAAMA,EAClB,CACJ,CACA,IAAIiK,EACJ,SAASC,IAML,SAASC,IACL,OAAO,IAAI/L,SAAQ,CAACD,EAASE,KACzB4L,EAAUG,SAAWZ,UACjB,MAAMa,EAAQJ,EAAUI,MACxB,IAAKA,EACD,OAAOlM,EAAQ,MACnB,MAAMmM,EAAOD,EAAMnI,KAAK,GACxB,OAEO/D,EAFFmM,EAEU,CAAEC,WAAYD,EAAKC,OAAQD,QADvB,KAC8B,EAGrDL,EAAUO,SAAW,IAAMrM,EAAQ,MACnC8L,EAAU7D,QAAU/H,EACpB4L,EAAUxD,OAAO,GAEzB,CACA,OAtBKwD,IACDA,EAAY3N,SAASkL,cAAc,SACnCyC,EAAU3E,KAAO,OACjB2E,EAAUQ,OAAS,SAmBhBN,CACX,CACAX,eAAekB,EAA0BnG,GACrC,IACI,MAAMwB,EAAOmE,IACPxL,QAAeqH,IACrB,IAAKrH,EACD,OACJ,MAAM,KAAE6L,EAAI,KAAED,GAAS5L,EACvBoL,GAAgBvF,EAAO7B,KAAKC,MAAM4H,IAClCzB,EAAa,+BAA+BwB,EAAK3E,SACrD,CACA,MAAO3F,GACH8I,EAAa,4EAA6E,SAC1FzC,QAAQrG,MAAMA,EAClB,CACJ,CACA,SAAS8J,GAAgBvF,EAAOqF,GAC5B,IAAK,MAAM3P,KAAO2P,EAAO,CACrB,MAAMe,EAAapG,EAAMqF,MAAMhO,MAAM3B,GAEjC0Q,EACAjQ,OAAO2C,OAAOsN,EAAYf,EAAM3P,IAIhCsK,EAAMqF,MAAMhO,MAAM3B,GAAO2P,EAAM3P,EAEvC,CACJ,CAEA,SAAS2Q,GAAcC,GACnB,MAAO,CACHC,QAAS,CACLD,WAGZ,CACA,MAAME,GAAmB,kBACnBC,GAAgB,QACtB,SAASC,GAA4BC,GACjC,OAAO9B,EAAQ8B,GACT,CACEjJ,GAAI+I,GACJ9L,MAAO6L,IAET,CACE9I,GAAIiJ,EAAMC,IACVjM,MAAOgM,EAAMC,IAEzB,CACA,SAASC,GAA6BF,GAClC,GAAI9B,EAAQ8B,GAAQ,CAChB,MAAMG,EAAaxO,MAAMyO,KAAKJ,EAAMK,GAAG/H,QACjCgI,EAAWN,EAAMK,GACjB3B,EAAQ,CACVA,MAAOyB,EAAWI,KAAKC,IAAY,CAC/BC,UAAU,EACV1R,IAAKyR,EACL9P,MAAOsP,EAAMtB,MAAMhO,MAAM8P,OAE7BE,QAASP,EACJQ,QAAQ5J,GAAOuJ,EAAS3Q,IAAIoH,GAAI6J,WAChCL,KAAKxJ,IACN,MAAMiJ,EAAQM,EAAS3Q,IAAIoH,GAC3B,MAAO,CACH0J,UAAU,EACV1R,IAAKgI,EACLrG,MAAOsP,EAAMY,SAASC,QAAO,CAACH,EAAS3R,KACnC2R,EAAQ3R,GAAOiR,EAAMjR,GACd2R,IACR,CAAC,GACP,KAGT,OAAOhC,CACX,CACA,MAAMA,EAAQ,CACVA,MAAOlP,OAAO8I,KAAK0H,EAAMc,QAAQP,KAAKxR,IAAQ,CAC1C0R,UAAU,EACV1R,MACA2B,MAAOsP,EAAMc,OAAO/R,QAkB5B,OAdIiR,EAAMY,UAAYZ,EAAMY,SAASnO,SACjCiM,EAAMgC,QAAUV,EAAMY,SAASL,KAAKQ,IAAe,CAC/CN,UAAU,EACV1R,IAAKgS,EACLrQ,MAAOsP,EAAMe,QAGjBf,EAAMgB,kBAAkBC,OACxBvC,EAAMwC,iBAAmBvP,MAAMyO,KAAKJ,EAAMgB,mBAAmBT,KAAKxR,IAAQ,CACtE0R,UAAU,EACV1R,MACA2B,MAAOsP,EAAMjR,QAGd2P,CACX,CACA,SAASyC,GAAgBC,GACrB,OAAKA,EAEDzP,MAAMwD,QAAQiM,GAEPA,EAAOP,QAAO,CAACtJ,EAAM8J,KACxB9J,EAAKe,KAAK7D,KAAK4M,EAAMtS,KACrBwI,EAAK+J,WAAW7M,KAAK4M,EAAMjH,MAC3B7C,EAAKgK,SAASF,EAAMtS,KAAOsS,EAAME,SACjChK,EAAKiK,SAASH,EAAMtS,KAAOsS,EAAMG,SAC1BjK,IACR,CACCgK,SAAU,CAAC,EACXjJ,KAAM,GACNgJ,WAAY,GACZE,SAAU,CAAC,IAIR,CACHC,UAAW/B,GAAc0B,EAAOhH,MAChCrL,IAAK2Q,GAAc0B,EAAOrS,KAC1BwS,SAAUH,EAAOG,SACjBC,SAAUJ,EAAOI,UArBd,CAAC,CAwBhB,CACA,SAASE,GAAmBtH,GACxB,OAAQA,GACJ,KAAKV,EAAaiI,OACd,MAAO,WACX,KAAKjI,EAAakI,cACd,MAAO,SACX,KAAKlI,EAAamI,YACd,MAAO,SACX,QACI,MAAO,UAEnB,CAGA,IAAIC,IAAmB,EACvB,MAAMC,GAAsB,GACtBC,GAAqB,kBACrBC,GAAe,SACb9P,OAAQ+P,IAAa1S,OAOvB2S,GAAgBpL,GAAO,MAAQA,EAQrC,SAASqL,GAAsBC,EAAKhJ,GAChCZ,EAAoB,CAChB1B,GAAI,gBACJ/C,MAAO,WACPsO,KAAM,mCACNC,YAAa,QACbC,SAAU,0BACVT,uBACAM,QACAI,IACuB,oBAAZA,EAAInM,KACXsH,EAAa,2MAEjB6E,EAAIC,iBAAiB,CACjB3L,GAAIiL,GACJhO,MAAO,WACP2O,MAAO,WAEXF,EAAIG,aAAa,CACb7L,GAAIkL,GACJjO,MAAO,WACP6O,KAAM,UACNC,sBAAuB,gBACvBC,QAAS,CACL,CACIF,KAAM,eACNG,OAAQ,KACJzE,EAAsBlF,EAAM,EAEhC4J,QAAS,gCAEb,CACIJ,KAAM,gBACNG,OAAQ1E,gBACEK,EAAuBtF,GAC7BoJ,EAAIS,kBAAkBjB,IACtBQ,EAAIU,mBAAmBlB,GAAa,EAExCgB,QAAS,wDAEb,CACIJ,KAAM,OACNG,OAAQ,KACJlE,EAAsBzF,EAAM,EAEhC4J,QAAS,iCAEb,CACIJ,KAAM,cACNG,OAAQ1E,gBACEkB,EAA0BnG,GAChCoJ,EAAIS,kBAAkBjB,IACtBQ,EAAIU,mBAAmBlB,GAAa,EAExCgB,QAAS,sCAGjBG,YAAa,CACT,CACIP,KAAM,UACNI,QAAS,kCACTD,OAASK,IACL,MAAMrD,EAAQ3G,EAAMgH,GAAG1Q,IAAI0T,GACtBrD,EAG4B,oBAAjBA,EAAMsD,OAClB1F,EAAa,iBAAiByF,kEAAwE,SAGtGrD,EAAMsD,SACN1F,EAAa,UAAUyF,cAPvBzF,EAAa,iBAAiByF,oCAA0C,OAQ5E,MAKhBZ,EAAI1K,GAAGwL,kBAAiB,CAACC,EAASC,KAC9B,MAAMzK,EAASwK,EAAQE,mBACnBF,EAAQE,kBAAkB1K,MAC9B,GAAIA,GAASA,EAAM2K,SAAU,CACzB,MAAMC,EAAcJ,EAAQE,kBAAkB1K,MAAM2K,SACpDnU,OAAOqU,OAAOD,GAAaE,SAAS9D,IAChCwD,EAAQO,aAAarF,MAAMjK,KAAK,CAC5B2F,KAAM+H,GAAanC,EAAMC,KACzBlR,IAAK,QACL0R,UAAU,EACV/P,MAAOsP,EAAMgE,cACP,CACEpE,QAAS,CACLlP,OAAO,EAAGsE,EAA8CiP,OAAOjE,EAAMc,QACrEiC,QAAS,CACL,CACIF,KAAM,UACNI,QAAS,gCACTD,OAAQ,IAAMhD,EAAMsD,aAMhC9T,OAAO8I,KAAK0H,EAAMc,QAAQD,QAAO,CAACnC,EAAO3P,KACrC2P,EAAM3P,GAAOiR,EAAMc,OAAO/R,GACnB2P,IACR,CAAC,KAEZsB,EAAMY,UAAYZ,EAAMY,SAASnO,QACjC+Q,EAAQO,aAAarF,MAAMjK,KAAK,CAC5B2F,KAAM+H,GAAanC,EAAMC,KACzBlR,IAAK,UACL0R,UAAU,EACV/P,MAAOsP,EAAMY,SAASC,QAAO,CAACH,EAAS3R,KACnC,IACI2R,EAAQ3R,GAAOiR,EAAMjR,EACzB,CACA,MAAO+F,GAEH4L,EAAQ3R,GAAO+F,CACnB,CACA,OAAO4L,CAAO,GACf,CAAC,IAEZ,GAER,KAEJ+B,EAAI1K,GAAGmM,kBAAkBV,IACrB,GAAIA,EAAQnB,MAAQA,GAAOmB,EAAQW,cAAgBlC,GAAc,CAC7D,IAAImC,EAAS,CAAC/K,GACd+K,EAASA,EAAOC,OAAO1S,MAAMyO,KAAK/G,EAAMgH,GAAGwD,WAC3CL,EAAQc,WAAad,EAAQ7C,OACvByD,EAAOzD,QAAQX,GAAU,QAASA,EAC9BA,EAAMC,IACH5B,cACA9F,SAASiL,EAAQ7C,OAAOtC,eAC3BwB,GAAiBxB,cAAc9F,SAASiL,EAAQ7C,OAAOtC,iBAC3D+F,GAAQ7D,IAAIR,GACtB,KAEJ0C,EAAI1K,GAAGwM,mBAAmBf,IACtB,GAAIA,EAAQnB,MAAQA,GAAOmB,EAAQW,cAAgBlC,GAAc,CAC7D,MAAMuC,EAAiBhB,EAAQH,SAAWvD,GACpCzG,EACAA,EAAMgH,GAAG1Q,IAAI6T,EAAQH,QAC3B,IAAKmB,EAGD,OAEAA,IACAhB,EAAQ9E,MAAQwB,GAA6BsE,GAErD,KAEJ/B,EAAI1K,GAAG0M,oBAAmB,CAACjB,EAASC,KAChC,GAAID,EAAQnB,MAAQA,GAAOmB,EAAQW,cAAgBlC,GAAc,CAC7D,MAAMuC,EAAiBhB,EAAQH,SAAWvD,GACpCzG,EACAA,EAAMgH,GAAG1Q,IAAI6T,EAAQH,QAC3B,IAAKmB,EACD,OAAO5G,EAAa,UAAU4F,EAAQH,oBAAqB,SAE/D,MAAM,KAAEqB,GAASlB,EACZtF,EAAQsG,GAUTE,EAAKC,QAAQ,SARO,IAAhBD,EAAKjS,QACJ+R,EAAexD,kBAAkB4D,IAAIF,EAAK,OAC3CA,EAAK,KAAMF,EAAe1D,SAC1B4D,EAAKC,QAAQ,UAOrB7C,IAAmB,EACnB0B,EAAQqB,IAAIL,EAAgBE,EAAMlB,EAAQ9E,MAAMhO,OAChDoR,IAAmB,CACvB,KAEJW,EAAI1K,GAAG+M,oBAAoBtB,IACvB,GAAIA,EAAQpJ,KAAK2K,WAAW,MAAO,CAC/B,MAAMvE,EAAUgD,EAAQpJ,KAAKsD,QAAQ,SAAU,IACzCsC,EAAQ3G,EAAMgH,GAAG1Q,IAAI6Q,GAC3B,IAAKR,EACD,OAAOpC,EAAa,UAAU4C,eAAsB,SAExD,MAAM,KAAEkE,GAASlB,EACjB,GAAgB,UAAZkB,EAAK,GACL,OAAO9G,EAAa,2BAA2B4C,QAAckE,kCAIjEA,EAAK,GAAK,SACV5C,IAAmB,EACnB0B,EAAQqB,IAAI7E,EAAO0E,EAAMlB,EAAQ9E,MAAMhO,OACvCoR,IAAmB,CACvB,IACF,GAEV,CACA,SAASkD,GAAmB3C,EAAKrC,GACxB+B,GAAoBxJ,SAAS4J,GAAanC,EAAMC,OACjD8B,GAAoBtN,KAAK0N,GAAanC,EAAMC,MAEhDxH,EAAoB,CAChB1B,GAAI,gBACJ/C,MAAO,WACPsO,KAAM,mCACNC,YAAa,QACbC,SAAU,0BACVT,uBACAM,MACAvL,SAAU,CACNmO,gBAAiB,CACbjR,MAAO,kCACPoG,KAAM,UACNnD,cAAc,MAQtBwL,IAEA,MAAMnM,EAAyB,oBAAZmM,EAAInM,IAAqBmM,EAAInM,IAAI4O,KAAKzC,GAAOlM,KAAKD,IACrE0J,EAAMmF,WAAU,EAAGC,QAAOC,UAAS5K,OAAMtC,WACrC,MAAMmN,EAAUC,KAChB9C,EAAI+C,iBAAiB,CACjBC,QAASzD,GACTX,MAAO,CACHqE,KAAMpP,IACN2G,MAAO,MAAQxC,EACfkL,SAAU,QACVpO,KAAM,CACFyI,MAAON,GAAcM,EAAMC,KAC3B+C,OAAQtD,GAAcjF,GACtBtC,QAEJmN,aAGRF,GAAO5R,IACHoS,QAAexW,EACfqT,EAAI+C,iBAAiB,CACjBC,QAASzD,GACTX,MAAO,CACHqE,KAAMpP,IACN2G,MAAO,MAAQxC,EACfkL,SAAU,MACVpO,KAAM,CACFyI,MAAON,GAAcM,EAAMC,KAC3B+C,OAAQtD,GAAcjF,GACtBtC,OACA3E,UAEJ8R,YAEN,IAEND,GAASvQ,IACL8Q,QAAexW,EACfqT,EAAI+C,iBAAiB,CACjBC,QAASzD,GACTX,MAAO,CACHqE,KAAMpP,IACNuP,QAAS,QACT5I,MAAO,MAAQxC,EACfkL,SAAU,MACVpO,KAAM,CACFyI,MAAON,GAAcM,EAAMC,KAC3B+C,OAAQtD,GAAcjF,GACtBtC,OACArD,SAEJwQ,YAEN,GACJ,IACH,GACHtF,EAAMgB,kBAAkB8C,SAASrJ,KAC7B,EAAGzF,EAA8C8Q,QAAO,KAAM,EAAG9Q,EAA8C+Q,OAAO/F,EAAMvF,MAAQ,CAAC+G,EAAUD,KAC3IkB,EAAIuD,wBACJvD,EAAIU,mBAAmBlB,IACnBH,IACAW,EAAI+C,iBAAiB,CACjBC,QAASzD,GACTX,MAAO,CACHqE,KAAMpP,IACN2G,MAAO,SACP0I,SAAUlL,EACVlD,KAAM,CACFiK,WACAD,YAEJ+D,QAASM,KAGrB,GACD,CAAEK,MAAM,GAAO,IAEtBjG,EAAMkG,YAAW,EAAG9E,SAAQhH,QAAQsE,KAGhC,GAFA+D,EAAIuD,wBACJvD,EAAIU,mBAAmBlB,KAClBH,GACD,OAEJ,MAAMqE,EAAY,CACdT,KAAMpP,IACN2G,MAAOyE,GAAmBtH,GAC1B7C,KAAM2K,GAAS,CAAElC,MAAON,GAAcM,EAAMC,MAAQkB,GAAgBC,IACpEkE,QAASM,IAETxL,IAASV,EAAakI,cACtBuE,EAAUR,SAAW,KAEhBvL,IAASV,EAAamI,YAC3BsE,EAAUR,SAAW,KAEhBvE,IAAWzP,MAAMwD,QAAQiM,KAC9B+E,EAAUR,SAAWvE,EAAOhH,MAE5BgH,IACA+E,EAAU5O,KAAK,eAAiB,CAC5BqI,QAAS,CACLD,QAAS,gBACTvF,KAAM,SACN6I,QAAS,sBACTvS,MAAO0Q,KAInBqB,EAAI+C,iBAAiB,CACjBC,QAASzD,GACTX,MAAO8E,GACT,GACH,CAAEC,UAAU,EAAMC,MAAO,SAC5B,MAAMC,EAAYtG,EAAMuG,WACxBvG,EAAMuG,YAAa,EAAGvR,EAA8CwR,UAAUC,IAC1EH,EAAUG,GACVhE,EAAI+C,iBAAiB,CACjBC,QAASzD,GACTX,MAAO,CACHqE,KAAMpP,IACN2G,MAAO,MAAQ+C,EAAMC,IACrB0F,SAAU,aACVpO,KAAM,CACFyI,MAAON,GAAcM,EAAMC,KAC3ByG,KAAMhH,GAAc,kBAKhC+C,EAAIuD,wBACJvD,EAAIS,kBAAkBjB,IACtBQ,EAAIU,mBAAmBlB,GAAa,IAExC,MAAM,SAAE0E,GAAa3G,EACrBA,EAAM2G,SAAW,KACbA,IACAlE,EAAIuD,wBACJvD,EAAIS,kBAAkBjB,IACtBQ,EAAIU,mBAAmBlB,IACvBQ,EAAI9K,cAAcsN,iBACdrH,EAAa,aAAaoC,EAAMC,gBAAgB,EAGxDwC,EAAIuD,wBACJvD,EAAIS,kBAAkBjB,IACtBQ,EAAIU,mBAAmBlB,IACvBQ,EAAI9K,cAAcsN,iBACdrH,EAAa,IAAIoC,EAAMC,0BAA0B,GAE7D,CACA,IACI2F,GADAL,GAAkB,EAUtB,SAASqB,GAAuB5G,EAAO6G,EAAaC,GAEhD,MAAM/D,EAAU8D,EAAYhG,QAAO,CAACkG,EAAcC,KAE9CD,EAAaC,IAAc,EAAGhS,EAA8CiP,OAAOjE,GAAOgH,GACnFD,IACR,CAAC,GACJ,IAAK,MAAMC,KAAcjE,EACrB/C,EAAMgH,GAAc,WAEhB,MAAMC,EAAY1B,GACZ2B,EAAeJ,EACf,IAAIlR,MAAMoK,EAAO,CACf,GAAArQ,IAAOwI,GAEH,OADAyN,GAAeqB,EACRE,QAAQxX,OAAOwI,EAC1B,EACA,GAAA0M,IAAO1M,GAEH,OADAyN,GAAeqB,EACRE,QAAQtC,OAAO1M,EAC1B,IAEF6H,EAEN4F,GAAeqB,EACf,MAAMG,EAAWrE,EAAQiE,GAAYtU,MAAMwU,EAAc1U,WAGzD,OADAoT,QAAexW,EACRgY,CACX,CAER,CAIA,SAASC,IAAe,IAAEhF,EAAG,MAAErC,EAAK,QAAEsH,IAElC,GAAItH,EAAMC,IAAI8E,WAAW,UACrB,OAGJ/E,EAAMgE,gBAAkBsD,EAAQ5I,MAChCkI,GAAuB5G,EAAOxQ,OAAO8I,KAAKgP,EAAQvE,SAAU/C,EAAMgE,eAElE,MAAMuD,EAAoBvH,EAAMuG,YAChC,EAAGvR,EAA8CiP,OAAOjE,GAAOuG,WAAa,SAAUE,GAClFc,EAAkB7U,MAAM5C,KAAM0C,WAC9BoU,GAAuB5G,EAAOxQ,OAAO8I,KAAKmO,EAASe,YAAYzE,WAAY/C,EAAMgE,cACrF,EACAgB,GAAmB3C,EAEnBrC,EACJ,CAKA,SAASyH,KACL,MAAMC,GAAQ,EAAG1S,EAA8C2S,cAAa,GAGtEjJ,EAAQgJ,EAAME,KAAI,KAAM,EAAG5S,EAA8C6S,KAAK,CAAC,KACrF,IAAIC,EAAK,GAELC,EAAgB,GACpB,MAAM1O,GAAQ,EAAGrE,EAA8CwR,SAAS,CACpE,OAAAwB,CAAQ3F,GAGJjJ,EAAeC,GACVpE,IACDoE,EAAMlD,GAAKkM,EACXA,EAAI4F,QAAQ3O,EAAaD,GACzBgJ,EAAI6F,OAAOC,iBAAiBC,OAAS/O,EAEjCO,GACAwI,GAAsBC,EAAKhJ,GAE/B0O,EAAcjE,SAASrN,GAAWqR,EAAGrT,KAAKgC,KAC1CsR,EAAgB,GAExB,EACA,GAAAM,CAAI5R,GAOA,OANK3G,KAAKqG,IAAOlB,EAIb6S,EAAGrT,KAAKgC,GAHRsR,EAActT,KAAKgC,GAKhB3G,IACX,EACAgY,KAGA3R,GAAI,KACJmS,GAAIZ,EACJrH,GAAI,IAAIkI,IACR7J,UAOJ,OAHI9E,GAAiC,qBAAVhE,OACvByD,EAAMgP,IAAIhB,IAEPhO,CACX,CAkGA,MAAMmP,GAAO,OACb,SAASC,GAAgBC,EAAeC,EAAUvC,EAAUwC,EAAYJ,IACpEE,EAAcjU,KAAKkU,GACnB,MAAME,EAAqB,KACvB,MAAMC,EAAMJ,EAAcK,QAAQJ,GAC9BG,GAAO,IACPJ,EAAcpT,OAAOwT,EAAK,GAC1BF,IACJ,EAKJ,OAHKxC,IAAY,EAAGpR,EAA8CgU,qBAC9D,EAAGhU,EAA8CiU,gBAAgBJ,GAE9DA,CACX,CACA,SAASK,GAAqBR,KAAkBvQ,GAC5CuQ,EAAcS,QAAQrF,SAAS6E,IAC3BA,KAAYxQ,EAAK,GAEzB,CAEA,MAAMiR,GAA0BC,GAAOA,IACvC,SAASC,GAAqBza,EAAQ0a,GAE9B1a,aAAkB0Z,KAAOgB,aAAwBhB,KACjDgB,EAAazF,SAAQ,CAACpT,EAAO3B,IAAQF,EAAOgW,IAAI9V,EAAK2B,KAGrD7B,aAAkB2a,KAAOD,aAAwBC,KACjDD,EAAazF,QAAQjV,EAAO4a,IAAK5a,GAGrC,IAAK,MAAME,KAAOwa,EAAc,CAC5B,IAAKA,EAAalZ,eAAetB,GAC7B,SACJ,MAAM2a,EAAWH,EAAaxa,GACxB4a,EAAc9a,EAAOE,GACvBwK,EAAcoQ,IACdpQ,EAAcmQ,IACd7a,EAAOwB,eAAetB,MACrB,EAAGiG,EAA8C4U,OAAOF,MACxD,EAAG1U,EAA8C6U,YAAYH,GAI9D7a,EAAOE,GAAOua,GAAqBK,EAAaD,GAIhD7a,EAAOE,GAAO2a,CAEtB,CACA,OAAO7a,CACX,CACA,MAAMib,GAE2BtZ,SAC3BuZ,GAA+B,IAAIC,QAoBzC,SAASC,GAAc/Z,GACnB,OAAO+E,GAC2B8U,GAAenF,IAAI1U,IAC9CqJ,EAAcrJ,KAASA,EAAIG,eAAeyZ,GACrD,CACA,MAAQ3X,OAAQ+X,IAAiB1a,OACjC,SAAS2a,GAAW5a,GAChB,UAAU,EAAGyF,EAA8C4U,OAAOra,KAAMA,EAAE6a,OAC9E,CACA,SAASC,GAAmBtT,EAAIuQ,EAASjO,EAAOiR,GAC5C,MAAM,MAAE5L,EAAK,QAAEqE,EAAO,QAAErC,GAAY4G,EAC9BiD,EAAelR,EAAMqF,MAAMhO,MAAMqG,GACvC,IAAIiJ,EACJ,SAASwK,IACAD,IAEGtV,EACAC,EAAQmE,EAAMqF,MAAMhO,MAAOqG,EAAI2H,EAAQA,IAAU,CAAC,GAGlDrF,EAAMqF,MAAMhO,MAAMqG,GAAM2H,EAAQA,IAAU,CAAC,GAInD,MAAM+L,GAGA,EAAGzV,EAA8C0V,QAAQrR,EAAMqF,MAAMhO,MAAMqG,IACjF,OAAOmT,GAAaO,EAAY1H,EAASvT,OAAO8I,KAAKoI,GAAW,CAAC,GAAGG,QAAO,CAAC8J,EAAiBlQ,KAEzFkQ,EAAgBlQ,IAAQ,EAAGzF,EAA8CwR,UAAS,EAAGxR,EAA8C4V,WAAU,KACzIxR,EAAeC,GAEf,MAAM2G,EAAQ3G,EAAMgH,GAAG1Q,IAAIoH,GAG3B,IAAI9B,GAAe+K,EAAM6K,GAKzB,OAAOnK,EAAQjG,GAAMnK,KAAK0P,EAAOA,EAAM,KAEpC2K,IACR,CAAC,GACR,CAEA,OADA3K,EAAQ8K,GAAiB/T,EAAIyT,EAAOlD,EAASjO,EAAOiR,GAAK,GAClDtK,CACX,CACA,SAAS8K,GAAiB7K,EAAKuK,EAAOlD,EAAU,CAAC,EAAGjO,EAAOiR,EAAKS,GAC5D,IAAIrD,EACJ,MAAMsD,EAAmBd,GAAa,CAAEnH,QAAS,CAAC,GAAKuE,GAIvD,MAAM2D,EAAoB,CACtBhF,MAAM,GAMV,IAAIiF,EACAC,EACJ,IAEIC,EAFA1C,EAAgB,GAChB2C,EAAsB,GAE1B,MAAMd,EAAelR,EAAMqF,MAAMhO,MAAMuP,GAGlC8K,GAAmBR,IAEhBtV,EACAC,EAAQmE,EAAMqF,MAAMhO,MAAOuP,EAAK,CAAC,GAGjC5G,EAAMqF,MAAMhO,MAAMuP,GAAO,CAAC,GAGlC,MAAMqL,GAAW,EAAGtW,EAA8C6S,KAAK,CAAC,GAGxE,IAAI0D,EACJ,SAASC,EAAOC,GACZ,IAAIC,EACJR,EAAcC,GAAkB,EAIK,oBAA1BM,GACPA,EAAsBpS,EAAMqF,MAAMhO,MAAMuP,IACxCyL,EAAuB,CACnBtR,KAAMV,EAAakI,cACnBpB,QAASP,EACTmB,OAAQgK,KAIZ9B,GAAqBjQ,EAAMqF,MAAMhO,MAAMuP,GAAMwL,GAC7CC,EAAuB,CACnBtR,KAAMV,EAAamI,YACnB2B,QAASiI,EACTjL,QAASP,EACTmB,OAAQgK,IAGhB,MAAMO,EAAgBJ,EAAiB/a,UACvC,EAAGwE,EAA8C4W,YAAYlY,MAAK,KAC1D6X,IAAmBI,IACnBT,GAAc,EAClB,IAEJC,GAAkB,EAElBjC,GAAqBR,EAAegD,EAAsBrS,EAAMqF,MAAMhO,MAAMuP,GAChF,CACA,MAAMqD,EAASyH,EACT,WACE,MAAM,MAAErM,GAAU4I,EACZuE,EAAWnN,EAAQA,IAAU,CAAC,EAEpC5O,KAAK0b,QAAQ1K,IACToJ,GAAapJ,EAAQ+K,EAAS,GAEtC,EAIUrD,GACd,SAAS7B,IACLe,EAAMoE,OACNpD,EAAgB,GAChB2C,EAAsB,GACtBhS,EAAMgH,GAAG0L,OAAO9L,EACpB,CAQA,SAAS+L,EAAWvR,EAAMuI,GACtB,OAAO,WACH5J,EAAeC,GACf,MAAMlB,EAAOxG,MAAMyO,KAAK5N,WAClByZ,EAAoB,GACpBC,EAAsB,GAC5B,SAAS9G,EAAMuD,GACXsD,EAAkBxX,KAAKkU,EAC3B,CACA,SAAStD,EAAQsD,GACbuD,EAAoBzX,KAAKkU,EAC7B,CASA,IAAIwD,EAPJjD,GAAqBmC,EAAqB,CACtClT,OACAsC,OACAuF,QACAoF,QACAC,YAGJ,IACI8G,EAAMnJ,EAAOtQ,MAAM5C,MAAQA,KAAKmQ,MAAQA,EAAMnQ,KAAOkQ,EAAO7H,EAEhE,CACA,MAAOrD,GAEH,MADAoU,GAAqBgD,EAAqBpX,GACpCA,CACV,CACA,OAAIqX,aAAejZ,QACRiZ,EACFzY,MAAMhD,IACPwY,GAAqB+C,EAAmBvb,GACjCA,KAEN0b,OAAOtX,IACRoU,GAAqBgD,EAAqBpX,GACnC5B,QAAQC,OAAO2B,OAI9BoU,GAAqB+C,EAAmBE,GACjCA,EACX,CACJ,CACA,MAAM3E,GAA4B,EAAGxS,EAA8CwR,SAAS,CACxFzD,QAAS,CAAC,EACVrC,QAAS,CAAC,EACVhC,MAAO,GACP4M,aAEEe,EAAe,CACjBvE,GAAIzO,EAEJ4G,MACAkF,UAAWsD,GAAgBvD,KAAK,KAAMmG,GACtCG,SACAlI,SACA,UAAA4C,CAAWyC,EAAUrB,EAAU,CAAC,GAC5B,MAAMuB,EAAqBJ,GAAgBC,EAAeC,EAAUrB,EAAQlB,UAAU,IAAMkG,MACtFA,EAAc5E,EAAME,KAAI,KAAM,EAAG5S,EAA8C8Q,QAAO,IAAMzM,EAAMqF,MAAMhO,MAAMuP,KAAOvB,KACjG,SAAlB4I,EAAQjB,MAAmB8E,EAAkBD,IAC7CvC,EAAS,CACLnI,QAASP,EACT7F,KAAMV,EAAaiI,OACnBP,OAAQgK,GACT1M,EACP,GACDwL,GAAa,CAAC,EAAGe,EAAmB3D,MACvC,OAAOuB,CACX,EACAlC,YAGA1R,IAEAoX,EAAaxB,IAAK,GAEtB,MAAM7K,GAAQ,EAAGhL,EAA8CuX,UAAsB3S,EAC/EsQ,GAAa,CACX1C,cACAxG,mBAAmB,EAAGhM,EAA8CwR,SAAS,IAAIgD,MAClF6C,GAIDA,GAGNhT,EAAMgH,GAAGwE,IAAI5E,EAAKD,GAClB,MAAMwM,EAAkBnT,EAAMlD,IAAMkD,EAAMlD,GAAGqW,gBAAmBpD,GAE1DqD,EAAaD,GAAe,IAAMnT,EAAMiP,GAAGV,KAAI,KAAOF,GAAQ,EAAG1S,EAA8C2S,gBAAgBC,IAAI4C,OAEzI,IAAK,MAAMzb,KAAO0d,EAAY,CAC1B,MAAMtc,EAAOsc,EAAW1d,GACxB,IAAK,EAAGiG,EAA8C4U,OAAOzZ,KAAUga,GAAWha,KAAU,EAAG6E,EAA8C6U,YAAY1Z,GAG3I4a,IAEFR,GAAgBN,GAAc9Z,MAC1B,EAAG6E,EAA8C4U,OAAOzZ,GACxDA,EAAKO,MAAQ6Z,EAAaxb,GAK1Bua,GAAqBnZ,EAAMoa,EAAaxb,KAK5CkG,EACAC,EAAQmE,EAAMqF,MAAMhO,MAAMuP,GAAMlR,EAAKoB,GAGrCkJ,EAAMqF,MAAMhO,MAAMuP,GAAKlR,GAAOoB,QAOrC,GAAoB,oBAATA,EAAqB,CAEjC,MAAMuc,EAA2BV,EAAWjd,EAAKoB,GAI7C8E,EACAC,EAAQuX,EAAY1d,EAAK2d,GAIzBD,EAAW1d,GAAO2d,EAMtB1B,EAAiBjI,QAAQhU,GAAOoB,CACpC,MACS,CACb,CA8BA,GA3BI8E,EACAzF,OAAO8I,KAAKmU,GAAY3I,SAAS/U,IAC7BmG,EAAQ8K,EAAOjR,EAAK0d,EAAW1d,GAAK,KAIxCmb,GAAalK,EAAOyM,GAGpBvC,IAAa,EAAGlV,EAA8CiP,OAAOjE,GAAQyM,IAKjFjd,OAAOC,eAAeuQ,EAAO,SAAU,CACnCrQ,IAAK,IAAoB0J,EAAMqF,MAAMhO,MAAMuP,GAC3C4E,IAAMnG,IAGF8M,GAAQ1K,IACJoJ,GAAapJ,EAAQpC,EAAM,GAC7B,IAMN9E,EAAc,CACd,MAAM+S,EAAgB,CAClBC,UAAU,EACVC,cAAc,EAEdnd,YAAY,GAEhB,CAAC,KAAM,cAAe,WAAY,qBAAqBoU,SAASnT,IAC5DnB,OAAOC,eAAeuQ,EAAOrP,EAAGuZ,GAAa,CAAExZ,MAAOsP,EAAMrP,IAAMgc,GAAe,GAEzF,CAqCA,OAnCI1X,IAEA+K,EAAM6K,IAAK,GAGfxR,EAAMyO,GAAGhE,SAASgJ,IAEd,GAAIlT,EAAc,CACd,MAAMmT,EAAarF,EAAME,KAAI,IAAMkF,EAAS,CACxC9M,QACAqC,IAAKhJ,EAAMlD,GACXkD,QACAiO,QAAS0D,MAEbxb,OAAO8I,KAAKyU,GAAc,CAAC,GAAGjJ,SAAS/U,GAAQiR,EAAMgB,kBAAkByI,IAAI1a,KAC3Emb,GAAalK,EAAO+M,EACxB,MAEI7C,GAAalK,EAAO0H,EAAME,KAAI,IAAMkF,EAAS,CACzC9M,QACAqC,IAAKhJ,EAAMlD,GACXkD,QACAiO,QAAS0D,MAEjB,IAIAT,GACAQ,GACAzD,EAAQ0F,SACR1F,EAAQ0F,QAAQhN,EAAMc,OAAQyJ,GAElCW,GAAc,EACdC,GAAkB,EACXnL,CACX,CACA,SAASiN,GAETC,EAAa1C,EAAO2C,GAChB,IAAIpW,EACAuQ,EACJ,MAAM8F,EAAgC,oBAAV5C,EAW5B,SAAS6C,EAAShU,EAAOiR,GACrB,MAAMgD,GAAa,EAAGtY,EAA8CuY,uBACpElU,EAGkBA,IACTiU,GAAa,EAAGtY,EAA8CwY,QAAQlU,EAAa,MAAQ,MAChGD,GACAD,EAAeC,GAEnBA,EAAQpD,EACHoD,EAAMgH,GAAGuE,IAAI7N,KAEVqW,EACAtC,GAAiB/T,EAAIyT,EAAOlD,EAASjO,GAGrCgR,GAAmBtT,EAAIuQ,EAASjO,IAKxC,MAAM2G,EAAQ3G,EAAMgH,GAAG1Q,IAAIoH,GAI3B,OAAOiJ,CACX,CAEA,MAvC2B,kBAAhBkN,GACPnW,EAAKmW,EAEL5F,EAAU8F,EAAeD,EAAe3C,IAGxClD,EAAU4F,EACVnW,EAAKmW,EAAYnW,IA+BrBsW,EAASpN,IAAMlJ,EACRsW,CACX,CAsDA,SAASI,GAASJ,EAAUK,GACxB,OAAO/b,MAAMwD,QAAQuY,GACfA,EAAa7M,QAAO,CAAC8M,EAAS5e,KAC5B4e,EAAQ5e,GAAO,WACX,OAAOse,EAASvd,KAAKsY,QAAQrZ,EACjC,EACO4e,IACR,CAAC,GACFne,OAAO8I,KAAKoV,GAAc7M,QAAO,CAAC8M,EAAS5e,KAEzC4e,EAAQ5e,GAAO,WACX,MAAMiR,EAAQqN,EAASvd,KAAKsY,QACtBwF,EAAWF,EAAa3e,GAG9B,MAA2B,oBAAb6e,EACRA,EAAStd,KAAKR,KAAMkQ,GACpBA,EAAM4N,EAChB,EACOD,IACR,CAAC,EACZ,CAcA,SAASE,GAAWR,EAAUK,GAC1B,OAAO/b,MAAMwD,QAAQuY,GACfA,EAAa7M,QAAO,CAAC8M,EAAS5e,KAE5B4e,EAAQ5e,GAAO,YAAaoJ,GACxB,OAAOkV,EAASvd,KAAKsY,QAAQrZ,MAAQoJ,EACzC,EACOwV,IACR,CAAC,GACFne,OAAO8I,KAAKoV,GAAc7M,QAAO,CAAC8M,EAAS5e,KAEzC4e,EAAQ5e,GAAO,YAAaoJ,GACxB,OAAOkV,EAASvd,KAAKsY,QAAQsF,EAAa3e,OAASoJ,EACvD,EACOwV,IACR,CAAC,EACZ,CA8IA,IAyKIG,GAQAC,GAaAC,GAYAC,GAuCAC,GAMAC,GASAC,GAOAC,GAaAC,GAMAC,GAOAC,GASAC,GAKAC,GASAC,GAQAC,GAWAC,GAKAC,GAwBAC,GAOAC,GAQAC,GAvXAC,GAAK,iBASLC,GAAM,IAAMD,GAOZE,GAAMF,GAAK,IAOXG,GAAM,GAAKH,GAOXI,GAAMJ,GAAK,GAOXK,GAAM,GAAM,KAqIhB,SAAWzB,GACPA,EAASA,EAAS,SAAW,GAAK,QAClCA,EAASA,EAAS,YAAc,GAAK,WACrCA,EAASA,EAAS,YAAc,GAAK,WACrCA,EAASA,EAAS,YAAc,GAAK,WACrCA,EAASA,EAAS,WAAa,GAAK,SACvC,EAND,CAMGA,KAAaA,GAAW,CAAC,IAE5B,SAAWC,GACPA,EAASA,EAAS,UAAY,GAAK,SACnCA,EAASA,EAAS,QAAU,GAAK,OACjCA,EAASA,EAAS,UAAY,GAAK,SACnCA,EAASA,EAAS,SAAW,GAAK,QAClCA,EAASA,EAAS,cAAgB,GAAK,aACvCA,EAASA,EAAS,qBAAuB,GAAK,oBAC9CA,EAASA,EAAS,cAAgB,GAAK,aACvCA,EAASA,EAAS,WAAa,GAAK,UACpCA,EAASA,EAAS,eAAiB,GAAK,cACxCA,EAASA,EAAS,UAAY,IAAM,QACvC,CAXD,CAWGA,KAAaA,GAAW,CAAC,IAE5B,SAAWC,GACPA,EAASA,EAAS,SAAW,GAAK,QAClCA,EAASA,EAAS,QAAU,GAAK,OACjCA,EAASA,EAAS,eAAiB,GAAK,cACxCA,EAASA,EAAS,WAAa,GAAK,UACpCA,EAASA,EAAS,iBAAmB,GAAK,gBAC1CA,EAASA,EAAS,MAAQ,GAAK,KAC/BA,EAASA,EAAS,aAAe,GAAK,YACtCA,EAASA,EAAS,SAAW,GAAK,QAClCA,EAASA,EAAS,gBAAkB,GAAK,cAC5C,CAVD,CAUGA,KAAaA,GAAW,CAAC,IAE5B,SAAWC,GACPA,EAAeA,EAAe,QAAU,GAAK,OAC7CA,EAAeA,EAAe,aAAe,GAAK,YAClDA,EAAeA,EAAe,aAAe,GAAK,YAClDA,EAAeA,EAAe,eAAiB,GAAK,cACpDA,EAAeA,EAAe,cAAgB,IAAM,aACpDA,EAAeA,EAAe,iBAAmB,IAAM,gBACvDA,EAAeA,EAAe,YAAc,IAAM,WAClDA,EAAeA,EAAe,iBAAmB,KAAO,gBACxDA,EAAeA,EAAe,eAAiB,KAAO,cACtDA,EAAeA,EAAe,mBAAqB,KAAO,kBAC1DA,EAAeA,EAAe,mBAAqB,MAAQ,kBAC3DA,EAAeA,EAAe,UAAY,MAAQ,SAClDA,EAAeA,EAAe,kBAAoB,MAAQ,iBAC1DA,EAAeA,EAAe,mBAAqB,MAAQ,kBAC3DA,EAAeA,EAAe,oBAAsB,OAAS,mBAC7DA,EAAeA,EAAe,cAAgB,OAAS,aACvDA,EAAeA,EAAe,uBAAyB,OAAS,sBAChEA,EAAeA,EAAe,oBAAsB,QAAU,mBAC9DA,EAAeA,EAAe,oBAAsB,QAAU,mBAC9DA,EAAeA,EAAe,UAAY,QAAU,SACpDA,EAAeA,EAAe,UAAY,SAAW,SACrDA,EAAeA,EAAe,gBAAkB,SAAW,eAC3DA,EAAeA,EAAe,mBAAqB,SAAW,kBAC9DA,EAAeA,EAAe,oBAAsB,SAAW,mBAC/DA,EAAeA,EAAe,QAAU,UAAY,OACpDA,EAAeA,EAAe,eAAiB,UAAY,cAC3DA,EAAeA,EAAe,qBAAuB,UAAY,oBACjEA,EAAeA,EAAe,YAAc,WAAa,WACzDA,EAAeA,EAAe,gBAAkB,WAAa,eAC7DA,EAAeA,EAAe,eAAiB,WAAa,cAC5DA,EAAeA,EAAe,cAAgB,YAAc,aAC5DA,EAAeA,EAAe,WAAa,IAAM,UACjDA,EAAeA,EAAe,oBAAsB,MAAQ,mBAC5DA,EAAeA,EAAe,WAAa,QAAU,UACrDA,EAAeA,EAAe,YAAc,WAAa,WACzDA,EAAeA,EAAe,SAAW,WAAa,OACzD,CArCD,CAqCGA,KAAmBA,GAAiB,CAAC,IAExC,SAAWC,GACPA,EAAgBA,EAAgB,aAAe,GAAK,YACpDA,EAAgBA,EAAgB,eAAiB,GAAK,cACtDA,EAAgBA,EAAgB,WAAa,GAAK,SACrD,CAJD,CAIGA,KAAoBA,GAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAUA,EAAU,SAAW,GAAK,QACpCA,EAAUA,EAAU,UAAY,GAAK,SACrCA,EAAUA,EAAU,UAAY,GAAK,SACrCA,EAAUA,EAAU,UAAY,GAAK,SACrCA,EAAUA,EAAU,WAAa,GAAK,UACtCA,EAAUA,EAAU,QAAU,GAAK,MACtC,CAPD,CAOGA,KAAcA,GAAY,CAAC,IAE9B,SAAWC,GACPA,EAASA,EAAS,UAAY,GAAK,SACnCA,EAASA,EAAS,WAAa,GAAK,UACpCA,EAASA,EAAS,QAAU,GAAK,OACjCA,EAASA,EAAS,QAAU,GAAK,MACpC,CALD,CAKGA,KAAaA,GAAW,CAAC,IAE5B,SAAWC,GACPA,EAAYA,EAAY,YAAc,GAAK,WAC3CA,EAAYA,EAAY,QAAU,GAAK,OACvCA,EAAYA,EAAY,UAAY,GAAK,SACzCA,EAAYA,EAAY,iBAAmB,GAAK,gBAChDA,EAAYA,EAAY,QAAU,GAAK,OACvCA,EAAYA,EAAY,QAAU,GAAK,OACvCA,EAAYA,EAAY,aAAe,GAAK,YAC5CA,EAAYA,EAAY,WAAa,GAAK,UAC1CA,EAAYA,EAAY,WAAa,GAAK,UAC1CA,EAAYA,EAAY,cAAgB,GAAK,YAChD,CAXD,CAWGA,KAAgBA,GAAc,CAAC,IAElC,SAAWC,GACPA,EAAkBA,EAAkB,YAAc,GAAK,WACvDA,EAAkBA,EAAkB,kBAAoB,GAAK,iBAC7DA,EAAkBA,EAAkB,cAAgB,GAAK,YAC5D,CAJD,CAIGA,KAAsBA,GAAoB,CAAC,IAE9C,SAAWC,GACPA,EAAWA,EAAW,SAAW,GAAK,QACtCA,EAAWA,EAAW,UAAY,GAAK,SACvCA,EAAWA,EAAW,OAAS,GAAK,MACpCA,EAAWA,EAAW,YAAc,GAAK,UAC5C,CALD,CAKGA,KAAeA,GAAa,CAAC,IAEhC,SAAWC,GACPA,EAAaA,EAAa,SAAW,GAAK,QAC1CA,EAAaA,EAAa,UAAY,GAAK,SAC3CA,EAAaA,EAAa,OAAS,GAAK,MACxCA,EAAaA,EAAa,YAAc,GAAK,WAC7CA,EAAaA,EAAa,eAAiB,GAAK,cAChDA,EAAaA,EAAa,WAAa,GAAK,SAC/C,CAPD,CAOGA,KAAiBA,GAAe,CAAC,IAEpC,SAAWC,GACPA,EAAaA,EAAa,UAAY,GAAK,SAC3CA,EAAaA,EAAa,SAAW,GAAK,OAC7C,CAHD,CAGGA,KAAiBA,GAAe,CAAC,IAEpC,SAAWC,GACPA,EAAUA,EAAU,YAAc,GAAK,WACvCA,EAAUA,EAAU,SAAW,GAAK,QACpCA,EAAUA,EAAU,UAAY,GAAK,SACrCA,EAAUA,EAAU,UAAY,GAAK,SACrCA,EAAUA,EAAU,WAAa,GAAK,UACtCA,EAAUA,EAAU,UAAY,GAAK,QACxC,CAPD,CAOGA,KAAcA,GAAY,CAAC,IAE9B,SAAWC,GACPA,EAAgBA,EAAgB,UAAY,GAAK,SACjDA,EAAgBA,EAAgB,SAAW,GAAK,QAChDA,EAAgBA,EAAgB,OAAS,GAAK,MAC9CA,EAAgBA,EAAgB,YAAc,GAAK,WACnDA,EAAgBA,EAAgB,oBAAsB,GAAK,kBAC9D,CAND,CAMGA,KAAoBA,GAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAeA,EAAe,YAAc,GAAK,WACjDA,EAAeA,EAAe,mBAAqB,GAAK,kBACxDA,EAAeA,EAAe,WAAa,GAAK,UAChDA,EAAeA,EAAe,OAAS,GAAK,MAC5CA,EAAeA,EAAe,SAAW,GAAK,QAC9CA,EAAeA,EAAe,aAAe,GAAK,YAClDA,EAAeA,EAAe,YAAc,GAAK,WACjDA,EAAeA,EAAe,WAAa,GAAK,SACnD,CATD,CASGA,KAAmBA,GAAiB,CAAC,IAExC,SAAWC,GACPA,EAAQA,EAAQ,SAAW,GAAK,QAChCA,EAAQA,EAAQ,WAAa,GAAK,SACrC,CAHD,CAGGA,KAAYA,GAAU,CAAC,IAE1B,SAAWC,GACPA,EAAgBA,EAAgB,OAAS,GAAK,MAC9CA,EAAgBA,EAAgB,YAAc,GAAK,WACnDA,EAAgBA,EAAgB,YAAc,GAAK,WACnDA,EAAgBA,EAAgB,OAAS,GAAK,MAC9CA,EAAgBA,EAAgB,WAAa,GAAK,UAClDA,EAAgBA,EAAgB,SAAW,GAAK,QAChDA,EAAgBA,EAAgB,SAAW,GAAK,QAChDA,EAAgBA,EAAgB,QAAU,GAAK,OAC/CA,EAAgBA,EAAgB,WAAa,GAAK,UAClDA,EAAgBA,EAAgB,UAAY,GAAK,SACjDA,EAAgBA,EAAgB,UAAY,IAAM,SAClDA,EAAgBA,EAAgB,WAAa,IAAM,UACnDA,EAAgBA,EAAgB,SAAW,IAAM,QACjDA,EAAgBA,EAAgB,QAAU,IAAM,OAChDA,EAAgBA,EAAgB,MAAQ,IAAM,KAC9CA,EAAgBA,EAAgB,UAAY,IAAM,SAClDA,EAAgBA,EAAgB,YAAc,IAAM,WACpDA,EAAgBA,EAAgB,YAAc,IAAM,WACpDA,EAAgBA,EAAgB,UAAY,IAAM,SAClDA,EAAgBA,EAAgB,YAAc,IAAM,WACpDA,EAAgBA,EAAgB,WAAa,IAAM,SACtD,CAtBD,CAsBGA,KAAoBA,GAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAoBA,EAAoB,iBAAmB,GAAK,gBAChEA,EAAoBA,EAAoB,WAAa,GAAK,UAC1DA,EAAoBA,EAAoB,cAAgB,GAAK,aAC7DA,EAAoBA,EAAoB,WAAa,GAAK,SAC7D,CALD,CAKGA,KAAwBA,GAAsB,CAAC,IAElD,SAAWC,GACPA,EAAWA,EAAW,UAAY,GAAK,SACvCA,EAAWA,EAAW,OAAS,GAAK,MACpCA,EAAWA,EAAW,SAAW,GAAK,QACtCA,EAAWA,EAAW,cAAgB,GAAK,aAC3CA,EAAWA,EAAW,yBAA2B,GAAK,uBACzD,CAND,CAMGA,KAAeA,GAAa,CAAC,IAEhC,SAAWC,GACPA,EAAmBA,EAAmB,OAAS,GAAK,MACpDA,EAAmBA,EAAmB,WAAa,GAAK,UACxDA,EAAmBA,EAAmB,SAAW,GAAK,QACtDA,EAAmBA,EAAmB,QAAU,GAAK,OACrDA,EAAmBA,EAAmB,WAAa,GAAK,UACxDA,EAAmBA,EAAmB,UAAY,GAAK,SACvDA,EAAmBA,EAAmB,UAAY,GAAK,SACvDA,EAAmBA,EAAmB,WAAa,GAAK,UACxDA,EAAmBA,EAAmB,SAAW,GAAK,QACtDA,EAAmBA,EAAmB,QAAU,GAAK,OACrDA,EAAmBA,EAAmB,MAAQ,IAAM,KACpDA,EAAmBA,EAAmB,UAAY,IAAM,SACxDA,EAAmBA,EAAmB,YAAc,IAAM,WAC1DA,EAAmBA,EAAmB,YAAc,IAAM,WAC1DA,EAAmBA,EAAmB,YAAc,IAAM,WAC1DA,EAAmBA,EAAmB,gBAAkB,IAAM,eAC9DA,EAAmBA,EAAmB,kBAAoB,IAAM,iBAChEA,EAAmBA,EAAmB,kBAAoB,IAAM,iBAChEA,EAAmBA,EAAmB,eAAiB,IAAM,cAC7DA,EAAmBA,EAAmB,SAAW,IAAM,QACvDA,EAAmBA,EAAmB,UAAY,IAAM,SACxDA,EAAmBA,EAAmB,aAAe,OAAS,WACjE,CAvBD,CAuBGA,KAAuBA,GAAqB,CAAC,IAoRhD,IAAIO,GAAsB,EAAoB,IAU1CC,GAAoB,CACpB,eACA,QACA,UACA,WACA,OACA,UACA,SACA,iBACA,WAwCJ,SAASC,GAAkBC,EAAQC,GAC/B,IAAIC,EAAK1Z,EACT,IACI,IAAK,IAAI2Z,EAAsBpb,EAAiB+a,IAAoBM,EAAwBD,EAAoBxc,QAASyc,EAAsBtc,KAAMsc,EAAwBD,EAAoBxc,OAAQ,CACrM,IAAIf,EAAIwd,EAAsBrf,MAC9Bkf,EAAK,OAASrd,GAAGod,EAAO,OAASpd,KACrC,CACJ,CACA,MAAOyd,GAASH,EAAM,CAAE/a,MAAOkb,EAAS,CACxC,QACI,IACQD,IAA0BA,EAAsBtc,OAAS0C,EAAK2Z,EAAoBG,SAAS9Z,EAAG7F,KAAKwf,EAC3G,CACA,QAAU,GAAID,EAAK,MAAMA,EAAI/a,KAAO,CACxC,CACJ,CAEA,IAAIob,GAA4B,WAK5B,SAASA,EAAWP,GAChBD,GAAkBC,EAAQ7f,KAC9B,CAqFA,OApFAogB,EAAW9f,UAAU+f,iBAAmB,WACpC,OAAOrgB,KAAKsgB,YAChB,EACAF,EAAW9f,UAAUigB,iBAAmB,SAAU/b,GAE9C,OADAxE,KAAKsgB,aAAe9b,EACbA,CACX,EACA4b,EAAW9f,UAAUkgB,UAAY,WAC7B,OAAOxgB,KAAK6S,KAChB,EACAuN,EAAW9f,UAAUmgB,UAAY,SAAUjc,GAEvC,OADAxE,KAAK6S,MAAQrO,EACNA,CACX,EACA4b,EAAW9f,UAAUogB,YAAc,WAC/B,OAAO1gB,KAAK2gB,OAChB,EACAP,EAAW9f,UAAUsgB,YAAc,SAAUpc,GAEzC,OADAxE,KAAK2gB,QAAUnc,EACRA,CACX,EACA4b,EAAW9f,UAAUugB,YAAc,WAC/B,OAAO7gB,KAAK8gB,OAChB,EACAV,EAAW9f,UAAUygB,YAAc,SAAUvc,GAEzC,OADAxE,KAAK8gB,QAAUtc,EACRA,CACX,EACA4b,EAAW9f,UAAU0gB,aAAe,WAChC,OAAOhhB,KAAKihB,QAChB,EACAb,EAAW9f,UAAU4gB,aAAe,SAAU1c,GAE1C,OADAxE,KAAKihB,SAAWzc,EACTA,CACX,EACA4b,EAAW9f,UAAU6gB,aAAe,WAChC,OAAOnhB,KAAKohB,QAChB,EACAhB,EAAW9f,UAAU+gB,aAAe,SAAU7c,GAE1C,OADAxE,KAAKohB,SAAW5c,EACTA,CACX,EACA4b,EAAW9f,UAAUghB,SAAW,WAC5B,OAAOthB,KAAK2K,IAChB,EACAyV,EAAW9f,UAAUihB,SAAW,SAAU/c,GAEtC,OADAxE,KAAK2K,KAAOnG,EACLA,CACX,EACA4b,EAAW9f,UAAUkhB,YAAc,WAC/B,OAAOxhB,KAAKyhB,OAChB,EACArB,EAAW9f,UAAUohB,YAAc,SAAUld,GAEzC,OADAxE,KAAKyhB,QAAUjd,EACRA,CACX,EACA4b,EAAW9f,UAAUqhB,WAAa,WAC9B,OAAO3hB,KAAK4hB,MAChB,EACAxB,EAAW9f,UAAUuhB,WAAa,SAAUrd,GAExC,OADAxE,KAAK4hB,OAASpd,EACPA,CACX,EACA4b,EAAW9f,UAAUwhB,mBAAqB,WACtC,OAAO9hB,KAAK+hB,cAChB,EACA3B,EAAW9f,UAAU0hB,mBAAqB,SAAUxd,GAEhD,OADAxE,KAAK+hB,eAAiBvd,EACfA,CACX,EACA4b,EAAW9f,UAAU2hB,cAAgB,WACjC,OAAOjiB,KAAKkiB,SAChB,EACA9B,EAAW9f,UAAU6hB,cAAgB,SAAU3d,GAE3C,OADAxE,KAAKkiB,UAAY1d,EACVA,CACX,EACA4b,EAAW9f,UAAU8hB,YAAc,WAC/B,OAAOpiB,KAAKqiB,OAChB,EACAjC,EAAW9f,UAAUgiB,YAAc,SAAU9d,GAEzC,OADAxE,KAAKqiB,QAAU7d,EACRA,CACX,EACO4b,CACX,CA7F+B,GAwG3BmC,GAAgC,CAChC,kBACA,wBAQ4B5C,GAAkBpL,OAAOgO,IAOzD,SAASC,GAA0BC,EAAOC,GACtC,IAAIC,EAAW,OAASD,EAAQ,GAC5B9hB,EAAQ8hB,EAAQ,GACpBD,EAAME,GAAU/hB,EACpB,CAqBA,SAASgiB,GAA0B/C,EAAQC,GACvC,IAAIC,EAAK1Z,EACTuZ,GAAkBC,EAAQC,GAC1B,IACI,IAAK,IAAI+C,EAAkCje,EAAiB2d,IAAgCO,EAAoCD,EAAgCrf,QAASsf,EAAkCnf,KAAMmf,EAAoCD,EAAgCrf,OAAQ,CACzR,IAAIf,EAAIqgB,EAAkCliB,MAC1Ckf,EAAK,OAASrd,GAAGod,EAAO,OAASpd,KACrC,CACJ,CACA,MAAOyd,GAASH,EAAM,CAAE/a,MAAOkb,EAAS,CACxC,QACI,IACQ4C,IAAsCA,EAAkCnf,OAAS0C,EAAKwc,EAAgC1C,SAAS9Z,EAAG7F,KAAKqiB,EAC/I,CACA,QAAU,GAAI9C,EAAK,MAAMA,EAAI/a,KAAO,CACxC,CACJ,CAEA,IAAI+d,GAAkD,SAAUC,GAE5D,SAASliB,EAAmB+e,GACxB,IAAIoD,EAGJD,EAAOxiB,KAAKR,KAAM6f,IAAW7f,KAE7B,OADA4iB,GAA0B/C,EAAQoD,GAC3BA,CACX,CAeA,OAvBAnhB,EAAUhB,EAAoBkiB,GAS9BliB,EAAmBR,UAAU4iB,oBAAsB,WAC/C,OAAOljB,KAAKmjB,eAChB,EACAriB,EAAmBR,UAAU8iB,oBAAsB,SAAU5e,GAEzD,OADAxE,KAAKmjB,gBAAkB3e,EAChBA,CACX,EACA1D,EAAmBR,UAAU+iB,yBAA2B,WACpD,OAAOrjB,KAAKsjB,oBAChB,EACAxiB,EAAmBR,UAAUijB,yBAA2B,SAAU/e,GAE9D,OADAxE,KAAKsjB,qBAAuB9e,EACrBA,CACX,EACO1D,CACX,CAzBqD,CAyBnDsf,IAWEoD,GAAmC,CACnC,YACA,UACA,UACA,kBACA,aACA,uBACA,iBACA,iBACA,kBACA,kBACA,QACA,eACA,cACA,gBACA,WACA,iBACA,kBACA,kBACA,YACA,YACA,eACA,cACA,cACA,aACA,oBACA,uBACA,uBACA,gBACA,oBACA,mBACA,mBACA,WACA,iBACA,UACA,cACA,cACA,aACA,kBACA,aACA,cACA,eACA,cACA,eACA,cACA,gBAQ+B7D,GAAkBpL,OAAOiP,IAO5D,SAASC,GAA6BhB,EAAOC,GACzC,IAAIC,EAAW,OAASD,EAAQ,GAC5B9hB,EAAQ8hB,EAAQ,GACpBD,EAAME,GAAU/hB,EACpB,CAqBA,SAAS8iB,GAA6B7D,EAAQC,GAC1C,IAAIC,EAAK1Z,EACTuZ,GAAkBC,EAAQC,GAC1B,IACI,IAAK,IAAI6D,EAAqC/e,EAAiB4e,IAAmCI,EAAuCD,EAAmCngB,QAASogB,EAAqCjgB,KAAMigB,EAAuCD,EAAmCngB,OAAQ,CAC9S,IAAIf,EAAImhB,EAAqChjB,MAC7Ckf,EAAK,OAASrd,GAAGod,EAAO,OAASpd,KACrC,CACJ,CACA,MAAOyd,GAASH,EAAM,CAAE/a,MAAOkb,EAAS,CACxC,QACI,IACQ0D,IAAyCA,EAAqCjgB,OAAS0C,EAAKsd,EAAmCxD,SAAS9Z,EAAG7F,KAAKmjB,EACxJ,CACA,QAAU,GAAI5D,EAAK,MAAMA,EAAI/a,KAAO,CACxC,CACJ,CAEA,IAAI6e,GAAuC,SAAUb,GAEjD,SAASa,EAAsBhE,GAC3B,IAAIoD,EAGJD,EAAOxiB,KAAKR,KAAM6f,IAAW7f,KAE7B,OADA0jB,GAA6B7D,EAAQoD,GAC9BA,CACX,CA4TA,OApUAnhB,EAAU+hB,EAAuBb,GASjCa,EAAsBvjB,UAAUwjB,cAAgB,WAC5C,OAAO9jB,KAAK+jB,SAChB,EACAF,EAAsBvjB,UAAU0jB,cAAgB,SAAUxf,GAEtD,OADAxE,KAAK+jB,UAAYvf,EACVA,CACX,EACAqf,EAAsBvjB,UAAU2jB,YAAc,WAC1C,OAAOjkB,KAAKkkB,OAChB,EACAL,EAAsBvjB,UAAU6jB,YAAc,SAAU3f,GAEpD,OADAxE,KAAKkkB,QAAU1f,EACRA,CACX,EACAqf,EAAsBvjB,UAAU8jB,YAAc,WAC1C,OAAOpkB,KAAKqkB,OAChB,EACAR,EAAsBvjB,UAAUgkB,YAAc,SAAU9f,GAEpD,OADAxE,KAAKqkB,QAAU7f,EACRA,CACX,EACAqf,EAAsBvjB,UAAUikB,oBAAsB,WAClD,OAAOvkB,KAAKwkB,eAChB,EACAX,EAAsBvjB,UAAUmkB,oBAAsB,SAAUjgB,GAE5D,OADAxE,KAAKwkB,gBAAkBhgB,EAChBA,CACX,EACAqf,EAAsBvjB,UAAUokB,eAAiB,WAC7C,OAAO1kB,KAAK2kB,UAChB,EACAd,EAAsBvjB,UAAUskB,eAAiB,SAAUpgB,GAEvD,OADAxE,KAAK2kB,WAAangB,EACXA,CACX,EACAqf,EAAsBvjB,UAAUukB,yBAA2B,WACvD,OAAO7kB,KAAK8kB,oBAChB,EACAjB,EAAsBvjB,UAAUykB,yBAA2B,SAAUvgB,GAEjE,OADAxE,KAAK8kB,qBAAuBtgB,EACrBA,CACX,EACAqf,EAAsBvjB,UAAU0kB,mBAAqB,WACjD,OAAOhlB,KAAKilB,cAChB,EACApB,EAAsBvjB,UAAU4kB,mBAAqB,SAAU1gB,GAE3D,OADAxE,KAAKilB,eAAiBzgB,EACfA,CACX,EACAqf,EAAsBvjB,UAAU6kB,mBAAqB,WACjD,OAAOnlB,KAAKolB,cAChB,EACAvB,EAAsBvjB,UAAU+kB,mBAAqB,SAAU7gB,GAE3D,OADAxE,KAAKolB,eAAiB5gB,EACfA,CACX,EACAqf,EAAsBvjB,UAAU4iB,oBAAsB,WAClD,OAAOljB,KAAKmjB,eAChB,EACAU,EAAsBvjB,UAAU8iB,oBAAsB,SAAU5e,GAE5D,OADAxE,KAAKmjB,gBAAkB3e,EAChBA,CACX,EACAqf,EAAsBvjB,UAAUglB,oBAAsB,WAClD,OAAOtlB,KAAKulB,eAChB,EACA1B,EAAsBvjB,UAAUklB,oBAAsB,SAAUhhB,GAE5D,OADAxE,KAAKulB,gBAAkB/gB,EAChBA,CACX,EACAqf,EAAsBvjB,UAAUmlB,UAAY,WACxC,OAAOzlB,KAAK0lB,KAChB,EACA7B,EAAsBvjB,UAAUqlB,UAAY,SAAUnhB,GAElD,OADAxE,KAAK0lB,MAAQlhB,EACNA,CACX,EACAqf,EAAsBvjB,UAAUslB,iBAAmB,WAC/C,OAAO5lB,KAAK6lB,YAChB,EACAhC,EAAsBvjB,UAAUwlB,iBAAmB,SAAUthB,GAEzD,OADAxE,KAAK6lB,aAAerhB,EACbA,CACX,EACAqf,EAAsBvjB,UAAUylB,gBAAkB,WAC9C,OAAO/lB,KAAKgmB,WAChB,EACAnC,EAAsBvjB,UAAU2lB,gBAAkB,SAAUzhB,GAExD,OADAxE,KAAKgmB,YAAcxhB,EACZA,CACX,EACAqf,EAAsBvjB,UAAU4lB,kBAAoB,WAChD,OAAOlmB,KAAKmmB,aAChB,EACAtC,EAAsBvjB,UAAU8lB,kBAAoB,SAAU5hB,GAE1D,OADAxE,KAAKmmB,cAAgB3hB,EACdA,CACX,EACAqf,EAAsBvjB,UAAU+lB,aAAe,WAC3C,OAAOrmB,KAAKsmB,QAChB,EACAzC,EAAsBvjB,UAAUimB,aAAe,SAAU/hB,GAErD,OADAxE,KAAKsmB,SAAW9hB,EACTA,CACX,EACAqf,EAAsBvjB,UAAUkmB,mBAAqB,WACjD,OAAOxmB,KAAKymB,cAChB,EACA5C,EAAsBvjB,UAAUomB,mBAAqB,SAAUliB,GAE3D,OADAxE,KAAKymB,eAAiBjiB,EACfA,CACX,EACAqf,EAAsBvjB,UAAUqmB,oBAAsB,WAClD,OAAO3mB,KAAK4mB,eAChB,EACA/C,EAAsBvjB,UAAUumB,oBAAsB,SAAUriB,GAE5D,OADAxE,KAAK4mB,gBAAkBpiB,EAChBA,CACX,EACAqf,EAAsBvjB,UAAUwmB,oBAAsB,WAClD,OAAO9mB,KAAK+mB,eAChB,EACAlD,EAAsBvjB,UAAU0mB,oBAAsB,SAAUxiB,GAE5D,OADAxE,KAAK+mB,gBAAkBviB,EAChBA,CACX,EACAqf,EAAsBvjB,UAAU2mB,cAAgB,WAC5C,OAAOjnB,KAAKknB,SAChB,EACArD,EAAsBvjB,UAAU6mB,cAAgB,SAAU3iB,GAEtD,OADAxE,KAAKknB,UAAY1iB,EACVA,CACX,EACAqf,EAAsBvjB,UAAU8mB,cAAgB,WAC5C,OAAOpnB,KAAKqnB,SAChB,EACAxD,EAAsBvjB,UAAUgnB,cAAgB,SAAU9iB,GAEtD,OADAxE,KAAKqnB,UAAY7iB,EACVA,CACX,EACAqf,EAAsBvjB,UAAUinB,iBAAmB,WAC/C,OAAOvnB,KAAKwnB,YAChB,EACA3D,EAAsBvjB,UAAUmnB,iBAAmB,SAAUjjB,GAEzD,OADAxE,KAAKwnB,aAAehjB,EACbA,CACX,EACAqf,EAAsBvjB,UAAUonB,gBAAkB,WAC9C,OAAO1nB,KAAK2nB,WAChB,EACA9D,EAAsBvjB,UAAUsnB,gBAAkB,SAAUpjB,GAExD,OADAxE,KAAK2nB,YAAcnjB,EACZA,CACX,EACAqf,EAAsBvjB,UAAUunB,gBAAkB,WAC9C,OAAO7nB,KAAK8nB,WAChB,EACAjE,EAAsBvjB,UAAUynB,gBAAkB,SAAUvjB,GAExD,OADAxE,KAAK8nB,YAActjB,EACZA,CACX,EACAqf,EAAsBvjB,UAAU0nB,eAAiB,WAC7C,OAAOhoB,KAAKioB,UAChB,EACApE,EAAsBvjB,UAAU4nB,eAAiB,SAAU1jB,GAEvD,OADAxE,KAAKioB,WAAazjB,EACXA,CACX,EACAqf,EAAsBvjB,UAAU6nB,sBAAwB,WACpD,OAAOnoB,KAAKooB,iBAChB,EACAvE,EAAsBvjB,UAAU+nB,sBAAwB,SAAU7jB,GAE9D,OADAxE,KAAKooB,kBAAoB5jB,EAClBA,CACX,EACAqf,EAAsBvjB,UAAUgoB,yBAA2B,WACvD,OAAOtoB,KAAKuoB,oBAChB,EACA1E,EAAsBvjB,UAAUkoB,yBAA2B,SAAUhkB,GAEjE,OADAxE,KAAKuoB,qBAAuB/jB,EACrBA,CACX,EACAqf,EAAsBvjB,UAAUmoB,yBAA2B,WACvD,OAAOzoB,KAAK0oB,oBAChB,EACA7E,EAAsBvjB,UAAUqoB,yBAA2B,SAAUnkB,GAEjE,OADAxE,KAAK0oB,qBAAuBlkB,EACrBA,CACX,EACAqf,EAAsBvjB,UAAUsoB,kBAAoB,WAChD,OAAO5oB,KAAK6oB,aAChB,EACAhF,EAAsBvjB,UAAUwoB,kBAAoB,SAAUtkB,GAE1D,OADAxE,KAAK6oB,cAAgBrkB,EACdA,CACX,EACAqf,EAAsBvjB,UAAUyoB,sBAAwB,WACpD,OAAO/oB,KAAKgpB,iBAChB,EACAnF,EAAsBvjB,UAAU2oB,sBAAwB,SAAUzkB,GAE9D,OADAxE,KAAKgpB,kBAAoBxkB,EAClBA,CACX,EACAqf,EAAsBvjB,UAAU4oB,qBAAuB,WACnD,OAAOlpB,KAAKmpB,gBAChB,EACAtF,EAAsBvjB,UAAU8oB,qBAAuB,SAAU5kB,GAE7D,OADAxE,KAAKmpB,iBAAmB3kB,EACjBA,CACX,EACAqf,EAAsBvjB,UAAU+oB,qBAAuB,WACnD,OAAOrpB,KAAKspB,gBAChB,EACAzF,EAAsBvjB,UAAUipB,qBAAuB,SAAU/kB,GAE7D,OADAxE,KAAKspB,iBAAmB9kB,EACjBA,CACX,EACAqf,EAAsBvjB,UAAUkpB,aAAe,WAC3C,OAAOxpB,KAAKypB,QAChB,EACA5F,EAAsBvjB,UAAUopB,aAAe,SAAUllB,GAErD,OADAxE,KAAKypB,SAAWjlB,EACTA,CACX,EACAqf,EAAsBvjB,UAAUqpB,mBAAqB,WACjD,OAAO3pB,KAAK4pB,cAChB,EACA/F,EAAsBvjB,UAAUupB,mBAAqB,SAAUrlB,GAE3D,OADAxE,KAAK4pB,eAAiBplB,EACfA,CACX,EACAqf,EAAsBvjB,UAAUwpB,YAAc,WAC1C,OAAO9pB,KAAK+pB,OAChB,EACAlG,EAAsBvjB,UAAU0pB,YAAc,SAAUxlB,GAEpD,OADAxE,KAAK+pB,QAAUvlB,EACRA,CACX,EACAqf,EAAsBvjB,UAAU2pB,gBAAkB,WAC9C,OAAOjqB,KAAKkqB,WAChB,EACArG,EAAsBvjB,UAAU6pB,gBAAkB,SAAU3lB,GAExD,OADAxE,KAAKkqB,YAAc1lB,EACZA,CACX,EACAqf,EAAsBvjB,UAAU8pB,gBAAkB,WAC9C,OAAOpqB,KAAKqqB,WAChB,EACAxG,EAAsBvjB,UAAUgqB,gBAAkB,SAAU9lB,GAExD,OADAxE,KAAKqqB,YAAc7lB,EACZA,CACX,EACAqf,EAAsBvjB,UAAUiqB,eAAiB,WAC7C,OAAOvqB,KAAKwqB,UAChB,EACA3G,EAAsBvjB,UAAUmqB,eAAiB,SAAUjmB,GAEvD,OADAxE,KAAKwqB,WAAahmB,EACXA,CACX,EACAqf,EAAsBvjB,UAAUoqB,oBAAsB,WAClD,OAAO1qB,KAAK2qB,eAChB,EACA9G,EAAsBvjB,UAAUsqB,oBAAsB,SAAUpmB,GAE5D,OADAxE,KAAK2qB,gBAAkBnmB,EAChBA,CACX,EACAqf,EAAsBvjB,UAAUuqB,eAAiB,WAC7C,OAAO7qB,KAAK8qB,UAChB,EACAjH,EAAsBvjB,UAAUyqB,eAAiB,SAAUvmB,GAEvD,OADAxE,KAAK8qB,WAAatmB,EACXA,CACX,EACAqf,EAAsBvjB,UAAU0qB,gBAAkB,WAC9C,OAAOhrB,KAAKirB,WAChB,EACApH,EAAsBvjB,UAAU4qB,gBAAkB,SAAU1mB,GAExD,OADAxE,KAAKirB,YAAczmB,EACZA,CACX,EACAqf,EAAsBvjB,UAAU6qB,iBAAmB,WAC/C,OAAOnrB,KAAKorB,YAChB,EACAvH,EAAsBvjB,UAAU+qB,iBAAmB,SAAU7mB,GAEzD,OADAxE,KAAKorB,aAAe5mB,EACbA,CACX,EACAqf,EAAsBvjB,UAAUgrB,gBAAkB,WAC9C,OAAOtrB,KAAKurB,WAChB,EACA1H,EAAsBvjB,UAAUkrB,gBAAkB,SAAUhnB,GAExD,OADAxE,KAAKurB,YAAc/mB,EACZA,CACX,EACAqf,EAAsBvjB,UAAUmrB,iBAAmB,WAC/C,OAAOzrB,KAAK0rB,YAChB,EACA7H,EAAsBvjB,UAAUqrB,iBAAmB,SAAUnnB,GAEzD,OADAxE,KAAK0rB,aAAelnB,EACbA,CACX,EACAqf,EAAsBvjB,UAAUsrB,gBAAkB,WAC9C,OAAO5rB,KAAK6rB,WAChB,EACAhI,EAAsBvjB,UAAUwrB,gBAAkB,SAAUtnB,GAExD,OADAxE,KAAK6rB,YAAcrnB,EACZA,CACX,EACAqf,EAAsBvjB,UAAUyrB,iBAAmB,WAC/C,OAAO/rB,KAAKgsB,YAChB,EACAnI,EAAsBvjB,UAAU2rB,iBAAmB,SAAUznB,GAEzD,OADAxE,KAAKgsB,aAAexnB,EACbA,CACX,EACOqf,CACX,CAtU0C,CAsUxCzD,IAQE8L,GAAyB,CACzB,KACA,QACA,UACA,iBACA,OAwCJ,SAASC,GAAuBtM,EAAQC,GACpC,IAAIC,EAAK1Z,EACT,IACI,IAAK,IAAI+lB,EAA2BxnB,EAAiBsnB,IAAyBG,EAA6BD,EAAyB5oB,QAAS6oB,EAA2B1oB,KAAM0oB,EAA6BD,EAAyB5oB,OAAQ,CACxO,IAAIf,EAAI4pB,EAA2BzrB,MACnCkf,EAAK,OAASrd,GAAGod,EAAO,OAASpd,KACrC,CACJ,CACA,MAAOyd,GAASH,EAAM,CAAE/a,MAAOkb,EAAS,CACxC,QACI,IACQmM,IAA+BA,EAA2B1oB,OAAS0C,EAAK+lB,EAAyBjM,SAAS9Z,EAAG7F,KAAK4rB,EAC1H,CACA,QAAU,GAAIrM,EAAK,MAAMA,EAAI/a,KAAO,CACxC,CACJ,CAEA,IAAIsnB,GAAiC,WACjC,SAASA,EAAgBzM,GACrBsM,GAAuBtM,EAAQ7f,KACnC,CAoCA,OAnCAssB,EAAgBhsB,UAAUisB,OAAS,WAC/B,OAAOvsB,KAAKiH,EAChB,EACAqlB,EAAgBhsB,UAAUksB,OAAS,SAAUhoB,GAEzC,OADAxE,KAAKiH,GAAKzC,EACHA,CACX,EACA8nB,EAAgBhsB,UAAUmsB,UAAY,WAClC,OAAOzsB,KAAKkE,KAChB,EACAooB,EAAgBhsB,UAAUosB,UAAY,SAAUloB,GAE5C,OADAxE,KAAKkE,MAAQM,EACNA,CACX,EACA8nB,EAAgBhsB,UAAUkhB,YAAc,WACpC,OAAOxhB,KAAKyhB,OAChB,EACA6K,EAAgBhsB,UAAUohB,YAAc,SAAUld,GAE9C,OADAxE,KAAKyhB,QAAUjd,EACRA,CACX,EACA8nB,EAAgBhsB,UAAUqsB,mBAAqB,WAC3C,OAAO3sB,KAAK4sB,cAChB,EACAN,EAAgBhsB,UAAUusB,mBAAqB,SAAUroB,GAErD,OADAxE,KAAK4sB,eAAiBpoB,EACfA,CACX,EACA8nB,EAAgBhsB,UAAUwsB,QAAU,WAChC,OAAO9sB,KAAK+sB,GAChB,EACAT,EAAgBhsB,UAAU0sB,QAAU,SAAUxoB,GAE1C,OADAxE,KAAK+sB,IAAMvoB,EACJA,CACX,EACO8nB,CACX,CAxCoC,GAgDhCW,GAAmC,CACnC,OACA,YACA,YACA,YACA,SACA,eAQ+Bf,GAAuB3X,OAAO0Y,IAwCjE,SAASC,GAA6BrN,EAAQC,GAC1C,IAAIC,EAAK1Z,EACT8lB,GAAuBtM,EAAQC,GAC/B,IACI,IAAK,IAAIqN,EAAqCvoB,EAAiBqoB,IAAmCG,EAAuCD,EAAmC3pB,QAAS4pB,EAAqCzpB,KAAMypB,EAAuCD,EAAmC3pB,OAAQ,CAC9S,IAAIf,EAAI2qB,EAAqCxsB,MAC7Ckf,EAAK,OAASrd,GAAGod,EAAO,OAASpd,KACrC,CACJ,CACA,MAAOyd,GAASH,EAAM,CAAE/a,MAAOkb,EAAS,CACxC,QACI,IACQkN,IAAyCA,EAAqCzpB,OAAS0C,EAAK8mB,EAAmChN,SAAS9Z,EAAG7F,KAAK2sB,EACxJ,CACA,QAAU,GAAIpN,EAAK,MAAMA,EAAI/a,KAAO,CACxC,CACJ,EAE2C,SAAUge,GAEjD,SAASqK,EAAsBxN,GAC3B,IAAIoD,EAAQD,EAAOxiB,KAAKR,KAAM6f,IAAW7f,KAEzC,OADAktB,GAA6BrN,EAAQoD,GAC9BA,CACX,CALAnhB,EAAUurB,EAAuBrK,GAMjCqK,EAAsB/sB,UAAUgtB,SAAW,WACvC,OAAOttB,KAAKutB,IAChB,EACAF,EAAsB/sB,UAAUktB,SAAW,SAAUhpB,GAEjD,OADAxE,KAAKutB,KAAO/oB,EACLA,CACX,EACA6oB,EAAsB/sB,UAAUmtB,cAAgB,WAC5C,OAAOztB,KAAK0tB,SAChB,EACAL,EAAsB/sB,UAAUqtB,cAAgB,SAAUnpB,GAEtD,OADAxE,KAAK0tB,UAAYlpB,EACVA,CACX,EACA6oB,EAAsB/sB,UAAUstB,cAAgB,WAC5C,OAAO5tB,KAAK6tB,SAChB,EACAR,EAAsB/sB,UAAUwtB,cAAgB,SAAUtpB,GAEtD,OADAxE,KAAK6tB,UAAYrpB,EACVA,CACX,EACA6oB,EAAsB/sB,UAAUytB,cAAgB,WAC5C,OAAO/tB,KAAKguB,SAChB,EACAX,EAAsB/sB,UAAU2tB,cAAgB,SAAUzpB,GAEtD,OADAxE,KAAKguB,UAAYxpB,EACVA,CACX,EACA6oB,EAAsB/sB,UAAU4tB,WAAa,WACzC,OAAOluB,KAAKmuB,MAChB,EACAd,EAAsB/sB,UAAU8tB,WAAa,SAAU5pB,GAEnD,OADAxE,KAAKmuB,OAAS3pB,EACPA,CACX,EACA6oB,EAAsB/sB,UAAU+tB,gBAAkB,WAC9C,OAAOruB,KAAKsuB,WAChB,EACAjB,EAAsB/sB,UAAUiuB,gBAAkB,SAAU/pB,GAExD,OADAxE,KAAKsuB,YAAc9pB,EACZA,CACX,CAEJ,EAlD0C,CAkDxC8nB,IAlDF,IA8DIkC,GAAqB,CACrB,oBACA,iBACA,yBACA,gCACA,2BACA,6BACA,4BACA,2BACA,4BACA,iBACA,8BACA,wBACA,kBACA,mBACA,gBACA,oBACA,sBACA,oBACA,eACA,mBACA,mBACA,cACA,cACA,gBACA,qBACA,qBACA,uBACA,gBACA,oBACA,6BACA,2BACA,0BACA,4BACA,qBACA,6BACA,iBACA,eACA,eACA,mBACA,uBACA,2BACA,qBACA,yBACA,mBACA,uBACA,WACA,cACA,eACA,sBACA,eACA,kBACA,sBACA,cACA,kBACA,YACA,iBACA,oBACA,sBACA,sBACA,0BACA,sBACA,oBACA,sBACA,qBACA,mBACA,mBACA,0BAwDJ,SAASC,GAAmB5O,EAAQC,GAChC,IAAIC,EAAK1Z,EACT,IACI,IAAK,IAAIqoB,EAAuB9pB,EAAiB4pB,IAAqBG,EAAyBD,EAAqBlrB,QAASmrB,EAAuBhrB,KAAMgrB,EAAyBD,EAAqBlrB,OAAQ,CAC5M,IAAIf,EAAIksB,EAAuB/tB,MAC/Bkf,EAAK,OAASrd,GAAGod,EAAO,OAASpd,KACrC,CACJ,CACA,MAAOyd,GAASH,EAAM,CAAE/a,MAAOkb,EAAS,CACxC,QACI,IACQyO,IAA2BA,EAAuBhrB,OAAS0C,EAAKqoB,EAAqBvO,SAAS9Z,EAAG7F,KAAKkuB,EAC9G,CACA,QAAU,GAAI3O,EAAK,MAAMA,EAAI/a,KAAO,CACxC,CACJ,EAEiC,WAC7B,SAAS4pB,EAAY/O,GACjB4O,GAAmB5O,EAAQ7f,KAC/B,CACA4uB,EAAYtuB,UAAUuuB,sBAAwB,WAC1C,OAAO7uB,KAAK8uB,iBAChB,EACAF,EAAYtuB,UAAUyuB,sBAAwB,SAAUvqB,GAEpD,OADAxE,KAAK8uB,kBAAoBtqB,EAClBA,CACX,EACAoqB,EAAYtuB,UAAU0uB,2BAA6B,WAC/C,OAAOhvB,KAAKivB,sBAChB,EACAL,EAAYtuB,UAAU4uB,2BAA6B,SAAU1qB,GAEzD,OADAxE,KAAKivB,uBAAyBzqB,EACvBA,CACX,EACAoqB,EAAYtuB,UAAU6uB,kCAAoC,WACtD,OAAOnvB,KAAKovB,6BAChB,EACAR,EAAYtuB,UAAU+uB,kCAAoC,SAAU7qB,GAEhE,OADAxE,KAAKovB,8BAAgC5qB,EAC9BA,CACX,EACAoqB,EAAYtuB,UAAUgvB,6BAA+B,WACjD,OAAOtvB,KAAKuvB,wBAChB,EACAX,EAAYtuB,UAAUkvB,6BAA+B,SAAUhrB,GAE3D,OADAxE,KAAKuvB,yBAA2B/qB,EACzBA,CACX,EACAoqB,EAAYtuB,UAAUmvB,+BAAiC,WACnD,OAAOzvB,KAAK0vB,0BAChB,EACAd,EAAYtuB,UAAUqvB,+BAAiC,SAAUnrB,GAE7D,OADAxE,KAAK0vB,2BAA6BlrB,EAC3BA,CACX,EACAoqB,EAAYtuB,UAAUsvB,8BAAgC,WAClD,OAAO5vB,KAAK6vB,yBAChB,EACAjB,EAAYtuB,UAAUwvB,8BAAgC,SAAUtrB,GAE5D,OADAxE,KAAK6vB,0BAA4BrrB,EAC1BA,CACX,EACAoqB,EAAYtuB,UAAUyvB,6BAA+B,WACjD,OAAO/vB,KAAKgwB,wBAChB,EACApB,EAAYtuB,UAAU2vB,6BAA+B,SAAUzrB,GAE3D,OADAxE,KAAKgwB,yBAA2BxrB,EACzBA,CACX,EACAoqB,EAAYtuB,UAAU4vB,mBAAqB,WACvC,OAAOlwB,KAAKmwB,cAChB,EACAvB,EAAYtuB,UAAU8vB,mBAAqB,SAAU5rB,GAEjD,OADAxE,KAAKmwB,eAAiB3rB,EACfA,CACX,EACAoqB,EAAYtuB,UAAU+vB,gCAAkC,WACpD,OAAOrwB,KAAKswB,2BAChB,EACA1B,EAAYtuB,UAAUiwB,gCAAkC,SAAU/rB,GAE9D,OADAxE,KAAKswB,4BAA8B9rB,EAC5BA,CACX,EACAoqB,EAAYtuB,UAAUkwB,0BAA4B,WAC9C,OAAOxwB,KAAKywB,qBAChB,EACA7B,EAAYtuB,UAAUowB,0BAA4B,SAAUlsB,GAExD,OADAxE,KAAKywB,sBAAwBjsB,EACtBA,CACX,EACAoqB,EAAYtuB,UAAUqwB,oBAAsB,WACxC,OAAO3wB,KAAK4wB,eAChB,EACAhC,EAAYtuB,UAAUuwB,oBAAsB,SAAUrsB,GAElD,OADAxE,KAAK4wB,gBAAkBpsB,EAChBA,CACX,EACAoqB,EAAYtuB,UAAUwwB,qBAAuB,WACzC,OAAO9wB,KAAK+wB,gBAChB,EACAnC,EAAYtuB,UAAU0wB,qBAAuB,SAAUxsB,GAEnD,OADAxE,KAAK+wB,iBAAmBvsB,EACjBA,CACX,EACAoqB,EAAYtuB,UAAU2wB,iBAAmB,WACrC,OAAOjxB,KAAKkxB,YAChB,EACAtC,EAAYtuB,UAAU6wB,iBAAmB,SAAU3sB,GAE/C,OADAxE,KAAKkxB,aAAe1sB,EACbA,CACX,EACAoqB,EAAYtuB,UAAU8wB,qBAAuB,WACzC,OAAOpxB,KAAKqxB,gBAChB,EACAzC,EAAYtuB,UAAUgxB,qBAAuB,SAAU9sB,GAEnD,OADAxE,KAAKqxB,iBAAmB7sB,EACjBA,CACX,EACAoqB,EAAYtuB,UAAUixB,qBAAuB,WACzC,OAAOvxB,KAAKwxB,gBAChB,EACA5C,EAAYtuB,UAAUmxB,qBAAuB,SAAUjtB,GAEnD,OADAxE,KAAKwxB,iBAAmBhtB,EACjBA,CACX,EACAoqB,EAAYtuB,UAAUoxB,gBAAkB,WACpC,OAAO1xB,KAAK2xB,WAChB,EACA/C,EAAYtuB,UAAUsxB,gBAAkB,SAAUptB,GAE9C,OADAxE,KAAK2xB,YAAcntB,EACZA,CACX,EACAoqB,EAAYtuB,UAAUuxB,gBAAkB,WACpC,OAAO7xB,KAAK8xB,WAChB,EACAlD,EAAYtuB,UAAUyxB,gBAAkB,SAAUvtB,GAE9C,OADAxE,KAAK8xB,YAActtB,EACZA,CACX,EACAoqB,EAAYtuB,UAAU0xB,kBAAoB,WACtC,OAAOhyB,KAAKiyB,aAChB,EACArD,EAAYtuB,UAAU4xB,kBAAoB,SAAU1tB,GAEhD,OADAxE,KAAKiyB,cAAgBztB,EACdA,CACX,EACAoqB,EAAYtuB,UAAU6xB,uBAAyB,WAC3C,OAAOnyB,KAAKoyB,kBAChB,EACAxD,EAAYtuB,UAAU+xB,uBAAyB,SAAU7tB,GAErD,OADAxE,KAAKoyB,mBAAqB5tB,EACnBA,CACX,EACAoqB,EAAYtuB,UAAUgyB,uBAAyB,WAC3C,OAAOtyB,KAAKuyB,kBAChB,EACA3D,EAAYtuB,UAAUkyB,uBAAyB,SAAUhuB,GAErD,OADAxE,KAAKuyB,mBAAqB/tB,EACnBA,CACX,EACAoqB,EAAYtuB,UAAUmyB,kBAAoB,WACtC,OAAOzyB,KAAK0yB,aAChB,EACA9D,EAAYtuB,UAAUqyB,kBAAoB,SAAUnuB,GAEhD,OADAxE,KAAK0yB,cAAgBluB,EACdA,CACX,EACAoqB,EAAYtuB,UAAUsyB,sBAAwB,WAC1C,OAAO5yB,KAAK6yB,iBAChB,EACAjE,EAAYtuB,UAAUwyB,sBAAwB,SAAUtuB,GAEpD,OADAxE,KAAK6yB,kBAAoBruB,EAClBA,CACX,EACAoqB,EAAYtuB,UAAUyyB,+BAAiC,WACnD,OAAO/yB,KAAKgzB,0BAChB,EACApE,EAAYtuB,UAAU2yB,+BAAiC,SAAUzuB,GAE7D,OADAxE,KAAKgzB,2BAA6BxuB,EAC3BA,CACX,EACAoqB,EAAYtuB,UAAU4yB,6BAA+B,WACjD,OAAOlzB,KAAKmzB,wBAChB,EACAvE,EAAYtuB,UAAU8yB,6BAA+B,SAAU5uB,GAE3D,OADAxE,KAAKmzB,yBAA2B3uB,EACzBA,CACX,EACAoqB,EAAYtuB,UAAU+yB,4BAA8B,WAChD,OAAOrzB,KAAKszB,uBAChB,EACA1E,EAAYtuB,UAAUizB,4BAA8B,SAAU/uB,GAE1D,OADAxE,KAAKszB,wBAA0B9uB,EACxBA,CACX,EACAoqB,EAAYtuB,UAAUkzB,8BAAgC,WAClD,OAAOxzB,KAAKyzB,yBAChB,EACA7E,EAAYtuB,UAAUozB,8BAAgC,SAAUlvB,GAE5D,OADAxE,KAAKyzB,0BAA4BjvB,EAC1BA,CACX,EACAoqB,EAAYtuB,UAAUqzB,uBAAyB,WAC3C,OAAO3zB,KAAK4zB,kBAChB,EACAhF,EAAYtuB,UAAUuzB,uBAAyB,SAAUrvB,GAErD,OADAxE,KAAK4zB,mBAAqBpvB,EACnBA,CACX,EACAoqB,EAAYtuB,UAAUwzB,+BAAiC,WACnD,OAAO9zB,KAAK+zB,0BAChB,EACAnF,EAAYtuB,UAAU0zB,+BAAiC,SAAUxvB,GAE7D,OADAxE,KAAK+zB,2BAA6BvvB,EAC3BA,CACX,EACAoqB,EAAYtuB,UAAU2zB,mBAAqB,WACvC,OAAOj0B,KAAKk0B,cAChB,EACAtF,EAAYtuB,UAAU6zB,mBAAqB,SAAU3vB,GAEjD,OADAxE,KAAKk0B,eAAiB1vB,EACfA,CACX,EACAoqB,EAAYtuB,UAAU8zB,iBAAmB,WACrC,OAAOp0B,KAAKq0B,YAChB,EACAzF,EAAYtuB,UAAUg0B,iBAAmB,SAAU9vB,GAE/C,OADAxE,KAAKq0B,aAAe7vB,EACbA,CACX,EACAoqB,EAAYtuB,UAAUi0B,iBAAmB,WACrC,OAAOv0B,KAAKw0B,YAChB,EACA5F,EAAYtuB,UAAUm0B,iBAAmB,SAAUjwB,GAE/C,OADAxE,KAAKw0B,aAAehwB,EACbA,CACX,EACAoqB,EAAYtuB,UAAUo0B,qBAAuB,WACzC,OAAO10B,KAAK20B,gBAChB,EACA/F,EAAYtuB,UAAUs0B,qBAAuB,SAAUpwB,GAEnD,OADAxE,KAAK20B,iBAAmBnwB,EACjBA,CACX,EACAoqB,EAAYtuB,UAAUu0B,yBAA2B,WAC7C,OAAO70B,KAAK80B,oBAChB,EACAlG,EAAYtuB,UAAUy0B,yBAA2B,SAAUvwB,GAEvD,OADAxE,KAAK80B,qBAAuBtwB,EACrBA,CACX,EACAoqB,EAAYtuB,UAAU00B,6BAA+B,WACjD,OAAOh1B,KAAKi1B,wBAChB,EACArG,EAAYtuB,UAAU40B,6BAA+B,SAAU1wB,GAE3D,OADAxE,KAAKi1B,yBAA2BzwB,EACzBA,CACX,EACAoqB,EAAYtuB,UAAU60B,uBAAyB,WAC3C,OAAOn1B,KAAKo1B,kBAChB,EACAxG,EAAYtuB,UAAU+0B,uBAAyB,SAAU7wB,GAErD,OADAxE,KAAKo1B,mBAAqB5wB,EACnBA,CACX,EACAoqB,EAAYtuB,UAAUg1B,2BAA6B,WAC/C,OAAOt1B,KAAKu1B,sBAChB,EACA3G,EAAYtuB,UAAUk1B,2BAA6B,SAAUhxB,GAEzD,OADAxE,KAAKu1B,uBAAyB/wB,EACvBA,CACX,EACAoqB,EAAYtuB,UAAUm1B,qBAAuB,WACzC,OAAOz1B,KAAK01B,gBAChB,EACA9G,EAAYtuB,UAAUq1B,qBAAuB,SAAUnxB,GAEnD,OADAxE,KAAK01B,iBAAmBlxB,EACjBA,CACX,EACAoqB,EAAYtuB,UAAUs1B,yBAA2B,WAC7C,OAAO51B,KAAK61B,oBAChB,EACAjH,EAAYtuB,UAAUw1B,yBAA2B,SAAUtxB,GAEvD,OADAxE,KAAK61B,qBAAuBrxB,EACrBA,CACX,EACAoqB,EAAYtuB,UAAUy1B,aAAe,WACjC,OAAO/1B,KAAKg2B,QAChB,EACApH,EAAYtuB,UAAU21B,aAAe,SAAUzxB,GAE3C,OADAxE,KAAKg2B,SAAWxxB,EACTA,CACX,EACAoqB,EAAYtuB,UAAU41B,gBAAkB,WACpC,OAAOl2B,KAAKm2B,WAChB,EACAvH,EAAYtuB,UAAU81B,gBAAkB,SAAU5xB,GAE9C,OADAxE,KAAKm2B,YAAc3xB,EACZA,CACX,EACAoqB,EAAYtuB,UAAU+1B,iBAAmB,WACrC,OAAOr2B,KAAKs2B,YAChB,EACA1H,EAAYtuB,UAAUi2B,iBAAmB,SAAU/xB,GAE/C,OADAxE,KAAKs2B,aAAe9xB,EACbA,CACX,EACAoqB,EAAYtuB,UAAUk2B,wBAA0B,WAC5C,OAAOx2B,KAAKy2B,mBAChB,EACA7H,EAAYtuB,UAAUo2B,wBAA0B,SAAUlyB,GAEtD,OADAxE,KAAKy2B,oBAAsBjyB,EACpBA,CACX,EACAoqB,EAAYtuB,UAAUq2B,iBAAmB,WACrC,OAAO32B,KAAK42B,YAChB,EACAhI,EAAYtuB,UAAUu2B,iBAAmB,SAAUryB,GAE/C,OADAxE,KAAK42B,aAAepyB,EACbA,CACX,EACAoqB,EAAYtuB,UAAUw2B,oBAAsB,WACxC,OAAO92B,KAAK+2B,eAChB,EACAnI,EAAYtuB,UAAU02B,oBAAsB,SAAUxyB,GAElD,OADAxE,KAAK+2B,gBAAkBvyB,EAChBA,CACX,EACAoqB,EAAYtuB,UAAU22B,wBAA0B,WAC5C,OAAOj3B,KAAKk3B,mBAChB,EACAtI,EAAYtuB,UAAU62B,wBAA0B,SAAU3yB,GAEtD,OADAxE,KAAKk3B,oBAAsB1yB,EACpBA,CACX,EACAoqB,EAAYtuB,UAAU82B,gBAAkB,WACpC,OAAOp3B,KAAKq3B,WAChB,EACAzI,EAAYtuB,UAAUg3B,gBAAkB,SAAU9yB,GAE9C,OADAxE,KAAKq3B,YAAc7yB,EACZA,CACX,EACAoqB,EAAYtuB,UAAUi3B,oBAAsB,WACxC,OAAOv3B,KAAKw3B,eAChB,EACA5I,EAAYtuB,UAAUm3B,oBAAsB,SAAUjzB,GAElD,OADAxE,KAAKw3B,gBAAkBhzB,EAChBA,CACX,EACAoqB,EAAYtuB,UAAUo3B,cAAgB,WAClC,OAAO13B,KAAK23B,SAChB,EACA/I,EAAYtuB,UAAUs3B,cAAgB,SAAUpzB,GAE5C,OADAxE,KAAK23B,UAAYnzB,EACVA,CACX,EACAoqB,EAAYtuB,UAAUu3B,mBAAqB,WACvC,OAAO73B,KAAK83B,cAChB,EACAlJ,EAAYtuB,UAAUy3B,mBAAqB,SAAUvzB,GAEjD,OADAxE,KAAK83B,eAAiBtzB,EACfA,CACX,EACAoqB,EAAYtuB,UAAU03B,sBAAwB,WAC1C,OAAOh4B,KAAKi4B,iBAChB,EACArJ,EAAYtuB,UAAU43B,sBAAwB,SAAU1zB,GAEpD,OADAxE,KAAKi4B,kBAAoBzzB,EAClBA,CACX,EACAoqB,EAAYtuB,UAAU63B,wBAA0B,WAC5C,OAAOn4B,KAAKo4B,mBAChB,EACAxJ,EAAYtuB,UAAU+3B,wBAA0B,SAAU7zB,GAEtD,OADAxE,KAAKo4B,oBAAsB5zB,EACpBA,CACX,EACAoqB,EAAYtuB,UAAUg4B,wBAA0B,WAC5C,OAAOt4B,KAAKu4B,mBAChB,EACA3J,EAAYtuB,UAAUk4B,wBAA0B,SAAUh0B,GAEtD,OADAxE,KAAKu4B,oBAAsB/zB,EACpBA,CACX,EACAoqB,EAAYtuB,UAAUm4B,4BAA8B,WAChD,OAAOz4B,KAAK04B,uBAChB,EACA9J,EAAYtuB,UAAUq4B,4BAA8B,SAAUn0B,GAE1D,OADAxE,KAAK04B,wBAA0Bl0B,EACxBA,CACX,EACAoqB,EAAYtuB,UAAUs4B,wBAA0B,WAC5C,OAAO54B,KAAK64B,mBAChB,EACAjK,EAAYtuB,UAAUw4B,wBAA0B,SAAUt0B,GAEtD,OADAxE,KAAK64B,oBAAsBr0B,EACpBA,CACX,EACAoqB,EAAYtuB,UAAUy4B,sBAAwB,WAC1C,OAAO/4B,KAAKg5B,iBAChB,EACApK,EAAYtuB,UAAU24B,sBAAwB,SAAUz0B,GAEpD,OADAxE,KAAKg5B,kBAAoBx0B,EAClBA,CACX,EACAoqB,EAAYtuB,UAAU44B,wBAA0B,WAC5C,OAAOl5B,KAAKm5B,mBAChB,EACAvK,EAAYtuB,UAAU84B,wBAA0B,SAAU50B,GAEtD,OADAxE,KAAKm5B,oBAAsB30B,EACpBA,CACX,EACAoqB,EAAYtuB,UAAU+4B,uBAAyB,WAC3C,OAAOr5B,KAAKs5B,kBAChB,EACA1K,EAAYtuB,UAAUi5B,uBAAyB,SAAU/0B,GAErD,OADAxE,KAAKs5B,mBAAqB90B,EACnBA,CACX,EACAoqB,EAAYtuB,UAAUk5B,qBAAuB,WACzC,OAAOx5B,KAAKy5B,gBAChB,EACA7K,EAAYtuB,UAAUo5B,qBAAuB,SAAUl1B,GAEnD,OADAxE,KAAKy5B,iBAAmBj1B,EACjBA,CACX,EACAoqB,EAAYtuB,UAAUq5B,qBAAuB,WACzC,OAAO35B,KAAK45B,gBAChB,EACAhL,EAAYtuB,UAAUu5B,qBAAuB,SAAUr1B,GAEnD,OADAxE,KAAK45B,iBAAmBp1B,EACjBA,CACX,EACAoqB,EAAYtuB,UAAUw5B,2BAA6B,WAC/C,OAAO95B,KAAK+5B,sBAChB,EACAnL,EAAYtuB,UAAU05B,2BAA6B,SAAUx1B,GAEzD,OADAxE,KAAK+5B,uBAAyBv1B,EACvBA,CACX,CAEJ,EAzagC,GAAhC,IAibIy1B,GAAiC,CACjC,OACA,YACA,YACA,aAQ6B/N,GAAuB3X,OAAO0lB,IAsC/D,SAASC,GAA2Bra,EAAQC,GACxC,IAAIC,EAAK1Z,EACT8lB,GAAuBtM,EAAQC,GAC/B,IACI,IAAK,IAAIqa,EAAmCv1B,EAAiBq1B,IAAiCG,EAAqCD,EAAiC32B,QAAS42B,EAAmCz2B,KAAMy2B,EAAqCD,EAAiC32B,OAAQ,CAChS,IAAIf,EAAI23B,EAAmCx5B,MAC3Ckf,EAAK,OAASrd,GAAGod,EAAO,OAASpd,KACrC,CACJ,CACA,MAAOyd,GAASH,EAAM,CAAE/a,MAAOkb,EAAS,CACxC,QACI,IACQka,IAAuCA,EAAmCz2B,OAAS0C,EAAK8zB,EAAiCha,SAAS9Z,EAAG7F,KAAK25B,EAClJ,CACA,QAAU,GAAIpa,EAAK,MAAMA,EAAI/a,KAAO,CACxC,CACJ,EAEyC,SAAUge,GAE/C,SAASqX,EAAoBxa,GACzB,IAAIoD,EAAQD,EAAOxiB,KAAKR,KAAM6f,IAAW7f,KAEzC,OADAk6B,GAA2Bra,EAAQoD,GAC5BA,CACX,CALAnhB,EAAUu4B,EAAqBrX,GAM/BqX,EAAoB/5B,UAAUgtB,SAAW,WACrC,OAAOttB,KAAKutB,IAChB,EACA8M,EAAoB/5B,UAAUktB,SAAW,SAAUhpB,GAE/C,OADAxE,KAAKutB,KAAO/oB,EACLA,CACX,EACA61B,EAAoB/5B,UAAUmtB,cAAgB,WAC1C,OAAOztB,KAAK0tB,SAChB,EACA2M,EAAoB/5B,UAAUqtB,cAAgB,SAAUnpB,GAEpD,OADAxE,KAAK0tB,UAAYlpB,EACVA,CACX,EACA61B,EAAoB/5B,UAAUstB,cAAgB,WAC1C,OAAO5tB,KAAK6tB,SAChB,EACAwM,EAAoB/5B,UAAUwtB,cAAgB,SAAUtpB,GAEpD,OADAxE,KAAK6tB,UAAYrpB,EACVA,CACX,EACA61B,EAAoB/5B,UAAUytB,cAAgB,WAC1C,OAAO/tB,KAAKguB,SAChB,EACAqM,EAAoB/5B,UAAU2tB,cAAgB,SAAUzpB,GAEpD,OADAxE,KAAKguB,UAAYxpB,EACVA,CACX,CAEJ,EApCwC,CAoCtC8nB,IApCF,IA4CIgO,GAAqC,CACrC,YACA,aAQiCpO,GAAuB3X,OAAO+lB,IAoCnE,SAASC,GAA+B1a,EAAQC,GAC5C,IAAIC,EAAK1Z,EACT8lB,GAAuBtM,EAAQC,GAC/B,IACI,IAAK,IAAI0a,EAAuC51B,EAAiB01B,IAAqCG,EAAyCD,EAAqCh3B,QAASi3B,EAAuC92B,KAAM82B,EAAyCD,EAAqCh3B,OAAQ,CAC5T,IAAIf,EAAIg4B,EAAuC75B,MAC/Ckf,EAAK,OAASrd,GAAGod,EAAO,OAASpd,KACrC,CACJ,CACA,MAAOyd,GAASH,EAAM,CAAE/a,MAAOkb,EAAS,CACxC,QACI,IACQua,IAA2CA,EAAuC92B,OAAS0C,EAAKm0B,EAAqCra,SAAS9Z,EAAG7F,KAAKg6B,EAC9J,CACA,QAAU,GAAIza,EAAK,MAAMA,EAAI/a,KAAO,CACxC,CACJ,EAE6C,SAAUge,GAEnD,SAAS0X,EAAwB7a,GAC7B,IAAIoD,EAAQD,EAAOxiB,KAAKR,KAAM6f,IAAW7f,KAEzC,OADAu6B,GAA+B1a,EAAQoD,GAChCA,CACX,CALAnhB,EAAU44B,EAAyB1X,GAMnC0X,EAAwBp6B,UAAUstB,cAAgB,WAC9C,OAAO5tB,KAAK6tB,SAChB,EACA6M,EAAwBp6B,UAAUwtB,cAAgB,SAAUtpB,GAExD,OADAxE,KAAK6tB,UAAYrpB,EACVA,CACX,EACAk2B,EAAwBp6B,UAAUytB,cAAgB,WAC9C,OAAO/tB,KAAKguB,SAChB,EACA0M,EAAwBp6B,UAAU2tB,cAAgB,SAAUzpB,GAExD,OADAxE,KAAKguB,UAAYxpB,EACVA,CACX,CAEJ,EAtB4C,CAsB1C8nB,IAtBF,IAiCIqO,GAA+B,CAC/B,YACA,UACA,UACA,aACA,aACA,uBACA,iBACA,iBACA,kBACA,gBACA,QACA,cACA,gBACA,WACA,kBACA,kBACA,YACA,YACA,eACA,cACA,cACA,aACA,WACA,iBACA,UACA,cACA,cACA,aACA,kBACA,aACA,cACA,eACA,cACA,eACA,cACA,gBAQ2Bhb,GAAkBpL,OAAOomB,IAgCxD,SAASC,GAAyB/a,EAAQC,GACtC,IAAIC,EAAK1Z,EACTuZ,GAAkBC,EAAQC,GAC1B,IACI,IAAK,IAAI+a,EAAiCj2B,EAAiB+1B,IAA+BG,EAAmCD,EAA+Br3B,QAASs3B,EAAiCn3B,KAAMm3B,EAAmCD,EAA+Br3B,OAAQ,CAClR,IAAIf,EAAIq4B,EAAiCl6B,MACzCkf,EAAK,OAASrd,GAAGod,EAAO,OAASpd,KACrC,CACJ,CACA,MAAOyd,GAASH,EAAM,CAAE/a,MAAOkb,EAAS,CACxC,QACI,IACQ4a,IAAqCA,EAAiCn3B,OAAS0C,EAAKw0B,EAA+B1a,SAAS9Z,EAAG7F,KAAKq6B,EAC5I,CACA,QAAU,GAAI9a,EAAK,MAAMA,EAAI/a,KAAO,CACxC,CACJ,EAEuC,SAAUge,GAE7C,SAAS+X,EAAkBlb,GACvB,IAAIoD,EAGJD,EAAOxiB,KAAKR,KAAM6f,IAAW7f,KAE7B,OADA46B,GAAyB/a,EAAQoD,GAC1BA,CACX,CARAnhB,EAAUi5B,EAAmB/X,GAS7B+X,EAAkBz6B,UAAUwjB,cAAgB,WACxC,OAAO9jB,KAAK+jB,SAChB,EACAgX,EAAkBz6B,UAAU0jB,cAAgB,SAAUxf,GAElD,OADAxE,KAAK+jB,UAAYvf,EACVA,CACX,EACAu2B,EAAkBz6B,UAAU2jB,YAAc,WACtC,OAAOjkB,KAAKkkB,OAChB,EACA6W,EAAkBz6B,UAAU6jB,YAAc,SAAU3f,GAEhD,OADAxE,KAAKkkB,QAAU1f,EACRA,CACX,EACAu2B,EAAkBz6B,UAAU8jB,YAAc,WACtC,OAAOpkB,KAAKqkB,OAChB,EACA0W,EAAkBz6B,UAAUgkB,YAAc,SAAU9f,GAEhD,OADAxE,KAAKqkB,QAAU7f,EACRA,CACX,EACAu2B,EAAkBz6B,UAAU06B,eAAiB,WACzC,OAAOh7B,KAAKi7B,UAChB,EACAF,EAAkBz6B,UAAU46B,eAAiB,SAAU12B,GAEnD,OADAxE,KAAKi7B,WAAaz2B,EACXA,CACX,EACAu2B,EAAkBz6B,UAAUokB,eAAiB,WACzC,OAAO1kB,KAAK2kB,UAChB,EACAoW,EAAkBz6B,UAAUskB,eAAiB,SAAUpgB,GAEnD,OADAxE,KAAK2kB,WAAangB,EACXA,CACX,EACAu2B,EAAkBz6B,UAAUukB,yBAA2B,WACnD,OAAO7kB,KAAK8kB,oBAChB,EACAiW,EAAkBz6B,UAAUykB,yBAA2B,SAAUvgB,GAE7D,OADAxE,KAAK8kB,qBAAuBtgB,EACrBA,CACX,EACAu2B,EAAkBz6B,UAAU0kB,mBAAqB,WAC7C,OAAOhlB,KAAKilB,cAChB,EACA8V,EAAkBz6B,UAAU4kB,mBAAqB,SAAU1gB,GAEvD,OADAxE,KAAKilB,eAAiBzgB,EACfA,CACX,EACAu2B,EAAkBz6B,UAAU6kB,mBAAqB,WAC7C,OAAOnlB,KAAKolB,cAChB,EACA2V,EAAkBz6B,UAAU+kB,mBAAqB,SAAU7gB,GAEvD,OADAxE,KAAKolB,eAAiB5gB,EACfA,CACX,EACAu2B,EAAkBz6B,UAAUglB,oBAAsB,WAC9C,OAAOtlB,KAAKulB,eAChB,EACAwV,EAAkBz6B,UAAUklB,oBAAsB,SAAUhhB,GAExD,OADAxE,KAAKulB,gBAAkB/gB,EAChBA,CACX,EACAu2B,EAAkBz6B,UAAU66B,kBAAoB,WAC5C,OAAOn7B,KAAKo7B,aAChB,EACAL,EAAkBz6B,UAAU+6B,kBAAoB,SAAU72B,GAEtD,OADAxE,KAAKo7B,cAAgB52B,EACdA,CACX,EACAu2B,EAAkBz6B,UAAUmlB,UAAY,WACpC,OAAOzlB,KAAK0lB,KAChB,EACAqV,EAAkBz6B,UAAUqlB,UAAY,SAAUnhB,GAE9C,OADAxE,KAAK0lB,MAAQlhB,EACNA,CACX,EACAu2B,EAAkBz6B,UAAUylB,gBAAkB,WAC1C,OAAO/lB,KAAKgmB,WAChB,EACA+U,EAAkBz6B,UAAU2lB,gBAAkB,SAAUzhB,GAEpD,OADAxE,KAAKgmB,YAAcxhB,EACZA,CACX,EACAu2B,EAAkBz6B,UAAU4lB,kBAAoB,WAC5C,OAAOlmB,KAAKmmB,aAChB,EACA4U,EAAkBz6B,UAAU8lB,kBAAoB,SAAU5hB,GAEtD,OADAxE,KAAKmmB,cAAgB3hB,EACdA,CACX,EACAu2B,EAAkBz6B,UAAU+lB,aAAe,WACvC,OAAOrmB,KAAKsmB,QAChB,EACAyU,EAAkBz6B,UAAUimB,aAAe,SAAU/hB,GAEjD,OADAxE,KAAKsmB,SAAW9hB,EACTA,CACX,EACAu2B,EAAkBz6B,UAAUqmB,oBAAsB,WAC9C,OAAO3mB,KAAK4mB,eAChB,EACAmU,EAAkBz6B,UAAUumB,oBAAsB,SAAUriB,GAExD,OADAxE,KAAK4mB,gBAAkBpiB,EAChBA,CACX,EACAu2B,EAAkBz6B,UAAUwmB,oBAAsB,WAC9C,OAAO9mB,KAAK+mB,eAChB,EACAgU,EAAkBz6B,UAAU0mB,oBAAsB,SAAUxiB,GAExD,OADAxE,KAAK+mB,gBAAkBviB,EAChBA,CACX,EACAu2B,EAAkBz6B,UAAU2mB,cAAgB,WACxC,OAAOjnB,KAAKknB,SAChB,EACA6T,EAAkBz6B,UAAU6mB,cAAgB,SAAU3iB,GAElD,OADAxE,KAAKknB,UAAY1iB,EACVA,CACX,EACAu2B,EAAkBz6B,UAAU8mB,cAAgB,WACxC,OAAOpnB,KAAKqnB,SAChB,EACA0T,EAAkBz6B,UAAUgnB,cAAgB,SAAU9iB,GAElD,OADAxE,KAAKqnB,UAAY7iB,EACVA,CACX,EACAu2B,EAAkBz6B,UAAUinB,iBAAmB,WAC3C,OAAOvnB,KAAKwnB,YAChB,EACAuT,EAAkBz6B,UAAUmnB,iBAAmB,SAAUjjB,GAErD,OADAxE,KAAKwnB,aAAehjB,EACbA,CACX,EACAu2B,EAAkBz6B,UAAUonB,gBAAkB,WAC1C,OAAO1nB,KAAK2nB,WAChB,EACAoT,EAAkBz6B,UAAUsnB,gBAAkB,SAAUpjB,GAEpD,OADAxE,KAAK2nB,YAAcnjB,EACZA,CACX,EACAu2B,EAAkBz6B,UAAUunB,gBAAkB,WAC1C,OAAO7nB,KAAK8nB,WAChB,EACAiT,EAAkBz6B,UAAUynB,gBAAkB,SAAUvjB,GAEpD,OADAxE,KAAK8nB,YAActjB,EACZA,CACX,EACAu2B,EAAkBz6B,UAAU0nB,eAAiB,WACzC,OAAOhoB,KAAKioB,UAChB,EACA8S,EAAkBz6B,UAAU4nB,eAAiB,SAAU1jB,GAEnD,OADAxE,KAAKioB,WAAazjB,EACXA,CACX,EACAu2B,EAAkBz6B,UAAUkpB,aAAe,WACvC,OAAOxpB,KAAKypB,QAChB,EACAsR,EAAkBz6B,UAAUopB,aAAe,SAAUllB,GAEjD,OADAxE,KAAKypB,SAAWjlB,EACTA,CACX,EACAu2B,EAAkBz6B,UAAUqpB,mBAAqB,WAC7C,OAAO3pB,KAAK4pB,cAChB,EACAmR,EAAkBz6B,UAAUupB,mBAAqB,SAAUrlB,GAEvD,OADAxE,KAAK4pB,eAAiBplB,EACfA,CACX,EACAu2B,EAAkBz6B,UAAUwpB,YAAc,WACtC,OAAO9pB,KAAK+pB,OAChB,EACAgR,EAAkBz6B,UAAU0pB,YAAc,SAAUxlB,GAEhD,OADAxE,KAAK+pB,QAAUvlB,EACRA,CACX,EACAu2B,EAAkBz6B,UAAU2pB,gBAAkB,WAC1C,OAAOjqB,KAAKkqB,WAChB,EACA6Q,EAAkBz6B,UAAU6pB,gBAAkB,SAAU3lB,GAEpD,OADAxE,KAAKkqB,YAAc1lB,EACZA,CACX,EACAu2B,EAAkBz6B,UAAU8pB,gBAAkB,WAC1C,OAAOpqB,KAAKqqB,WAChB,EACA0Q,EAAkBz6B,UAAUgqB,gBAAkB,SAAU9lB,GAEpD,OADAxE,KAAKqqB,YAAc7lB,EACZA,CACX,EACAu2B,EAAkBz6B,UAAUiqB,eAAiB,WACzC,OAAOvqB,KAAKwqB,UAChB,EACAuQ,EAAkBz6B,UAAUmqB,eAAiB,SAAUjmB,GAEnD,OADAxE,KAAKwqB,WAAahmB,EACXA,CACX,EACAu2B,EAAkBz6B,UAAUoqB,oBAAsB,WAC9C,OAAO1qB,KAAK2qB,eAChB,EACAoQ,EAAkBz6B,UAAUsqB,oBAAsB,SAAUpmB,GAExD,OADAxE,KAAK2qB,gBAAkBnmB,EAChBA,CACX,EACAu2B,EAAkBz6B,UAAUuqB,eAAiB,WACzC,OAAO7qB,KAAK8qB,UAChB,EACAiQ,EAAkBz6B,UAAUyqB,eAAiB,SAAUvmB,GAEnD,OADAxE,KAAK8qB,WAAatmB,EACXA,CACX,EACAu2B,EAAkBz6B,UAAU0qB,gBAAkB,WAC1C,OAAOhrB,KAAKirB,WAChB,EACA8P,EAAkBz6B,UAAU4qB,gBAAkB,SAAU1mB,GAEpD,OADAxE,KAAKirB,YAAczmB,EACZA,CACX,EACAu2B,EAAkBz6B,UAAU6qB,iBAAmB,WAC3C,OAAOnrB,KAAKorB,YAChB,EACA2P,EAAkBz6B,UAAU+qB,iBAAmB,SAAU7mB,GAErD,OADAxE,KAAKorB,aAAe5mB,EACbA,CACX,EACAu2B,EAAkBz6B,UAAUgrB,gBAAkB,WAC1C,OAAOtrB,KAAKurB,WAChB,EACAwP,EAAkBz6B,UAAUkrB,gBAAkB,SAAUhnB,GAEpD,OADAxE,KAAKurB,YAAc/mB,EACZA,CACX,EACAu2B,EAAkBz6B,UAAUmrB,iBAAmB,WAC3C,OAAOzrB,KAAK0rB,YAChB,EACAqP,EAAkBz6B,UAAUqrB,iBAAmB,SAAUnnB,GAErD,OADAxE,KAAK0rB,aAAelnB,EACbA,CACX,EACAu2B,EAAkBz6B,UAAUsrB,gBAAkB,WAC1C,OAAO5rB,KAAK6rB,WAChB,EACAkP,EAAkBz6B,UAAUwrB,gBAAkB,SAAUtnB,GAEpD,OADAxE,KAAK6rB,YAAcrnB,EACZA,CACX,EACAu2B,EAAkBz6B,UAAUyrB,iBAAmB,WAC3C,OAAO/rB,KAAKgsB,YAChB,EACA+O,EAAkBz6B,UAAU2rB,iBAAmB,SAAUznB,GAErD,OADAxE,KAAKgsB,aAAexnB,EACbA,CACX,CAEJ,EAvQsC,CAuQpC4b,IAvQF,IA6RIkb,GAA8B,WAC9B,SAASA,EAAa5nB,EAASvQ,EAASE,GACpCrD,KAAK0T,QAAUA,EACf1T,KAAKmD,QAAUA,EACfnD,KAAKqD,OAASA,CAClB,CACA,OAAOi4B,CACX,CAPiC,GAQ7BC,GAA6B,WAQ7B,SAASA,EAAY/jB,QACD,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIyL,EAAQjjB,KAEZA,KAAKw7B,cAAgB,GACrBx7B,KAAKy7B,YAAa,EAElBz7B,KAAK07B,eAAiB,GACtB17B,KAAK27B,aAAe,EAKpB37B,KAAK47B,yBAA2B,GAChC57B,KAAK67B,mBAAqB,IAAIpjB,IAC9BzY,KAAK87B,kBAAoB,GACzB97B,KAAK+7B,gBAAkB,EAEvB/7B,KAAKg8B,kBAAoB,KACzB,IAAIC,EAAU,IAAIvc,GAAoBwc,kBAAkB1kB,EAAQ2kB,MAAQ,OAOxE,QANwC78B,IAApCkY,EAAQ4kB,yBACRH,EAAQI,gBAAgB7kB,EAAQ4kB,8BAEK98B,IAArCkY,EAAQ8kB,0BACRL,EAAQM,iBAAiB/kB,EAAQ8kB,+BAETh9B,IAAxBkY,EAAQglB,kBAAqDl9B,IAAxBkY,EAAQilB,YAA2B,CACxE,IAAIC,EAAOllB,EAAQmlB,cAAgB,IACnCV,EAAQW,YAAYplB,EAAQglB,YAAahlB,EAAQilB,YAAaC,EAClE,MAC0Bp9B,IAAtBkY,EAAQqlB,WACRZ,EAAQa,YAAYtlB,EAAQqlB,WAGhC78B,KAAK+8B,GAAKd,EAAQ95B,SAClBnC,KAAKg9B,IAAMtd,GAAoBud,WAAWC,UAC1Cl9B,KAAKm9B,GAAKzd,GAAoB0d,aAC9Bp9B,KAAKq9B,IAAM3d,GAAoB4d,oBAE/Bt9B,KAAKu9B,aAAa,CAAC,8BAA8B,IACjDv9B,KAAKu9B,aAAa,CAAC,4BAA4B,IAC/Cv9B,KAAKu9B,aAAa,CAAC,8BAA8B,IACjDv9B,KAAKu9B,aAAa,CAAC,kBAAkB,IAErCv9B,KAAK+8B,GAAGS,WAAU,SAAUC,GACxB,IAAIC,EAAKr3B,EACT,IACI,IAAK,IAAIs3B,EAAK/4B,EAAiBqe,EAAMuY,eAAgBoC,EAAKD,EAAGn6B,QAASo6B,EAAGj6B,KAAMi6B,EAAKD,EAAGn6B,OAAQ,CAC3F,IAAI3C,EAAI+8B,EAAGh9B,MACXC,EAAEsC,SACN,CACJ,CACA,MAAO06B,GAASH,EAAM,CAAE14B,MAAO64B,EAAS,CACxC,QACI,IACQD,IAAOA,EAAGj6B,OAAS0C,EAAKs3B,EAAGxd,SAAS9Z,EAAG7F,KAAKm9B,EACpD,CACA,QAAU,GAAID,EAAK,MAAMA,EAAI14B,KAAO,CACxC,CACAie,EAAMwY,YAAa,EACnBxY,EAAMuY,cAAgB,EAC1B,IAEAx7B,KAAK+8B,GAAGe,aAAY,SAAUL,EAAKM,GAC/B,IAAIhe,EAAK1Z,EACT,IACI,IAAK,IAAIs3B,EAAK/4B,EAAiBqe,EAAMyY,gBAAiBkC,EAAKD,EAAGn6B,QAASo6B,EAAGj6B,KAAMi6B,EAAKD,EAAGn6B,OAAQ,CAC5F,IAAI3C,EAAI+8B,EAAGh9B,MACPC,EAAE6S,QAAUuP,EAAM0Y,aAClB96B,EAAEwC,OAAO,cAGTxC,EAAEsC,SAEV,CACJ,CACA,MAAO+c,GAASH,EAAM,CAAE/a,MAAOkb,EAAS,CACxC,QACI,IACQ0d,IAAOA,EAAGj6B,OAAS0C,EAAKs3B,EAAGxd,SAAS9Z,EAAG7F,KAAKm9B,EACpD,CACA,QAAU,GAAI5d,EAAK,MAAMA,EAAI/a,KAAO,CACxC,CACAie,EAAMyY,eAAiB,EAC3B,IAEA17B,KAAK+8B,GAAGiB,eAAc,SAAUP,GAC5B,IAAIQ,EAAK53B,EACT,IACI,IAAK,IAAIs3B,EAAK/4B,EAAiBqe,EAAM6Y,mBAAoB8B,EAAKD,EAAGn6B,QAASo6B,EAAGj6B,KAAMi6B,EAAKD,EAAGn6B,OAAQ,CAC/F,IAAI3C,EAAI+8B,EAAGh9B,MACPC,EAAE6S,QAAUuP,EAAM8Y,gBAClBl7B,EAAEwC,OAAO,cAGTxC,EAAEsC,SAEV,CACJ,CACA,MAAO+6B,GAASD,EAAM,CAAEj5B,MAAOk5B,EAAS,CACxC,QACI,IACQN,IAAOA,EAAGj6B,OAAS0C,EAAKs3B,EAAGxd,SAAS9Z,EAAG7F,KAAKm9B,EACpD,CACA,QAAU,GAAIM,EAAK,MAAMA,EAAIj5B,KAAO,CACxC,CACAie,EAAM6Y,kBAAoB,EAC9B,IAEApc,GAAoBye,WAAWC,eAAc,SAAUC,GACnD,IAAIC,EAAKrb,EAAMsb,sBACJ,OAAPD,GAA2C,OAA5Brb,EAAM+Y,mBACrB/Y,EAAM+Y,kBAAkBsC,EAEhC,GACJ,CAumBA,OAtmBA/C,EAAYj7B,UAAUk+B,aAAe,WACjC,OAAO37B,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAIijB,EAAQjjB,KACZ,OAAO6D,EAAY7D,MAAM,SAAUqG,GAC/B,MAAO,CAAC,EAAc,IAAIjD,SAAQ,SAAUD,EAASE,GACzC4f,EAAMwY,WACNt4B,IAGA8f,EAAMuY,cAAc72B,KAAK,IAAI22B,GAAa,KAAMn4B,EAASE,GAEjE,IACR,GACJ,GACJ,EACAk4B,EAAYj7B,UAAUm+B,kBAAoB,SAAUC,GAChD,IAAIC,EAAKt4B,EACL4c,EAAQjjB,KACZA,KAAK27B,cAAgB,EACrB,IAAIiD,EAAM5+B,KAAK27B,aACf,IACI,IAAK,IAAIgC,EAAK/4B,EAAiB5E,KAAK07B,gBAAiBkC,EAAKD,EAAGn6B,QAASo6B,EAAGj6B,KAAMi6B,EAAKD,EAAGn6B,OAAQ,CAC3F,IAAI3C,EAAI+8B,EAAGh9B,MACXC,EAAEwC,OAAO,aACb,CACJ,CACA,MAAOw7B,GAASF,EAAM,CAAE35B,MAAO65B,EAAS,CACxC,QACI,IACQjB,IAAOA,EAAGj6B,OAAS0C,EAAKs3B,EAAGxd,SAAS9Z,EAAG7F,KAAKm9B,EACpD,CACA,QAAU,GAAIgB,EAAK,MAAMA,EAAI35B,KAAO,CACxC,CAEA,OADAhF,KAAK07B,eAAiB,GACf,IAAIt4B,SAAQ,SAAUD,EAASE,GAC9B4f,EAAM0Y,aAAeiD,EACrBv7B,EAAO,cAEFq7B,EACLv7B,IAGA8f,EAAMyY,eAAe/2B,KAAK,IAAI22B,GAAasD,EAAKz7B,EAASE,GAEjE,GACJ,EAaAk4B,EAAYj7B,UAAUw+B,cAAgB,SAAUC,EAAOC,EAAQC,EAASC,EAASC,GAC7E,OAAOt8B,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,OAAO6D,EAAY7D,MAAM,SAAUqG,GAE/B,OADArG,KAAKg9B,IAAI8B,cAAcC,EAAQxf,GAAKyf,EAAS3f,GAAK4f,EAASC,EAASC,GAC7D,CAAC,EAAcn/B,KAAKy+B,kBAAkBS,GACjD,GACJ,GACJ,EAYA3D,EAAYj7B,UAAU8+B,gBAAkB,SAAUL,EAAOC,EAAQC,EAASE,GACtE,IAAIvpB,EAAO5V,KAAKg9B,IAAIoC,gBAAgBL,EAAQxf,GAAKyf,EAAS3f,GAAK4f,EAASE,GACxE,OAAOvpB,CACX,EAKA2lB,EAAYj7B,UAAU++B,WAAa,SAAU7nB,GACzC,OAAO3U,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,OAAO6D,EAAY7D,MAAM,SAAUqG,GAE/B,OADArG,KAAKg9B,IAAIqC,WAAW7nB,EAAQ8nB,MAAO9nB,EAAQ+nB,OAAQ/nB,EAAQ0nB,QAAS1nB,EAAQgoB,aACrE,CAAC,EAAcx/B,KAAKy+B,kBAAkBjnB,EAAQ0nB,SACzD,GACJ,GACJ,EAUA3D,EAAYj7B,UAAUm/B,wBAA0B,SAAUC,GACtD,OAAOhgB,GAAoBud,WAAW0C,wBAAwBD,EAClE,EA0BAnE,EAAYj7B,UAAUs/B,oBAAsB,SAAUl1B,EAAKm1B,GACvD,OAAOh9B,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAI8/B,EAAUC,EACV9c,EAAQjjB,KACZ,OAAO6D,EAAY7D,MAAM,SAAUqG,GAG/B,OAFAy5B,EAAW9/B,KAAK67B,mBAAmBh8B,IAAI6K,QAEtBpL,IAAbwgC,GAAuC,OAAbA,EACnB,CAAC,EAAc18B,QAAQD,QAAQ28B,UAGzBxgC,IAAbwgC,IAEA9/B,KAAK67B,mBAAmB9mB,IAAIrK,EAAK,MACjCq1B,EAAW,CAAEh8B,EAAG,WACSzE,IAArBugC,IACAA,GAAmB,GAEvBE,EAASh8B,EAAI2b,GAAoBsgB,KAAKC,YAAYv1B,GAAK,WAEnD,IAAI3G,EAAIg8B,EAASh8B,EACjBkf,EAAM4Y,mBAAmB9mB,IAAIrK,EAAK3G,GAClCkf,EAAM2Y,yBAA2B3Y,EAAM2Y,yBAAyB/qB,QAAO,SAAUhQ,GAC7E,OAAIA,EAAE6S,SAAWhJ,IACb7J,EAAEsC,QAAQY,IACH,EAIf,GACJ,GAAG87B,IAEA,CAAC,EAAc,IAAIz8B,SAAQ,SAAUD,EAASE,GAC7C,IAAIy8B,EAAW7c,EAAM4Y,mBAAmBh8B,IAAI6K,QAG3BpL,IAAbwgC,GAAuC,OAAbA,EAC1B38B,EAAQ28B,GAKR7c,EAAM2Y,yBAAyBj3B,KAAK,IAAI22B,GAAa5wB,EAAKvH,EAASE,GAE3E,KACR,GACJ,GACJ,EASAk4B,EAAYj7B,UAAU4/B,iBAAmB,SAAU1oB,GAC/C,OAAO3U,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAIijB,EAAQjjB,KACZ,OAAO6D,EAAY7D,MAAM,SAAUqG,GAC/B,MAAO,CAAC,EAAc,IAAIjD,SAAQ,SAAUD,EAASg9B,GAC7Cld,EAAM8Z,GAAGmD,iBAAiB1oB,EAAQ9M,IAAK8M,EAAQ4oB,KAAM5oB,EAAQ7M,KAAM6M,EAAQ6oB,MAAM,SAAU5d,GACvFtf,EAAQsf,EACZ,GACJ,IACR,GACJ,GACJ,EAEA8Y,EAAYj7B,UAAUggC,sBAAwB,SAAU9oB,GACpDxX,KAAK+8B,GAAGuD,sBAAsB9oB,EAAQvQ,GAAIuQ,EAAQ+oB,MACtD,EAEAhF,EAAYj7B,UAAUkgC,iBAAmB,SAAUhpB,GAC/C,IAAIiL,EAAQziB,KAAKm9B,GAAGsD,gBAAgBjpB,EAAQvQ,IAC5C,GAAIwb,GAASA,aAAiB/C,GAAoBghB,cAAe,CAC7Dje,EAAMke,sBAAsBnpB,EAAQopB,QAASppB,EAAQqpB,KAAMrpB,EAAQspB,MAEnE,IAAIC,EAAOte,EAAMue,eACJ,OAATD,IACAte,EAAMwe,eAAeC,qBAAqBC,kBAAmB,EAErE,CACJ,EAEA5F,EAAYj7B,UAAU8gC,qBAAuB,SAAU5pB,GACnD,IAAIiL,EAAQziB,KAAKm9B,GAAGsD,gBAAgBjpB,EAAQvQ,IACxCwb,GAASA,aAAiB/C,GAAoBghB,eAC9Cje,EAAMW,oBAAoB5L,EAAQ7M,KAE1C,EAEA4wB,EAAYj7B,UAAU+gC,uBAAyB,SAAU7pB,GACrD,IAAI8pB,EAAKj7B,EACLoc,EAAQziB,KAAKm9B,GAAGsD,gBAAgBjpB,EAAQvQ,IAC5C,GAAIwb,GAASA,aAAiB/C,GAAoBghB,cAC9C,IACI,IAAK,IAAI/C,EAAK/4B,EAAiB4S,EAAQxQ,UAAW42B,EAAKD,EAAGn6B,QAASo6B,EAAGj6B,KAAMi6B,EAAKD,EAAGn6B,OAAQ,CACxF,IAAIkf,EAAUkb,EAAGh9B,MACjB4hB,GAA0BC,EAAOC,EACrC,CACJ,CACA,MAAO6e,GAASD,EAAM,CAAEt8B,MAAOu8B,EAAS,CACxC,QACI,IACQ3D,IAAOA,EAAGj6B,OAAS0C,EAAKs3B,EAAGxd,SAAS9Z,EAAG7F,KAAKm9B,EACpD,CACA,QAAU,GAAI2D,EAAK,MAAMA,EAAIt8B,KAAO,CACxC,CAER,EAEAu2B,EAAYj7B,UAAUkhC,iBAAmB,SAAUhqB,GAC/C,IAAIiL,EAAQziB,KAAKm9B,GAAGsD,gBAAgBjpB,EAAQvQ,IACxCwb,GAASA,aAAiB/C,GAAoB+hB,kBAC9Chf,EAAMif,WAAWlqB,EAAQmqB,SAAS,GAAM,GAAM,EAEtD,EAEApG,EAAYj7B,UAAUshC,wBAA0B,SAAUpqB,GACtD,IAAIqqB,EAAKx7B,EACLoc,EAAQziB,KAAKm9B,GAAGsD,gBAAgBjpB,EAAQvQ,IAC5C,GAAIwb,GAASA,aAAiB/C,GAAoB+hB,iBAC9C,IACI,IAAK,IAAI9D,EAAK/4B,EAAiB4S,EAAQxQ,UAAW42B,EAAKD,EAAGn6B,QAASo6B,EAAGj6B,KAAMi6B,EAAKD,EAAGn6B,OAAQ,CACxF,IAAIkf,EAAUkb,EAAGh9B,MACjB6iB,GAA6BhB,EAAOC,EACxC,CACJ,CACA,MAAOof,GAASD,EAAM,CAAE78B,MAAO88B,EAAS,CACxC,QACI,IACQlE,IAAOA,EAAGj6B,OAAS0C,EAAKs3B,EAAGxd,SAAS9Z,EAAG7F,KAAKm9B,EACpD,CACA,QAAU,GAAIkE,EAAK,MAAMA,EAAI78B,KAAO,CACxC,CAER,EAoBAu2B,EAAYj7B,UAAUyhC,qBAAuB,SAAUvqB,GACnD,OAAO3U,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAIijB,EAAQjjB,KACZ,OAAO6D,EAAY7D,MAAM,SAAUqG,GAC/B,MAAO,CAAC,EAAc,IAAIjD,SAAQ,SAAUD,EAASE,GAC7C,IAAIq8B,EAASzc,EAAM+Z,IAAIgF,kBAAkBxqB,EAAQ7M,MAClC,OAAX+0B,EACAr8B,IAGA4f,EAAM+Z,IAAIiF,cAAcC,eAAexC,GAAQ,WAC3Cv8B,EAAQu8B,EACZ,GAER,IACR,GACJ,GACJ,EAQAnE,EAAYj7B,UAAU6hC,yBAA2B,SAAU3qB,GACvD,OAAO3U,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAIijB,EAAQjjB,KACZ,OAAO6D,EAAY7D,MAAM,SAAUqG,GAC/B,MAAO,CAAC,EAAc,IAAIjD,SAAQ,SAAUD,EAASg9B,GAC7Cld,EAAM+Z,IAAIiF,cAAcE,yBAAyB3qB,EAAQ4qB,SAAU5qB,EAAQ6qB,OAAO,SAAUC,GACxFn/B,EAAQm/B,EACZ,GACJ,IACR,GACJ,GACJ,EAEA/G,EAAYj7B,UAAUi9B,aAAe,SAAU7a,GAC3C,IAAIC,EAAW,OAASD,EAAQ,GAC5B9hB,EAAQ8hB,EAAQ,GACpB1iB,KAAK+8B,GAAG/1B,SAAS2b,GAAU/hB,EAC/B,EACA26B,EAAYj7B,UAAUiiC,yBAA2B,SAAUC,GACvDxiC,KAAKg9B,IAAIuF,yBAAyBC,EACtC,EACAjH,EAAYj7B,UAAUmiC,yBAA2B,SAAUD,GACvDxiC,KAAKg9B,IAAIyF,yBAAyBD,EACtC,EAKAjH,EAAYj7B,UAAUoiC,qBAAuB,SAAUjhB,GACnDzhB,KAAK+8B,GAAG2F,qBAAqBjhB,EACjC,EAcA8Z,EAAYj7B,UAAUqiC,iBAAmB,SAAUnrB,GAC/C,IAAIorB,EAOAC,EALAD,EADAprB,EAAQsrB,WACFtrB,EAAQsrB,WAGR9iC,KAAKg9B,IAAI+F,mBAAmBvrB,EAAQwrB,WAAWC,kBAAmBzrB,EAAQwrB,WAAWE,gBAO3FL,EAJArrB,EAAQwrB,WAAWG,aAAe,EAIjB3rB,EAAQwrB,WAAWI,sBAMnB5rB,EAAQwrB,WAAWI,sBAAwB5rB,EAAQwrB,WAAWK,cAAgB,EAEnG,IAAI/D,EAAQ,IAAI5f,GAAoB4jB,MACpChE,EAAMiE,SAAS/rB,EAAQwrB,WAAWC,mBAClC3D,EAAMkE,uBAAuBZ,GAC7BtD,EAAMmE,kBAAkBjsB,EAAQwrB,YAChC,IAAIzD,GAAS,EACb,OAAQ/nB,EAAQwrB,WAAWC,mBACvB,KAAKvkB,GAAaglB,IACQ,KAAlBb,EAEAtD,GAAS,GAGTD,EAAMqE,OAAOnsB,EAAQwrB,WAAWY,cAAgBnkB,IAChD6f,EAAMuE,QAAQrsB,EAAQwrB,WAAWc,eACjCxE,EAAMyE,cAA+B,EAAjBlB,IAExB,MACJ,KAAKnkB,GAAaslB,MAClB,KAAKtlB,GAAaulB,OACd3E,EAAMyE,cAAc,KACE,KAAlBlB,IAEAvD,EAAM4E,QAAQ1sB,EAAQwrB,WAAWY,eACjCtE,EAAM6E,QAAQ3sB,EAAQwrB,WAAWc,gBAErC,MACJ,QAEIxE,EAAMyE,cAAc,KACpB,MAER/jC,KAAKg9B,IAAIiF,cAAcuB,uBAAuBZ,GAC9C5iC,KAAKg9B,IAAIqC,WAAWC,EAAOC,GAAQ,GACnC,EAEJ,EAGAhE,EAAYj7B,UAAUi+B,oBAAsB,WACxC,OAA8B,OAA1Bv+B,KAAKg9B,IAAIoH,aACF,KACPpkC,KAAKg9B,IAAIoH,wBAAwB1kB,GAAoBye,WAC9Cn+B,KAAKg9B,IAAIoH,aACb,IACX,EAMA7I,EAAYj7B,UAAU+jC,iBAAmB,SAAUC,GAC/C,OAAO5kB,GAAoBye,WAAWoG,aAC1C,EASAhJ,EAAYj7B,UAAUkkC,SAAW,SAAU95B,GACvC,OAAO7H,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAI4+B,EAAKv4B,EAAIs3B,EAAI98B,EACb4jC,EAAK7G,EACL3a,EAAQjjB,KACZ,OAAO6D,EAAY7D,MAAM,SAAU0kC,GAC/B1kC,KAAKg9B,IAAIwH,SAAS95B,GAClB1K,KAAK+7B,iBAAmB,EACxB6C,EAAM5+B,KAAK+7B,gBACX,IACI,IAAK11B,EAAKzB,EAAiB5E,KAAK87B,mBAAoB6B,EAAKt3B,EAAG7C,QAASm6B,EAAGh6B,KAAMg6B,EAAKt3B,EAAG7C,OAClF3C,EAAI88B,EAAG/8B,MACPC,EAAEwC,OAAO,aAEjB,CACA,MAAOshC,GAASF,EAAM,CAAEz/B,MAAO2/B,EAAS,CACxC,QACI,IACQhH,IAAOA,EAAGh6B,OAASi6B,EAAKv3B,EAAG8Z,SAASyd,EAAGp9B,KAAK6F,EACpD,CACA,QAAU,GAAIo+B,EAAK,MAAMA,EAAIz/B,KAAO,CACxC,CAEA,OADAhF,KAAK87B,kBAAoB,GAClB,CAAC,EAAc,IAAI14B,SAAQ,SAAUD,EAASE,GACzC4f,EAAM8Y,gBAAkB6C,EACxBv7B,EAAO,cAGP4f,EAAM6Y,kBAAkBn3B,KAAK,IAAI22B,GAAasD,EAAKz7B,EAASE,GAEpE,IACR,GACJ,GACJ,EAOAk4B,EAAYj7B,UAAUskC,gBAAkB,SAAUl6B,GAC9C,OAAO7H,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAI4+B,EAAKv4B,EAAIs3B,EAAI98B,EACbgkC,EAAKjH,EACL3a,EAAQjjB,KACZ,OAAO6D,EAAY7D,MAAM,SAAU0kC,GAC/B1kC,KAAKg9B,IAAI8H,SAASp6B,GAClB1K,KAAK+7B,iBAAmB,EACxB6C,EAAM5+B,KAAK+7B,gBACX,IACI,IAAK11B,EAAKzB,EAAiB5E,KAAK87B,mBAAoB6B,EAAKt3B,EAAG7C,QAASm6B,EAAGh6B,KAAMg6B,EAAKt3B,EAAG7C,OAClF3C,EAAI88B,EAAG/8B,MACPC,EAAEwC,OAAO,aAEjB,CACA,MAAO0hC,GAASF,EAAM,CAAE7/B,MAAO+/B,EAAS,CACxC,QACI,IACQpH,IAAOA,EAAGh6B,OAASi6B,EAAKv3B,EAAG8Z,SAASyd,EAAGp9B,KAAK6F,EACpD,CACA,QAAU,GAAIw+B,EAAK,MAAMA,EAAI7/B,KAAO,CACxC,CAEA,OADAhF,KAAK87B,kBAAoB,GAClB,CAAC,EAAc,IAAI14B,SAAQ,SAAUD,EAASE,GACzC4f,EAAM8Y,gBAAkB6C,EACxBv7B,EAAO,cAGP4f,EAAM6Y,kBAAkBn3B,KAAK,IAAI22B,GAAasD,EAAKz7B,EAASE,GAEpE,IACR,GACJ,GACJ,EAWAk4B,EAAYj7B,UAAU0kC,yBAA2B,WAC7C,IAAIC,EAASjlC,KAAKu+B,sBAClB,GAAe,OAAX0G,EACA,OAAO,EACX,IAAIC,EAAOD,EAAOE,WAClB,GAAa,OAATD,EACA,OAAO,EACX,IAAIlsB,EAAMksB,EAAKE,2BACf,GAAIpsB,EAAM,EACN,OAAO,EACX,IAAIqsB,EAAOH,EAAKI,wBAAwBtsB,GACpCgD,EAAOkpB,EAAKK,gBAAgBvsB,GAC5BwsB,EAAQxpB,EAAKypB,oBAAsBzpB,EAAK0pB,eAAiB,KACzD9kC,EAAQykC,EAAOG,EAInB,GAAI5kC,EAAQ,EACR,OAAO,EACX,IAAI+kC,EAA+B,KAArBT,EAAKU,cACnB,OAAIhlC,EAAQ+kC,EACDA,EACJ/kC,CACX,EAYA26B,EAAYj7B,UAAUulC,mBAAqB,SAAUjlC,GACjD,IAAIqkC,EAASjlC,KAAKu+B,sBAClB,GAAe,OAAX0G,EAAJ,CAEA,IAAIC,EAAOD,EAAOE,WAClB,GAAa,OAATD,EAAJ,CAKA,IAFA,IAAIY,EAAQZ,EAAKK,gBACbQ,EAAQD,EAAMnjC,OAAS,EAClBH,EAAI,EAAGA,EAAIsjC,EAAMnjC,OAAQH,IAAK,CACnC,IAAIwjC,EAASd,EAAKI,wBAAwB9iC,GAC1C,GAAIwjC,GAAUplC,EAAO,CACjBmlC,EAAQvjC,EAAI,EACZ,KACJ,CACJ,CACIujC,EAAQ,IACRA,EAAQ,GAGZd,EAAOgB,iBAAiBH,EAAMC,GAfpB,CAHA,CAmBd,EAMAxK,EAAYj7B,UAAU4lC,aAAe,SAAU1uB,GAC3C,IAAIyL,EAAQjjB,KACZ,OAAO,IAAIoD,SAAQ,SAAUD,EAASg9B,GAClCld,EAAM+Z,IAAIkJ,cAAa,SAAU/7B,GAAQ,OAAOhH,EAAQgH,EAAO,GAAGqN,EAAQ2uB,MAAO3uB,EAAQ4uB,OAAQ5uB,EAAQ6uB,OAC7G,GACJ,EAKA9K,EAAYj7B,UAAUgmC,aAAe,SAAU9uB,GAC3C,IAAI+uB,EAAavmC,KAAKg9B,IAClBwJ,EAAc,IAAIC,eAAe,CACjCC,MAAO,SAAUC,GACb,SAASC,IACL,IAAIC,EAAW,EACfN,EAAWD,cAAa,SAAUn8B,GAC9B08B,IACAF,EAAWG,QAAQ38B,GACf08B,GAAYrvB,EAAQuvB,aACpBJ,EAAWK,OAEnB,GAAGxvB,EAAQ2uB,MAAO3uB,EAAQ4uB,OAAQ5uB,EAAQyvB,gBAAiBzvB,EAAQuvB,YAAavvB,EAAQ6uB,OAC5F,CACA,OAAOO,GACX,IAEJ,OAAOJ,CACX,EACOjL,CACX,CAnuBgC,GAgvB5B2L,GAAgC,WAChC,SAASA,IACLlnC,KAAKmnC,KAAO,KACZnnC,KAAKonC,kBAAoB,EAC7B,CAwBA,OAvBAF,EAAe5mC,UAAU+mC,KAAO,SAAUF,GACtC,IAAIzJ,EAAKr3B,EACT,GAAkB,OAAdrG,KAAKmnC,KACL,MAAM,IAAIx5B,MAAM,uDACpB3N,KAAKmnC,KAAOA,EACZ,IACI,IAAK,IAAIxJ,EAAK/4B,EAAiB5E,KAAKonC,mBAAoBxJ,EAAKD,EAAGn6B,QAASo6B,EAAGj6B,KAAMi6B,EAAKD,EAAGn6B,OAAQ,CAC9F,IAAI8jC,EAAK1J,EAAGh9B,MACZ0mC,GACJ,CACJ,CACA,MAAOzJ,GAASH,EAAM,CAAE14B,MAAO64B,EAAS,CACxC,QACI,IACQD,IAAOA,EAAGj6B,OAAS0C,EAAKs3B,EAAGxd,SAAS9Z,EAAG7F,KAAKm9B,EACpD,CACA,QAAU,GAAID,EAAK,MAAMA,EAAI14B,KAAO,CACxC,CACAhF,KAAKonC,kBAAoB,EAC7B,EACAF,EAAe5mC,UAAUinC,OAAS,WAC9BvnC,KAAKmnC,KAAO,IAChB,EACOD,CACX,CA7BmC,GAyC/BnmC,GAA8B,WAC9B,SAASA,EAAa2J,EAAKC,EAAML,EAAMk9B,EAAaC,EAAWxgC,QAChD,IAAPA,IAAiBA,EAAK,MAC1BjH,KAAK0K,IAAMA,EACX1K,KAAK2K,KAAOA,EACZ3K,KAAKsK,KAAOA,EACZtK,KAAKwnC,YAAcA,EACnBxnC,KAAKynC,UAAYA,EACjBznC,KAAKiH,GAAKA,CACd,CAKA,OAJAlG,EAAa2mC,aAAe,SAAUtF,GAClC,IAAI/7B,EAAIs3B,EACR,OAAO,IAAI58B,EAAaqhC,EAASuF,UAAWvF,EAAS9gB,WAAY8gB,EAASa,kBAAmBb,EAASwF,kBAAmBxF,EAASyF,gBAAqJ,QAAnIlK,EAA8C,QAAxCt3B,EAAK+7B,EAAS0F,4BAAyC,IAAPzhC,OAAgB,EAASA,EAAG0hC,8BAA8B9gC,GAAGyC,kBAA+B,IAAPi0B,EAAgBA,EAAK,KACxT,EACO58B,CACX,CAfiC,GAkB7BC,GAAsC,WACtC,SAASA,EAAqBiG,EAAI8a,EAAgBpX,GAC9C3K,KAAKiH,GAAKA,EACVjH,KAAK+hB,eAAiBA,EACtB/hB,KAAK2K,KAAgB,OAATA,QAA0B,IAATA,EAAkBA,EAAO1D,CAC1D,CAIA,OAHAjG,EAAqBV,UAAU0nC,QAAU,SAAUr9B,GAC/C3K,KAAK2K,KAAOA,CAChB,EACO3J,CACX,CAVyC,GAarCF,GAAoC,WACpC,SAASA,EAAmB+e,GACxB7f,KAAKioC,SAAWpoB,EAAO5Y,GAAGyC,WAC1B1J,KAAKgH,SAAW,IAAI+b,GAAiClD,GACrD,IAAIkhB,EAAOlhB,EAAOohB,eAAeC,qBACjClhC,KAAKkoC,UAAYnH,EAAKmH,UACtBloC,KAAK6gC,KAAOE,EAAKoH,SACjBnoC,KAAK8gC,KAAOC,EAAKqH,SACjBpoC,KAAKqoC,aAAetH,EAAKuH,YAC7B,CAIA,OAHAxnC,EAAmBR,UAAUioC,QAAU,WACnC,OAAOvoC,KAAKioC,QAChB,EACOnnC,CACX,CAduC,GAoBvC,SAAS0nC,GAAiBC,GACtB,GAAiB,OAAbA,EAAItB,KACJ,MAAM,IAAIx5B,MAAM,8DACpB,IAAI+6B,EAAS,GACb,SAASC,EAAMxL,GACX,IAAIpd,EAAK1Z,EAAI43B,EAAKN,EAClB,IACI,IAAK,IAAIC,EAAKh5B,EAAiBu4B,EAAGuL,QAAShE,EAAK9G,EAAGp6B,QAASkhC,EAAG/gC,KAAM+gC,EAAK9G,EAAGp6B,OAAQ,CACjF,IAAIif,EAAQiiB,EAAG9jC,MACf8nC,EAAO/jC,KAAK8d,EAAMxb,GAAGyC,WACzB,CACJ,CACA,MAAOwW,GAASH,EAAM,CAAE/a,MAAOkb,EAAS,CACxC,QACI,IACQwkB,IAAOA,EAAG/gC,OAAS0C,EAAKu3B,EAAGzd,SAAS9Z,EAAG7F,KAAKo9B,EACpD,CACA,QAAU,GAAI7d,EAAK,MAAMA,EAAI/a,KAAO,CACxC,CACA,IACI,IAAK,IAAIwT,EAAK5T,EAAiBlF,OAAOkpC,QAAQzL,EAAG0L,YAAaC,EAAKtwB,EAAGhV,QAASslC,EAAGnlC,KAAMmlC,EAAKtwB,EAAGhV,OAAQ,CACpG,IAAIulC,EAAKjkC,EAAOgkC,EAAGloC,MAAO,GAAsBooC,GAAPD,EAAG,GAAYA,EAAG,IAC3DJ,EAAMK,EACV,CACJ,CACA,MAAO9K,GAASD,EAAM,CAAEj5B,MAAOk5B,EAAS,CACxC,QACI,IACQ4K,IAAOA,EAAGnlC,OAASg6B,EAAKnlB,EAAG2H,SAASwd,EAAGn9B,KAAKgY,EACpD,CACA,QAAU,GAAIylB,EAAK,MAAMA,EAAIj5B,KAAO,CACxC,CACJ,CACA,IAAIikC,EAASR,EAAItB,KAAKhK,GAAG+L,cAAcT,EAAItB,KAAKnK,IAAImM,4BAIpD,OAHIF,GACAN,EAAMM,GAEHP,CACX,CAKA,SAASU,KACL,OAAO1pB,GAAoBud,WAAWoM,eAAe54B,IAAI1P,GAAa2mC,aAC1E,CAsQA,IAAIvmC,GAAcgc,GAAY,aAAc,CAKxCvO,MAAO,WAAc,MAAO,CACxB06B,aAAc,GACdF,mBAAoB,GACpBG,mBAAoB,KACpBC,qBAAsB,EACtBC,UAAW,EACXC,YAAa,IAAIjjC,KACjBu4B,OAAQ,EACR2K,mBAAoB,KACpBC,kBAAmB,IACnBC,eAAgB,CAAC,EACjBC,oBAAoB,EACpBC,eAAe,EACfhL,MAAO,EACPiL,WAAYtrB,GAAaglB,IACzBvE,QAAS,EACT8K,kBAAmB,CAAC,EACpBC,cAAezjC,KAAKD,MACpB2jC,gBAAiB,EACjBC,YAAa,KACbC,mBAAoB,GACpBC,aAAc,EACdC,mBAAmB,EACnBtL,QAAS,EACT,EACJruB,QAAS,CAaL45B,eAAgB,SAAUC,GACtB,IAAIxnB,EAAQjjB,KACZ,OAAO,SAAUwiC,GACb,GAAwB,OAApBvf,EAAMynB,KAAKvD,KACX,MAAM,IAAIx5B,MAAM,wDACpB,OAAOsV,EAAMynB,KAAKvD,KAAKnK,IAAIgF,kBAAkBQ,EACjD,CACJ,EAEAmI,wBAAyB,SAAUF,GAC/B,IAAIxnB,EAAQjjB,KACZ,OAAO,SAAU4qC,GACb,GAAwB,OAApB3nB,EAAMynB,KAAKvD,KACX,MAAM,IAAIx5B,MAAM,iEACpB,IAAIk9B,EAAS5nB,EAAMynB,KAAKvD,KAAKnK,IAAI8N,6BAA6BF,EAAGG,EAAGH,EAAG5mC,GACvE,MAAO,CAAEgnC,IAAK,GAAKH,EAAOE,EAAI,KAAO,IAAKE,IAAKJ,EAAO7mC,EAC1D,CACJ,EAEAknC,wBAAyB,SAAUT,GAC/B,IAAIxnB,EAAQjjB,KACZ,OAAO,SAAU4qC,GACb,GAAwB,OAApB3nB,EAAMynB,KAAKvD,KACX,MAAM,IAAIx5B,MAAM,iEACpB,OAAOsV,EAAMynB,KAAKvD,KAAKnK,IAAImO,6BAA6BP,EAAGI,GAAK,GAAIJ,EAAGK,IAC3E,CACJ,EAYAG,sBAAuB,SAAUx8B,GAC7B,OAAO,SAAUy8B,GACb,OAAOz8B,EAAMi7B,eAAewB,IAAa,IAC7C,CACJ,EAcAC,0BAA2B,WACvB,IAAI3M,EAAKt4B,EACLklC,EAAS,GACb,IACI,IAAK,IAAI5N,EAAK/4B,EAAiB5E,KAAKspC,cAAe1L,EAAKD,EAAGn6B,QAASo6B,EAAGj6B,KAAMi6B,EAAKD,EAAGn6B,OAAQ,CACzF,IAAIgoC,EAAO5N,EAAGh9B,MACV6qC,EAAazrC,KAAK6pC,eAAe2B,GACjCC,GACAF,EAAO5mC,KAAK8mC,EAEpB,CACJ,CACA,MAAO5M,GAASF,EAAM,CAAE35B,MAAO65B,EAAS,CACxC,QACI,IACQjB,IAAOA,EAAGj6B,OAAS0C,EAAKs3B,EAAGxd,SAAS9Z,EAAG7F,KAAKm9B,EACpD,CACA,QAAU,GAAIgB,EAAK,MAAMA,EAAI35B,KAAO,CACxC,CACA,OAAOumC,CACX,EACAG,gBAAiB,SAAUjB,GACvB,OAAO,SAAUkB,GACb,IAAItlC,EACJ,OAA6B,QAArBA,EAAKslC,EAAQ1kC,UAAuB,IAAPZ,EAAgBA,EAAK,EAC9D,CACJ,EAaAulC,iBAAkB,SAAUnB,GACxB,IAAIxnB,EAAQjjB,KACZ,OAAO,SAAUqrC,GACb,GAAwB,OAApBpoB,EAAMynB,KAAKvD,KACX,MAAM,IAAIx5B,MAAM,8DACpB,IAAI8U,EAAQQ,EAAMynB,KAAKvD,KAAKhK,GAAGsD,gBAAgB4K,GAC/C,OAAc,OAAV5oB,GAAkBA,aAAiB/C,GAAoBghB,cAChDje,EAAMwe,eAGN,IAEf,CACJ,EAUA4K,kBAAmB,SAAUpB,GACzB,IAAIxnB,EAAQjjB,KACZ,OAAO,SAAUiH,GACb,GAAwB,OAApBgc,EAAMynB,KAAKvD,KACX,MAAM,IAAIx5B,MAAM,+DACpB,IAAI8U,EAAQQ,EAAM6oB,UAAU7kC,GAC5B,OAAc,OAAVwb,GAAkBA,aAAiB/C,GAAoBghB,cAChDje,EAGA,IAEf,CACJ,EAUAspB,oBAAqB,SAAUtB,GAC3B,IAAIxnB,EAAQjjB,KACZ,OAAO,SAAU2K,GACb,GAAwB,OAApBsY,EAAMynB,KAAKvD,KACX,MAAM,IAAIx5B,MAAM,iEACpB,IAAI1G,EAAKyY,GAAoBssB,KAAKC,WAAWthC,GAAMjB,WACnD,OAAOuZ,EAAMipB,qBAAqBjlC,EACtC,CACJ,EAYA6kC,UAAW,SAAUrB,GACjB,IAAIxnB,EAAQjjB,KACZ,OAAO,SAAUiH,GACb,GAAwB,OAApBgc,EAAMynB,KAAKvD,KACX,MAAM,IAAIx5B,MAAM,uDACpB,OAAOsV,EAAMynB,KAAKvD,KAAKhK,GAAGsD,gBAAgBx5B,EAC9C,CACJ,EAUAklC,+BAAgC,SAAUv9B,GACtC,IAAIqU,EAAQjjB,KACZ,OAAO,SAAU2K,GACb,GAAwB,OAApBsY,EAAMynB,KAAKvD,KACX,MAAM,IAAIx5B,MAAM,4EACpB,IAAI1G,EAAKyY,GAAoBssB,KAAKC,WAAWthC,GAAMjB,WACnD,OAAOkF,EAAMq7B,kBAAkBhjC,IAAO,IAC1C,CACJ,EAUAilC,qBAAsB,SAAUzB,GAC5B,IAAIxnB,EAAQjjB,KACZ,OAAO,SAAUiH,GACb,GAAwB,OAApBgc,EAAMynB,KAAKvD,KACX,MAAM,IAAIx5B,MAAM,kEACpB,IAAI8U,EAAQQ,EAAM6oB,UAAU7kC,GAC5B,OAAc,OAAVwb,GAAkBA,aAAiB/C,GAAoB+hB,iBAChDhf,EAGA,IAEf,CACJ,EAUA2pB,qBAAsB,SAAUx9B,GAC5B,OAAO,SAAU3H,GACb,OAAO2H,EAAMq7B,kBAAkBhjC,IAAO,IAC1C,CACJ,EAWAolC,iBAAkB,SAAU5B,GACxB,IAAIxnB,EAAQjjB,KACZ,OAAO,SAAU2rC,GACb,GAAwB,OAApB1oB,EAAMynB,KAAKvD,KACX,MAAM,IAAIx5B,MAAM,8DACpB,IAAI1O,EAAMgkB,EAAMyoB,gBAAgBC,GAChC,OAAO1oB,EAAMipB,qBAAqBjtC,EACtC,CACJ,EAWAqtC,iBAAkB,SAAU19B,GACxB,IAAIqU,EAAQjjB,KACZ,OAAO,SAAU2rC,GACb,IAAI1sC,EAAMgkB,EAAMyoB,gBAAgBC,GAChC,OAAO/8B,EAAMq7B,kBAAkBhrC,IAAQ,IAC3C,CACJ,GAEJgU,QAAS,CAELs5B,uBAAwB,SAAU9D,GAC9BzoC,KAAK0qC,KAAKrD,KAAKoB,EACnB,EAEA+D,2BAA4B,WACxBxsC,KAAK0qC,KAAKnD,QACd,EAEAkF,eAAgB,WACZ,GAAuB,OAAnBzsC,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,wDACpB,IAAI86B,EAAMzoC,KAAK0qC,KAAKvD,KAChBpI,EAAQ0J,EAAI1L,GAAG2P,QAAUltB,GACzBxf,KAAK++B,OAASA,IACd/+B,KAAK++B,MAAQA,GACjB,IAAIC,EAASyJ,EAAI1L,GAAG4P,SAAWrtB,GAC3Btf,KAAKg/B,QAAUA,IACfh/B,KAAKg/B,OAASA,GAClB,IAAIC,EAAUwJ,EAAIzL,IAAIiF,cAAc2K,WAAWlQ,KAC3C18B,KAAKi/B,SAAWA,IAChBj/B,KAAKi/B,QAAUA,GACnB,IAAIE,EAAUsJ,EAAIzL,IAAIiF,cAAc2K,WAAWC,SAC3C7sC,KAAKm/B,SAAWA,IAChBn/B,KAAKm/B,QAAUA,GACnB,IAAI2N,EAAKrE,EAAIzL,IAAIiF,cAAc8K,0BAA4B,KACvD/sC,KAAKupC,oBAAsBuD,IAC3B9sC,KAAKupC,mBAAqBuD,GAC9B,IAAIl3B,EAAO6yB,EAAIpL,IAAI2P,UACfhtC,KAAK0pC,aAAe9zB,IACpB5V,KAAK0pC,YAAc9zB,GACvB,IAAIq3B,EAAKxE,EAAIzL,IAAIiF,cAAciL,0BAA4B,KACvDltC,KAAK2pC,oBAAsBsD,IAC3BjtC,KAAK2pC,mBAAqBsD,GAC1BjtC,KAAK4pC,mBAAqBnB,EAAIzL,IAAIiF,cAAc2K,WAAWnrB,UAC3DzhB,KAAK4pC,kBAAoBnB,EAAIzL,IAAIiF,cAAc2K,WAAWnrB,SAC1DzhB,KAAKgqC,YAAcvB,EAAIzL,IAAIgN,aAC3BhqC,KAAKgqC,WAAavB,EAAIzL,IAAIgN,YAC9B,IAAI/E,EAASwD,EAAIlK,sBACjBv+B,KAAKsqC,aAAe7B,EAAIzD,2BACT,OAAXC,GACAjlC,KAAK8pC,oBAAqB,EAC1B9pC,KAAK+pC,cAAgBtB,EAAIpE,iBAAiBY,KAG1CjlC,KAAK8pC,oBAAqB,EAC1B9pC,KAAK+pC,eAAgB,GAEzB,IAAIQ,GAAqB9B,EAAI1L,GAAGoQ,iBACxB1mC,KAAKD,MAAQxG,KAAKkqC,cAAiB,KACvClqC,KAAKuqC,mBAAqBA,IAC1BvqC,KAAKuqC,kBAAoBA,EAEjC,EAEA6C,iCAAkC,WAC9BptC,KAAKmqC,iBAAmB,CAC5B,EAEA5M,aAAc,SAAU7a,GACpB,GAAuB,OAAnB1iB,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,sDACpB3N,KAAK0qC,KAAKvD,KAAK5J,aAAa7a,EAChC,EAUA6f,yBAA0B,SAAUC,GAChC,GAAuB,OAAnBxiC,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,kEACpB3N,KAAK0qC,KAAKvD,KAAK5E,yBAAyBC,EAC5C,EAOAC,yBAA0B,SAAUD,GAChC,GAAuB,OAAnBxiC,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,kEACpB3N,KAAK0qC,KAAKvD,KAAK1E,yBAAyBD,EAC5C,EAKAE,qBAAsB,SAAUjhB,GAC5B,GAAuB,OAAnBzhB,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,8DACpB3N,KAAK0qC,KAAKvD,KAAKzE,qBAAqBjhB,GACpCzhB,KAAK4pC,kBAAoBnoB,CAC7B,EAQAkhB,iBAAkB,SAAUnrB,GACxB,GAAuB,OAAnBxX,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,0DACpB3N,KAAK0qC,KAAKvD,KAAKxE,iBAAiBnrB,EACpC,EAQAklB,KAAM,SAAU2Q,GACZ,GAAuB,OAAnBrtC,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,8CACpB3N,KAAK0qC,KAAKvD,KAAKnK,IAAIN,KAAK2Q,EAC5B,EAEAC,KAAM,SAAUjlC,GACZ,GAAuB,OAAnBrI,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,8CACpB3N,KAAK0qC,KAAKvD,KAAKnK,IAAIsQ,KAAKjlC,EAAK0iC,EAAG1iC,EAAKrE,EACzC,EAEAupC,KAAM,SAAUllC,GACZ,GAAuB,OAAnBrI,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,8CACpB3N,KAAK0qC,KAAKvD,KAAKnK,IAAIwQ,MAAMnlC,EAAK0iC,EAAG1iC,EAAKrE,EAC1C,EAKAypC,QAAS,SAAU73B,GACf,GAAuB,OAAnB5V,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,iDACpB3N,KAAK0qC,KAAKvD,KAAK9J,IAAIqQ,QAAQ93B,GAC3B5V,KAAKwpC,sBAAwB,CACjC,EASAmE,aAAc,SAAUC,GACpB,GAAuB,OAAnB5tC,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,sDAChB3N,KAAK0qC,KAAKvD,KAAK9J,IAAIwQ,gBAAkBD,IACrC5tC,KAAK0qC,KAAKvD,KAAK9J,IAAIyQ,aAAaF,GAChC5tC,KAAKypC,UAAYmE,EACjB5tC,KAAKwpC,sBAAwB,EAErC,EASAuE,aAAc,SAAUC,GACpB,GAAuB,OAAnBhuC,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,sDAChB3N,KAAK0qC,KAAKvD,KAAK9J,IAAI4Q,mBAAqBD,IACxChuC,KAAK0qC,KAAKvD,KAAK9J,IAAI6Q,gBAAgBF,GAE/BhuC,KAAKypC,UADLuE,EACiBhuC,KAAK0qC,KAAKvD,KAAK9J,IAAIwQ,eAGnB,EAErB7tC,KAAKwpC,sBAAwB,EAErC,EAKA2E,UAAW,WACP,GAAuB,OAAnBnuC,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,oDACpB,IAAIs3B,EAASjlC,KAAK0qC,KAAKvD,KAAK5I,sBAC5B,GAAe,OAAX0G,EACA,MAAM,IAAIt3B,MAAM,oBACpBs3B,EAAOmJ,MACX,EAKAC,yBAA0B,WACtB,GAAuB,OAAnBruC,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,yDACpB,IAAIs3B,EAASjlC,KAAK0qC,KAAKvD,KAAK5I,sBAC5B,GAAe,OAAX0G,EACA,MAAM,IAAIt3B,MAAM,yBAEpBs3B,EAAOqJ,WACX,EAUAC,sCAAuC,SAAU3tC,GAC7C,GAAuB,OAAnBZ,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,+EACpB,IAAIs3B,EAASjlC,KAAK0qC,KAAKvD,KAAK5I,sBAC5B,GAAe,OAAX0G,EACA,MAAM,IAAIt3B,MAAM,6BACpBs3B,EAAOuJ,6BAA6B5tC,EACxC,EASAilC,mBAAoB,SAAUjlC,GAC1B,GAAuB,OAAnBZ,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,4DACpB3N,KAAK0qC,KAAKvD,KAAKtB,mBAAmBjlC,EACtC,EAEA6tC,cAAe,SAAU9jC,GACrB,OAAO9H,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAI0uC,EAAQxJ,EAAM/6B,EAAMsD,EAAQkhC,EAChC,OAAO9qC,EAAY7D,MAAM,SAAUqG,GAK/B,OAJAqZ,GAAoBud,WAAWC,UAAU0R,WAAWjkC,GAAQ,IAC5D+jC,EAAShvB,GAAoBud,WAAWC,UAAU2R,SAClDH,EAAOI,UAAS,GAChB5J,EAAOwJ,EAAOvJ,WACD,OAATD,EACO,CAAC,EAAc9hC,QAAQD,QAAQ,QAE1CgH,EAAO+6B,EAAK6J,aACZthC,EAAS,IAAID,WACbC,EAAOuhC,WAAW7kC,GAClBwkC,EAAU,GACH,CAAC,EAAc,IAAIvrC,SAAQ,SAAUD,EAASg9B,GAC7C1yB,EAAOC,UAAY,WACfihC,GAAWlhC,EAAO/J,OAClBP,EAAQwrC,EACZ,CACJ,KACR,GACJ,GACJ,EAQAnQ,aAAc,WACV,OAAO37B,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAIijB,EAAQjjB,KACZ,OAAO6D,EAAY7D,MAAM,SAAUqG,GAC/B,OAAuB,OAAnBrG,KAAK0qC,KAAKvD,KACH,CAAC,EAAcnnC,KAAK0qC,KAAKvD,KAAK3I,gBAG9B,CAAC,EAAc,IAAIp7B,SAAQ,SAAUD,EAASg9B,GAC7C,IAAI8O,EAAkB,WAClBhsB,EAAMynB,KAAKvD,KAAK3I,eAAe56B,KAAKT,EACxC,EACwB,OAApB8f,EAAMynB,KAAKvD,KACX8H,IAGAhsB,EAAMynB,KAAKtD,kBAAkBziC,KAAKsqC,EAE1C,IAGZ,GACJ,GACJ,EAQAnQ,cAAe,SAAUz4B,GACrB,IAAI04B,EAAQ14B,EAAG04B,MAAOC,EAAS34B,EAAG24B,OAAQC,EAAU54B,EAAG44B,QAASC,EAAU74B,EAAG64B,QAASC,EAAU94B,EAAG84B,QACnG,OAAOt8B,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,OAAO6D,EAAY7D,MAAM,SAAU29B,GAC/B,GAAuB,OAAnB39B,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,uDACpB,MAAO,CAAC,EAAc3N,KAAK0qC,KAAKvD,KAAKrI,cAAcC,EAAOC,EAAQC,EAASC,EAASC,GACxF,GACJ,GACJ,EAEAC,gBAAiB,SAAU/4B,GACvB,IAAI04B,EAAQ14B,EAAG04B,MAAOC,EAAS34B,EAAG24B,OAAQC,EAAU54B,EAAG44B,QAASE,EAAU94B,EAAG84B,QAC7E,GAAuB,OAAnBn/B,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,6DACpB,OAAO3N,KAAK0qC,KAAKvD,KAAK/H,gBAAgBL,EAAOC,EAAQC,EAASE,EAClE,EAOAE,WAAY,SAAU7nB,GAClB,OAAO3U,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,OAAO6D,EAAY7D,MAAM,SAAUqG,GAC/B,GAAuB,OAAnBrG,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,oDACpB,MAAO,CAAC,EAAc3N,KAAK0qC,KAAKvD,KAAK9H,WAAW7nB,GACpD,GACJ,GACJ,EAMA03B,iBAAkB,SAAU9uC,GACxB,GAAuB,OAAnBJ,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,0DACpB3N,KAAK0qC,KAAKvD,KAAKnK,IAAIiF,cAAckN,qBAAqB/uC,EAC1D,EAMAokC,SAAU,SAAUn+B,GAChB,IAAIqE,EAAMrE,EAAGqE,IAAK0jC,EAAO/nC,EAAG+nC,KAC5B,OAAOvrC,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAIoqC,EAAaC,EAAoBpF,EAAQC,EAAMkK,EAAQ5sC,EAC3D,OAAOqB,EAAY7D,MAAM,SAAU29B,GAC/B,OAAQA,EAAGz5B,OACP,KAAK,EACD,GAAuB,OAAnBlE,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,kDACpB,OAAKygC,EACE,CAAC,EAAapuC,KAAK0qC,KAAKvD,KAAKvC,gBAAgBl6B,IADlC,CAAC,EAAa,GAEpC,KAAK,EAED,OADAizB,EAAGx5B,OACI,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAanE,KAAK0qC,KAAKvD,KAAK3C,SAAS95B,IACrD,KAAK,EACDizB,EAAGx5B,OACHw5B,EAAGz5B,MAAQ,EACf,KAAK,EAID,GAHAkmC,EAAc,KACdC,EAAqB,GACrBpF,EAASjlC,KAAK0qC,KAAKvD,KAAK5I,sBACT,OAAX0G,IACAC,EAAOD,EAAOE,WACD,OAATD,GAGA,IAFAkF,EAAmC,KAArBlF,EAAKU,cACnBwJ,EAASlK,EAAKK,gBAAgB5iC,OACzBH,EAAI,EAAGA,EAAI4sC,EAAQ5sC,IACpB6nC,EAAmB1lC,KAAKugC,EAAKI,wBAAwB9iC,IAMjE,OAFAxC,KAAKoqC,YAAcA,EACnBpqC,KAAKqqC,mBAAqBA,EACnB,CAAC,GAEpB,GACJ,GACJ,EAUAzK,oBAAqB,SAAUv5B,GAC3B,IAAIqE,EAAMrE,EAAGqE,IAAKm1B,EAAmBx5B,EAAGw5B,iBACxC,OAAOh9B,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAI0D,EACJ,OAAOG,EAAY7D,MAAM,SAAU29B,GAC/B,OAAQA,EAAGz5B,OACP,KAAK,EACD,GAAuB,OAAnBlE,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,6DACpB,MAAO,CAAC,EAAa3N,KAAK0qC,KAAKvD,KAAKvH,oBAAoBl1B,EAAKm1B,IACjE,KAAK,EAGD,OAFAn8B,EAASi6B,EAAGx5B,OACZnE,KAAKopC,mBAAqBA,KACnB,CAAC,EAAc1lC,GAElC,GACJ,GACJ,EAUA+7B,wBAAyB,SAAUC,GAC/B,GAAuB,OAAnB1/B,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,iEACpB,OAAO3N,KAAK0qC,KAAKvD,KAAK1H,wBAAwBC,EAClD,EAMA2P,YAAa,SAAUpoC,GACnB,GAAuB,OAAnBjH,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,qDACpB,IAAI2hC,EAAW,GACf,GAAkB,kBAAProC,EAAiB,CACxBqoC,EAAWroC,EACX,IAAIukC,EAAO9rB,GAAoBssB,KAAKuD,WAAWtoC,GAC/CjH,KAAK0qC,KAAKvD,KAAKhK,GAAGqS,gBAAgBhE,GAAM,GAAM,EAClD,MAEI8D,EAAWroC,EAAGyC,WACd1J,KAAK0qC,KAAKvD,KAAKhK,GAAGqS,gBAAgBvoC,GAAI,GAAM,UAIzCjH,KAAK6pC,eAAeyF,UACpBtvC,KAAKiqC,kBAAkBqF,GAC9BtvC,KAAKspC,aAAed,GAAiBxoC,KAAK0qC,KAC9C,EAOAxK,iBAAkB,SAAU1oB,GACxB,OAAO3U,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAIyvC,EAAUxH,EACd,OAAOpkC,EAAY7D,MAAM,SAAUqG,GAC/B,OAAQA,EAAGnC,OACP,KAAK,EACD,GAAuB,OAAnBlE,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,0DACpB,MAAO,CAAC,EAAa3N,KAAK0qC,KAAKvD,KAAKjH,iBAAiB1oB,IACzD,KAAK,EAKD,OAJAi4B,EAAWppC,EAAGlC,OACd8jC,EAAWwH,EAASxoC,GAAGyC,WACvB1J,KAAK6pC,eAAe5B,GAAY,IAAInnC,GAAmB2uC,GACvDzvC,KAAKspC,aAAed,GAAiBxoC,KAAK0qC,MACnC,CAAC,EAAc+E,GAElC,GACJ,GACJ,EAOAC,cAAe,SAAUl4B,GACrB,OAAO3U,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAI2vC,EACJ,OAAO9rC,EAAY7D,MAAM,SAAUqG,GAC/B,GAAuB,OAAnBrG,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,uDAOpB,OANAgiC,EAA0B,CACtBjlC,IAAK8M,EAAQ9M,IACb01B,KAAM,OACNz1B,KAAM6M,EAAQ7M,KACd01B,KAAM7oB,EAAQ6nB,YAEX,CAAC,EAAcr/B,KAAK0qC,KAAKvD,KAAKjH,iBAAiByP,GAC1D,GACJ,GACJ,EAIArP,sBAAuB,SAAU9oB,GAC7B,GAAuB,OAAnBxX,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,+DACpB3N,KAAK0qC,KAAKvD,KAAK7G,sBAAsB9oB,GACrCxX,KAAKspC,aAAed,GAAiBxoC,KAAK0qC,KAC9C,EAIAlK,iBAAkB,SAAUhpB,GACxB,GAAuB,OAAnBxX,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,0DACpB3N,KAAK0qC,KAAKvD,KAAK3G,iBAAiBhpB,GAEhC,IAAI5I,EAAQ5O,KAAK6pC,eAAeryB,EAAQvQ,IACpC2H,IACAA,EAAMs5B,UAAY1wB,EAAQopB,QAC1BhyB,EAAMiyB,KAAOrpB,EAAQqpB,KACrBjyB,EAAMkyB,KAAOtpB,EAAQspB,KAE7B,EAIAM,qBAAsB,SAAU5pB,GAC5B,GAAuB,OAAnBxX,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,8DACpB3N,KAAK0qC,KAAKvD,KAAK/F,qBAAqB5pB,GAEpC,IAAI5I,EAAQ5O,KAAK6pC,eAAeryB,EAAQvQ,IACpC2H,IACAA,EAAMy5B,aAAe7wB,EAAQ7M,KAErC,EAIA02B,uBAAwB,SAAU7pB,GAC9B,IAAI8pB,EAAKj7B,EACT,GAAuB,OAAnBrG,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,gEACpB3N,KAAK0qC,KAAKvD,KAAK9F,uBAAuB7pB,GAEtC,IAAI5I,EAAQ5O,KAAK6pC,eAAeryB,EAAQvQ,IACxC,GAAI2H,EACA,IACI,IAAK,IAAI+uB,EAAK/4B,EAAiB4S,EAAQxQ,UAAW42B,EAAKD,EAAGn6B,QAASo6B,EAAGj6B,KAAMi6B,EAAKD,EAAGn6B,OAAQ,CACxF,IAAIjB,EAAIq7B,EAAGh9B,MACX4hB,GAA0B5T,EAAM5H,SAAUzE,EAC9C,CACJ,CACA,MAAOg/B,GAASD,EAAM,CAAEt8B,MAAOu8B,EAAS,CACxC,QACI,IACQ3D,IAAOA,EAAGj6B,OAAS0C,EAAKs3B,EAAGxd,SAAS9Z,EAAG7F,KAAKm9B,EACpD,CACA,QAAU,GAAI2D,EAAK,MAAMA,EAAIt8B,KAAO,CACxC,CAER,EAMA4qC,iBAAkB,SAAUp4B,GACxB,OAAO3U,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAIyiB,EAAOotB,EAAMJ,EAAUxH,EAC3B,OAAOpkC,EAAY7D,MAAM,SAAUqG,GAC/B,OAAQA,EAAGnC,OACP,KAAK,EACD,GAAuB,OAAnBlE,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,0DAoBpB,OAnBA8U,EAAQziB,KAAK0qC,KAAKvD,KAAKhK,GAAG2S,uBAAuBt4B,EAAQuK,eAAgBvK,EAAQ7M,KAAM6M,EAAQmqB,SAG/Flf,EAAM6E,eAAe,GACrB7E,EAAM0E,eAAe,GACrB1E,EAAMuB,eAAe,GACrBvB,EAAMgI,gBAAgB,GACtBhI,EAAM4C,oBAAoB,GAC1B5C,EAAMmI,qBAAqB,GAC3BnI,EAAM2D,mBAAmB,GACzB3D,EAAMyI,iBAAiB,GACvBzI,EAAM+I,iBAAiB,GACvB/I,EAAMqJ,iBAAiB,GACvBrJ,EAAM6B,YAAYrG,GAAS8xB,QAC3BttB,EAAMT,mBAAmBxK,EAAQuK,gBACH,OAA1BvK,EAAQuK,gBACRU,EAAMlC,kBAAiB,GAE3BsvB,EAAOzsC,QAAQD,QAAQsf,GAChB,CAAC,EAAaotB,GACzB,KAAK,EAKD,OAJAJ,EAAWppC,EAAGlC,OACd8jC,EAAWwH,EAASxoC,GAAGyC,WACvB1J,KAAKiqC,kBAAkBhC,GAAY,IAAIpkB,GAAsB4rB,GAC7DzvC,KAAKspC,aAAed,GAAiBxoC,KAAK0qC,MACnC,CAAC,EAAc+E,GAElC,GACJ,GACJ,EAIA7N,wBAAyB,SAAUpqB,GAC/B,IAAIqqB,EAAKx7B,EACT,GAAuB,OAAnBrG,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,iEACpB3N,KAAK0qC,KAAKvD,KAAKvF,wBAAwBpqB,GAEvC,IAAI5I,EAAQ5O,KAAKiqC,kBAAkBzyB,EAAQvQ,IAC3C,QAAc3H,IAAVsP,EACA,IACI,IAAK,IAAI+uB,EAAK/4B,EAAiB4S,EAAQxQ,UAAW42B,EAAKD,EAAGn6B,QAASo6B,EAAGj6B,KAAMi6B,EAAKD,EAAGn6B,OAAQ,CACxF,IAAIjB,EAAIq7B,EAAGh9B,MACX6iB,GAA6B7U,EAAOrM,EACxC,CACJ,CACA,MAAOu/B,GAASD,EAAM,CAAE78B,MAAO88B,EAAS,CACxC,QACI,IACQlE,IAAOA,EAAGj6B,OAAS0C,EAAKs3B,EAAGxd,SAAS9Z,EAAG7F,KAAKm9B,EACpD,CACA,QAAU,GAAIkE,EAAK,MAAMA,EAAI78B,KAAO,CACxC,CAER,EAIAw8B,iBAAkB,SAAUhqB,GACxB,GAAuB,OAAnBxX,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,0DACpB3N,KAAK0qC,KAAKvD,KAAK3F,iBAAiBhqB,EAEpC,EASAuqB,qBAAsB,SAAUvqB,GAC5B,OAAO3U,EAAU7C,UAAM,OAAQ,GAAQ,WACnC,IAAI0/B,EAAQsQ,EAAMP,EAAUxH,EAAUrxB,EACtC,OAAO/S,EAAY7D,MAAM,SAAUqG,GAC/B,OAAQA,EAAGnC,OACP,KAAK,EACD,GAAsB,MAAlBlE,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,8DACpB,MAAO,CAAC,EAAa3N,KAAK0qC,KAAKvD,KAAKpF,qBAAqBvqB,IAC7D,KAAK,EAaD,OAZAkoB,EAASr5B,EAAGlC,OACZ6rC,EAAOtQ,EAAOoI,qBACD,OAATkI,IACAP,EAAWO,EAAKjI,8BAChBE,EAAWwH,EAASxoC,GAAGyC,WACvB1J,KAAKiqC,kBAAkBhC,GAAY,IAAIpkB,GAAsB4rB,GAC7D74B,EAAOwyB,KAAqB6G,MAAK,SAAUlF,GAAK,OAAOA,EAAEpgC,OAAS6M,EAAQ7M,IAAM,SACnErL,IAATsX,IACAA,EAAK3P,GAAKghC,IAGlBjoC,KAAKspC,aAAed,GAAiBxoC,KAAK0qC,MACnC,CAAC,EAAchL,GAElC,GACJ,GACJ,EAEAyC,yBAA0B,SAAU3qB,GAChC,GAAsB,MAAlBxX,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,kEACpB,OAAO3N,KAAK0qC,KAAKvD,KAAKhF,yBAAyB3qB,EACnD,EAEA04B,wBAAyB,SAAUvlC,GAC/B,GAAsB,MAAlB3K,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,iEACpB3N,KAAK0qC,KAAKvD,KAAKnK,IAAIkT,wBAAwBvlC,GAC3C,IAAI1D,EAAKyY,GAAoBssB,KAAKC,WAAWthC,GAAMjB,kBAC5C1J,KAAKiqC,kBAAkBhjC,GAC9BjH,KAAKspC,aAAed,GAAiBxoC,KAAK0qC,KAC9C,EAGAyF,cAAe,SAAUC,GACrB,GAAuB,OAAnBpwC,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,uDACpB3N,KAAK0qC,KAAKvD,KAAKpK,GAAGoT,cAAcC,EACpC,EAEAC,iBAAkB,SAAUD,GACxB,GAAuB,OAAnBpwC,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,0DACpB3N,KAAK0qC,KAAKvD,KAAKpK,GAAGsT,iBAAiBD,EACvC,EAEAE,iBAAkB,WACd,GAAuB,OAAnBtwC,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,0DACpB3N,KAAK0qC,KAAKvD,KAAKpK,GAAGuT,kBACtB,EAIApK,aAAc,SAAU1uB,GACpB,GAAuB,OAAnBxX,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,0DACpB,OAAO3N,KAAK0qC,KAAKvD,KAAKjB,aAAa1uB,EACvC,EAGA8uB,aAAc,SAAU9uB,GACpB,GAAuB,OAAnBxX,KAAK0qC,KAAKvD,KACV,MAAM,IAAIx5B,MAAM,sDACpB,OAAO3N,KAAK0qC,KAAKvD,KAAKb,aAAa9uB,EACvC,EAMA+4B,eAAgB,WACZ7wB,GAAoB8wB,UAAUC,YAClC,KAMJC,GAAa,CAAC,MAClB,SAASC,GAAOC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GACjD,OAAQ,EAAG/rC,EAA8CgsC,cAAc,EAAGhsC,EAA8CisC,oBAAoB,MAAO,CAC/IlqC,GAAI2pC,EAAKQ,SACTC,MAAO,yBACR,KAAM,EAAGX,GAChB,CAUA,IAAIY,GAAY,EAIa,MAAMC,IAAoC,EAAGrsC,EAA8CssC,iBAAiB,CACrI1yC,MAAO,CAEH2yC,aAAc,CAAEnnC,KAAMtI,OAAQ0vC,QAAS,MAAOC,UAAU,GACxDC,4BAA6B5vC,OAC7B6vC,SAAU7vC,QAEdyF,KAAM,WACF,MAAO,CACH2pC,SAAU,GACV3I,SAAKnpC,EACLwyC,kBAAcxyC,EAEtB,EACAyyC,QAAS3vC,EAAS,CAAC,EAAG2b,GAAW5c,GAAa,CAC1C,mCACA,yBACA,6BACA,iBACA,kBAEJ6wC,QAAS,WAEL,IAAIC,OAAwB3yC,IAAlBU,KAAK6xC,SAAyB,UAAUt9B,OAAO+8B,IAAatxC,KAAK6xC,SAC3EnyC,OAAOwyC,iBAAiBlyC,KAAM,CAC1BoxC,SAAU,CAAEvxC,IAAK,WAAc,OAAOoyC,CAAK,KAE/CX,IAAa,CACjB,EACAa,QAAS,WACL,IAAIlvB,EAAQjjB,KACZA,KAAKyoC,KAAM,EAAGvjC,EAA8CwR,SAAS,IAAI6kB,GAAY,CACjFY,KAAMn8B,KAAKoxC,SACXhV,yBAAyB,EAEzBI,aAAc,KACdC,YAAa,KACbH,yBAA0Bt8B,KAAK4xC,+BAInC5xC,KAAKusC,uBAAuBvsC,KAAKyoC,KACjC,IAAIkI,EAAS,WACT,IAAIlI,EAAMxlB,EAAMwlB,IAChBxlB,EAAM6uB,aAAe3xC,OAAOiyC,sBAAsBzB,GAClDlI,EAAIzL,IAAIqV,iBACRpvB,EAAMwpB,gBACV,EAKAzsC,KAAKw+B,eAAe56B,MAAK,YACrB,EAAGsB,EAA8C4W,YAAYlY,MAAK,WAC9Dqf,EAAM6uB,aAAe3xC,OAAOiyC,sBAAsBzB,EACtD,GACJ,IACA3wC,KAAKyoC,IAAIzM,kBAAoB,SAAWsW,GACpCrvB,EAAMmqB,kCACT,CACL,EACAmF,UAAW,gBACmBjzC,IAAtBU,KAAK8xC,eACL3xC,OAAOqyC,qBAAqBxyC,KAAK8xC,cACjC9xC,KAAK8xC,kBAAexyC,QAEPA,IAAbU,KAAKyoC,MACLzoC,KAAKyoC,IAAIzM,kBAAoB,MAEjCh8B,KAAKwsC,4BACT,IAMJ,IAAIiG,GAAe,EAAoB,KAOvC,MAAMC,IAA2B,EAAGD,GAA0B7zC,GAAG2yC,GAAkC,CAAC,CAAC,SAASZ,MAE3EgC,GAAY,GAqE/C,IAAI1xC,IAAoB,EAAGiE,EAA8CssC,iBAAiB,CACtF1yC,MAAO,CAIH2yC,aAAc,CAAEnnC,KAAMtI,OAAQ0vC,QAAS,MAAOC,UAAU,GAExDC,4BAA6B5vC,QAEjC8Y,SAAU1Y,EAASA,EAAS,CAAC,EAAGub,GAASxc,GAAa,CAClDyxC,gBAAiB,eACjBC,sBAAuB,qBACvBC,sBAAuB,qBACvBC,eAAgB,cAChBC,wBAAyB,uBACzBC,aAAc,YACdC,UAAW,SACXC,sBAAuB,qBACvBC,qBAAsB,oBACtBC,kBAAmB,iBACnBC,sBAAuB,qBACvBC,iBAAkB,gBAClBC,SAAU,QACVC,cAAe,aACfC,WAAY,UACZC,qBAAsB,oBACtBC,qBAAsB,oBACtBC,mBAAoB,kBACpBC,eAAgB,cAChBC,sBAAuB,qBACvBC,gBAAiB,eACjBC,WAAY,aACXt2B,GAASxc,GAAa,CACvB,4BACA,0BACA,0BACA,YACA,mBACA,oBACA,wBACA,sBACA,iBACA,uBACA,mBACA,mBACA,uBACA,oCAEJ4wC,QAAS3vC,EAAS,CAAC,EAAG2b,GAAW5c,GAAa,CAC1C,uBACA,mBACA,2BACA,gBACA,kBACA,aACA,sBACA,0BACA,gBACA,mBACA,WACA,gBACA,eAEA,gBACA,yBACA,0BACA,eACA,eACA,eACA,mBACA,cACA,mBACA,0BACA,qBACA,2BACA,eACA,eACA,uBACA,2BACA,uBACA,wBACA,wCACA,UACA,mBACA,mBACA,YACA,mBACA,2BACA,mBAEA,OACA,OACA,OACA,sBAoCJC,GAAWuW,KACfvW,GAASmX,KAAI,SAAUlS,GACnB,IAAI6J,EAAQ7J,EAAG6J,MACfA,EAAMw6B,KAAO,IAAIxD,EACrB,GAMC,EA5lPD,GA8lPiB,CACP,EA/sPM,I,wBCVhB,SAA2C/oC,EAAMC,GAE/CC,OAAOC,QAAUF,GAOlB,EATD,CASG4B,GAAM,IACO,MACN,aACA,IAAItB,oBAAsB,CAE9B;;;+BAIA,CAAEC,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC20C,WAAY,IAAM,EAClBC,OAAQ,IAAM,EACdC,KAAM,IAAM,EACZC,SAAU,IAAM,IAElB,IAAIC,EAA8C,wBAA2C,uBACzFC,EAAsC,gBAAmC,eACzEC,EAA4C,sBAAyC,qBACrFC,EAAyD,mCAAsD,kCAC/GC,EAAwD,kCAAqD,iCAC7GC,EAAyC,mBAAsC,kBAC/EC,EAA+C,yBAA4C,wBAqBpH,SAASV,IACLl0C,KAAK60C,mBAAoB,EACzB70C,KAAK80C,iBAAkB,EACvB90C,KAAK+0C,SAAW,EAChB/0C,KAAKg1C,iBAAkB,CAC3B,CAEAd,EAAWe,UAAY,KACvBf,EAAWgB,SAAW,KACtBhB,EAAWiB,qBAAuB,KAClCjB,EAAWkB,aAAe,KAC1BlB,EAAWmB,YAAa,EAExBnB,EAAWoB,UAAY,SAAUrT,IACD,MAAxBiS,EAAWe,WAAqBf,EAAWmB,cAC3CnB,EAAWe,UAAY,IAAIR,EAAuDc,UAAUtT,GAC5FiS,EAAWgB,SAAW,IAAIT,EAAuDe,SACjFtB,EAAWiB,qBAAuB,IAAIV,EAAuDgB,gBAC7FvB,EAAWkB,aAAe,IAAIX,EAAuDiB,aACrFxB,EAAWgB,SAASS,mBAAkB,GACtCzB,EAAWkB,aAAaQ,eAAgB,EAEhD,EAEA1B,EAAW2B,UAAY,SAAU5T,GAC7BiS,EAAWmB,YAAa,EACA,MAApBpT,EAAc6T,KAGU,MAAxB5B,EAAWe,WACXf,EAAWe,UAAUc,KAAK9T,EAAe,GAAG,GAErB,MAAvBiS,EAAWgB,UACXhB,EAAWgB,SAASc,UAAU/T,EAAe,GAEV,MAAnCiS,EAAWiB,sBACXjB,EAAWiB,qBAAqBY,KAAK9T,EAAe,GAEzB,MAA3BiS,EAAWkB,cACXlB,EAAWkB,aAAaW,KAAK9T,EAAe,EAAG,GAEvD,EAEAiS,EAAW+B,WAAa,SAAUC,EAAQC,EAAQC,EAAQC,GACtDF,EAASA,EAAS,IAAM7wC,KAAK8Z,GAC7Bi3B,EAASA,EAAS,IAAM/wC,KAAK8Z,GAC7B82B,EAASA,EAAS,GAAK5wC,KAAK8Z,GAC5Bg3B,EAASA,EAAS,GAAK9wC,KAAK8Z,GAC5B,IAAI2rB,EAAIzlC,KAAKgxC,IAAIH,GAAU7wC,KAAKixC,IAAIF,GAAU/wC,KAAKixC,IAAIJ,GAAU7wC,KAAKgxC,IAAID,GAAU/wC,KAAKgxC,IAAIF,EAASF,GAClGlyC,EAAIsB,KAAKgxC,IAAID,GAAU/wC,KAAKixC,IAAIH,EAASF,GACzCM,EAAIlxC,KAAKixC,IAAIJ,GAAU7wC,KAAKixC,IAAIF,GAAU/wC,KAAKgxC,IAAIH,GAAU7wC,KAAKgxC,IAAID,GAAU/wC,KAAKgxC,IAAIF,EAASF,GAClGO,EAASnxC,KAAKoxC,MAAMpxC,KAAKqxC,KAAK5L,EAAIA,EAAI/mC,EAAIA,GAAIwyC,GAKlD,OAJAC,EAASA,EAASnxC,KAAK8Z,GAAK,IACxBq3B,EAAS,IACTA,GAAU,KAEPA,CACX,EAEAvC,EAAW0C,YAAc,SAAUC,GAC/B,OAAQA,EAAK,GAAK,GAAMA,EAAIp2C,GAAK,GAAOo2C,EAAK,GAAK,EAAIA,EAAIn1C,CAC9D,EAEAwyC,EAAW4C,iBAAmB,SAAUD,EAAKp1B,GACzC,OAAOA,GAAW,GAAKo1B,EAAIp2C,GAAK,GAAKo2C,EAAI/2C,GAAK,EAAI+2C,EAAIn1C,CAC1D,EAEA,IAAIq1C,EAAc,CACdhB,KAAM,SAAU9T,GAAiB,EAEjCzgB,YAAa,WACT,OAAOxhB,KAAK+0C,QAChB,EAEArzB,YAAa,SAAU9gB,GAGnB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAK+0C,SAAWn0C,EACTA,CACX,EAEA2rB,OAAQ,WACJ,OAAOvsB,KAAKg3C,GAChB,EAEAxqB,OAAQ,SAAU5rB,GAEd,OADAZ,KAAKg3C,IAAMp2C,EACJA,CACX,EAEAksB,QAAS,WACL,OAAO9sB,KAAKi3C,IAChB,EAEAjqB,QAAS,SAAUpsB,GAEf,OADAZ,KAAKi3C,KAAOr2C,EACLA,CACX,EAEA6rB,UAAW,WACP,OAAOzsB,KAAKk3C,MAChB,EAEAxqB,UAAW,SAAU9rB,GAEjB,OADAZ,KAAKk3C,OAASt2C,EACPA,CACX,EAEA+rB,mBAAoB,WAChB,OAAO3sB,KAAKg1C,eAChB,EAEAnoB,mBAAoB,SAAUjsB,GAE1B,OADAZ,KAAKg1C,gBAAkBp0C,EAChBA,CACX,EAEAu2C,QAAS,SAAUlV,EAAemV,EAAInM,EAAKF,EAAG/mC,GAC1C,OAAO,CACX,EAEAqzC,WAAY,WACR,OAAOr3C,KAAKs3C,MAChB,EAEAC,WAAY,SAAU32C,GAElB,OADAZ,KAAKs3C,OAAS12C,EACPA,CACX,GAQJ,SAASuzC,IACLn0C,KAAKw3C,SAAU,EACfx3C,KAAKy3C,gBAAiB,EACtBz3C,KAAK03C,eAAiB,EACtB13C,KAAK23C,UAAY,GACjB33C,KAAK43C,aAAejD,EAAuCkD,OAAOC,YAClE93C,KAAK+3C,aAAepD,EAAuCkD,OAAOC,YAClE93C,KAAKg4C,MAAQ,EACbh4C,KAAKi4C,OAAS,EACd/D,EAAW1zC,KAAKR,KACpB,EAfA,EAAGs0C,EAA4C4D,cAAc,aAAc,CAAChE,EAAY6C,EAAa,OAiBrG,IAAIoB,EAAU,CACV7qB,SAAU,WACN,OAAOttB,KAAKw3C,OAChB,EAEAhqB,SAAU,SAAU5sB,GAGhB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAKw3C,QAAU52C,EACRA,CACX,EAEAytB,gBAAiB,WACb,OAAOruB,KAAKy3C,cAChB,EAEAlpB,gBAAiB,SAAU3tB,GAGvB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAKy3C,eAAiB72C,EACfA,CACX,EAEAmtB,cAAe,WACX,OAAO/tB,KAAK03C,cAChB,EAEAzpB,cAAe,SAAUrtB,GAGrB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAK03C,eAAiB92C,EACfA,CACX,EAEAstB,WAAY,WACR,OAAOluB,KAAK23C,SAChB,EAEAvpB,WAAY,SAAUxtB,GAGlB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAK23C,UAAY/2C,EACVA,CACX,EAEAgtB,cAAe,WACX,OAAO5tB,KAAK43C,aAAaluC,UAC7B,EAEAokB,cAAe,SAAUltB,GAGrB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAK43C,aAAejD,EAAuCyD,MAAMC,KAAKz3C,GAC/DA,CACX,EAEA6sB,cAAe,WACX,OAAOztB,KAAK+3C,aAAaruC,UAC7B,EAEAikB,cAAe,SAAU/sB,GAGrB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAK+3C,aAAepD,EAAuCyD,MAAME,SAAS13C,GACnEA,CACX,EAEA23C,UAAW,SAAUvN,EAAIC,GACrBiJ,EAAWmB,YAAa,EACxBr1C,KAAKg4C,MAAQhN,EAAK,GAClBhrC,KAAKi4C,OAAShN,EACdjrC,KAAKs3C,OAAS1C,EAA6C4D,YAAYC,UAAUz4C,KAAKg4C,MAAOh4C,KAAKi4C,OACtG,EAEAlC,KAAM,SAAU9T,GACZ,IAAIyW,GAAW,EACXC,EAAM34C,KAAK23C,UACX33C,KAAKy3C,iBACLkB,GAAO1W,EAAc2W,eAAiB,MAE1C,IAAIC,EAAiB5W,EAAc6W,IAAIC,UAAU/4C,KAAKs3C,QAOtD,GANIuB,EAAerC,EAAI,IACnBkC,GAAW,GAEXlE,EAA0CwE,SAASC,IAAIhX,EAAciX,gBAAiBl5C,KAAKs3C,QAAU,MACrGoB,GAAW,GAES,MAApBzW,EAAc6T,IACd,GAAI5B,EAAWmB,YAAcr1C,KAAK80C,gBAAiB,CAQ/C,IAPA,IAAIqE,EAAK3E,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG,GACrEi3C,EAAU5E,EAA0CwE,SAASK,MAAMr5C,KAAKs3C,OAAQ6B,GAChFG,EAAU9E,EAA0CwE,SAASK,MAAMr5C,KAAKs3C,OAAQ8B,GAChF34C,EAAIT,KAAK23C,UAAY,GACrB4B,EAAW,GACXC,EAA8B,EAAVl0C,KAAK8Z,GAASm6B,EAClCE,EAAa,GACRC,EAAI,EAAGA,GAAKH,EAAUG,IAAK,CAChC,IAAI3O,EAAIzlC,KAAKgxC,IAAIoD,EAAIF,GAAqB/4C,EACtCuD,EAAIsB,KAAKixC,IAAImD,EAAIF,GAAqB/4C,EAC1Cg5C,EAAW90C,KAAK6vC,EAA0CwE,SAAS72C,OAAOnC,KAAKs3C,OAAOvM,EAAIA,EAAIqO,EAAQrO,EAAI/mC,EAAIs1C,EAAQvO,EAAG/qC,KAAKs3C,OAAOtzC,EAAI+mC,EAAIqO,EAAQp1C,EAAIA,EAAIs1C,EAAQt1C,EAAGhE,KAAKs3C,OAAOd,EAAIzL,EAAIqO,EAAQ5C,EAAIxyC,EAAIs1C,EAAQ9C,GACxN,CACA,GAAIx2C,KAAK03C,eAAiB,GAAK+B,EAAW92C,OAAS,EAAG,CAClD,IAAIg3C,EAAuB35C,KAAK43C,aAAagC,SAC7CD,EAAqBptC,EAAIjH,KAAKu0C,MAAMF,EAAqBptC,EAAIvM,KAAKwhB,eAClE,IAAK,IAAIhf,EAAI,EAAGA,EAAKi3C,EAAW92C,OAAS,EAAIH,IACzC0xC,EAAWgB,SAAS4E,QAAQL,EAAWj3C,GAAIi3C,EAAWj3C,EAAI,GAAIm3C,EAAsB,IAAIlF,EAAuDsF,MAAM,EAAG,GAEhK,CACA,GAAI/5C,KAAKw3C,QAAS,CACd,IAAIwC,EAAuBh6C,KAAK+3C,aAAa6B,SAC7CI,EAAqBztC,EAAIjH,KAAKu0C,MAAMG,EAAqBztC,EAAIvM,KAAKwhB,eAClE,IAAIy4B,EAAMzF,EAA0CwE,SAAS72C,OAAOnC,KAAKs3C,OAAOvM,EAAG/qC,KAAKs3C,OAAOtzC,EAAGhE,KAAKs3C,OAAOd,GAC9GiD,EAAWj0C,OAAO,EAAG,EAAGy0C,GACxB/F,EAAWiB,qBAAqB+E,SAAST,EAAYO,EAAsB,IAAIvF,EAAuDsF,MAAM,EAAG,GACnJ,CACA/5C,KAAK80C,iBAAkB,CAC3B,OAEA,GAAI4D,EAAU,CACV,IAAI/kC,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0mC,YAAcr6C,KAAKwhB,cACvB7N,EAAI2mC,YACJ3mC,EAAI4mC,IAAI1B,EAAe9N,EAAG8N,EAAe70C,EAAG20C,EAAK,EAAa,EAAVrzC,KAAK8Z,IAAQ,GACjEzL,EAAIqa,UAAYhuB,KAAK03C,eACrB/jC,EAAI6mC,UAAYx6C,KAAK+3C,aAAaruC,WAC9B1J,KAAKw3C,SACL7jC,EAAI4Z,OAER5Z,EAAI0mC,YAAc,EAClB1mC,EAAI8mC,YAAcz6C,KAAK43C,aAAaluC,WACpCiK,EAAI+mC,SACJ/mC,EAAIgnC,SACR,CAER,EAEAxD,QAAS,SAAUlV,EAAemV,EAAInM,EAAKF,EAAG/mC,GAC1C,GAAIuwC,EAAoCqG,GAAGC,YAAY76C,KAAKusB,UACxD,OAAO,EAEX,IAAIosB,EAAM34C,KAAK23C,UAIf,OAHK33C,KAAKy3C,iBACNkB,GAAO1W,EAAc2W,eAAiB,MAEnC1E,EAAW+B,WAAWmB,EAAInM,EAAKjrC,KAAKg4C,MAAOh4C,KAAKi4C,QAAUU,CACrE,GAQJ,SAASvE,IACLp0C,KAAK86C,UAAY,GACjB96C,KAAKw3C,SAAU,EACfx3C,KAAK03C,eAAiB,EACtB13C,KAAK43C,aAAejD,EAAuCkD,OAAOC,YAClE93C,KAAK+3C,aAAepD,EAAuCkD,OAAOC,YAClE5D,EAAW1zC,KAAKR,KACpB,EAZA,EAAGs0C,EAA4C4D,cAAc,SAAU,CAAC/D,EAAQgE,EAASjE,IAczF,IAAI6G,EAAQ,CACRC,SAAU,SAAUjQ,EAAG/mC,GACnBkwC,EAAWmB,YAAa,EACxBr1C,KAAK86C,UAAUn2C,KAAKiwC,EAA6C4D,YAAYC,UAAU1N,EAAI,GAAI/mC,GACnG,EAEAspB,SAAU,WACN,OAAOttB,KAAKw3C,OAChB,EAEAhqB,SAAU,SAAU5sB,GAGhB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAKw3C,QAAU52C,EACRA,CACX,EAEAmtB,cAAe,WACX,OAAO/tB,KAAK03C,cAChB,EAEAzpB,cAAe,SAAUrtB,GAGrB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAK03C,eAAiB92C,EACfA,CACX,EAEAgtB,cAAe,WACX,OAAO5tB,KAAK43C,aAAaluC,UAC7B,EAEAokB,cAAe,SAAUltB,GAGrB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAK43C,aAAejD,EAAuCyD,MAAME,SAAS13C,GACnEA,CACX,EAEA6sB,cAAe,WACX,OAAOztB,KAAK+3C,aAAaruC,UAC7B,EAEAikB,cAAe,SAAU/sB,GAGrB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAK+3C,aAAepD,EAAuCyD,MAAME,SAAS13C,GACnEA,CACX,EAEAm1C,KAAM,SAAU9T,GACZ,GAAwB,MAApBA,EAAc6T,IACd,GAAI5B,EAAWmB,YAAcr1C,KAAK80C,gBAAiB,CAE/C,IAAI2E,EAAaz5C,KAAK86C,UAEtB,GAAI96C,KAAK03C,eAAiB,GAAK13C,KAAK86C,UAAUn4C,OAAS,EAAG,CACtD,IAAIg3C,EAAuB35C,KAAK43C,aAAagC,SAC7CD,EAAqBptC,EAAIjH,KAAKu0C,MAAMF,EAAqBptC,EAAIvM,KAAKwhB,eAClE,IAAK,IAAIhf,EAAI,EAAGA,EAAKxC,KAAK86C,UAAUn4C,OAAS,EAAIH,IAC7C0xC,EAAWgB,SAAS4E,QAAQL,EAAWj3C,GAAIi3C,EAAWj3C,EAAI,GAAIm3C,EAAsB,IAAIlF,EAAuDsF,MAAM,EAAG,IAE5J7F,EAAWgB,SAAS4E,QAAQL,EAAWz5C,KAAK86C,UAAUn4C,OAAS,GAAI82C,EAAW,GAAIE,EAAsB,IAAIlF,EAAuDsF,MAAM,EAAG,GAChL,CACA,GAAI/5C,KAAKw3C,QAAS,CACd,IAAIwC,EAAuBh6C,KAAK+3C,aAAa6B,SAC7CI,EAAqBztC,EAAIjH,KAAKu0C,MAAMG,EAAqBztC,EAAIvM,KAAKwhB,eAClE,IAAIy5B,EAAUvG,EAAsDwG,YAAYC,oBAAoB1B,GACpG,IAASj3C,EAAI,EAAGA,EAAIy4C,EAAQt4C,OAAQH,GAAK,EACrC0xC,EAAWkB,aAAagG,uBAAuB3B,EAAWwB,EAAQz4C,IAAKi3C,EAAWwB,EAAQz4C,EAAI,IAAKi3C,EAAWwB,EAAQz4C,EAAI,IAAKw3C,EAAsB,IAAIvF,EAAuDsF,MAAM,EAAG,GAAI,EAErO,CACA/5C,KAAK80C,iBAAkB,CAC3B,MACG,CACH,IAAInhC,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0mC,YAAcr6C,KAAKwhB,cACvB7N,EAAI2mC,YACJ,IAAIe,GAAQ,EACRC,EAAS/G,EAAoCqG,GAAGW,UAAUv7C,KAAK86C,WACnE,MAAOQ,EAAOE,WAAY,CACtB,IAAIC,EAAMH,EAAOI,QACb7C,EAAiB5W,EAAc6W,IAAIC,UAAU0C,GACjD,GAAI5C,EAAerC,EAAI,EAEnB,YADA7iC,EAAIgnC,UAGR,GAAInG,EAA0CwE,SAASC,IAAIhX,EAAciX,gBAAiBuC,GAAO,IAE7F,YADA9nC,EAAIgnC,UAGJU,GACAA,GAAQ,EACR1nC,EAAIgoC,OAAO9C,EAAe9N,EAAG8N,EAAe70C,IAG5C2P,EAAIioC,OAAO/C,EAAe9N,EAAG8N,EAAe70C,EAEpD,CACA2P,EAAIkoC,YACJloC,EAAIqa,UAAYhuB,KAAK03C,eACjB13C,KAAKw3C,UACL7jC,EAAI6mC,UAAYx6C,KAAK+3C,aAAaruC,WAClCiK,EAAI4Z,QAER5Z,EAAI8mC,YAAcz6C,KAAK43C,aAAaluC,WACpCiK,EAAI0mC,YAAc,EAClB1mC,EAAI+mC,SACJ/mC,EAAIgnC,SACR,CACJ,GAQJ,SAAStG,IACLr0C,KAAK86C,UAAY,GACjB96C,KAAK03C,eAAiB,EACtB13C,KAAK43C,aAAejD,EAAuCkD,OAAOC,YAClE5D,EAAW1zC,KAAKR,KACpB,EAVA,EAAGs0C,EAA4C4D,cAAc,OAAQ,CAAC9D,EAAM2G,EAAO7G,IAYnF,IAAI4H,EAAY,CACZd,SAAU,SAAUjQ,EAAG/mC,GACnBkwC,EAAWmB,YAAa,EACxBr1C,KAAK86C,UAAUn2C,KAAKiwC,EAA6C4D,YAAYC,UAAU1N,EAAI,GAAI/mC,GACnG,EAEA+pB,cAAe,WACX,OAAO/tB,KAAK03C,cAChB,EAEAzpB,cAAe,SAAUrtB,GAGrB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAK03C,eAAiB92C,EACfA,CACX,EAEAgtB,cAAe,WACX,OAAO5tB,KAAK43C,aAAaluC,UAC7B,EAEAokB,cAAe,SAAUltB,GAGrB,OAFAszC,EAAWmB,YAAa,EACxBr1C,KAAK43C,aAAejD,EAAuCyD,MAAME,SAAS13C,GACnEA,CACX,EAEAm1C,KAAM,SAAU9T,GACZ,GAAwB,MAApBA,EAAc6T,IACd,GAAI5B,EAAWmB,YAAcr1C,KAAK80C,gBAAiB,CAE/C,IAAI2E,EAAaz5C,KAAK86C,UACtB,GAAI96C,KAAK03C,eAAiB,EAAG,CACzB,IAAIiC,EAAuB35C,KAAK43C,aAAagC,SAC7CD,EAAqBptC,EAAIjH,KAAKu0C,MAAMF,EAAqBptC,EAAIvM,KAAKwhB,eAClE,IAAK,IAAIhf,EAAI,EAAGA,EAAKxC,KAAK86C,UAAUn4C,OAAS,EAAIH,IAC7C0xC,EAAWgB,SAAS4E,QAAQL,EAAWj3C,GAAIi3C,EAAWj3C,EAAI,GAAIm3C,EAAsB,IAAIlF,EAAuDsF,MAAM,EAAG,GAEhK,CACA/5C,KAAK80C,iBAAkB,CAC3B,MACG,CACH,IAAInhC,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0mC,YAAcr6C,KAAKwhB,cACvB,IAAI65B,GAAQ,EACRC,EAAS/G,EAAoCqG,GAAGW,UAAUv7C,KAAK86C,WACnE,MAAOQ,EAAOE,WAAY,CACtB,IAAIC,EAAMH,EAAOI,QACb7C,EAAiB5W,EAAc6W,IAAIC,UAAU0C,GACjD,GAAI5C,EAAerC,EAAI,EAEnB,YADA7iC,EAAIgnC,UAGR,GAAInG,EAA0CwE,SAASC,IAAIhX,EAAciX,gBAAiBuC,GAAO,IAE7F,YADA9nC,EAAIgnC,UAGJU,GACAA,GAAQ,EACR1nC,EAAI2mC,YACJ3mC,EAAIgoC,OAAO9C,EAAe9N,EAAG8N,EAAe70C,IAG5C2P,EAAIioC,OAAO/C,EAAe9N,EAAG8N,EAAe70C,EAEpD,CACA2P,EAAIqa,UAAYhuB,KAAK03C,eACrB/jC,EAAI8mC,YAAcz6C,KAAK43C,aAAaluC,WACpCiK,EAAI+mC,SACJ/mC,EAAIgnC,SACR,CACJ,IAGJ,EAAGrG,EAA4C4D,cAAc,WAAY,CAAC7D,EAAUyH,EAAW5H,GAGxF,EAED;;;8BAIA,CAAEv1C,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCw8C,UAAW,IAAM,EACjBC,WAAY,IAAM,EAClBC,eAAgB,IAAM,IAExB,IAAI3H,EAA8C,wBAA2C,uBACzFC,EAAsC,gBAAmC,eACzE2H,EAAwC,kBAAqC,iBAC7EC,EAAuE,iDAAoE,gDAC3IC,EAAkD,4BAA+C,2BACjGC,EAAsD,gCAAmD,+BACzGC,EAAsD,gCAAmD,+BACzGC,EAA8D,wCAA2D,uCACzHC,EAA8D,wCAA2D,uCACzHC,EAAwD,kCAAqD,iCAC7GC,EAA6D,sCAAyD,qCACtHC,EAAmD,4BAA+C,2BAsBvHC,EAAa,IAAIF,EAA2DG,KAC5EC,EAAa,IAAIL,EAAsDM,IACvEC,EAAc,IAAIT,EAA4DU,0BAC9EC,EAAY,EAKhB,SAASlB,EAAWhR,EAAIC,EAAKkS,EAAMC,EAAQC,GACvCr9C,KAAKo3C,GAAK,EACVp3C,KAAKirC,IAAM,EACXjrC,KAAKs9C,SAAW,EAChBt9C,KAAKo9C,QAAS,EACdp9C,KAAKq9C,UAAW,EAChBr9C,KAAKo3C,GAAKpM,EACVhrC,KAAKirC,IAAMA,EACXjrC,KAAKs9C,SAAWH,EAChBn9C,KAAKo9C,OAASA,EACdp9C,KAAKq9C,SAAWA,CACpB,CAEA,IAAIE,EAAc,CAAC,EAOnB,SAAStB,EAAeuB,EAAQC,EAAMC,EAAShkC,EAAKikC,GAChD39C,KAAKw9C,QAAS,EACdx9C,KAAK49C,KAAO,EACZ59C,KAAK69C,QAAU,EACf79C,KAAK+U,IAAM,EACX/U,KAAK89C,aAAc,EACnB99C,KAAKw9C,OAASA,EACdx9C,KAAK49C,KAAOH,EACZz9C,KAAK69C,QAAUH,EACf19C,KAAK+U,IAAM2E,EACX1Z,KAAK89C,YAAcH,CACvB,EAhBA,EAAGrJ,EAA4C4D,cAAc,aAAc,CAAC8D,EAAYuB,EAAa,OAkBrG,IAAIQ,EAAkB,CAAC,EAOvB,SAAShC,IAAc,EALvB,EAAGzH,EAA4C4D,cAAc,iBAAkB,CAAC+D,EAAgB8B,EAAiB,OAOjHhC,EAAUiC,UAAY,SAAUC,EAAOC,EAAUC,EAAQC,EAASC,GAC9D,IAAIpa,EAASia,EAGb,GAFAE,GAAWA,EAEPna,EAAS,EAAG,CACZ,IAAIqa,EAAU7B,EAAsD8B,IAAIC,UAAUP,EAAOC,GACrFO,EAAYnC,EAAoDoC,YAAYC,uBAAuBL,EAAQM,qBAAsBN,EAAQO,8BAA+BP,EAAQQ,2BAA4BV,EAASD,EAAQE,EAAWJ,GAC5O,OAAO,IAAIjC,EAAWyC,EAAU1T,EAAG0T,EAAUz6C,EAAGs6C,EAAQQ,4BAA4B,GAAO,EAC/F,CACK,GAAe,IAAX7a,EAAc,CACnB,IAAI8a,EAAMpC,EAAiDqC,QAAQC,iBAAiBhB,GAChFiB,EAAMvC,EAAiDqC,QAAQG,kBAAkBlB,GACjFmB,EAAMzC,EAAiDqC,QAAQK,aAAapB,GAAS,SACrFqB,EAAUjD,EAAoDkD,YAAYC,wBAAwBvB,GAClG1+C,EAAI48C,EAAqEsD,GAAGC,MAAMR,EAAKH,EAAKO,GAC5Fb,EAAYnC,EAAoDoC,YAAYC,uBAAuBp/C,EAAEwrC,EAAGxrC,EAAEyE,EAAGo7C,EAAKhB,EAASD,EAAQE,EAAWJ,GAClJ,OAAO,IAAIjC,EAAWyC,EAAU1T,EAAG0T,EAAUz6C,EAAGo7C,GAAK,GAAO,EAChE,CAEI,GAAInB,IAAUf,EAAW,CACrBJ,EAAaL,EAAsD8B,IAAIC,UAAUP,EAAO,GACxFjB,EAAcT,EAA4DoD,mBAAmBnB,UAAUP,GACnGQ,EAAYnC,EAAoDoC,YAAYC,uBAAuB7B,EAAW8B,qBAAsB9B,EAAW+B,8BAA+B/B,EAAWgC,2BAA4BV,EAASD,EAAQE,EAAWJ,GACrPnB,EAAW8B,qBAAuBH,EAAU1T,EAC5C+R,EAAW+B,8BAAgCJ,EAAUz6C,EACrD44C,EAAaF,EAA2DkD,GAAGpB,UAAUP,GACrFf,EAAYe,CAChB,CACA,IA8DI4B,EACAC,EA/DAC,EAAkB,UAClBC,EAAQ16C,KAAK26C,KAAYF,EAAkBjD,EAAWgC,2BAApC,IAAmE,UAAY,IACjGoB,EAAWF,EAAQ16C,KAAKgxC,IAAIwG,EAAW+B,8BAAgC,IAAM,WAAc,GAC3FsB,EAAQ,EACRC,EAAQ,EACRC,EAAQ,EACRjD,GAAS,EACTC,GAAW,EACf,OAAQpZ,GACJ,KAAK,GACDkc,EAAQvD,EAAW0D,WAAWC,+BAA+BxV,EAC7DqV,EAAQxD,EAAW0D,WAAWC,+BAA+Bv8C,EAC7Dq8C,EAAQzD,EAAW0D,WAAWC,+BAA+B/J,EAC7D6G,EAAWT,EAAW0D,WAAWE,WACjCpD,EAASR,EAAW0D,WAAWG,iBAC/B,MACJ,KAAK,GACDN,EAAQvD,EAAW8D,WAAWH,+BAA+BxV,EAC7DqV,EAAQxD,EAAW8D,WAAWH,+BAA+Bv8C,EAC7Dq8C,EAAQzD,EAAW8D,WAAWH,+BAA+B/J,EAC7D6G,EAAWT,EAAW8D,WAAWF,WACjCpD,EAASR,EAAW8D,WAAWD,iBAC/B,MACJ,KAAK,GACDN,EAAQvD,EAAW+D,WAAWJ,+BAA+BxV,EAC7DqV,EAAQxD,EAAW+D,WAAWJ,+BAA+Bv8C,EAC7Dq8C,EAAQzD,EAAW+D,WAAWJ,+BAA+B/J,EAC7D6G,EAAWT,EAAW+D,WAAWH,WACjCpD,EAASR,EAAW+D,WAAWF,iBAC/B,MACJ,KAAK,GACDN,EAAQvD,EAAWgE,WAAWL,+BAA+BxV,EAC7DqV,EAAQxD,EAAWgE,WAAWL,+BAA+Bv8C,EAC7Dq8C,EAAQzD,EAAWgE,WAAWL,+BAA+B/J,EAC7D6G,EAAWT,EAAWgE,WAAWJ,WACjCpD,EAASR,EAAWgE,WAAWH,iBAC/B,MACJ,KAAK,GACDN,EAAQvD,EAAW0D,WAAWO,qCAAqC9V,EACnEqV,EAAQxD,EAAW0D,WAAWO,qCAAqC78C,EACnEq8C,EAAuE,GAA/DzD,EAAW0D,WAAWO,qCAAqCrK,EACnE4G,EAASR,EAAW0D,WAAWG,iBAC/B,MACJ,KAAK,GACDN,EAAQvD,EAAW8D,WAAWG,qCAAqC9V,EACnEqV,EAAQxD,EAAW8D,WAAWG,qCAAqC78C,EACnEq8C,EAAuE,GAA/DzD,EAAW8D,WAAWG,qCAAqCrK,EACnE4G,EAASR,EAAW8D,WAAWD,iBAC/B,MACJ,KAAK,GACDN,EAAQvD,EAAW+D,WAAWE,qCAAqC9V,EACnEqV,EAAQxD,EAAW+D,WAAWE,qCAAqC78C,EACnEq8C,EAAuE,GAA/DzD,EAAW+D,WAAWE,qCAAqCrK,EACnE4G,EAASR,EAAW+D,WAAWF,iBAC/B,MACJ,KAAK,GACDN,EAAQvD,EAAWgE,WAAWC,qCAAqC9V,EACnEqV,EAAQxD,EAAWgE,WAAWC,qCAAqC78C,EACnEq8C,EAAuE,GAA/DzD,EAAWgE,WAAWC,qCAAqCrK,EACnE4G,EAASR,EAAWgE,WAAWH,iBAC/B,MAIR,IAAIK,EAAU9D,EAAYn8C,EAAI,IAAM,UAKpC,OAJAg/C,EAAQM,EAAQ76C,KAAKgxC,IAAIwK,GAAWV,EAAQ96C,KAAKixC,IAAIuK,GACrDhB,EAAQK,EAAQ76C,KAAKixC,IAAIuK,GAAWV,EAAQ96C,KAAKgxC,IAAIwK,GACrDX,EAAQN,EACRO,EAAQN,EACD,IAAI9D,EAAWc,EAAW8B,qBAAwBuB,EAAQD,EAAUpD,EAAW+B,8BAAgCuB,EAAQJ,EAAOlD,EAAWgC,2BAA8BuB,EAAQN,EAAkB,EAAI3C,EAAQC,EAE5N,EAEAtB,EAAUgF,aAAe,SAAUC,EAAMC,EAAOC,GAC5C,OAAO9E,EAAgD+E,GAAGC,SAAS7M,EAAoCqG,GAAGyG,SAASL,GAAOzM,EAAoCqG,GAAGyG,SAASJ,GAAQC,GAAK,EAC3L,EAEAnF,EAAUuF,gBAAkB,SAAUC,EAAG7/C,EAAG8/C,GACxC,IAAIC,EAAQtF,EAAqEsD,GAAGC,MAAM6B,EAAG7/C,EAAG26C,EAAoDkD,YAAYC,wBAAwBgC,IACxL,OAAO,IAAIxF,EAAWyF,EAAM1W,EAAG0W,EAAMz9C,EAAG,GAAG,GAAO,EACtD,EAEA+3C,EAAU2F,gBAAkB,SAAUH,EAAG7/C,GACrC,IAAI+/C,EAAQtF,EAAqEsD,GAAGkC,KAAKJ,EAAG7/C,GAC5F,OAAO,IAAIs6C,EAAWyF,EAAM1W,EAAG0W,EAAMz9C,EAAG,GAAG,GAAO,EACtD,EAEA+3C,EAAU6F,gBAAkB,SAAU5W,EAAIC,GACtC,IAAI4W,EAAW1F,EAAqEsD,GAAGqC,KAAK9W,EAAIC,GAChG,OAAO,IAAI+Q,EAAW6F,EAAS9W,EAAG8W,EAAS79C,EAAG,GAAG,GAAO,EAC5D,EAEA+3C,EAAUgG,kBAAoB,SAAUC,EAAIjD,EAAKG,EAAK+C,EAAKC,EAAMC,EAAKC,EAAMC,EAAKC,EAAMh4C,GACnF,IAAIi4C,GAAO,MAEX,OAAQj4C,GACJ,KAAK,EACDi4C,GAAO,MACP,MACJ,KAAK,EACDA,GAAO,MACP,MACJ,KAAK,EACDA,EAAM,KACN,MAER,IAAIC,EAAqBhG,EAA4DiG,kBAAkB7E,KAAKoE,EAAIC,EAAKC,EAAMC,EAAKC,EAAMC,EAAKC,EAAMpD,EAAKH,EAAKwD,GACvJ5E,GAAa,EAIjB,OAHK6E,EAAmBhF,SACpBG,EAAazB,EAAsCwG,KAAKC,KAAK5D,KAAS7C,EAAsCwG,KAAKC,KAAKP,IAEnH,IAAInG,EAAeuG,EAAmBhF,OAAQgF,EAAmB5E,KAAM4E,EAAmB3E,QAAS2E,EAAmBztC,IAAK4oC,EACtI,EAEA,IAAIiF,EAAa,CAAC,GAElB,EAAGtO,EAA4C4D,cAAc,YAAa,CAAC6D,EAAW6G,EAAY,MAG3F,EAED;;;yCAIA,CAAEjkD,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCsjD,IAAK,IAAM,EACXC,KAAM,IAAM,IAEd,IAAIxO,EAA8C,yBAA4C,uBAC1FyO,EAA6D,uCAA0D,gDACvHC,EAAuC,iBAAoC,0BA6BpG,SAASF,EAAKG,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAOC,EAAGC,EAAOC,EAAGC,EAAMC,EAAOC,EAAMC,EAAOC,EAAMC,EAAOC,EAAMC,EAAOC,EAAMC,EAAOC,EAAMC,GACjIvkD,KAAKwkD,GAAK,EACVxkD,KAAKykD,GAAK,EACVzkD,KAAK0kD,GAAK,EACV1kD,KAAK2kD,GAAK,EACV3kD,KAAK4kD,GAAK,EACV5kD,KAAK6kD,GAAK,EACV7kD,KAAK8kD,GAAK,EACV9kD,KAAK+kD,MAAQ,EACb/kD,KAAKT,EAAI,EACTS,KAAKglD,MAAQ,EACbhlD,KAAK+D,EAAI,EACT/D,KAAK4jD,KAAO,EACZ5jD,KAAK6jD,MAAQ,EACb7jD,KAAK8jD,KAAO,EACZ9jD,KAAK+jD,MAAQ,EACb/jD,KAAKgkD,KAAO,EACZhkD,KAAKikD,MAAQ,EACbjkD,KAAKkkD,KAAO,EACZlkD,KAAKmkD,MAAQ,EACbnkD,KAAKokD,KAAO,EACZpkD,KAAKqkD,MAAQ,EACbrkD,KAAKskD,KAAO,EACZtkD,KAAKukD,MAAQ,EACbvkD,KAAKwkD,GAAKvB,EACVjjD,KAAKykD,GAAKvB,EACVljD,KAAK0kD,GAAKvB,EACVnjD,KAAK2kD,GAAKvB,EACVpjD,KAAK4kD,GAAKvB,EACVrjD,KAAK6kD,GAAKvB,EACVtjD,KAAK8kD,GAAKvB,EACVvjD,KAAK+kD,MAAQvB,EACbxjD,KAAKT,EAAIkkD,EACTzjD,KAAKglD,MAAQtB,EACb1jD,KAAK+D,EAAI4/C,EACT3jD,KAAK4jD,KAAOA,EACZ5jD,KAAK6jD,MAAQA,EACb7jD,KAAK8jD,KAAOA,EACZ9jD,KAAK+jD,MAAQA,EACb/jD,KAAKgkD,KAAOA,EACZhkD,KAAKikD,MAAQA,EACbjkD,KAAKkkD,KAAOA,EACZlkD,KAAKmkD,MAAQA,EACbnkD,KAAKokD,KAAOA,EACZpkD,KAAKqkD,MAAQA,EACbrkD,KAAKskD,KAAOA,EACZtkD,KAAKukD,MAAQA,CACjB,CAEA,IAAIU,EAAQ,CAAC,GAEb,EAAG3Q,EAA4C4D,cAAc,OAAQ,CAAC4K,EAAMmC,EAAO,OAKnF,MAAMC,EAAS,CAAC,IAAIpC,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,SAAU,GAAI,GAAI,EAAG,IAAK,GAAI,QAAS,IAAK,GAAI,GAAI,QAAS,KAAM,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAAM,IAAK,OAAQ,IAAK,OAAQ,IAAK,MAAO,IAAK,OAAQ,IAAK,MAAO,IAAK,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,IAAK,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,IAAIA,EAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAK,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,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AG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,GAAI,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,GAAI,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,GAAI,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,GAAI,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAA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,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,GAAI,GAAI,EAAG,GAAI,IAAIA,EAAiB,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAiB,GAAI,GAAI,GAAI,GAAI,IAAIA,EAAiB,EAAG,GAAI,GAAI,GAAI,IAAIA,EAAiB,EAAG,GAAI,GAAI,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,GAAI,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,GAAI,GAAI,GAAI,IAAIA,EAAiB,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAiB,GAAI,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,EAAG,GAAI,GAAI,IAAIA,EAAiB,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAiB,EAAG,GAAI,GAAI,GAAI,IAAIA,EAAi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AG,GAAI,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,GAAI,EAAG,GAAI,MAAQ,OAAU,IAAIA,EAAK,EAAG,EAAG,EAAG,OAAS,OAAU,IAAIA,EAAK,GAAI,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,OAAS,OAAU,IAAIA,EAAK,GAAI,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,GAAI,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,IAAK,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,IAAK,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,GAAI,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,IAAK,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,IAAK,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,GAAI,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,MAAQ,GAAI,IAAIA,EAAK,GAAI,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,GAAI,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,IAAK,EAAG,GAAI,MAAQ,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,MAAQ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IAAM,GAAI,IAAIA,EAAK,GAAI,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,EAAG,OAAS,IAAIA,EAAK,EAAG,GAAI,GAAI,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,IAAM,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,IAAK,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,IAAK,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,IAAM,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,IAAK,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,GAAI,GAAI,GAAI,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,GAAI,IAAM,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,EAAG,EAAG,EAAG,KAAO,GAAI,IAAIA,EAAK,GAAI,EAAG,EAAG,KAAO,GAAI,IA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EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAM,GAAI,GAAI,IAAIA,EAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,IAAIA,EAAI,EAAG,GAAI,EAAG,EAAG,GAAI,IAAK,GAAK,GAAI,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAK,EAAG,GAAI,IAAIA,EAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAK,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,IAAIA,EAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,GAAK,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,GAAK,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,EAAI,EAAG,GA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AK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACt7CzyB,EAAc0yB,KAAO,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO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AAe,CACzD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBS,OAAST,EAAkBM,eAAe,CACxD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBU,QAAUV,EAAkBM,eAAe,CACzD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBW,MAAQX,EAAkBM,eAAe,CACvD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBY,QAAUZ,EAAkBM,eAAe,CACzD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBa,MAAQb,EAAkBM,eAAe,CACvD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBc,KAAOd,EAAkBM,eAAe,CACtD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBe,QAAUf,EAAkBM,eAAe,CACzD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBgB,MAAQhB,EAAkBM,eAAe,CACvD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBiB,OAASjB,EAAkBM,eAAe,CACxD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBkB,QAAUlB,EAAkBM,eAAe,CACzD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBmB,KAAOnB,EAAkBM,eAAe,CACtD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGjFN,EAAkBoB,OAASpB,EAAkBM,eAAe,CACxD,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC7E,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAI1E,EAED;;;sCAIA,CAAEj5J,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC82J,UAAW,IAAM,IAEnB,IAAI3rG,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FyuG,EAA4C,uBAA0C,qBACtFlsE,EAA+C,0BAA6C,wBAC5FmsE,EAA6C,uBAA0C,6BAehH,SAAShD,EAAUv8C,EAASxqG,EAAMnF,EAAMmvJ,GACpCt5J,KAAK4kJ,SAAU,EACf5kJ,KAAKu5J,QAAU,EACfv5J,KAAKw5J,kBAAoB,EACzBx5J,KAAKy5J,WAAa,KAClBz5J,KAAK05J,OAAS,CAAC,EACf15J,KAAK+lG,SAAW,EAChB/lG,KAAK25J,WAAa,EAClB35J,KAAK45J,oBAAqB,EAC1BP,EAA2CQ,SAASr5J,KAAKR,MACzDA,KAAK85G,QAAUA,EACf95G,KAAK85J,eAAiBhgD,EAAQ54E,qBAC9BlhC,KAAK+5J,YAAcT,EACnBt5J,KAAKg6J,SAAW1qJ,EACJ,MAARnF,EACAnK,KAAKi6J,gBAAgB9vJ,GAGrBnK,KAAKq4F,QAAQ/oF,EAErB,CAEA+mJ,EAAU6D,IAAM,IAEhB,IAAIC,EAAa,CACb9hE,QAAS,SAAU3tF,GACf1K,KAAKo6J,WAAa,IAAIhB,EAA0C/+D,QAAQ3vF,GACxE1K,KAAKo6J,WAAWpvJ,aAAe,OAC/BhL,KAAKo6J,WAAW9/D,cAAgB5vC,EAAoC9P,GAAGxlC,KAAK,kBAAmBpV,MAC/FA,KAAKo6J,WAAW9uJ,MACpB,EAEA+vF,gBAAiB,WACb,GAAoC,IAAhCr7F,KAAKo6J,WAAW3tE,YAChBzsF,KAAK4kJ,SAAU,EACS,MAApB5kJ,KAAK+5J,aACL/5J,KAAK+5J,YAAY/5J,WAElB,GAAoC,IAAhCA,KAAKo6J,WAAW3tE,YAAmB,CAC1C,IAAIyvD,EAAWl8I,KAAKo6J,WAAWje,UAC/Bn8I,KAAKi6J,gBAAgB/d,EACzB,CACJ,EACA+d,gBAAiB,SAAU9vJ,GACvB,IAAIwgH,EAAQ3qH,KAEZA,KAAKy5J,WAAatvJ,EAClB,IAAIiyI,EAAS,IAAI5uI,WACjB4uI,EAAO1uI,UAAY,SAAUxN,GACzByqH,EAAM0vC,YAAY,IAAIC,SAASle,EAAO14I,SACtCinH,EAAMi6B,SAAWj6B,EAAMivC,mBACE,MAArBjvC,EAAMovC,aACNpvC,EAAMovC,YAAYpvC,EAE1B,EACAyxB,EAAOG,kBAAkBpyI,EAC7B,EACAowJ,kBAAmB,SAAUC,EAAUp+D,GAEnC,IADA,IAAI30F,EAAO,GACFjF,EAAI,EAAGA,EAAI45F,EAAO55F,IACvBiF,GAAQzF,OAAOwI,aAAagwJ,EAASC,SAASz6J,KAAK+lG,WACnD/lG,KAAK+lG,WAET,OAAOt+F,CACX,EACAizJ,sBAAuB,SAAUF,GAC7B,IAAI/yJ,EAAOzH,KAAKu6J,kBAAkBC,EAAU,GACxCG,EAAUjwG,EAAoC9P,GAAGggH,QAAQnzJ,GAE7D,OADAzH,KAAK+lG,UAAY,EACgB,WAA1B40D,EAAQ5uE,aACnB,EAEAsuE,YAAa,SAAUG,GACnB,GAAKx6J,KAAK06J,sBAAsBF,GAAhC,CAIA,IAAIK,GAAW,EACf,OAAQA,EACJ,IAAK,IAAIr4J,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,IAAIiF,EAAOzH,KAAKu6J,kBAAkBC,EAAU,IAC5C,IAAKK,EAAU,CACX,IAAIF,EAAUjwG,EAAoC9P,GAAGggH,QAAQnzJ,EAAK8hF,UAAU,EAAG,IAC3Ex1E,EAAStM,EAAK8hF,UAAU,IAAIJ,MAAM,KACtC,GAA8B,QAA1BwxE,EAAQ5uE,cAAyB,CACjC8uE,GAAW,EAEXr4J,IACAiF,EAAOzH,KAAKu6J,kBAAkBC,EAAU,IACxC,MAAO9vG,EAAoC9P,GAAGqwG,WAAWxjJ,GACrDjF,IACAiF,EAAOzH,KAAKu6J,kBAAkBC,EAAU,IAE5CG,EAAUjwG,EAAoC9P,GAAGggH,QAAQnzJ,EAAK8hF,UAAU,EAAG,IAC7C,aAA1BoxE,EAAQ5uE,cAER8uE,GAAW,EAIX76J,KAAK+lG,UAAY,EAEzB,MAEI/lG,KAAK86J,cAAcH,EAAS5mJ,EAEpC,CACJ,CAEJ,GAAK8mJ,EAAL,CAIA76J,KAAKu5J,QAAUrvE,SAASlqF,KAAK05J,OAAO,UAChChvG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,WAC9D15J,KAAK85J,eAAep7C,WAAav0B,WAAWnqF,KAAK05J,OAAO,UACxD15J,KAAK85J,eAAer7C,gBAAiB,GAErC/zD,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,WAC9D15J,KAAK85J,eAAev7C,MAAQp0B,WAAWnqF,KAAK05J,OAAO,WAEnDhvG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,YAC9D15J,KAAK85J,eAAet7C,OAASr0B,WAAWnqF,KAAK05J,OAAO,YAExD15J,KAAK+6J,SAAW,IAAIl5J,MAAM7B,KAAKu5J,SAC/B,IAAK,IAAIyB,EAAO,EAAGA,EAAOh7J,KAAKu5J,QAASyB,IACpCh7J,KAAK+6J,SAASC,GAAQ9wE,SAASlqF,KAAK05J,OAAOhvG,EAAoC9P,GAAGvU,OAAO,WAAY20H,EAAO,KAC5Gh7J,KAAK25J,YAAc35J,KAAK+6J,SAASC,GAErC,IAAIC,EAAS/wE,SAASlqF,KAAK05J,OAAO,WAClC15J,KAAKk7J,aAAaV,EAAUS,GACxBj7J,KAAKu5J,QAAU,IACfv5J,KAAKm7J,MAAQn7J,KAAK+6J,SAAS,GAC3B/6J,KAAKo7J,MAAQp7J,KAAK+6J,SAAS,GAC3B/6J,KAAKq7J,UAAYr7J,KAAKs7J,iBAAiB,KACvCt7J,KAAKw5J,kBAAoBx5J,KAAKq7J,UAAU,MAE5Cr7J,KAAKu7J,aACLv7J,KAAK45J,oBAAqB,CA1B1B,MAFIvuJ,QAAQ8C,IAAI,uCAlChB,MAFI9C,QAAQ8C,IAAI,+CAiEpB,EACA2sJ,cAAe,SAAUH,EAAS5mJ,GAC9B,GAAgB,aAAZ4mJ,GAAsC,YAAZA,GAAqC,YAAZA,IAA0BjwG,EAAoC9P,GAAGC,YAAY8/G,GAChI,IACQjwG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQiB,GAC9D36J,KAAK05J,OAAOiB,GAAWjwG,EAAoC9P,GAAG+gD,KAAK5nF,EAAO,IAG1E/T,KAAK05J,OAAOiB,EAAQ5uE,eAAiBrhC,EAAoC9P,GAAG+gD,KAAK5nF,EAAO,GAEhG,CACA,MAAOwgF,GACP,CAER,EAEA2mE,aAAc,SAAUV,EAAUS,GAE9B,OADAj7J,KAAKw7J,SAAW,IAAI/+C,aAAaz8G,KAAK25J,YAC9BsB,GACJ,KAAM,GACFj7J,KAAKy7J,oBAAoBjB,GACzB,MACJ,KAAM,GACFx6J,KAAK07J,oBAAoBlB,GACzB,MACJ,KAAK,EACDx6J,KAAK27J,kBAAkBnB,GACvB,MACJ,KAAK,GACDx6J,KAAK47J,kBAAkBpB,GACvB,MACJ,KAAK,GACDx6J,KAAK67J,kBAAkBrB,GACvB,MACJ,KAAK,GAEDnvJ,QAAQ8C,IAAI,6CACZ,MAEZ,EAEAstJ,oBAAqB,SAAUjB,GAC3B,IAAIh4J,EAAI,EACR,MAAOxC,KAAK+lG,SAAWy0D,EAASsB,WAAY,CACxC97J,KAAKw7J,SAASh5J,GAAKg4J,EAASuB,WAAW/7J,KAAK+lG,UAAU,GACtD,IAAIi2D,EAAgBh8J,KAAKw7J,SAASh5J,GAAKxC,KAAK85J,eAAet7C,OAASx+G,KAAK85J,eAAev7C,MACpFv+G,KAAK85J,eAAej7C,OAASm9C,IAC7Bh8J,KAAK85J,eAAej7C,OAASm9C,GAE7Bh8J,KAAK85J,eAAel7C,OAASo9C,IAC7Bh8J,KAAK85J,eAAel7C,OAASo9C,GAEjCx5J,IACAxC,KAAK+lG,UAAY,CACrB,CACA/lG,KAAK85J,eAAe3xH,SAAWnoC,KAAK85J,eAAej7C,OACnD7+G,KAAK85J,eAAe1xH,SAAWpoC,KAAK85J,eAAel7C,MACvD,EAEA88C,oBAAqB,SAAUlB,GAC3B,IAAIh4J,EAAI,EACR,MAAOxC,KAAK+lG,SAAWy0D,EAASsB,WAAY,CACxC97J,KAAKw7J,SAASh5J,GAAKg4J,EAASyB,WAAWj8J,KAAK+lG,UAAU,GACtD,IAAIi2D,EAAgBh8J,KAAKw7J,SAASh5J,GAAKxC,KAAK85J,eAAet7C,OAASx+G,KAAK85J,eAAev7C,MACpFv+G,KAAK85J,eAAej7C,OAASm9C,IAC7Bh8J,KAAK85J,eAAej7C,OAASm9C,GAE7Bh8J,KAAK85J,eAAel7C,OAASo9C,IAC7Bh8J,KAAK85J,eAAel7C,OAASo9C,GAEjCx5J,IACAxC,KAAK+lG,UAAY,CACrB,CACA/lG,KAAK85J,eAAe3xH,SAAWnoC,KAAK85J,eAAej7C,OACnD7+G,KAAK85J,eAAe1xH,SAAWpoC,KAAK85J,eAAel7C,MACvD,EAEA+8C,kBAAmB,SAAUnB,GACzB,IAAIh4J,EAAI,EACR,MAAOxC,KAAK+lG,SAAWy0D,EAASsB,WAC5B97J,KAAKw7J,SAASh5J,GAAKg4J,EAASC,SAASz6J,KAAK+lG,UACtC/lG,KAAK85J,eAAej7C,OAAS7+G,KAAKw7J,SAASh5J,KAC3CxC,KAAK85J,eAAej7C,OAAS7+G,KAAKw7J,SAASh5J,IAE3CxC,KAAK85J,eAAel7C,OAAS5+G,KAAKw7J,SAASh5J,KAC3CxC,KAAK85J,eAAel7C,OAAS5+G,KAAKw7J,SAASh5J,IAE/CA,IACAxC,KAAK+lG,UAAY,EAErB/lG,KAAK85J,eAAe3xH,SAAWnoC,KAAK85J,eAAej7C,OACnD7+G,KAAK85J,eAAe1xH,SAAWpoC,KAAK85J,eAAel7C,MACvD,EAEAg9C,kBAAmB,SAAUpB,GACzB,IAAIh4J,EAAI,EACR,MAAOxC,KAAK+lG,SAAWy0D,EAASsB,WAC5B97J,KAAKw7J,SAASh5J,GAAKg4J,EAAS0B,SAASl8J,KAAK+lG,UAAU,GAChD/lG,KAAK85J,eAAej7C,OAAS7+G,KAAKw7J,SAASh5J,KAC3CxC,KAAK85J,eAAej7C,OAAS7+G,KAAKw7J,SAASh5J,IAE3CxC,KAAK85J,eAAel7C,OAAS5+G,KAAKw7J,SAASh5J,KAC3CxC,KAAK85J,eAAel7C,OAAS5+G,KAAKw7J,SAASh5J,IAE/CA,IACAxC,KAAK+lG,UAAY,EAErB/lG,KAAK85J,eAAe3xH,SAAWnoC,KAAK85J,eAAej7C,OACnD7+G,KAAK85J,eAAe1xH,SAAWpoC,KAAK85J,eAAel7C,MACvD,EAEAi9C,kBAAmB,SAAUrB,GACzB,IAAIh4J,EAAI,EACR,MAAOxC,KAAK+lG,SAAWy0D,EAASsB,WAC5B97J,KAAKw7J,SAASh5J,GAAKg4J,EAAS2B,SAASn8J,KAAK+lG,UAAU,GAChD/lG,KAAK85J,eAAej7C,OAAS7+G,KAAKw7J,SAASh5J,KAC3CxC,KAAK85J,eAAej7C,OAAS7+G,KAAKw7J,SAASh5J,IAE3CxC,KAAK85J,eAAel7C,OAAS5+G,KAAKw7J,SAASh5J,KAC3CxC,KAAK85J,eAAel7C,OAAS5+G,KAAKw7J,SAASh5J,IAE/CA,IACAxC,KAAK+lG,UAAY,EAErB/lG,KAAK85J,eAAe3xH,SAAWnoC,KAAK85J,eAAej7C,OACnD7+G,KAAK85J,eAAe1xH,SAAWpoC,KAAK85J,eAAel7C,MACvD,EAEA28C,WAAY,WACJ7wG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,YAC9D15J,KAAK6sC,SAAWs9C,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,YACnF15J,KAAKo8J,aAAc,GAEnB1xG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,YAC9D15J,KAAKoxG,OAASjnB,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,YAC7EhvG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,YAC9D15J,KAAKqxG,OAASlnB,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,YACjF15J,KAAKq8J,UAAW,IAGpB3xG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,YAO9D15J,KAAKs8J,WAAanyE,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,YAAc,GAC/FhvG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,YAC9D15J,KAAKu8J,WAAapyE,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,YAAc,GACnG15J,KAAKw8J,UAAW,IAGxB,IAAI36G,GAAW,EACX4F,GAAM,EAiBV,GAhBIiD,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,YAC1D15J,KAAK05J,OAAO,UAAUzgJ,QAAQ,UAAY,IAC1C4oC,GAAW,EACX4F,GAAM,GAENznD,KAAK05J,OAAO,UAAUzgJ,QAAQ,UAAY,IAC1C4oC,GAAW,EACX4F,GAAM,GAENznD,KAAK05J,OAAO,UAAUzgJ,QAAQ,SAAW,IACzCwuC,GAAM,GAENznD,KAAK05J,OAAO,UAAUzgJ,QAAQ,SAAW,IACzCwuC,GAAM,KAGTA,EACD,MAAM,IAAI95C,MAAM,6CAUpB,GARA3N,KAAKy8J,SAAU,EACX/xG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,YAC9D15J,KAAK2wJ,QAAUxmE,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,YAC9EhvG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,YAC9D15J,KAAK4wJ,QAAUzmE,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,YAClF15J,KAAK08J,aAAc,IAGvB76G,EAAU,CACV,IAAIn+C,EAASwpF,EAA6C10C,YAAYqqD,gBAAgB7iG,KAAK2wJ,QAAS3wJ,KAAK4wJ,SACzG5wJ,KAAK2wJ,QAAUjtJ,EAAO,GACtB1D,KAAK4wJ,QAAUltJ,EAAO,EAC1B,CACIgnD,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,UAAYhvG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,UAAYhvG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,UAAYhvG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,WAC5R15J,KAAK28J,MAAQxyE,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,WAChF15J,KAAK48J,MAAQzyE,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,WAChF15J,KAAK68J,MAAQ1yE,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,WAChF15J,KAAK88J,MAAQ3yE,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,WAC3E15J,KAAKo8J,aACNp8J,KAAK+8J,0BAEJ/8J,KAAKq8J,UACNr8J,KAAKg9J,uBAETh9J,KAAKq8J,UAAW,EAChBr8J,KAAKo8J,aAAc,GAEvBp8J,KAAKi9J,aAAaj9J,KAAKq8J,UAAYr8J,KAAKo8J,aAAep8J,KAAKw8J,UAAYx8J,KAAK08J,YACjF,EASAQ,qBAAsB,WAIdxyG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,aAC9D15J,KAAK85J,eAAe3xH,SAAWgiD,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,aAClG15J,KAAK85J,eAAej7C,OAAS7+G,KAAK85J,eAAe3xH,UAEjDuiB,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,aAC9D15J,KAAK85J,eAAe1xH,SAAW+hD,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,aAClG15J,KAAK85J,eAAel7C,OAAS5+G,KAAK85J,eAAe1xH,UAEjDsiB,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,cAC9D15J,KAAK85J,eAAe3xH,SAAWgiD,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,eAElGhvG,EAAoC9P,GAAGqgD,UAAUj7F,KAAK05J,OAAQ,cAC9D15J,KAAK85J,eAAe1xH,SAAW+hD,WAAWz/B,EAAoC9P,GAAG+gD,KAAK37F,KAAK05J,OAAO,cAE1G,EAEA4B,iBAAkB,SAAUl/D,GAExB,IADA,IAAIi/D,EAAY,IAAIx5J,MAAMu6F,EAAQ,GACzB55F,EAAI,EAAGA,EAAI45F,EAAQ,EAAG55F,IAC3B64J,EAAU74J,GAAK,EAEnBxC,KAAKm9J,kBAAkB9B,GACvB,IAAI+B,EAAa,EACb9hH,EAASoP,EAAoC9P,GAAGW,UAAU8/G,GAC9D,MAAO//G,EAAOE,WAAY,CACtB,IAAIt8C,EAAMo8C,EAAOI,QACbx8C,EAAMk+J,IACNA,EAAal+J,EAErB,CAEA,OADAm8J,EAAUj/D,GAASghE,EACZ/B,CACX,EAEA8B,kBAAmB,SAAU9B,GAGzB,IAFA,IAAIgC,EAAUhC,EAAU14J,OACpB0qC,GAAUrtC,KAAK85J,eAAel7C,OAAS5+G,KAAK85J,eAAej7C,QAAUw+C,EAChE76J,EAAI,EAAGA,EAAIxC,KAAKw7J,SAAS74J,OAAQH,IAChCxC,KAAKw7J,SAASh5J,KAAO6zJ,EAAU6D,KACjCmB,EAAU/1J,KAAKilF,IAAI8yE,EAAU,EAAG3yG,EAAoC9P,GAAGyG,UAAWrhD,KAAK85J,eAAev7C,MAAQv+G,KAAK85J,eAAet7C,OAASx+G,KAAKw7J,SAASh5J,GAAKxC,KAAK85J,eAAej7C,QAAUxxE,MAGxM,EAEAiwH,cAAe,SAAU3pJ,GACrBA,EAAI4pJ,UAAU,EAAG,EAAG,IAAK,KACzB5pJ,EAAI2mC,YACJ3mC,EAAI8mC,YAAc,wBAElB,IADA,IAAI+iH,EAASl4J,KAAK6I,IAAInO,KAAKw5J,mBAClBh3J,EAAI,EAAGA,EAAIxC,KAAKq7J,UAAU14J,OAAQH,IAAK,CAC5C,IAAI4jC,EAAS9gC,KAAK6I,IAAInO,KAAKq7J,UAAU74J,IAAMg7J,EACvCp3H,EAAS,IACTA,EAAS,GAEbzyB,EAAIgoC,OAAOn5C,EAAG,KACdmR,EAAIioC,OAAOp5C,EAAG,IAAgB,IAAT4jC,GACrBzyB,EAAI+mC,QACR,CACJ,IAGJ,EAAGiQ,EAA4CzS,cAAc,YAAa,CAACm+G,EAAW8D,EAAYd,EAA2CQ,UAGtI,EAED;;;yCAIA,CAAEl7J,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC8e,UAAW,IAAM,EACjBo/I,YAAa,IAAM,EACnBC,sBAAuB,IAAM,EAC7BC,YAAa,IAAM,EACnBC,SAAU,IAAM,EAChBC,SAAU,IAAM,EAChBC,SAAU,IAAM,EAChBC,UAAW,IAAM,IAEnB,IAAIrzG,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FqzG,EAA2D,sCAAyD,oCACpHC,EAAoD,+BAAkD,6BACtGC,EAAuD,iCAAoD,uCAC3GC,EAA8C,wBAA2C,8BAkB9G9/I,EAAY,CACZ+/I,MAAO,EACPC,OAAQ,EACRC,OAAQ,EACRC,OAAQ,EACRC,QAAS,EACTtrC,KAAM,GASV,SAAS2qC,IAAa,EANtB,EAAGlzG,EAA4CzS,cAAc,YAAa75B,IAC1E,EAAGssC,EAA4C4jC,cAAc,YAAalwE,GAO1E,IAAIogJ,EAAY,CAAC,EAOjB,SAASd,EAAYpzE,EAAKhlF,GACtBvF,KAAK0+J,OAAS,EACd1+J,KAAK2+J,OAAS,EACd3+J,KAAK4+J,UAAY,EACjB5+J,KAAK6+J,aAAe,EACpBhB,EAASr9J,KAAKR,MACdA,KAAK0+J,OAASn0E,EACdvqF,KAAK2+J,OAASp5J,EACdvF,KAAK4+J,UAAYr5J,EAAMglF,CAC3B,EAdA,EAAG5/B,EAA4CzS,cAAc,WAAY,CAAC2lH,EAAUY,EAAW,OAgB/F,IAAIK,EAAe,CACfruJ,IAAK,SAAUvR,GACX,OAAOoG,KAAKilF,IAAI,IAAKjlF,KAAKC,IAAI,EAAGmlD,EAAoC9P,GAAGyG,UAAWniD,EAAMc,KAAK0+J,QAAU1+J,KAAK4+J,UAAY,MAC7H,GAQJ,SAAShB,EAASrzE,EAAKhlF,GACnBvF,KAAK0+J,OAAS,EACd1+J,KAAK2+J,OAAS,EACd3+J,KAAK4+J,UAAY,EACjB5+J,KAAK6+J,aAAe,EACpBhB,EAASr9J,KAAKR,MACdA,KAAK0+J,OAASn0E,EACdvqF,KAAK2+J,OAASp5J,EACdvF,KAAK4+J,UAAYr5J,EAAMglF,EACvBvqF,KAAK6+J,aAAe,IAAMv5J,KAAK6I,IAAI,IACvC,EAfA,EAAGw8C,EAA4CzS,cAAc,cAAe,CAACylH,EAAamB,EAAcjB,IAiBxG,IAAIkB,EAAY,CACZtuJ,IAAK,SAAUvR,GACX,OAAOoG,KAAKilF,IAAI,IAAKjlF,KAAKC,IAAI,EAAGmlD,EAAoC9P,GAAGyG,SAAU/7C,KAAK6I,KAAKjP,EAAMc,KAAK0+J,QAAU1+J,KAAK4+J,UAAY,KAAO5+J,KAAK6+J,eAClJ,GAQJ,SAASf,EAASvzE,EAAKhlF,GACnBvF,KAAK0+J,OAAS,EACd1+J,KAAK2+J,OAAS,EACd3+J,KAAK4+J,UAAY,EACjB5+J,KAAKg/J,aAAe,EACpBnB,EAASr9J,KAAKR,MACdA,KAAK0+J,OAASn0E,EACdvqF,KAAK2+J,OAASp5J,EACdvF,KAAK4+J,UAAYr5J,EAAMglF,EACvBvqF,KAAKg/J,aAAe,IAAM15J,KAAKo8D,IAAI,IAAK,EAC5C,EAfA,EAAG/W,EAA4CzS,cAAc,WAAY,CAAC0lH,EAAUmB,EAAWlB,IAiB/F,IAAIoB,EAAY,CACZxuJ,IAAK,SAAUvR,GACX,OAAOoG,KAAKilF,IAAI,IAAKjlF,KAAKC,IAAI,EAAGmlD,EAAoC9P,GAAGyG,SAAU/7C,KAAKo8D,KAAKxiE,EAAMc,KAAK0+J,QAAU1+J,KAAK4+J,UAAY,IAAK,GAAK5+J,KAAKg/J,eACrJ,GAQJ,SAASjB,EAAUxzE,EAAKhlF,GACpBvF,KAAK0+J,OAAS,EACd1+J,KAAK2+J,OAAS,EACd3+J,KAAK4+J,UAAY,EACjB5+J,KAAKk/J,cAAgB,EACrBrB,EAASr9J,KAAKR,MACdA,KAAK0+J,OAASn0E,EACdvqF,KAAK2+J,OAASp5J,EACdvF,KAAK4+J,UAAYr5J,EAAMglF,EACvBvqF,KAAKk/J,cAAgB,IAAM55J,KAAKqxC,KAAK,IACzC,EAfA,EAAGgU,EAA4CzS,cAAc,WAAY,CAAC4lH,EAAUmB,EAAWpB,IAiB/F,IAAIsB,EAAa,CACb1uJ,IAAK,SAAUvR,GACX,OAAOoG,KAAKilF,IAAI,IAAKjlF,KAAKC,IAAI,EAAGmlD,EAAoC9P,GAAGyG,SAAU/7C,KAAKqxC,MAAMz3C,EAAMc,KAAK0+J,QAAU1+J,KAAK4+J,UAAY,KAAO5+J,KAAKk/J,gBACnJ,GAQJ,SAASxB,EAAsBv+C,EAAO50B,EAAKhlF,GACvCvF,KAAK0+J,OAAS,EACd1+J,KAAK2+J,OAAS,EACd3+J,KAAK4+J,UAAY,EACjB5+J,KAAKo/J,qBAAuB,EAC5BvB,EAASr9J,KAAKR,MACdA,KAAK0+J,OAASn0E,EACdvqF,KAAK2+J,OAASp5J,EACdvF,KAAK4+J,UAAYr5J,EAAMglF,EACvBvqF,KAAKq/J,aAAelgD,EAAMm8C,iBAAiB,KAC3Ct7J,KAAKo/J,qBAAuBp/J,KAAKq/J,aAAa,KAC9Cr/J,KAAKs/J,UAAY,IAAIz9J,MAAM,KAG3B,IAFA,IAAI09J,EAAc70G,EAAoC9P,GAAGyG,SAAU89D,EAAMqgD,YAAcrgD,EAAMm3C,aACzFmJ,EAAM,EACDj9J,EAAI,EAAGA,EAAI,IAAOA,IACvBi9J,GAAOz/J,KAAKq/J,aAAa78J,GACzBxC,KAAKs/J,UAAU98J,GAAM8C,KAAKilF,IAAI,IAAY,IAANk1E,EAAaF,GAAe,EAExE,EAvBA,EAAG50G,EAA4CzS,cAAc,YAAa,CAAC6lH,EAAWoB,EAAYtB,IAyBlG,IAAI6B,EAAyB,CACzBjvJ,IAAK,SAAUvR,GACX,OAAOc,KAAKs/J,UAAUh6J,KAAKilF,IAAI,KAAWjlF,KAAKC,IAAI,EAAGmlD,EAAoC9P,GAAGyG,UAAWniD,EAAMc,KAAK0+J,QAAU1+J,KAAK4+J,UAAY,QAClJ,GAQJ,SAASnB,EAAY3jD,EAASxqG,EAAMnF,EAAMmvJ,GACtCt5J,KAAK2/J,SAAWthJ,EAAU60G,KAC1BlzH,KAAK4/J,UAAW,EAChB5/J,KAAK6/J,aAAc,EACnB1B,EAA4C9H,UAAU71J,KAAKR,KAAM85G,EAASxqG,EAAMnF,EAAMmvJ,EAC1F,EAVA,EAAG3uG,EAA4CzS,cAAc,wBAAyB,CAACwlH,EAAuBgC,EAAwB7B,IAYtIJ,EAAYqC,gBAAkB,SAAUhmD,EAASxqG,EAAMgqJ,GACnD,IAAIv4H,EAAO,IAAI08H,EAAY3jD,EAASxqG,EAAM,KAAMgqJ,GAEhD,OADAv4H,EAAK8+H,aAAc,EACZ9+H,CACX,EAEA,IAAIg/H,EAAe,CACf1F,YAAa,SAAUG,GACnB2D,EAA4C9H,UAAU/1J,UAAU+5J,YAAY75J,KAAKR,KAAMw6J,GAClE,IAAjBx6J,KAAKu5J,SACoB,IAArBv5J,KAAK+6J,SAAS,KACd/6J,KAAK4/J,UAAW,EAG5B,EAEA1E,aAAc,SAAUV,EAAUS,GAC9B,IAAI9/F,EAAK,IAAI6iG,EAAyD3hB,aAAa,IAAI9W,WAAWi1B,EAAS99C,SAE3G,OADAvhD,EAAG4qC,SAAW/lG,KAAK+lG,SACXk1D,GACJ,KAAM,GACFj7J,KAAK2/J,SAAWthJ,EAAUmgJ,QAC1Bx+J,KAAKggK,uBAAuB7kG,GAC5B,MACJ,KAAM,GACFn7D,KAAK2/J,SAAWthJ,EAAUkgJ,OAC1Bv+J,KAAKigK,uBAAuB9kG,GAC5B,MACJ,KAAK,EACDn7D,KAAK2/J,SAAWthJ,EAAU+/I,MAC1Bp+J,KAAKkgK,qBAAqB/kG,GAC1B,MACJ,KAAK,GACDn7D,KAAK2/J,SAAWthJ,EAAUggJ,OAC1Br+J,KAAKmgK,qBAAqBhlG,GAC1B,MACJ,KAAK,GACDn7D,KAAK2/J,SAAWthJ,EAAUigJ,OAC1Bt+J,KAAKogK,qBAAqBjlG,GAC1B,MAERn7D,KAAK85J,eAAe3xH,SAAWnoC,KAAK85J,eAAej7C,OACnD7+G,KAAK85J,eAAe1xH,SAAWpoC,KAAK85J,eAAel7C,MACvD,EACAshD,qBAAsB,SAAU/kG,GAC5B,IAAIuhD,EAAS,IAAI76G,MAAM7B,KAAK25J,YAC5B35J,KAAKqgK,cAAgB3jD,EACrB,IAAK,IAAIl6G,EAAI,EAAGA,EAAIxC,KAAK25J,WAAYn3J,IACjCk6G,EAAOl6G,GAAK24D,EAAGmlG,WACXtgK,KAAK85J,eAAej7C,OAASnC,EAAOl6G,KACpCxC,KAAK85J,eAAej7C,OAASnC,EAAOl6G,IAEpCxC,KAAK85J,eAAel7C,OAASlC,EAAOl6G,KACpCxC,KAAK85J,eAAel7C,OAASlC,EAAOl6G,GAGhD,EACA29J,qBAAsB,SAAUhlG,GAC5B,IAAIuhD,EAAS,IAAI76G,MAAM7B,KAAK25J,YAC5B35J,KAAKqgK,cAAgB3jD,EACrB,IAAK,IAAIl6G,EAAI,EAAGA,EAAIxC,KAAK25J,WAAYn3J,IACjCk6G,EAAOl6G,GAAwB,IAAjB24D,EAAGolG,YAAqBplG,EAAGmlG,WACrCtgK,KAAK85J,eAAej7C,OAASnC,EAAOl6G,KACpCxC,KAAK85J,eAAej7C,OAASnC,EAAOl6G,IAEpCxC,KAAK85J,eAAel7C,OAASlC,EAAOl6G,KACpCxC,KAAK85J,eAAel7C,OAASlC,EAAOl6G,GAGhD,EACA49J,qBAAsB,SAAUjlG,GAC5B,IAAIuhD,EAAS,IAAI76G,MAAM7B,KAAK25J,YAC5B35J,KAAKqgK,cAAgB3jD,EACrB,IAAK,IAAIl6G,EAAI,EAAGA,EAAIxC,KAAK25J,WAAYn3J,IACjCk6G,EAAOl6G,IAAM24D,EAAGolG,aAAe,KAAOplG,EAAGolG,aAAe,KAAOplG,EAAGolG,aAAe,GAAKplG,EAAGmlG,WACrFtgK,KAAK85J,eAAej7C,OAASnC,EAAOl6G,KACpCxC,KAAK85J,eAAej7C,OAASnC,EAAOl6G,IAEpCxC,KAAK85J,eAAel7C,OAASlC,EAAOl6G,KACpCxC,KAAK85J,eAAel7C,OAASlC,EAAOl6G,GAGhD,EACAy9J,uBAAwB,SAAU9kG,GAC9B,IAAIuhD,EAAS,IAAI76G,MAAM7B,KAAK25J,YAC5B35J,KAAKqgK,cAAgB3jD,EAErB,IADA,IAAId,EAAO,IAAI2pB,WAAW,GACjB/iI,EAAI,EAAGA,EAAIxC,KAAK25J,WAAYn3J,IACjCo5G,EAAK,GAAKzgD,EAAGmlG,WACb1kD,EAAK,GAAKzgD,EAAGmlG,WACb1kD,EAAK,GAAKzgD,EAAGmlG,WACb1kD,EAAK,GAAKzgD,EAAGmlG,WACb5jD,EAAOl6G,GAAK,IAAIi6G,aAAab,EAAKc,OAAQ,EAAG,GAAG,GAC5C18G,KAAK85J,eAAej7C,OAASnC,EAAOl6G,KACpCxC,KAAK85J,eAAej7C,OAASnC,EAAOl6G,IAEpCxC,KAAK85J,eAAel7C,OAASlC,EAAOl6G,KACpCxC,KAAK85J,eAAel7C,OAASlC,EAAOl6G,GAGhD,EACAw9J,uBAAwB,SAAU7kG,GAC9B,IAAIuhD,EAAS,IAAI76G,MAAM7B,KAAK25J,YACxB/9C,EAAO,IAAI2pB,WAAW,GAC1BvlI,KAAKqgK,cAAgB3jD,EACrB,IAAK,IAAIl6G,EAAI,EAAGA,EAAIxC,KAAK25J,WAAYn3J,IACjCo5G,EAAK,GAAKzgD,EAAGmlG,WACb1kD,EAAK,GAAKzgD,EAAGmlG,WACb1kD,EAAK,GAAKzgD,EAAGmlG,WACb1kD,EAAK,GAAKzgD,EAAGmlG,WACb1kD,EAAK,GAAKzgD,EAAGmlG,WACb1kD,EAAK,GAAKzgD,EAAGmlG,WACb1kD,EAAK,GAAKzgD,EAAGmlG,WACb1kD,EAAK,GAAKzgD,EAAGmlG,WACb5jD,EAAOl6G,GAAK,IAAIg+J,aAAa5kD,EAAKc,OAAQ,EAAG,GAAG,GAC5C18G,KAAK85J,eAAej7C,OAASnC,EAAOl6G,KACpCxC,KAAK85J,eAAej7C,OAASnC,EAAOl6G,IAEpCxC,KAAK85J,eAAel7C,OAASlC,EAAOl6G,KACpCxC,KAAK85J,eAAel7C,OAASlC,EAAOl6G,GAGhD,EAEAi+J,UAAW,WAKP,OAJKzgK,KAAK85J,eAAe1xH,UAAapoC,KAAK85J,eAAe3xH,WACtDnoC,KAAK85J,eAAe3xH,SAAWnoC,KAAK85J,eAAej7C,OACnD7+G,KAAK85J,eAAe1xH,SAAWpoC,KAAK85J,eAAel7C,QAEhD5+G,KAAK0gK,gBAAgB1gK,KAAK85J,eAAe3xH,SAAUnoC,KAAK85J,eAAe1xH,SAAUpoC,KAAK85J,eAAe5xH,UAAW,EAAGloC,KAAK85J,eAAexxH,aAClJ,EAEAo4H,gBAAiB,SAAUn2E,EAAKhlF,EAAK2iC,EAAWsO,EAAGrzB,GAC/C,IAAI68B,EACJhgD,KAAK85J,eAAe5xH,UAAYA,EAChCloC,KAAK85J,eAAe3xH,SAAWoiD,EAC/BvqF,KAAK85J,eAAe1xH,SAAW7iC,EAC/BvF,KAAK85J,eAAexxH,aAAenlB,EACnC,IAAIw9I,EAAczC,EAAqD5G,kBAAkBO,kBAAkB10I,GAC3G,OAAQ+kB,GACJ,KAAK,EACL,QACI8X,EAAQ,IAAI29G,EAAYpzE,EAAKhlF,GAC7B,MACJ,KAAK,EACDy6C,EAAQ,IAAI49G,EAASrzE,EAAKhlF,GAC1B,MACJ,KAAK,EACDy6C,EAAQ,IAAI89G,EAASvzE,EAAKhlF,GAC1B,MACJ,KAAK,EACDy6C,EAAQ,IAAI+9G,EAAUxzE,EAAKhlF,GAC3B,MACJ,KAAK,EACDy6C,EAAQ,IAAI09G,EAAsB19J,KAAMuqF,EAAKhlF,GAC7C,MAER,IACI,OAAQvF,KAAK2/J,UACT,KAAKthJ,EAAU+/I,MACX,OAAOp+J,KAAK4gK,iBAAiBr2E,EAAKhlF,EAAKy6C,EAAO,EAAG2gH,GACrD,KAAKtiJ,EAAUggJ,OACX,OAAOr+J,KAAK6gK,eAAet2E,EAAKhlF,EAAKy6C,EAAO,EAAG2gH,GACnD,KAAKtiJ,EAAUigJ,OACX,OAAOt+J,KAAK8gK,gBAAgBv2E,EAAKhlF,EAAKy6C,EAAO,EAAG2gH,GACpD,KAAKtiJ,EAAUkgJ,OACX,OAAOv+J,KAAK+gK,kBAAkBx2E,EAAKhlF,EAAKy6C,EAAO,EAAG2gH,GACtD,KAAKtiJ,EAAUmgJ,QACX,OAAOx+J,KAAKghK,mBAAmBz2E,EAAKhlF,EAAKy6C,EAAO,EAAG2gH,GACvD,KAAKtiJ,EAAU60G,KACf,QACI,OAAO+qC,EAAkDgD,OAAO9+J,OAAO,IAAK,KAExF,CACA,MAAOoyF,GACH,OAAO0pE,EAAkDgD,OAAO9+J,OAAO,GAAI,GAC/E,CACJ,EACA++J,wBAAyB,SAAUC,EAAKp2H,EAAG/mC,EAAG9E,EAAKyhK,GAC/C,GAAmB,MAAfA,EAAJ,CAIA,IAAIS,EAAcliK,EAAM,IACxB,GAAI0+G,OAAOyjD,MAAMD,GAGbD,EAAIG,SAASv2H,EAAG/mC,EAAG,EAAG,EAAG,EAAG,OAHhC,CAMA,IAAIu9J,EAAcZ,EAAYxH,iBAAiBiI,GAC/CD,EAAIG,SAASv2H,EAAG/mC,EAAG0mD,EAAoC9P,GAAGyG,SAASkgH,EAAY9gK,GAAIiqD,EAAoC9P,GAAGyG,SAASkgH,EAAYzhK,GAAI4qD,EAAoC9P,GAAGyG,SAASkgH,EAAY7/J,GAAK1B,KAAK85J,eAAe34H,mBAAqBjiC,EAAO,EAAI,IAFxQ,CAPA,MAFIiiK,EAAIG,SAASv2H,EAAG/mC,EAAG9E,EAAKA,EAAKA,EAAMc,KAAK85J,eAAe34H,mBAAqBjiC,EAAO,EAAI,IAY/F,EACA0hK,iBAAkB,SAAUr2E,EAAKhlF,EAAKy6C,EAAOxJ,EAAGmqH,GAM5C,IALA,IAAIa,EAAMxhK,KAAKqgK,cAEX1+B,EAAS3hI,KAAK+6J,SAAS,GACvB0G,EAAOzhK,KAAK+6J,SAAS,GAAK/6J,KAAK+6J,SAAS,GAAKvkH,EAC7C2qH,EAAMlD,EAAkDgD,OAAO9+J,OAAOnC,KAAK+6J,SAAS,GAAI/6J,KAAK+6J,SAAS,IACjG/2J,EAAI,EAAGA,EAAIhE,KAAK+6J,SAAS,GAAI/2J,IAElC,IADA,IAAI09J,EAAW1hK,KAAK+6J,SAAS,GAAK,EAAK/2J,EAC9B+mC,EAAI,EAAGA,EAAI/qC,KAAK+6J,SAAS,GAAIhwH,IAClC,GAAI/qC,KAAK4/J,SAAU,CACf,IAAI+B,EAAOH,EAAKz2H,EAAI22H,EAAS//B,GACzBigC,EAAOJ,EAAKz2H,EAAI22H,EAAS//B,EAAU8/B,GACnCI,EAAOL,EAAKz2H,EAAI22H,EAAS//B,EAAiB,EAAP8/B,GACvC,GAAIzhK,KAAK85J,eAAer7C,gBAAkBkjD,IAAS3hK,KAAK85J,eAAep7C,WACnEyiD,EAAIG,SAASv2H,EAAG/mC,EAAG,EAAG,EAAG,EAAG,OAE3B,CACD,IAAIvD,EAAIu/C,EAAMvvC,IAAIkxJ,GACd7hK,EAAIkgD,EAAMvvC,IAAImxJ,GACdlgK,EAAIs+C,EAAMvvC,IAAIoxJ,GAClBV,EAAIG,SAASv2H,EAAG/mC,EAAGvD,EAAGX,EAAG4B,EAAG,IAChC,CACJ,KACK,CACD,IAAIogK,EAAYN,EAAIz2H,EAAI22H,EAAS//B,EAAS8/B,GAC1C,GAAIzhK,KAAK85J,eAAer7C,gBAAkBqjD,IAAc9hK,KAAK85J,eAAep7C,WACxEyiD,EAAIG,SAASv2H,EAAG/mC,EAAG,EAAG,EAAG,EAAG,OAE3B,CACD,IAAI9E,EAAM8gD,EAAMvvC,IAAIqxJ,GACpB9hK,KAAKkhK,wBAAwBC,EAAKp2H,EAAG/mC,EAAG9E,EAAKyhK,EACjD,CACJ,CAGR,OAAOQ,CACX,EACAH,mBAAoB,SAAUz2E,EAAKhlF,EAAKy6C,EAAOxJ,EAAGmqH,GAM9C,IALA,IAAIa,EAAMxhK,KAAKqgK,cAEX1+B,EAAS3hI,KAAK+6J,SAAS,GACvB0G,EAAOzhK,KAAK+6J,SAAS,GAAK/6J,KAAK+6J,SAAS,GAAKvkH,EAC7C2qH,EAAMlD,EAAkDgD,OAAO9+J,OAAOnC,KAAK+6J,SAAS,GAAI/6J,KAAK+6J,SAAS,IACjG/2J,EAAI,EAAGA,EAAIhE,KAAK+6J,SAAS,GAAI/2J,IAElC,IADA,IAAI09J,EAAW1hK,KAAK+6J,SAAS,GAAK,EAAK/2J,EAC9B+mC,EAAI,EAAGA,EAAI/qC,KAAK+6J,SAAS,GAAIhwH,IAClC,GAAI/qC,KAAK4/J,SAAU,CACf,IAAI+B,EAAOH,EAAKz2H,EAAI22H,EAAS//B,GACzBigC,EAAOJ,EAAKz2H,EAAI22H,EAAS//B,EAAU8/B,GACnCI,EAAOL,EAAKz2H,EAAI22H,EAAS//B,EAAiB,EAAP8/B,GACvC,GAAIzhK,KAAK85J,eAAer7C,gBAAkBkjD,IAAS3hK,KAAK85J,eAAep7C,WACnEyiD,EAAIG,SAASv2H,EAAG/mC,EAAG,EAAG,EAAG,EAAG,OAE3B,CACD,IAAIvD,EAAIu/C,EAAMvvC,IAAIkxJ,GACd7hK,EAAIkgD,EAAMvvC,IAAImxJ,GACdlgK,EAAIs+C,EAAMvvC,IAAIoxJ,GAClBV,EAAIG,SAASv2H,EAAG/mC,EAAGvD,EAAGX,EAAG4B,EAAG,IAChC,CACJ,KACK,CACD,IAAIogK,EAAYN,EAAIz2H,EAAI22H,EAAS//B,EAAS8/B,GAC1C,GAAIzhK,KAAK85J,eAAer7C,gBAAkBqjD,IAAc9hK,KAAK85J,eAAep7C,WACxEyiD,EAAIG,SAASv2H,EAAG/mC,EAAG,EAAG,EAAG,EAAG,OAE3B,CACD,IAAI9E,EAAM8gD,EAAMvvC,IAAIqxJ,GACpB9hK,KAAKkhK,wBAAwBC,EAAKp2H,EAAG/mC,EAAG9E,EAAKyhK,EACjD,CACJ,CAGR,OAAOQ,CACX,EACAJ,kBAAmB,SAAUx2E,EAAKhlF,EAAKy6C,EAAOxJ,EAAGmqH,GAM7C,IALA,IAAIa,EAAMxhK,KAAKqgK,cAEX1+B,EAAS3hI,KAAK+6J,SAAS,GACvB0G,EAAOzhK,KAAK+6J,SAAS,GAAK/6J,KAAK+6J,SAAS,GAAKvkH,EAC7C2qH,EAAMlD,EAAkDgD,OAAO9+J,OAAOnC,KAAK+6J,SAAS,GAAI/6J,KAAK+6J,SAAS,IACjG/2J,EAAI,EAAGA,EAAIhE,KAAK+6J,SAAS,GAAI/2J,IAElC,IADA,IAAI09J,EAAW1hK,KAAK+6J,SAAS,GAAK,EAAK/2J,EAC9B+mC,EAAI,EAAGA,EAAI/qC,KAAK+6J,SAAS,GAAIhwH,IAClC,GAAI/qC,KAAK4/J,SAAU,CACf,IAAI+B,EAAOH,EAAKz2H,EAAI22H,EAAS//B,GACzBigC,EAAOJ,EAAKz2H,EAAI22H,EAAS//B,EAAU8/B,GACnCI,EAAOL,EAAKz2H,EAAI22H,EAAS//B,EAAiB,EAAP8/B,GACvC,GAAIzhK,KAAK85J,eAAer7C,gBAAkBkjD,IAAS3hK,KAAK85J,eAAep7C,WACnEyiD,EAAIG,SAASv2H,EAAG/mC,EAAG,EAAG,EAAG,EAAG,OAE3B,CACD,IAAIvD,EAAIu/C,EAAMvvC,IAAIkxJ,GACd7hK,EAAIkgD,EAAMvvC,IAAImxJ,GACdlgK,EAAIs+C,EAAMvvC,IAAIoxJ,GAClBV,EAAIG,SAASv2H,EAAG/mC,EAAGvD,EAAGX,EAAG4B,EAAG,IAChC,CACJ,KACK,CACD,IAAIogK,EAAYN,EAAIz2H,EAAI22H,EAAS//B,EAAS8/B,GAC1C,GAAIzhK,KAAK85J,eAAer7C,gBAAkBqjD,IAAc9hK,KAAK85J,eAAep7C,WACxEyiD,EAAIG,SAASv2H,EAAG/mC,EAAG,EAAG,EAAG,EAAG,OAE3B,CACD,IAAI9E,EAAM8gD,EAAMvvC,IAAIqxJ,GACpB9hK,KAAKkhK,wBAAwBC,EAAKp2H,EAAG/mC,EAAG9E,EAAKyhK,EACjD,CACJ,CAGR,OAAOQ,CACX,EACAL,gBAAiB,SAAUv2E,EAAKhlF,EAAKy6C,EAAOxJ,EAAGmqH,GAM3C,IALA,IAAIa,EAAMxhK,KAAKqgK,cAEX1+B,EAAS3hI,KAAK+6J,SAAS,GACvB0G,EAAOzhK,KAAK+6J,SAAS,GAAK/6J,KAAK+6J,SAAS,GAAKvkH,EAC7C2qH,EAAMlD,EAAkDgD,OAAO9+J,OAAOnC,KAAK+6J,SAAS,GAAI/6J,KAAK+6J,SAAS,IACjG/2J,EAAI,EAAGA,EAAIhE,KAAK+6J,SAAS,GAAI/2J,IAElC,IADA,IAAI09J,EAAW1hK,KAAK+6J,SAAS,GAAK,EAAK/2J,EAC9B+mC,EAAI,EAAGA,EAAI/qC,KAAK+6J,SAAS,GAAIhwH,IAClC,GAAI/qC,KAAK4/J,SAAU,CACf,IAAI+B,EAAOH,EAAKz2H,EAAI22H,EAAS//B,GACzBigC,EAAOJ,EAAKz2H,EAAI22H,EAAS//B,EAAU8/B,GACnCI,EAAOL,EAAKz2H,EAAI22H,EAAS//B,EAAiB,EAAP8/B,GACvC,GAAIzhK,KAAK85J,eAAer7C,gBAAkBkjD,IAAS3hK,KAAK85J,eAAep7C,WACnEyiD,EAAIG,SAASv2H,EAAG/mC,EAAG,EAAG,EAAG,EAAG,OAE3B,CACD,IAAIvD,EAAIu/C,EAAMvvC,IAAIkxJ,GACd7hK,EAAIkgD,EAAMvvC,IAAImxJ,GACdlgK,EAAIs+C,EAAMvvC,IAAIoxJ,GAClBV,EAAIG,SAASv2H,EAAG/mC,EAAGvD,EAAGX,EAAG4B,EAAG,IAChC,CACJ,KACK,CACD,IAAIogK,EAAYN,EAAIz2H,EAAI22H,EAAS//B,EAAS8/B,GAC1C,GAAIzhK,KAAK85J,eAAer7C,gBAAkBqjD,IAAc9hK,KAAK85J,eAAep7C,WACxEyiD,EAAIG,SAASv2H,EAAG/mC,EAAG,EAAG,EAAG,EAAG,OAE3B,CACD,IAAI9E,EAAM8gD,EAAMvvC,IAAIqxJ,GACpB9hK,KAAKkhK,wBAAwBC,EAAKp2H,EAAG/mC,EAAG9E,EAAKyhK,EACjD,CACJ,CAGR,OAAOQ,CACX,EAEAN,eAAgB,SAAUt2E,EAAKhlF,EAAKy6C,EAAOxJ,EAAGmqH,GAM1C,IALA,IAAIa,EAAMxhK,KAAKqgK,cAEX1+B,EAAS3hI,KAAK+6J,SAAS,GACvB0G,EAAOzhK,KAAK+6J,SAAS,GAAK/6J,KAAK+6J,SAAS,GAAKvkH,EAC7C2qH,EAAMlD,EAAkDgD,OAAO9+J,OAAOnC,KAAK+6J,SAAS,GAAI/6J,KAAK+6J,SAAS,IACjG/2J,EAAI,EAAGA,EAAIhE,KAAK+6J,SAAS,GAAI/2J,IAElC,IADA,IAAI09J,EAAW1hK,KAAK+6J,SAAS,GAAK,EAAK/2J,EAC9B+mC,EAAI,EAAGA,EAAI/qC,KAAK+6J,SAAS,GAAIhwH,IAClC,GAAI/qC,KAAK4/J,SAAU,CACf,IAAI+B,EAAOH,EAAKz2H,EAAI22H,EAAS//B,GACzBigC,EAAOJ,EAAKz2H,EAAI22H,EAAS//B,EAAU8/B,GACnCI,EAAOL,EAAKz2H,EAAI22H,EAAS//B,EAAiB,EAAP8/B,GACvC,GAAIzhK,KAAK85J,eAAer7C,gBAAkBkjD,IAAS3hK,KAAK85J,eAAep7C,WACnEyiD,EAAIG,SAASv2H,EAAG/mC,EAAG,EAAG,EAAG,EAAG,OAE3B,CACD,IAAIvD,EAAIu/C,EAAMvvC,IAAIkxJ,GACd7hK,EAAIkgD,EAAMvvC,IAAImxJ,GACdlgK,EAAIs+C,EAAMvvC,IAAIoxJ,GAClBV,EAAIG,SAASv2H,EAAG/mC,EAAGvD,EAAGX,EAAG4B,EAAG,IAChC,CACJ,KACK,CACD,IAAIogK,EAAYN,EAAIz2H,EAAI22H,EAAS//B,EAAS8/B,GAC1C,GAAIzhK,KAAK85J,eAAer7C,gBAAkBqjD,IAAc9hK,KAAK85J,eAAep7C,WACxEyiD,EAAIG,SAASv2H,EAAG/mC,EAAG,EAAG,EAAG,EAAG,OAE3B,CACD,IAAI9E,EAAM8gD,EAAMvvC,IAAIqxJ,GACpB9hK,KAAKkhK,wBAAwBC,EAAKp2H,EAAG/mC,EAAG9E,EAAKyhK,EACjD,CACJ,CAGR,OAAOQ,CACX,EAEA5F,WAAY,WACHv7J,KAAK6/J,aACN1B,EAA4C9H,UAAU/1J,UAAUi7J,WAAW/6J,KAAKR,KAExF,EAEAm9J,kBAAmB,SAAU9B,GACzB,OAAQr7J,KAAK2/J,UACT,KAAKthJ,EAAU+/I,MACXp+J,KAAK+hK,yBAAyB1G,GAC9B,MACJ,KAAKh9I,EAAUggJ,OACXr+J,KAAKgiK,0BAA0B3G,GAC/B,MACJ,KAAKh9I,EAAUigJ,OACXt+J,KAAKiiK,0BAA0B5G,GAC/B,MACJ,KAAKh9I,EAAUkgJ,OACXv+J,KAAKkiK,0BAA0B7G,GAC/B,MACJ,KAAKh9I,EAAUmgJ,QACXx+J,KAAKmiK,2BAA2B9G,GAChC,MAEZ,EACA8G,2BAA4B,SAAU9G,GAClC,IAAIgC,EAAUhC,EAAU14J,OACpB6+J,EAAMxhK,KAAKqgK,cACXhzH,GAAUrtC,KAAK85J,eAAel7C,OAAS5+G,KAAK85J,eAAej7C,QAAUw+C,EACrE/hH,EAASoP,EAAoC9P,GAAGW,UAAUimH,GAC9D,MAAOlmH,EAAOE,WAAY,CACtB,IAAIt8C,EAAMo8C,EAAOI,QACZkiE,OAAOyjD,MAAMniK,IACdm8J,EAAU/1J,KAAKilF,IAAI8yE,EAAU,EAAG3yG,EAAoC9P,GAAGyG,UAAWniD,EAAMc,KAAK85J,eAAej7C,QAAUxxE,MAE9H,CACJ,EACA60H,0BAA2B,SAAU7G,GACjC,IAAIgC,EAAUhC,EAAU14J,OACpB6+J,EAAMxhK,KAAKqgK,cACXhzH,GAAUrtC,KAAK85J,eAAel7C,OAAS5+G,KAAK85J,eAAej7C,QAAUw+C,EACrE/hH,EAASoP,EAAoC9P,GAAGW,UAAUimH,GAC9D,MAAOlmH,EAAOE,WAAY,CACtB,IAAIt8C,EAAMo8C,EAAOI,QACXx8C,IAAQi/J,EAA4C9H,UAAU6D,KAChEmB,EAAU/1J,KAAKilF,IAAI8yE,EAAU,EAAG3yG,EAAoC9P,GAAGyG,UAAWniD,EAAMc,KAAK85J,eAAej7C,QAAUxxE,MAE9H,CACJ,EACA40H,0BAA2B,SAAU5G,GACjC,IAAIgC,EAAUhC,EAAU14J,OACpB6+J,EAAMxhK,KAAKqgK,cACXhzH,GAAUrtC,KAAK85J,eAAel7C,OAAS5+G,KAAK85J,eAAej7C,QAAUw+C,EACrE/hH,EAASoP,EAAoC9P,GAAGW,UAAUimH,GAC9D,MAAOlmH,EAAOE,WAAY,CACtB,IAAIt8C,EAAMo8C,EAAOI,QACjB2/G,EAAU/1J,KAAKilF,IAAI8yE,EAAU,EAAG3yG,EAAoC9P,GAAGyG,UAAWniD,EAAMc,KAAK85J,eAAej7C,QAAUxxE,MAC1H,CACJ,EACA20H,0BAA2B,SAAU3G,GACjC,IAAIgC,EAAUhC,EAAU14J,OACpB6+J,EAAMxhK,KAAKqgK,cACXhzH,GAAUrtC,KAAK85J,eAAel7C,OAAS5+G,KAAK85J,eAAej7C,QAAUw+C,EACrE/hH,EAASoP,EAAoC9P,GAAGW,UAAUimH,GAC9D,MAAOlmH,EAAOE,WAAY,CACtB,IAAIt8C,EAAMo8C,EAAOI,QACjB2/G,EAAU/1J,KAAKilF,IAAI8yE,EAAU,EAAG3yG,EAAoC9P,GAAGyG,UAAWniD,EAAMc,KAAK85J,eAAej7C,QAAUxxE,MAC1H,CACJ,EACA00H,yBAA0B,SAAU1G,GAChC,IAAIgC,EAAUhC,EAAU14J,OACpB6+J,EAAMxhK,KAAKqgK,cACXhzH,GAAUrtC,KAAK85J,eAAel7C,OAAS5+G,KAAK85J,eAAej7C,QAAUw+C,EACrE/hH,EAASoP,EAAoC9P,GAAGW,UAAUimH,GAC9D,MAAOlmH,EAAOE,WAAY,CACtB,IAAIt8C,EAAMo8C,EAAOI,QACjB2/G,EAAU/1J,KAAKilF,IAAI8yE,EAAU,EAAG3yG,EAAoC9P,GAAGyG,UAAWniD,EAAMc,KAAK85J,eAAej7C,QAAUxxE,MAC1H,CACJ,IAGJ,EAAGsd,EAA4CzS,cAAc,cAAe,CAACulH,EAAasC,EAAc5B,EAA4C9H,WAG7I,EAED;;;2CAIA,CAAE13J,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC6iK,cAAe,IAAM,IAEvB,IAAI9tH,EAA8C,yBAA4C,uBAC1F+tH,EAA8C,wBAA2C,8BAelH,SAASD,EAActoD,EAASxqG,EAAMgqJ,GAClC+I,EAA4ChM,UAAU71J,KAAKR,KAAM85G,EAASxqG,EAAM,KAAMgqJ,EAC1F,CAEA,IAAIgJ,EAAiB,CACjB7G,oBAAqB,SAAUjB,GAC3B,IAAIh4J,EAAI,EACR,MAAOxC,KAAK+lG,SAAWy0D,EAASsB,WAC5B97J,KAAKw7J,SAASh5J,GAAKg4J,EAASuB,WAAW/7J,KAAK+lG,UAAU,GACtDvjG,IACAxC,KAAK+lG,UAAY,CAEzB,EAEA21D,oBAAqB,SAAUlB,GAC3B,IAAIh4J,EAAI,EACR,MAAOxC,KAAK+lG,SAAWy0D,EAASsB,WAC5B97J,KAAKw7J,SAASh5J,GAAKg4J,EAASyB,WAAWj8J,KAAK+lG,UAAU,GACtDvjG,IACAxC,KAAK+lG,UAAY,CAEzB,EAEA41D,kBAAmB,SAAUnB,GACzB,IAAIh4J,EAAI,EACR,MAAOxC,KAAK+lG,SAAWy0D,EAASsB,WAC5B97J,KAAKw7J,SAASh5J,GAAKg4J,EAASC,SAASz6J,KAAK+lG,UAC1CvjG,IACAxC,KAAK+lG,UAAY,CAEzB,EAEA61D,kBAAmB,SAAUpB,GACzB,IAAIh4J,EAAI,EACR,MAAOxC,KAAK+lG,SAAWy0D,EAASsB,WAC5B97J,KAAKw7J,SAASh5J,GAAKg4J,EAAS0B,SAASl8J,KAAK+lG,UAAU,GACpDvjG,IACAxC,KAAK+lG,UAAY,CAEzB,EAEA81D,kBAAmB,SAAUrB,GACzB,IAAIh4J,EAAI,EACR,MAAOxC,KAAK+lG,SAAWy0D,EAASsB,WAC5B97J,KAAKw7J,SAASh5J,GAAKg4J,EAAS2B,SAASn8J,KAAK+lG,UAAU,GACpDvjG,IACAxC,KAAK+lG,UAAY,CAEzB,EAEAw1D,WAAY,WAAc,IAG9B,EAAGjnH,EAA4C4D,cAAc,gBAAiB,CAACkqH,EAAeE,EAAgBD,EAA4ChM,WAGnJ,EAED;;;oCAIA,CAAE13J,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCgjK,aAAc,IAAM,IAEtB,IAAI73G,EAAsC,iBAAoC,eAC1E83G,EAAyC,mBAAsC,yBAC/EC,EAA4D,sCAAyD,4CACrHC,EAA8C,wBAA2C,8BACzFC,EAAkD,4BAA+C,kCACjGC,EAA4C,sBAAyC,4BACrFC,EAA+C,yBAA4C,+BAC3FC,EAAqD,+BAAkD,qCACvGC,EAAkD,4BAA+C,kCAwB1H,SAASR,EAAaS,EAAWC,GAC7B,IAAIC,EAAiBF,EAAU1/C,WAAWC,aAAa,QAAQC,UAE3D2/C,EAAcz4G,EAAoC9P,GAAGq+C,cAAciqE,EAAgB,eAAgB,IACvG,GAAmB,MAAfC,EACA,OAAO,KAGX,IAAIC,EAAW,KACf,OAAQD,GACJ,IAAK,mBACDC,EAAW,IAAIN,EAAmDrhI,iBAClE,MACJ,IAAK,wBACD2hI,EAAW,IAAIX,EAA0DY,sBACzE,MACJ,IAAK,YACDD,EAAW,IAAIV,EAA4CY,UAC3D,MACJ,IAAK,gBACDF,EAAW,IAAIT,EAAgDjiI,cAC/D,MACJ,IAAK,gBACD0iI,EAAW,IAAIR,EAA0CW,cACzD,MACJ,IAAK,aACDH,EAAW,IAAIP,EAA6CW,WAC5D,MACJ,IAAK,eACDJ,EAAW,IAAIL,EAAgDU,aAC/D,MACJ,QACI,OAAO,KAIf,OADAL,EAASM,YAAYV,GACdI,CACX,CAEAZ,EAAuCmB,MAAMC,QAAUrB,CAGhD,EAED;;;oDAIA,CAAE5jK,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC8jK,sBAAuB,IAAM,IAE/B,IAAI/uH,EAA8C,yBAA4C,uBAC1Fq0C,EAA4C,uBAA0C,qBACtFC,EAAyD,oCAAuD,kCAChHsE,EAA+C,0BAA6C,wBAC5F22E,EAAyC,mBAAsC,yBAkBxG,SAASR,IACLrjK,KAAK8jK,gBAAkB,KACvB9jK,KAAK+jK,YAAc,EACnB/jK,KAAKgkK,YAAc,EACnBhkK,KAAKikK,UAAY,EACjBjkK,KAAKkkK,UAAY,EACjBlkK,KAAKmkK,SAAW,EAChBnkK,KAAKokK,mBAAqB,IAC1BP,EAAuCF,MAAMnjK,KAAKR,KACtD,CAEA,IAAIqkK,EAAyB,CAIzBC,YAAa,WACT,MAAO,mCACX,EAEA1+B,QAAS,WACuB,MAAxB5lI,KAAK8jK,iBACL9jK,KAAK8jK,gBAAgBpvC,QAEzB10H,KAAK8jK,gBAAkB,KACvBD,EAAuCF,MAAMrjK,UAAUslI,QAAQplI,KAAKR,KACxE,EAEA+1C,KAAM,SAAU9T,EAAexgB,EAAS8iJ,GAMpC,OAL4B,MAAxBvkK,KAAK8jK,iBACL9jK,KAAKwkK,mBAAmBviI,GAE5BjiC,KAAK8jK,gBAAgBtiH,KAAOxhD,KAAKokK,mBAAqB,IACtDpkK,KAAK8jK,gBAAgB/tH,KAAK9T,EAAexgB,EAAUzhB,KAAKwhB,cAAe,IAChE,CACX,EACAgjJ,mBAAoB,SAAUviI,GAC1BjiC,KAAK8jK,gBAAkB,IAAIl7E,EAAuDlzC,aAClF11C,KAAK8jK,gBAAgBp+I,MAAQ,IAC7B1lB,KAAK8jK,gBAAgBpgI,IAAM1jC,KAAKqgB,mBAChCrgB,KAAK8jK,gBAAgBh5I,YAAa,EAClC9qB,KAAK8jK,gBAAgBluH,eAAgB,EACrC51C,KAAK8jK,gBAAgBvtC,UAAW,EAChC,IAAIkuC,EAAQ,IACR/9H,EAAQwmD,EAA6C10C,YAAYq3C,cAAc7vF,KAAK+jK,YAAa/jK,KAAKgkK,aACtG36E,EAAM6D,EAA6C10C,YAAYq3C,cAAc7vF,KAAKikK,UAAWjkK,KAAKkkK,WAClGQ,EAAM/7E,EAA0C3vC,SAASsqD,gBAAgBja,EAAK3iD,GAClFg+H,EAAIt8D,YACJ,IAAIu8D,EAAcj+H,EAClBi+H,EAAYv8D,YACZ,IAAIxY,EAAOjH,EAA0C3vC,SAASK,MAAMsrH,EAAaD,GAC7E50E,EAAQnH,EAA0C3vC,SAASK,MAAMqrH,EAAKC,GAC1E/0E,EAAKwY,YACLtY,EAAMsY,YACNxY,EAAKyY,SAAS,KAAQroG,KAAKmkK,UAC3Br0E,EAAMuY,SAAS,KAAQroG,KAAKmkK,UAI5B,IAHA,IAAIS,EAAW,IAAIj8E,EAA0C3vC,SACzD6rH,EAAY,IAAIl8E,EAA0C3vC,SAC1D8rH,GAAY,EACPtiK,EAAI,EAAGA,GAAKiiK,EAAOjiK,IAAK,CAC7B,IAAIgC,EAAImkF,EAA0C3vC,SAAS02C,KAAKhpD,EAAO2iD,EAAK7mF,EAAIiiK,GAChFjgK,EAAE4jG,YACF,IAAI28D,EAAKvgK,EACLwgK,EAAKxgK,EACTugK,EAAGprJ,IAAIi2E,GACPo1E,EAAGrrJ,IAAIm2E,GACFg1E,EAIDA,GAAY,EAHZ9kK,KAAK8jK,gBAAgB3sC,QAAQ0tC,EAAWD,EAAUI,EAAID,EAAI/kK,KAAKwgB,YAAa,IAAIooE,EAAuD7uC,MAAMv3C,EAAIiiK,EAAO,IAK5JG,EAAWG,EACXF,EAAYG,CAChB,CACJ,EAEAC,UAAW,WACP,MAAO,CAACjlK,KAAKokK,mBACjB,EAEAc,cAAe,WACX,MAAO,CAAC,aACZ,EAEAC,UAAW,SAAUC,GACbA,EAAUziK,OAAS,IACnB3C,KAAKokK,mBAAqBgB,EAAU,GAE5C,EAEAC,aAAc,WACV,OAAOrlK,KAAK+jK,WAChB,EAEAuB,aAAc,SAAU1kK,GAKpB,OAJIZ,KAAK+jK,cAAgBnjK,IACrBZ,KAAK+jK,YAAcnjK,EACnBZ,KAAKqiB,WAEFzhB,CACX,EAEA2kK,aAAc,WACV,OAAOvlK,KAAKgkK,WAChB,EAEAwB,aAAc,SAAU5kK,GAKpB,OAJIZ,KAAKgkK,cAAgBpjK,IACrBZ,KAAKgkK,YAAcpjK,EACnBZ,KAAKqiB,WAEFzhB,CACX,EAEA6kK,WAAY,WACR,OAAOzlK,KAAKikK,SAChB,EAEAyB,WAAY,SAAU9kK,GAKlB,OAJIZ,KAAKikK,YAAcrjK,IACnBZ,KAAKikK,UAAYrjK,EACjBZ,KAAKqiB,WAEFzhB,CACX,EAEA+kK,WAAY,WACR,OAAO3lK,KAAKkkK,SAChB,EAEA0B,WAAY,SAAUhlK,GAKlB,OAJIZ,KAAKkkK,YAActjK,IACnBZ,KAAKkkK,UAAYtjK,EACjBZ,KAAKqiB,WAEFzhB,CACX,EAEAilK,UAAW,WACP,OAAO7lK,KAAKmkK,QAChB,EAEA2B,UAAW,SAAUllK,GAKjB,OAJIZ,KAAKmkK,WAAavjK,IAClBZ,KAAKmkK,SAAWvjK,EAChBZ,KAAKqiB,WAEFzhB,CACX,EAEAmlK,oBAAqB,WACjB,OAAO/lK,KAAKokK,kBAChB,EAEA4B,oBAAqB,SAAUplK,GAK3B,OAJIZ,KAAKokK,qBAAuBxjK,IAC5BZ,KAAKokK,mBAAqBxjK,EAC1BZ,KAAKqiB,WAEFzhB,CACX,EAEAqlK,qBAAsB,SAAUlV,GAC5BA,EAAUG,sBAAsB,WAAYlxJ,KAAKqlK,eAAe37J,YAChEqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAKulK,eAAe77J,YAChEqnJ,EAAUG,sBAAsB,SAAUlxJ,KAAKylK,aAAa/7J,YAC5DqnJ,EAAUG,sBAAsB,SAAUlxJ,KAAK2lK,aAAaj8J,YAC5DqnJ,EAAUG,sBAAsB,QAASlxJ,KAAK6lK,YAAYn8J,YAC1DqnJ,EAAUG,sBAAsB,kBAAmBlxJ,KAAK+lK,sBAAsBr8J,WAClF,EAEAw8J,kBAAmB,SAAUx6J,GACzB1L,KAAK+jK,YAAc55E,WAAWz+E,EAAK43G,WAAWC,aAAa,YAAYC,WACvExjH,KAAKgkK,YAAc75E,WAAWz+E,EAAK43G,WAAWC,aAAa,YAAYC,WACvExjH,KAAKikK,UAAY95E,WAAWz+E,EAAK43G,WAAWC,aAAa,UAAUC,WACnExjH,KAAKkkK,UAAY/5E,WAAWz+E,EAAK43G,WAAWC,aAAa,UAAUC,WACnExjH,KAAKmkK,SAAWh6E,WAAWz+E,EAAK43G,WAAWC,aAAa,SAASC,WACjExjH,KAAKokK,mBAAqBj6E,WAAWz+E,EAAK43G,WAAWC,aAAa,mBAAmBC,UACzF,IAGJ,EAAGlvE,EAA4C4D,cAAc,wBAAyB,CAACmrH,EAAuBgB,EAAwBR,EAAuCF,OAGtK,EAED;;;sCAIA,CAAEhlK,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC+jK,UAAW,IAAM,IAEnB,IAAIhvH,EAA8C,yBAA4C,uBAC1F6xH,EAAyC,oBAAuC,kBAChFC,EAAyC,mBAAsC,yBAaxG,SAAS9C,IACL8C,EAAuCzC,MAAMnjK,KAAKR,KACtD,CAEA,IAAIqmK,EAAa,CACbtwH,KAAM,SAAU9T,EAAexgB,EAAS8iJ,GAGpC,OAFA4B,EAAuCjuB,MAAMqI,eAAet+G,EAAexgB,EAAUzhB,KAAKwhB,cAAexhB,KAAKwgB,aAC9G2lJ,EAAuCjuB,MAAMuI,mBAAmBx+G,EAAexgB,EAAUzhB,KAAKwhB,cAAexhB,KAAKwgB,cAC3G,CACX,IAGJ,EAAG8zB,EAA4C4D,cAAc,YAAa,CAACorH,EAAW+C,EAAYD,EAAuCzC,OAGlI,EAED;;;0CAIA,CAAEhlK,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCmhC,cAAe,IAAM,IAEvB,IAAIgqB,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FoyC,EAA4C,uBAA0C,qBACtFyI,EAAkD,6BAAgD,2BAClG8gE,EAAuD,kCAAqD,gCAC5GC,EAAuD,iCAAoD,uCAC3GC,EAA8C,wBAA2C,8BACzFC,EAAiD,2BAA8C,iCAC/FC,EAA4C,uBAA0C,qBACtFC,EAAyC,mBAAsC,yBAoBxG,SAASjmI,IACL1gC,KAAK4mK,YAAc,KACnB5mK,KAAK6mK,aAAe,OACpB7mK,KAAK8mK,yBAA0B,EAC/B9mK,KAAK+mK,WAAY,EACjBJ,EAAuChD,MAAMnjK,KAAKR,KACtD,CAEA0gC,EAAcv+B,OAAS,SAAU4S,GAC7B,IAAIiyJ,EAAM,IAAItmI,EAEd,OADAsmI,EAAIJ,YAAc7xJ,EACXiyJ,CACX,EAEA,IAAIC,EAAiB,CACjBhmI,aAAc,WACV,OAAOjhC,KAAK4mK,WAChB,EAEAM,aAAc,SAAUtmK,GAEpB,OADAZ,KAAK4mK,YAAchmK,EACZA,CACX,EAEAyiB,yBAA0B,WACtB,OAAOrjB,KAAK8mK,uBAChB,EAEAvjJ,yBAA0B,SAAU3iB,GAEhC,OADAZ,KAAK8mK,wBAA0BlmK,EACxBA,CACX,EAEAogC,aAAc,WACV,OAAO0pB,EAAoC9P,GAAGw7G,SAASp2J,KAAK4mK,YAAYhU,eAAgB4T,EAA4CnQ,UACxI,EAQA8Q,kBAAmB,WACf,IAAIC,EAAkD,UAArCpnK,KAAK4mK,YAAY/+H,gBAClC,OAAO6iB,EAAoC9P,GAAG21C,QAAQvwF,KAAK4mK,YAAYhU,eAAgB4T,EAA4CnQ,YAAkD,MAAnCr2J,KAAK4mK,YAAYhU,gBAA0BwU,CACjM,EAEAlB,kBAAmB,SAAUx6J,GACzB,IAAI27J,EAAetqE,EAA0Cr6C,KAAKuoC,iBAAiBv/E,EAAM,YACzF1L,KAAK4mK,YAAcF,EAA0C9iD,SAASC,YAAYwjD,GACjC,MAA7C37J,EAAK43G,WAAWC,aAAa,eAC7BvjH,KAAK6mK,aAAen7J,EAAK43G,WAAWC,aAAa,aAAaC,WAEjB,MAA7C93G,EAAK43G,WAAWC,aAAa,eAC7BvjH,KAAKihC,eAAeC,qBAAqBgH,UAAYyiB,EAA4C4kG,MAAM5nJ,MAAM,aAAc+D,EAAK43G,WAAWC,aAAa,aAAaC,YAEzH,MAA5C93G,EAAK43G,WAAWC,aAAa,cAC7BvjH,KAAKihC,eAAeC,qBAAqB29E,OAAS10B,WAAWz+E,EAAK43G,WAAWC,aAAa,YAAYC,WACtGxjH,KAAKihC,eAAeC,qBAAqBiH,SAAwD,MAA5Cz8B,EAAK43G,WAAWC,aAAa,YAAuBp5B,WAAWz+E,EAAK43G,WAAWC,aAAa,YAAYC,WAAaxjH,KAAKihC,eAAeC,qBAAqB29E,QAEvK,MAA5CnzG,EAAK43G,WAAWC,aAAa,cAC7BvjH,KAAKihC,eAAeC,qBAAqB09E,OAASz0B,WAAWz+E,EAAK43G,WAAWC,aAAa,YAAYC,WACtGxjH,KAAKihC,eAAeC,qBAAqBkH,SAAwD,MAA5C18B,EAAK43G,WAAWC,aAAa,YAAuBp5B,WAAWz+E,EAAK43G,WAAWC,aAAa,YAAYC,WAAaxjH,KAAKihC,eAAeC,qBAAqB09E,QAEhK,MAAnDlzG,EAAK43G,WAAWC,aAAa,qBAC7BvjH,KAAKihC,eAAeC,qBAAqBoH,aAAe58B,EAAK43G,WAAWC,aAAa,mBAAmBC,WAErD,MAAnD93G,EAAK43G,WAAWC,aAAa,qBAC7BvjH,KAAK8mK,wBAA0Bp8G,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,mBAAmBC,WAEtI,EAEAztE,KAAM,SAAU9T,EAAexgB,EAAS8iJ,GACpC,QAAKvkK,KAAK+mK,YAGV9kI,EAAcq9G,cAAcr9G,EAAcw3F,aAC1Cx3F,EAAcqlI,aAAarlI,EAAcy3F,YACzCz3F,EAAcu9G,cACdv9G,EAAcu3D,aAAax5F,KAAK4mK,YAAa5mK,KAAKwhB,cAAgBC,EAAU,MACrE,EACX,EAEAwkJ,qBAAsB,SAAUlV,GACW,MAAnC/wJ,KAAK4mK,YAAYhU,iBACb5yJ,KAAKmnK,oBACLnnK,KAAK6mK,aAAe,OAGpB7mK,KAAK6mK,aAAe,OAExB9V,EAAUG,sBAAsB,YAAalxJ,KAAK6mK,eAElD7mK,KAAKmnK,sBACLpW,EAAUG,sBAAsB,YAAavmG,EAA4C4kG,MAAM6B,MAAM,aAAcpxJ,KAAK4mK,YAAY1lI,qBAAqBgH,YACzJ6oH,EAAUG,sBAAsB,WAAYlxJ,KAAK4mK,YAAY1lI,qBAAqB29E,OAAOn1G,YACzFqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAK4mK,YAAY1lI,qBAAqB09E,OAAOl1G,YACzFqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAK4mK,YAAY1lI,qBAAqBiH,SAASz+B,YAC3FqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAK4mK,YAAY1lI,qBAAqBkH,SAAS1+B,YACjC,MAAtD1J,KAAK4mK,YAAY1lI,qBAAqBoH,cACtCyoH,EAAUG,sBAAsB,kBAAmBlxJ,KAAK4mK,YAAY1lI,qBAAqBoH,eAGjGyoH,EAAUG,sBAAsB,kBAAmBlxJ,KAAK8mK,wBAAwBp9J,YAChFg9J,EAA0C9iD,SAASktC,UAAUC,EAAW/wJ,KAAK4mK,YAAa,IAC1FD,EAAuChD,MAAMrjK,UAAU2lK,qBAAqBzlK,KAAKR,KAAM+wJ,EAC3F,EAEAuT,YAAa,WACT,MAAO,2BACX,EAEA1+B,QAAS,WACL+gC,EAAuChD,MAAMrjK,UAAUslI,QAAQplI,KAAKR,KACxE,EAEAunK,kBAAmB,SAAUC,GACzB,GAAI98G,EAAoC9P,GAAG21C,QAAQvwF,KAAK4mK,YAAYhU,eAAgB4T,EAA4CnQ,WAAY,CAC3Hr2J,KAAK4mK,YAAYhU,eAAgB6U,eAA9C,IACIC,EAAWF,EAAGG,cAAgBj9G,EAAoC9P,GAAGvU,OAAO,cAAemhI,EAAGI,gBAAiB5nK,KAAKiH,GAAGyC,WAAY1J,KAAK6mK,cAC5IW,EAAGK,QAAQH,EAAW1nK,KAAK4mK,YAAYhU,eAAgB6G,WAC3D,CACJ,EAEAyL,cAAe,WACX,OAAOyB,EAAuChD,MAAMrjK,UAAU4kK,cAAc1kK,KAAKR,KACrF,EAEAilK,UAAW,WACP,OAAO0B,EAAuChD,MAAMrjK,UAAU2kK,UAAUzkK,KAAKR,KACjF,EAEAmlK,UAAW,SAAUC,GACjBuB,EAAuChD,MAAMrjK,UAAU6kK,UAAU3kK,KAAKR,KAAMolK,EAChF,EAEA0C,cAAe,SAAU5/H,EAAWqiD,EAAKhlF,GACrC8F,QAAQ6C,KAAK,kGACblO,KAAK+nK,iBAAiB7/H,EAAWqiD,EAAKhlF,EAC1C,EAEAwiK,iBAAkB,SAAU7/H,EAAWqiD,EAAKhlF,GACxCvF,KAAKihC,eAAeC,qBAAqBiH,SAAWoiD,EACpDvqF,KAAKihC,eAAeC,qBAAqBkH,SAAW7iC,EACpDvF,KAAKihC,eAAeC,qBAAqBgH,UAAYA,EACjDwiB,EAAoC9P,GAAG21C,QAAQvwF,KAAK4mK,YAAYhU,eAAgB6T,EAA+ChJ,cAC/H6I,EAAqD0B,UAAUC,YAAYjoK,KAAMkoC,EAAWqiD,EAAKhlF,EAEzG,EAEAo7B,sBAAuB,SAAUuH,EAAWqiD,EAAKhlF,GAC7C,IAAI2iK,EAAS39E,EACT49E,EAAS5iK,EACTvF,KAAKmnK,sBACLe,GAAUA,EAASloK,KAAK4mK,YAAY1lI,qBAAqBq9E,OAASv+G,KAAK4mK,YAAY1lI,qBAAqBs9E,OACxG2pD,GAAUA,EAASnoK,KAAK4mK,YAAY1lI,qBAAqBq9E,OAASv+G,KAAK4mK,YAAY1lI,qBAAqBs9E,QAE5Gx+G,KAAK+nK,iBAAiB7/H,EAAWggI,EAAQC,EAC7C,EAEAC,UAAW,SAAU5xH,GACbx2C,KAAKmnK,qBACLb,EAAqD0B,UAAUK,YAAYroK,KAAMw2C,EAEzF,EAEAtzB,oBAAqB,WACjB,OAAOljB,KAAKihC,eAAeC,qBAAqBoH,YACpD,EAEAllB,oBAAqB,SAAUxiB,GAC3B,GAAuG,MAAnG2lK,EAAqDjP,kBAAkBO,kBAAkBj3J,GACzF,MAAM,IAAI+M,MAAM,yBAWpB,OATA3N,KAAKqiB,UACDriB,KAAKmnK,sBACD3hE,EAAgD8iE,cAChDtoK,KAAK4mK,YAAY1lI,qBAAqBoH,aAAe1nC,EAGrD0lK,EAAqD0B,UAAUO,kBAAkBvoK,KAAMY,IAGxFA,CACX,EAEA4nK,gBAAiB,WACb,OAA6D,MAAzDxoK,KAAKihC,eAAeC,qBAAqBoH,aAClC,KAEAi+H,EAAqDjP,kBAAkBO,kBAAkB73J,KAAKihC,eAAeC,qBAAqBoH,aAEjJ,EAEAmgI,SAAU,SAAUC,EAAS1O,GACzB,GAAItvG,EAAoC9P,GAAG3lC,WAAWjV,KAAK6mK,aAAat4J,cAAe,QAAS,CAC5F,IACIo6J,EADAx+J,EAAOu+J,EAAQE,YAAYl+G,EAAoC9P,GAAGq+C,cAAc+gE,EAAU,OAAQh6J,KAAK6mK,eAGvG8B,EADAnjE,EAAgD8iE,cAC3C,IAAI9B,EAA4CnQ,UAAUr2J,KAAK4mK,YAAa,YAAaz8J,EAAMugD,EAAoC9P,GAAGxlC,KAAK,cAAepV,OAG1J,IAAIymK,EAA+ChJ,YAAYz9J,KAAK4mK,YAAa,YAAaz8J,EAAMugD,EAAoC9P,GAAGxlC,KAAK,cAAepV,OAExKA,KAAK4mK,YAAY9T,aAAa6V,EAClC,MACI3oK,KAAK+mK,WAAY,CAEzB,EAEA8B,YAAa,SAAUC,GACnB9oK,KAAK+mK,WAAY,CACrB,IAGJ,EAAGp8G,EAA4CzS,cAAc,gBAAiB,CAACxX,EAAeumI,EAAgBN,EAAuChD,OAG9I,EAED;;;qCAIA,CAAEhlK,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCwpK,SAAU,IAAM,IAElB,IAAIr+G,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FzO,EAAwC,mBAAsC,iBAC9E8gD,EAA4C,uBAA0C,qBACtFgsE,EAAgD,2BAA8C,yBAC9Fr0H,EAAyC,oBAAuC,kBAChF62G,EAA+C,0BAA6C,wBAC5Fyd,EAA4C,sBAAyC,4BAkB9G,SAASF,IACLE,EAA0C1F,cAAc/iK,KAAKR,MAC7DA,KAAKiH,GAAK8hK,EAASG,OACvB,CAEAH,EAASG,QAAUhtH,EAAsClQ,KAAKuD,WAAW,wCACzEw5H,EAASI,YAAa,EACtBJ,EAASK,YAAc,KACvBL,EAASM,OAAS,KAElBN,EAASO,eAAiB,WAItB,IAAIP,EAASI,aAAcH,EAA8CzsI,iBAAzE,CAGAwsI,EAASI,YAAa,EACtB,IAAIz+J,EAAM8gJ,EAA6C5xD,WAAW18D,UAAU28D,cAAc,gBAC1FkvE,EAASM,QAAS,EAAGL,EAA8CxkE,wBAAwB95F,GAAK,WAC5Fq+J,EAASQ,oBACb,GALA,CAMJ,EAEAR,EAASQ,mBAAqB,WAC1BR,EAASM,OAAO78I,OAAO,wCACvB,IAAIwtI,EAAW,2CACXwP,EAAM,IAAIP,EAA0CQ,SAASV,EAASM,OAAQrP,GAAU,GAAM,GAAO,EAAMrlH,EAAuCkD,OAAOC,aAClJ,MAAP0xH,IACAA,EAAIE,UAAW,EACfX,EAASK,YAAcI,EAE/B,EAEA,IAAIG,EAAY,CACZ5zH,KAAM,SAAU9T,EAAexgB,EAAS8iJ,GACpC,GAAqB,MAAjBvkK,KAAK4pK,UAA4C,MAAxBb,EAASK,cAC7BL,EAASI,WAAY,CACtB,IAAIrpC,EAAY9iC,EAA0C6H,SAAS+H,eAAe3qE,EAAcw3F,YAAax3F,EAAcy3F,YACvHl1H,EAAIs7H,EAAU/mF,UAAUikD,EAA0ChkD,SAASsvD,aAC3Ep+E,EAAc5kB,KAAKqxC,KAAKmpF,EAAUnyB,UAAYmyB,EAAUnyB,UAAYmyB,EAAU9xB,UAAY8xB,EAAU9xB,UAAY8xB,EAAUzxB,UAAYyxB,EAAUzxB,WAChJlxD,EAAO34C,EAAE7B,SACTwrB,EAASjE,EAMT2/I,EAAiBn/G,EAAoC9P,GAAGyG,SAASpf,EAAcmE,QAC/E0jI,EAAM7nI,EAAcg7F,iBAAiBtvB,UACrCo8D,EAAM9nI,EAAcg7F,iBAAiB3uB,UACrC07D,EAAM/nI,EAAcg7F,iBAAiBxuB,UACrC/7C,EAAIptD,KAAKkjD,IAAIuhH,GAAO5sH,EAAO6sH,EAC3BC,EAAiBH,EAAMp3G,EAAKm3G,EAC5BK,EAAkB/7I,EAAS87I,EAC3BC,EAAiB,IACjBnB,EAASO,gBAEjB,CAGJ,OADAtpK,KAAK4pK,SAAWb,EAASK,YAClBH,EAA0C1F,cAAcjjK,UAAUy1C,KAAKv1C,KAAKR,KAAMiiC,EAAexgB,EAAS8iJ,EACrH,EAEA4F,aAAc,WACV,OAAO,IACX,EAEA5C,kBAAmB,SAAUC,GAE7B,EAEAiB,SAAU,SAAUvlD,EAAK82C,GAEzB,EAEAp0B,QAAS,WAAc,IAG3B,EAAGj7E,EAA4CzS,cAAc,WAAY,CAAC6wH,EAAUY,EAAWV,EAA0C1F,eAGlI,EAED;;;iCAIA,CAAE5kK,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC0e,SAAU,IAAM,EAChBmsJ,YAAa,IAAM,EACnB9rJ,SAAU,IAAM,EAChBqlJ,MAAO,IAAM,EACb0G,gBAAiB,IAAM,IAEzB,IAAIC,EAAoC,aAAgC,iCACpEC,EAAyD,EAAoB9nK,EAAE6nK,GAC/E/1H,EAAsC,iBAAoC,eAC1Ei2H,EAA8C,yBAA4C,uBAC1FlrD,EAA4C,uBAA0C,qBACtFmrD,EAAyC,oBAAuC,kBAChFlf,EAA8C,yBAA4C,uBAC1Fmf,EAAwC,mBAAsC,iBAkBnGzsJ,EAAW,CACX8xB,OAAQ,EACR46H,KAAM,EACNC,OAAQ,EACRC,MAAO,EACPC,WAAY,EACZC,kBAAmB,EACnBC,WAAY,EACZC,QAAS,EACTC,YAAa,EACb58E,OAAQ,KAGZ,EAAGk8E,EAA4CtyH,cAAc,WAAYj6B,IACzE,EAAGusJ,EAA4Cj8E,cAAc,WAAYtwE,GAKzE,IAAIK,EAAW,CACX6sJ,OAAQ,EACRC,QAAS,EACTC,KAAM,EACNn4C,KAAM,GASV,SAASk3C,EAAY76J,EAAMoY,GACvB3nB,KAAK2nB,YAAc,EACnB3nB,KAAKsrK,aAAe,KACpBtrK,KAAKuP,KAAOA,EACZvP,KAAK2nB,YAAcA,CACvB,EAXA,EAAG6iJ,EAA4CtyH,cAAc,WAAY55B,IACzE,EAAGksJ,EAA4Cj8E,cAAc,WAAYjwE,GAYzE,IAAIitJ,EAAe,CAAC,EAOpB,SAAS5H,IACL3jK,KAAKiH,GAAKyjK,EAAsC1+H,KAAKw/H,UACrDxrK,KAAKyrK,gBAAiB,EACtBzrK,KAAK0rK,aAAe,KACpB1rK,KAAKyhB,QAAU,EACfzhB,KAAK4hB,QAAS,EACd5hB,KAAK2rK,WAAap3H,EAAoCqG,GAAGsT,KAAK,cAC9DluD,KAAK4rK,SAAWr3H,EAAoCqG,GAAGsT,KAAK,cAC5DluD,KAAK6rK,UAAY,EACjB7rK,KAAK8rK,UAAY,EACjB9rK,KAAKqiB,QAAU,EACfriB,KAAK6S,MAAQ43J,EAAuC5yH,OAAOC,YAC3D93C,KAAK2gB,SAAU,EACf3gB,KAAKsgB,cAAe,CACxB,EAnBA,EAAGkqJ,EAA4CtyH,cAAc,cAAe,CAACkyH,EAAamB,EAAc,OAqBxG,IAAIQ,EAAS,CACT5B,aAAc,WACV,OAAO,IACX,EAEA6B,iBAAkB,SAAUhS,GACxB,OAAyB,MAArBh6J,KAAK0rK,aACE1rK,KAAK0rK,aAAaO,cAAcjS,GAEpC,IACX,EAEAx4I,YAAa,WACT,OAAOxhB,KAAKyhB,OAChB,EAEAC,YAAa,SAAU9gB,GAKnB,OAJIZ,KAAKyhB,UAAY7gB,IACjBZ,KAAKqiB,UACLriB,KAAKyhB,QAAU7gB,GAEZA,CACX,EAEA+gB,WAAY,WACR,OAAO3hB,KAAK4hB,MAChB,EAEAC,WAAY,SAAUjhB,GAKlB,OAJIZ,KAAK4hB,SAAWhhB,IAChBZ,KAAKqiB,UACLriB,KAAK4hB,OAAShhB,GAEXA,CACX,EAEAqhB,cAAe,WACX,OAAOjiB,KAAK2rK,UAChB,EAEAxpJ,cAAe,SAAUvhB,GAKrB,OAJK2zC,EAAoCqG,GAAGsxH,aAAalsK,KAAK2rK,WAAY/qK,KACtEZ,KAAKqiB,UACLriB,KAAK2rK,WAAa/qK,GAEfA,CACX,EAEAigB,YAAa,WACT,OAAO7gB,KAAK4rK,QAChB,EAEA7qJ,YAAa,SAAUngB,GAKnB,OAJK2zC,EAAoCqG,GAAGsxH,aAAalsK,KAAK4rK,SAAUhrK,KACpEZ,KAAKqiB,UACLriB,KAAK4rK,SAAWhrK,GAEbA,CACX,EAEAogB,aAAc,WACV,OAAOhhB,KAAK6rK,SAChB,EAEA3qJ,aAAc,SAAUtgB,GAGpB,OAFAZ,KAAKqiB,UACLriB,KAAK6rK,UAAYjrK,EACVA,CACX,EAEAugB,aAAc,WACV,OAAOnhB,KAAK8rK,SAChB,EAEAzqJ,aAAc,SAAUzgB,GAKpB,OAJIZ,KAAK8rK,YAAclrK,IACnBZ,KAAKsiB,YAAYtiB,KAAKoiB,cAAgB,GACtCpiB,KAAK8rK,UAAYlrK,GAEdA,CACX,EAEAwhB,YAAa,WACT,OAAOpiB,KAAKqiB,OAChB,EAEAC,YAAa,SAAU1hB,GAEnB,OADAZ,KAAKqiB,QAAUzhB,EACRA,CACX,EAEAurK,YAAa,SAAUptK,EAAQu+C,EAAU8uH,EAAc9rJ,GACnD,OAAO8rJ,CACX,EAEAC,sBAAuB,SAAUC,GAC7B,OAAO,CACX,EAEAC,sBAAuB,SAAUD,GAC7B,OAAO,CACX,EAEAv2H,KAAM,SAAU9T,EAAexgB,EAAS8iJ,GACpC,OAAO,CACX,EAEAiI,QAAS,SAAUvqI,EAAexgB,GAC9B,OAAO,CACX,EAEAigB,WAAY,SAAUj6B,EAAMglK,EAAUC,EAAUC,GAC5C,OAAO,CACX,EAKAC,WAAY,SAAUnlK,EAAMglK,EAAUC,EAAUC,GAC5C,OAAO3sK,KAAK0hC,WAAWj6B,EAAMglK,EAAUC,EAAUC,EACrD,EAEAE,mBAAoB,WAChB,OAAO,CACX,EAEAC,gBAAiB,WAEjB,EAEA7H,UAAW,WACP,IAAIG,EAAY,IAAIvjK,MAAM,GAM1B,OALAujK,EAAU,GAAKplK,KAAK6S,MAAMpS,EAAI,IAC9B2kK,EAAU,GAAKplK,KAAK6S,MAAM/S,EAAI,IAC9BslK,EAAU,GAAKplK,KAAK6S,MAAMnR,EAAI,IAC9B0jK,EAAU,GAAKplK,KAAK6S,MAAMtG,EAAI,IAC9B64J,EAAU,GAAKplK,KAAKyhB,QACb2jJ,CACX,EAEAD,UAAW,SAAUC,GACQ,IAArBA,EAAUziK,SACV3C,KAAKyhB,QAAU2jJ,EAAU,GACzBplK,KAAK6S,MAAQ43J,EAAuCryH,MAAMq4C,SAAyB,IAAf20E,EAAU,GAA2B,IAAfA,EAAU,GAA2B,IAAfA,EAAU,GAA2B,IAAfA,EAAU,IAExJ,EAEAF,cAAe,WACX,MAAO,CAAC,YAAa,cAAe,aAAc,cAAe,UACrE,EAEA6H,UAAW,WACP,OAAOx4H,EAAoCqG,GAAGw7G,SAASp2J,KAAMurJ,EAA4CqL,cAC7G,EAEAhxB,QAAS,WAAc,EAEvBtkH,SAAU,WACN,OAAOthB,KAAKy2F,KAChB,EAEAl1E,SAAU,SAAU3gB,GAKhB,OAJIZ,KAAKy2F,QAAU71F,IACfZ,KAAKqiB,UACLriB,KAAKy2F,MAAQ71F,GAEVA,CACX,EAEA8I,SAAU,WACN,OAAO1J,KAAKy2F,KAChB,EAEA30E,mBAAoB,WAChB,OAAO9hB,KAAK+hB,cAChB,EAEAC,mBAAoB,SAAUphB,GAE1B,OADAZ,KAAK+hB,eAAiBnhB,EACfA,CACX,EAEAosK,SAAU,WACN,MAAO,EACX,EAEAxsJ,UAAW,WACP,OAAOxgB,KAAK6S,KAChB,EAEA4N,UAAW,SAAU7f,GAKjB,OAJIZ,KAAK6S,QAAUjS,IACfZ,KAAK6S,MAAQjS,EACbZ,KAAKqiB,WAEFzhB,CACX,EAEAqsK,aAAc,WAAc,EAE5BC,eAAgB,WACZ,OAAOltK,KAAKwgB,YAAY9W,UAC5B,EAEAyjK,eAAgB,SAAUvsK,GAEtB,OADAZ,KAAKygB,UAAUgqJ,EAAuCryH,MAAME,SAAS13C,IAC9DA,CACX,EAKA8f,YAAa,WACT,OAAO1gB,KAAK2gB,OAChB,EAEAC,YAAa,SAAUhgB,GAEnB,OADAZ,KAAK2gB,QAAU/f,EACRA,CACX,EAEAyf,iBAAkB,WACd,OAAOrgB,KAAKsgB,YAChB,EAEAC,iBAAkB,SAAU3f,GAKxB,OAJIZ,KAAKsgB,eAAiB1f,IACtBZ,KAAKqiB,UACLriB,KAAKsgB,aAAe1f,GAEjBA,CACX,EAEA0jK,YAAa,WACT,MAAO,mBACX,EAEAxT,UAAW,SAAUC,GACjBA,EAAUE,mBAAmB,SAC7BF,EAAUG,sBAAsB,KAAMlxJ,KAAKiH,GAAGyC,YAC9CqnJ,EAAUG,sBAAsB,OAAQlxJ,KAAKskK,eAC7CvT,EAAUG,sBAAsB,OAAQlxJ,KAAKshB,YAC7CyvI,EAAUG,sBAAsB,iBAAkBlxJ,KAAK+hB,gBACvDgvI,EAAUG,sBAAsB,QAASlxJ,KAAK6S,MAAMunC,QACpD22G,EAAUG,sBAAsB,UAAWlxJ,KAAKyhB,QAAQ/X,YACxDqnJ,EAAUG,sBAAsB,YAAa5xC,EAA0C58D,KAAK+nC,QAAQzqF,KAAKiiB,kBACzG8uI,EAAUG,sBAAsB,UAAW5xC,EAA0C58D,KAAK+nC,QAAQzqF,KAAK6gB,gBACvGkwI,EAAUG,sBAAsB,WAAYlxJ,KAAKghB,eAAetX,YAChEqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAKmhB,eAAezX,YAChE1J,KAAKimK,qBAAqBlV,GAC1BA,EAAUgB,kBACd,EAEAkU,qBAAsB,SAAUlV,GAEhC,EAEAmV,kBAAmB,SAAUx6J,GAAQ,EAErCg4J,YAAa,SAAUh4J,GAenB,GAdA1L,KAAKiH,GAAKyjK,EAAsC1+H,KAAKuD,WAAW7jC,EAAK43G,WAAWC,aAAa,MAAMC,WACnGxjH,KAAKuhB,SAAS7V,EAAK43G,WAAWC,aAAa,QAAQC,WACnDxjH,KAAK+hB,eAAiBrW,EAAK43G,WAAWC,aAAa,kBAAkBC,UACrExjH,KAAK6S,MAAQ43J,EAAuCryH,MAAMC,KAAK3sC,EAAK43G,WAAWC,aAAa,SAASC,WACrGxjH,KAAKyhB,QAAU0oE,WAAWz+E,EAAK43G,WAAWC,aAAa,WAAWC,WACjB,MAA7C93G,EAAK43G,WAAWC,aAAa,cAC7BvjH,KAAKmiB,cAAc,IAAI1b,KAAKiF,EAAK43G,WAAWC,aAAa,aAAaC,YAE3B,MAA3C93G,EAAK43G,WAAWC,aAAa,YAC7BvjH,KAAK+gB,YAAY,IAAIta,KAAKiF,EAAK43G,WAAWC,aAAa,WAAWC,YAEtB,MAA5C93G,EAAK43G,WAAWC,aAAa,aAC7BvjH,KAAKkhB,aAAao+F,EAA0C58D,KAAKsnC,cAAct+E,EAAK43G,WAAWC,aAAa,YAAYC,YAE5E,MAA5C93G,EAAK43G,WAAWC,aAAa,YAC7B,OAAQ73G,EAAK43G,WAAWC,aAAa,YAAYC,WAC7C,IAAK,KACDxjH,KAAKqhB,aAAa,GAClB,MACJ,IAAK,MACDrhB,KAAKqhB,aAAa,GAClB,MACJ,IAAK,OACDrhB,KAAKqhB,aAAa,GAClB,MACJ,IAAK,OACDrhB,KAAKqhB,aAAa,GAClB,MACJ,QACI,MAGZrhB,KAAKkmK,kBAAkBx6J,EAC3B,EAEA+8J,SAAU,SAAUvlD,EAAK82C,GAEzB,EAEAuN,kBAAmB,SAAUC,GAE7B,EAKA4F,sBAAuB,SAAUjjK,EAAMkjK,GACnC,IAAI5/J,EAAS,IAAID,WACjBC,EAAOC,UAAY,SAAUxN,GACzB,IAAIwD,EAAS,GACb,IACIA,EAAS6mK,IAA4C+C,QAAQptK,EAAEnB,OAAO2E,OAAQ,CAAE0rF,GAAI,UACxF,CACA,MAAOm+E,GACH,IAAIC,EAAYD,EAAI7jK,WACpB,GAAkB,2BAAd8jK,GAAwD,+BAAdA,EAI1C,MAAMD,EAHN7pK,EAAS1B,OAAOwI,aAAa5H,MAAM,KAAM,IAAI2iI,WAAWrlI,EAAEnB,OAAO2E,QAKzE,CACA2pK,EAAU3pK,EACd,EACA+J,EAAO8uI,kBAAkBpyI,EAC7B,GAQJ,SAASkgK,IACL1G,EAAMnjK,KAAKR,KACf,EAPA,EAAGwqK,EAA4CtyH,cAAc,QAAS,CAACyrH,EAAOoI,EAAQ,OAStF,IAAI0B,EAAmB,CACnB13H,KAAM,SAAU9T,EAAexgB,EAAS8iJ,GACpC,OAAOZ,EAAMrjK,UAAUy1C,KAAKv1C,KAAKR,KAAMiiC,EAAexgB,GAAS,EACnE,IAGJ,EAAG+oJ,EAA4CtyH,cAAc,kBAAmB,CAACmyH,EAAiBoD,EAAkB9J,GAG7G,EAED;;;yCAIA,CAAEhlK,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCmuK,YAAa,IAAM,EACnBC,mBAAoB,IAAM,EAC1BvwI,aAAc,IAAM,EACpBwwI,SAAU,IAAM,EAChB5uJ,gBAAiB,IAAM,EACvB6uJ,YAAa,IAAM,IAErB,IAAInjH,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1F00D,EAAgD,2BAA8C,yBAC9F7Z,EAAkD,6BAAgD,2BAClGkiB,EAA4C,uBAA0C,qBACtFomD,EAAwD,mCAAsD,iCAC9GC,EAAuD,kCAAqD,gCAC5GC,EAA0D,qCAAwD,mCAClHC,EAA0D,qCAAwD,mCAClHC,EAAgE,2CAA8D,yCAC9HC,EAA0C,oBAAuC,kBACjFC,EAA+C,wBAA2C,8BAC1FC,EAA6C,uBAA0C,qBACvFC,EAA4C,sBAAyC,oBACrFC,EAA6C,uBAA0C,qBACvFC,EAA0D,oCAAuD,kCACjHC,EAAgD,0BAA6C,wBAC7FC,EAAyC,mBAAsC,iBAC/EC,EAA6C,uBAA0C,qBACvFC,EAA0C,mBAAsC,yBAChFC,EAAoD,6BAAgD,mCACpGC,EAA6D,sCAAyD,4CACtHC,EAA+C,wBAA2C,8BAC1FC,EAAmD,4BAA+C,kCAClGC,EAA8C,uBAA0C,6BACxFC,EAA0C,mBAAsC,yBAChFC,EAAgD,yBAA4C,+BAC5FC,EAAsD,+BAAkD,qCACxGC,EAAmD,4BAA+C,kCAClGC,EAAoD,8BAAiD,4BACrGC,EAAsD,gCAAmD,8BAyC9HvwJ,EAAkB,CAClB0kB,IAAK,EACLk3G,SAAU,EACV/4F,SAAU,EACVsrC,IAAK,EACLC,QAAS,EACTC,MAAO,EACPrpD,MAAO,EACPspD,KAAM,EACNC,QAAS,EACTC,OAAQ,EACRC,OAAQ,GACRC,QAAS,GACTC,MAAO,GACPC,KAAM,GACNC,GAAI,GACJC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVM,OAAQ,GACRkhF,SAAU,GACV7iB,QAAS,IASb,SAASvvH,IAAiB,EAN1B,EAAGutB,EAA4CzS,cAAc,kBAAmBl5B,IAChF,EAAG2rC,EAA4C4jC,cAAc,kBAAmBvvE,GAOhFoe,EAAaqyI,SAAW,EACxBryI,EAAasyI,aAAc,EAC3BtyI,EAAauyI,WAAa,CAAC,EAC3BvyI,EAAawyI,gBAAkB,CAAC,EAChCxyI,EAAayyI,SAAW,CAAC,EACzBzyI,EAAa0yI,cAAgB,CAAC,EAC9B1yI,EAAa2yI,YAAc,QAC3B3yI,EAAa4yI,WAAa,CAAC,EAC3B5yI,EAAa6yI,gBAAkB,CAAC,EAChC7yI,EAAa8yI,UAAY,GACzB9yI,EAAa+yI,eAAiB,KAC9B/yI,EAAagzI,eAAiB,IAAI1oD,EAA0C7nB,SAE5EziE,EAAahb,YAAc,WACvB,OAAOgb,EAAaqyI,QACxB,EAEAryI,EAAa9a,YAAc,SAAU1hB,GAEjC,OADAw8B,EAAaqyI,SAAW7uK,EACjBA,CACX,EAEAw8B,EAAaizI,sBAAwB,WACjC,OAAOjzI,EAAakzI,kBACxB,EAEAlzI,EAAamzI,wBAA0B,WACnC,OAAOnzI,EAAaozI,oBACxB,EAEApzI,EAAaqzI,8BAAgC,WACzC,OAAOrzI,EAAaszI,0BACxB,EAEAtzI,EAAauzI,mBAAqB,WAC9B,OAAOvzI,EAAawzI,kBACxB,EAEAxzI,EAAayzI,eAAiB,WAC1B,OAAOzzI,EAAasyI,WACxB,EAEAtyI,EAAa0zI,eAAiB,SAAUlwK,GAUpC,OATIw8B,EAAasyI,cAAgB9uK,GAAUA,EAKlCw8B,EAAasyI,cAAgB9uK,GAAWA,IAC7Cw8B,EAAasyI,YAAc9uK,EAC3Bw8B,EAAa2zI,eANb3zI,EAAa4zI,eACb5zI,EAAasyI,YAAc9uK,EAC3Bw8B,EAAa6zI,YAMVrwK,CACX,EAEAw8B,EAAa6zI,SAAW,WACuD,MAAvE5xD,EAA8C7b,uBAC9C6b,EAA8C7b,sBAAsB0tE,wBAE5E,EAEA9zI,EAAa+zI,cAAgB,WACzB,OAAI/zI,EAAayzI,iBACNzzI,EAAawyI,gBAGbxyI,EAAauyI,UAE5B,EAEAvyI,EAAag0I,cAAgB,SAAUxwK,GAOnC,OANIw8B,EAAayzI,iBACbzzI,EAAawyI,gBAAkBhvK,EAG/Bw8B,EAAauyI,WAAa/uK,EAEvBA,CACX,EAEAw8B,EAAa8L,YAAc,WACvB,OAAI9L,EAAayzI,iBACNzzI,EAAa0yI,cAGb1yI,EAAayyI,QAE5B,GAEA,EAAGxwD,EAA8Cnb,4BAA4B9mE,EAAa8L,aAE1F9L,EAAai0I,YAAc,SAAUzwK,GAOjC,OANIw8B,EAAayzI,iBACbzzI,EAAa0yI,cAAgBlvK,EAG7Bw8B,EAAayyI,SAAWjvK,EAErBA,CACX,EAEAw8B,EAAak0I,eAAiB,WAC1B,OAAOl0I,EAAa2yI,WACxB,EAEA3yI,EAAam0I,eAAiB,SAAU3wK,GAEpC,OADAw8B,EAAa2yI,YAAcnvK,EACpBA,CACX,EAEAw8B,EAAaqD,cAAgB,WACzB,OAAIrD,EAAayzI,iBACNzzI,EAAa6yI,gBAGb7yI,EAAa4yI,UAE5B,EAEA5yI,EAAao0I,cAAgB,SAAU5wK,GAOnC,OANIw8B,EAAayzI,iBACbzzI,EAAa6yI,gBAAkBrvK,EAG/Bw8B,EAAa4yI,WAAapvK,EAEvBA,CACX,EAMAw8B,EAAaq0I,sBAAwB,WACC,MAA9Br0I,EAAas0I,eACbt0I,EAAau0I,YAAYlD,EAA8C70E,WAAW18D,UAAUi9D,eAAe,cAE/Gi1E,EAAoDwC,QAAQC,mBAChE,EAEAz0I,EAAa2zI,WAAa,WACtB3zI,EAAa4zI,eACb,IAAIc,EAAM,KACNC,GAAS30I,EAAayzI,mBAAqBxxD,EAA8C9iF,iBAC7F,GAAIw1I,EAAO,CACPD,EAAM,IAAIlE,EAAS,MAAO,IAC1BkE,EAAIE,MAAMC,MAAQzD,EAAwDlxI,oBAAoB40I,qBAAqB,kBACnHJ,EAAIE,MAAMxxC,cAAgB,WAC1BsxC,EAAIE,MAAMG,mBAAqB,EAC/BL,EAAIE,MAAMI,YAAc,QACxBN,EAAIE,MAAMK,yBAA2B,SACrCP,EAAIE,MAAM5/G,aAAe,QACzB0/G,EAAIE,MAAMM,mBAAqB,SAC/BR,EAAIE,MAAMO,gBAAkB,YAC5BT,EAAIE,MAAMQ,oBAAsB,SAChCV,EAAIE,MAAMhyH,MAAQ,EAClB8xH,EAAIE,MAAMS,mBAAqB,EAC/BX,EAAIE,MAAM3hB,WAAa,IACvByhB,EAAIE,MAAMU,WAAa,EACvBZ,EAAIE,MAAMW,eAAgB,EAC1B,IAIIC,EAJAC,EAAS,IAAIhxK,MAAM,GAGnB6I,EAAM+jK,EAA8C70E,WAAW18D,UAAU41I,eAAe,sBAE5FF,EAAU,IAAIjE,EAA2Ct0E,QAAQ3vF,GACjEkoK,EAAQt4E,cAAgB,WACpB,GAA4B,IAAxBs4E,EAAQnmF,YAAmB,CAC3B,IAAIhlF,EAAOmrK,EAAQj4E,UACnBk4E,EAASprK,EAAK0hF,MAAM,MAChB0pF,EAAOlwK,OAAS,GAChBmvK,EAAIE,MAAMe,QAAQF,EAAO,GAAIA,EAAO,GAAI,aAEhD,CACJ,EACAD,EAAQtnK,OACRwmK,EAAInxJ,SAAU,CAClB,CACAyc,EAAa+zI,gBAAgB,OAAS,IAAIvD,EAAS,MAAO,GAC1DxwI,EAAa+zI,gBAAgB,OAAO6B,SAAS,IAAIpF,EAAS,UAAW,IACrExwI,EAAa+zI,gBAAgB,OAAO6B,SAAS,IAAIpF,EAAS,QAAS,IACnExwI,EAAa+zI,gBAAgB,OAAO6B,SAAS,IAAIpF,EAAS,QAAS,IACnExwI,EAAa+zI,gBAAgB,OAAOtoI,UAAU,SAASmqI,SAAS,IAAIpF,EAAS,OAAQ,KACjFmE,GACA30I,EAAa+zI,gBAAgB,OAAOtoI,UAAU,SAASmqI,SAASlB,GAEpE10I,EAAa+zI,gBAAgB,OAAO6B,SAAS,IAAIpF,EAAS,OAAQ,IAClExwI,EAAa+zI,gBAAgB,OAAO6B,SAAS,IAAIpF,EAAS,UAAW,IACrExwI,EAAa+zI,gBAAgB,OAAOtoI,UAAU,WAAWmqI,SAAS,IAAIpF,EAAS,KAAM,KACrFxwI,EAAa+zI,gBAAgB,OAAOtoI,UAAU,WAAWmqI,SAAS,IAAIpF,EAAS,SAAU,KACzFxwI,EAAa+zI,gBAAgB,OAAOtoI,UAAU,WAAWmqI,SAAS,IAAIpF,EAAS,WAAY,KAC3FxwI,EAAa+zI,gBAAgB,OAAOtoI,UAAU,WAAWmqI,SAAS,IAAIpF,EAAS,WAAY,KAC3FxwI,EAAa+zI,gBAAgB,OAAO6B,SAAS,IAAIpF,EAAS,SAAU,IACpExwI,EAAa+zI,gBAAgB,OAAO6B,SAAS,IAAIpF,EAAS,SAAU,KACpExwI,EAAa+zI,gBAAgB,OAAO6B,SAAS,IAAIpF,EAAS,UAAW,KACrExwI,EAAa+zI,gBAAgB,OAAO6B,SAAS,IAAIpF,EAAS,QAAS,KACnExwI,EAAa61I,UAAU71I,EAAa8yI,WACpC9yI,EAAa+zI,gBAAgB,OAAS,IAAIvD,EAAS,MAAO,GAC1DxwI,EAAa+zI,gBAAgB,OAAOpmK,MAAO,EAC3CqyB,EAAayyI,SAAW,CAAC,EACzBzyI,EAAa81I,YAAY91I,EAAa+zI,gBAAiB,MACnDY,GACA30I,EAAa+1I,UAEjB/1I,EAAaqyI,WACbryI,EAAa6zI,UACjB,EAEA7zI,EAAa+1I,QAAU,WACnB,IAAI1wJ,EAAQ,IAAIwsJ,EAA4ClG,SAC5DtmJ,EAAMlB,SAASmtJ,EAAuC0E,SAASC,iBAAiB,KAAM,mCACtF5wJ,EAAM9B,QAAU4tJ,EAA2C31E,SAASC,aAAaxiE,mBACjF+G,EAAaqD,gBAAgBhe,EAAMxb,IAAMwb,EACzCA,EAAMT,mBAAmB,OACzBob,EAAa8L,cAAc,OAAOR,OAAO/jC,KAAK8d,GAC9C2a,EAAa8L,cAAc,OAAOn+B,MAAO,CAC7C,EAEAqyB,EAAa81I,YAAc,SAAUI,EAAMpoF,GACvC,IAAI5vC,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK8qK,IAC1G,MAAOh4H,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbjrC,EAAM6iK,EAAKr0K,GACfwR,EAAIuhK,MAAM9mF,OAASA,EACnB9tD,EAAa8L,cAAcz4B,EAAI6Q,YAAc7Q,EAC7C2sB,EAAa81I,YAAYziK,EAAIo4B,UAAWp4B,EAAI6Q,WAChD,CACJ,EAEA8b,EAAa4zI,aAAe,WACxB,IAAI11H,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAaqD,kBACvH,MAAO6a,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbj5B,EAAQ2a,EAAaqD,gBAAgBxhC,GACzCwjB,EAAMmjH,SACV,CACAl7E,EAAoC9P,GAAG24H,UAAUn2I,EAAaqD,iBAC9DiqB,EAAoC9P,GAAG24H,UAAUn2I,EAAa+zI,gBAClE,EAEA/zI,EAAau0I,YAAc,SAAUjnK,GACjC0yB,EAAas0I,cAAgB,IAAI/C,EAA2Ct0E,QAAQ3vF,GACpF0yB,EAAas0I,cAAcp3E,cAAgBl9D,EAAao2I,oBACxDp2I,EAAas0I,cAAcpmK,MAC/B,EAEA8xB,EAAao2I,oBAAsB,WACgB,IAA3Cp2I,EAAas0I,cAAcjlF,YAC3B+N,MAAMp9D,EAAas0I,cAAcj3E,eAEe,IAA3Cr9D,EAAas0I,cAAcjlF,cAChCrvD,EAAa8yI,UAAY9yI,EAAas0I,cAAc/2E,UACpDv9D,EAAa2zI,aAErB,EAEA3zI,EAAa61I,UAAY,SAAU3jK,GAC/B,IAAI7H,EAAO6H,EAAK65E,MAAM,QAClB9tC,GAAQ,EACRC,EAASoP,EAAoC9P,GAAGW,UAAU9zC,GAC9D,MAAO6zC,EAAOE,WAAY,CACtB,IAAI+6C,EAAOj7C,EAAOI,QAClB,GAAIL,EACAA,GAAQ,MADZ,CAIA,IAAI+tC,EAAQmN,EAAKpN,MAAM,MACvB,GAAIC,EAAMzmF,OAAS,GAAI,CACnB,IAAIshC,EAASmlD,EAAM,GACf4oF,EAAQ,IAAIpE,EAASxkF,EAAM,GAAI,IACnC4oF,EAAMA,MAAMyB,kBAAmB,EAC/BzB,EAAMA,MAAMC,MAAQ9nF,WAAWf,EAAM,IACrC4oF,EAAMA,MAAMxxC,cAAuC,IAAvBr2C,WAAWf,EAAM,IAC7C4oF,EAAMA,MAAMG,mBAAqB,EACjCH,EAAMA,MAAMI,YAAcjoF,WAAWf,EAAM,IAC3C4oF,EAAMA,MAAMK,yBAA2BloF,WAAWf,EAAM,IACxD4oF,EAAMA,MAAM5/G,aAAe+3B,WAAWf,EAAM,IAC5C4oF,EAAMA,MAAMM,mBAAqBnoF,WAAWf,EAAM,IAClD4oF,EAAMA,MAAMO,gBAAkBpoF,WAAWf,EAAM,IAC/C4oF,EAAMA,MAAMQ,oBAAsBroF,WAAWf,EAAM,IACnD4oF,EAAMA,MAAMhyH,MAAQ,EACpBgyH,EAAMA,MAAMS,mBAAqB,EACjCT,EAAMA,MAAM3hB,WAAqC,IAAxBlmE,WAAWf,EAAM,KAC1C4oF,EAAMA,MAAM0B,iBAAmBvpF,WAAWf,EAAM,KAChD4oF,EAAMA,MAAM2B,aAAc,EAC1B3B,EAAMA,MAAMW,eAAgB,EAC5BX,EAAMA,MAAM4B,wBAAwBzF,EAAwC/1H,MAAMq4C,SAAS,IAAK,IAAK,IAAK,MAC1GuhF,EAAMA,MAAMU,WAAa,EACzBt1I,EAAa+zI,gBAAgB,OAAOtoI,UAAU5E,GAAQ+uI,SAAShB,EACnE,CAxBA,CAyBJ,CACJ,EAEA50I,EAAay2I,gBAAkB,SAAUC,EAAO3mK,GAC5C,OAAOiwB,EAAa22I,4BAA4BD,EAAO3mK,EAAO,EAClE,EAEAiwB,EAAa22I,4BAA8B,SAAUD,EAAO3mK,EAAOsc,GAC/D,IAAIhH,EAAQ4sJ,EAAiD5L,aAAathK,OAAO2xK,EAAOrqJ,GAUxF,OATAhH,EAAMlB,SAASpU,GACfsV,EAAMlC,kBAAiB,GACvBkC,EAAMT,mBAAmB,OACzBob,EAAaqD,gBAAgBhe,EAAMxb,IAAMwb,EACzC2a,EAAa8L,cAAc,OAAOR,OAAO/jC,KAAK8d,GAC9C2a,EAAa8L,cAAc,OAAOn+B,MAAO,EACzC0X,EAAM9B,SAAU,EAChByc,EAAaqyI,WACbryI,EAAa6zI,WACNxuJ,CACX,EAEA2a,EAAa8C,iBAAmB,SAAUkC,EAAUj1B,GAChD,IAAIsV,EAAQusJ,EAAiDtuI,cAAcv+B,OAAOigC,GAClF,OAAOhF,EAAa42I,qBAAqBvxJ,EAAOtV,EACpD,EAEAiwB,EAAa62I,yBAA2B,SAAU7xI,EAAUj1B,EAAO0L,GAC/D,IAAI4J,EAAQusJ,EAAiDtuI,cAAcv+B,OAAOigC,GAI9E8xI,EAC6B,UAA7B9xI,EAASyF,iBACe,MAAxBplB,EAAMue,gBACNoB,EAAS66F,mBAAqBoxC,EAA2CvvJ,eAAe2tI,QAuC5F,OAhBIynB,IACA9xI,EAASlB,qBAAqB69E,kBAAoB,SAAUI,GACxDA,EAAM+9C,uBACU,MAAZrkJ,GACAA,EAAS4J,EAEjB,GAEJ2a,EAAa42I,qBAAqBvxJ,EAAOtV,GAIzB,MAAZ0L,GAAsBq7J,IAAsB9xI,EAASlB,qBAAqB89E,8BAC1EnmG,EAAS4J,GAGNA,CACX,EAGA2a,EAAa42I,qBAAuB,SAAUvxJ,EAAOtV,GAWjD,OAVAsV,EAAMomJ,YAAY,MAClBpmJ,EAAMlB,SAASpU,GACfsV,EAAMlC,kBAAiB,GACvBkC,EAAMT,mBAAmB,OACzBob,EAAaqD,gBAAgBhe,EAAMxb,IAAMwb,EACzC2a,EAAa8L,cAAc,OAAOR,OAAO/jC,KAAK8d,GAC9C2a,EAAa8L,cAAc,OAAOn+B,MAAO,EACzC0X,EAAM9B,SAAU,EAChByc,EAAaqyI,WACbryI,EAAa6zI,WACNxuJ,CACX,EAEA2a,EAAa+2I,gBAAkB,WAC3B,OAAO/2I,EAAag3I,aAAa,aACrC,EAEAh3I,EAAai3I,oBAAsB,WAC/B,OAAOj3I,EAAag3I,aAAa,YACrC,EAEAh3I,EAAag3I,aAAe,SAAU9pK,GAClC,IAAIgqK,EAAgB,EAChBh5H,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAa8L,gBACvH,MAAOoS,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbypE,EAASz6D,EAAoC9P,GAAGW,UAAUne,EAAa8L,cAAcjqC,GAAKypC,QAC9F,MAAOy8E,EAAO3pE,WAAY,CACtB,IAAI/4B,EAAQ0iG,EAAOzpE,QACnB,GAAIgP,EAAoC9P,GAAG3lC,WAAWwN,EAAMnB,WAAYhX,EAAO,KAAM,CACjF,IAAIshF,EAASlhC,EAAoC9P,GAAGq+C,cAAcx2E,EAAMnB,WAAYhX,EAAO,IAAK,IAChG,IACI,IAAIy/E,EAAMG,SAAS0B,GACf7B,EAAMuqF,IACNA,EAAgBvqF,EAExB,CACA,MAAOwqF,GACP,CACJ,CACJ,CACJ,CACA,OAAO7pH,EAAoC9P,GAAGvU,OAAO,UAAW/7B,EAAMgqK,EAAgB,EAC1F,EAEAl3I,EAAao3I,0BAA4B,WACrC,IAAIC,EAAe,GACfn5H,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAaqD,kBACvH,MAAO6a,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbj5B,EAAQ2a,EAAaqD,gBAAgBxhC,GACrCwjB,EAAMgpJ,gBACNgJ,EAAa9vK,KAAK8d,EAAMxb,GAEhC,CACA,IAAIk+G,EAASz6D,EAAoC9P,GAAGW,UAAUk5H,GAC9D,MAAOtvD,EAAO3pE,WAAY,CACtB,IAAIhQ,EAAO25E,EAAOzpE,QAClBte,EAAaoS,gBAAgBhE,GAAM,GAAM,EAC7C,CACA,IAAIkpI,EAAiB,GACjBrvD,EAAS36D,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAa8L,gBACvH,MAAOm8E,EAAO7pE,WAAY,CAClBv8C,EAAMomH,EAAO3pE,QAAjB,IACIjrC,EAAM2sB,EAAa8L,cAAcjqC,GACjCwR,EAAIg7J,iBAAmBh7J,EAAIi4B,OAAO/lC,QAClC+xK,EAAe/vK,KAAK8L,EAAI6Q,WAEhC,CACA,IAAIgkG,EAAS56D,EAAoC9P,GAAGW,UAAUm5H,GAC9D,MAAOpvD,EAAO9pE,WAAY,CACtB,IAAI7wC,EAAO26G,EAAO5pE,QAClBte,EAAau3I,kBAAkBv3I,EAAa8L,cAAcv+B,IAAO,EACrE,CACAyyB,EAAa9a,YAAY8a,EAAahb,cAAgB,GACtDgb,EAAa6zI,UACjB,EAEA7zI,EAAau3I,kBAAoB,SAAU51K,EAAQ61K,GAC/C,IAAIt5H,EAASoP,EAAoC9P,GAAGW,UAAUx8C,EAAO2pC,QACrE,MAAO4S,EAAOE,WAAY,CACtB,IAAI/4B,EAAQ64B,EAAOI,QACnBte,EAAaoS,gBAAgB/sB,EAAMxb,IAAI,GAAO,EAClD,CACAlI,EAAO2pC,OAAO/lC,OAAS,EACvB,IAAIwiH,EAASz6D,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKzJ,EAAO8pC,YACjH,MAAOs8E,EAAO3pE,WAAY,CACtB,IAAIv8C,EAAMkmH,EAAOzpE,QACbjrC,EAAM1R,EAAO8pC,UAAU5pC,GAC3Bm+B,EAAau3I,kBAAkBlkK,GAAK,EACxC,CACAi6C,EAAoC9P,GAAG24H,UAAUx0K,EAAO8pC,WACpD+rI,IACKlqH,EAAoC9P,GAAGC,YAAY97C,EAAOizK,MAAM9mF,QAK7DxgC,EAAoC9P,GAAGqgD,UAAU79D,EAAa+zI,gBAAiBpyK,EAAOuiB,oBAC/E8b,EAAa+zI,gBAAgBpyK,EAAOuiB,YAL3CopC,EAAoC9P,GAAGqgD,UAAU79D,EAAa8L,cAAenqC,EAAOizK,MAAM9mF,gBACnF9tD,EAAa8L,cAAcnqC,EAAOizK,MAAM9mF,QAAQriD,UAAU9pC,EAAOuiB,oBAQ7E8b,EAAa8L,cAAcnqC,EAAOuiB,YACzC8b,EAAaqyI,UACjB,EAEAryI,EAAay3I,0BAA4B,WACrC,IAAIv5H,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAaqD,kBACvH,MAAO6a,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbj5B,EAAQ2a,EAAaqD,gBAAgBxhC,GACrCwjB,EAAMgpJ,iBACNhpJ,EAAMgpJ,gBAAiB,EAE/B,CACJ,EAGAruI,EAAa03I,iBAAmB,WAC5B13I,EAAasyI,aAAc,EAC3B,IAAIqF,GAAY,EACZC,GAAmB,EACnB15H,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAa0yI,gBACvH,MAAOx0H,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbjrC,EAAM2sB,EAAa0yI,cAAc7wK,GACrC,IAAKyrD,EAAoC9P,GAAGqgD,UAAU79D,EAAayyI,SAAUp/J,EAAI6Q,YAAa,CAC1F,IAAI2zJ,EAAS,IAAIrH,EAASn9J,EAAI6Q,WAAY,IAC1C2zJ,EAAOjD,MAAQvhK,EAAIuhK,MACnBiD,EAAOxJ,gBAAiB,EACxBruI,EAAa8L,cAAc+rI,EAAO3zJ,YAAc2zJ,CACpD,CACJ,CACA73I,EAAa83I,qBACb,IAAI/vD,EAASz6D,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAa6yI,kBACvH,MAAO9qD,EAAO3pE,WAAY,CAClBv8C,EAAMkmH,EAAOzpE,QAAjB,IACIj5B,EAAQ2a,EAAa6yI,gBAAgBhxK,GACrCyrD,EAAoC9P,GAAGqgD,UAAU79D,EAAaqD,gBAAiBhe,EAAMxb,MAChF+tK,IACDD,GAAY,EACZC,GAAmB,GAEnBD,GACA33I,EAAaoS,gBAAgB/sB,EAAMxb,IAAI,GAAM,IAGhDyjD,EAAoC9P,GAAGqgD,UAAU79D,EAAaqD,gBAAiBhe,EAAMxb,IAMtFwb,EAAMmjH,UALFl7E,EAAoC9P,GAAGqgD,UAAU79D,EAAa8L,cAAezmB,EAAMX,wBACnFsb,EAAaqD,gBAAgBhe,EAAMxb,IAAMwb,EACzC2a,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAO/jC,KAAK8d,GAK/E,CACAioC,EAAoC9P,GAAG24H,UAAUn2I,EAAa6yI,iBAC9DvlH,EAAoC9P,GAAG24H,UAAUn2I,EAAa0yI,eAC9DplH,EAAoC9P,GAAG24H,UAAUn2I,EAAawyI,iBAC9DxyI,EAAa6zI,UACjB,EAEA7zI,EAAa83I,mBAAqB,WAC9B,IAAI55H,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAa8L,gBACvH,MAAOoS,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbjrC,EAAM2sB,EAAa8L,cAAcjqC,GACjCyrD,EAAoC9P,GAAGC,YAAYpqC,EAAIuhK,MAAM9mF,UAAYxgC,EAAoC9P,GAAGqgD,UAAU79D,EAAa+zI,gBAAiB1gK,EAAIuhK,MAAMrnK,MAClKyyB,EAAa+zI,gBAAgB1gK,EAAI6Q,YAAc7Q,GACvCi6C,EAAoC9P,GAAGC,YAAYpqC,EAAIuhK,MAAM9mF,SAAWxgC,EAAoC9P,GAAGqgD,UAAU79D,EAAa8L,cAAez4B,EAAIuhK,MAAM9mF,UAClKxgC,EAAoC9P,GAAGqgD,UAAU79D,EAAa8L,cAAcz4B,EAAIuhK,MAAM9mF,QAAQriD,UAAWp4B,EAAIuhK,MAAMrnK,QACpHyyB,EAAa8L,cAAcz4B,EAAIuhK,MAAM9mF,QAAQriD,UAAUp4B,EAAIuhK,MAAMrnK,MAAQ8F,EACzEA,EAAIy6E,OAAS9tD,EAAa8L,cAAcz4B,EAAIuhK,MAAM9mF,SAG9D,CACJ,EAEA9tD,EAAaoS,gBAAkB,SAAU2lI,EAAI5sB,EAAkB6sB,GAC3D,GAAI1qH,EAAoC9P,GAAGqgD,UAAU79D,EAAaqD,gBAAiB00I,GAAK,CACpF,IAAI1yJ,EAAQ2a,EAAaqD,gBAAgB00I,GAUzC,OATA1yJ,EAAMmjH,UACF2iB,GACA79F,EAAoC9P,GAAG46C,OAAOp4D,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAQjmB,UAE1G2a,EAAaqD,gBAAgB00I,GACpC/3I,EAAaqyI,WACT2F,GACAh4I,EAAa6zI,YAEV,CACX,CAEI,OAAO,CAEf,EAEA7zI,EAAai4I,gBAAkB,SAAUpzI,EAAeqzI,GACpD,IAAIv2K,EAAS,IAAI2uK,EACb6H,EAAc7tD,EAA0C1uE,SAASsvD,YAGrE,GAFAvpG,EAAOA,OAAS2oH,EAA0C1uE,SAASsvD,YACnEvpG,EAAO6yG,OAAS8V,EAA0C7iB,SAAS6H,gBAC9DhiD,EAAoC9P,GAAGqgD,UAAU79D,EAAa8L,cAAeosI,GAC9E,OAAOv2K,EAEX,IAAIy2K,EAAU,GACV95H,EAAUte,EAAa8L,cAAcosI,GACzCE,EAAQ7wK,KAAK+2C,GACb,MAAmC,KAA5BA,EAAQs2H,MAAMyD,UACjB/5H,EAAUA,EAAQwvC,OAClBsqF,EAAQhwK,OAAO,EAAG,EAAGk2C,GAEzB,IAAIg6H,EAASzzI,EAAcw3F,YAAYpkC,QACnCsgF,EAAoB1zI,EAAc2zI,2BAClCC,EAAa5zI,EAAco9G,gBAC3By2B,EAAmB7zI,EAAc8zI,oBACjCz6H,EAASoP,EAAoC9P,GAAGW,UAAUi6H,GAC9D,MAAOl6H,EAAOE,WAAY,CACtB,IAAI/qC,EAAM6qC,EAAOI,QACW,KAAxBjrC,EAAIuhK,MAAMyD,WAA4C,KAAxBhlK,EAAIuhK,MAAMyD,UACxCnH,EAA0CrwB,QAAQ+3B,kBAAkB/zI,EAAe0oB,EAA4C4kG,MAAM5nJ,MAAM,qBAAsB8I,EAAIuhK,MAAMrnK,MAAO+8G,EAA0C1uE,SAASsvD,aAAa,IAElP73F,EAAIwlK,aAAah0I,GACbxxB,EAAIuhK,MAAMkE,yBACVj0I,EAAcs9G,UAAU73B,EAA0C7iB,SAAS+H,eAAen8F,EAAIuhK,MAAMmE,YAAal0I,EAAcw3F,cAG/Hx3F,EAAcs9G,UAAU73B,EAA0C7iB,SAAS+H,eAAen8F,EAAIuhK,MAAMmE,YAAal0I,EAAc2zI,6BAE9F,IAAjCnlK,EAAIuhK,MAAMG,oBACVlwI,EAAcm0I,yBAAyBn0I,EAAcw3F,YAAYpkC,SAErEpzD,EAAco0I,kBAAkB5lK,EAAIuhK,MAAM3hB,YAElD,CACAklB,EAActzI,EAAcw3F,YAAY1gF,UAAUw8H,GAClD,IAAIe,EAASr0I,EAAcw3F,YAAY1gF,UAAU2uE,EAA0C1uE,SAAS72C,OAAO,EAAG,EAAG,IAC7Go0K,EAAS7uD,EAA0C1uE,SAASsqD,gBAAgBrhE,EAAcw3F,YAAY1gF,UAAU2uE,EAA0C1uE,SAAS72C,OAAO,EAAG,EAAG,IAAKozK,GAQzL,OAPAgB,EAAOnuE,YACPrpG,EAAO6yG,OAAS8V,EAA0C7iB,SAASmI,SAAS,IAAI0a,EAA0C1uE,SAAY0uE,EAA0C1uE,SAASsqD,gBAAgBgzE,EAAQf,GAAcgB,GAC/Nt0I,EAAco0I,kBAAkBP,GAChC7zI,EAAcs9G,UAAUm2B,GACxBzzI,EAAcm0I,yBAAyBT,GACvC1zI,EAAcq9G,cAAcu2B,GAC5B92K,EAAOA,OAASw2K,EACTx2K,CACX,EAEAq+B,EAAao5I,gBAAkB,WAC3B,GAAIjH,EAAoDpxI,WAAWoG,cAAe,CAC9E,IAAIU,EAASo6E,EAA8C5b,iBAAiBr/D,aAC5E,GAAc,MAAVa,EAAgB,CAChB,IAAIC,EAAOD,EAAOE,WAClB,GAAkC,MAA9BD,EAAKuxI,wBACLxxI,EAAOyxI,qBAAqB,IACvBxxI,EAAKuxI,sBAAsBE,iBAAiB,CAC7CzxI,EAAKuxI,sBAAsBG,sBAC3B,IAAIt7H,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK08B,EAAKuxI,sBAAsB/tI,SACrI,MAAO4S,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb9kC,EAAOsuB,EAAKuxI,sBAAsB/tI,OAAOzpC,GACzCyrD,EAAoC9P,GAAGqgD,UAAU79D,EAAaqD,gBAAiB7pB,EAAK3P,MACpFm2B,EAAaqD,gBAAgB7pB,EAAK3P,IAAIya,YAAY9K,EAAKigK,cACvDz5I,EAAaqD,gBAAgB7pB,EAAK3P,IAAIk+J,UAAUvuJ,EAAKkgK,aAE7D,CACJ,CAER,CACJ,CACJ,EAEA15I,EAAa25I,MAAQ,SAAU90I,EAAexgB,EAASnB,EAAcyB,EAAgBi1J,EAAQC,GACzF,GAAKvsH,EAAoC9P,GAAGqgD,UAAU79D,EAAa8L,cAAennB,GAAlF,CAGA,IAAIm1J,EAAU95I,EAAa8L,cAAcnnB,GACzC,GAAKm1J,EAAQv2J,UAAa+pC,EAAoC9P,GAAGu8H,SAASD,EAAQruI,YAAequI,EAAQxuI,OAAO/lC,QAAYu0K,EAAQlF,MAAM2B,aAAeuD,EAAQlF,MAAMW,eAAvK,CAGA,GAAIpD,EAAoDpxI,WAAWoG,cAAe,CAC9E,IAAIU,EAASo6E,EAA8C5b,iBAAiBr/D,aAC5E,GAAc,MAAVa,EAAgB,CAChB,IAAIC,EAAOD,EAAOE,WAClB,GAAkC,MAA9BD,EAAKuxI,sBAA+B,CACpCxxI,EAAOyxI,qBAAqB,GAC5BxxI,EAAKuxI,sBAAsBG,sBAC3B,IAAIt7H,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK08B,EAAKuxI,sBAAsB/tI,SACrI,MAAO4S,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb9kC,EAAOsuB,EAAKuxI,sBAAsB/tI,OAAOzpC,GACzCyrD,EAAoC9P,GAAGqgD,UAAU79D,EAAaqD,gBAAiB7pB,EAAK3P,MACpFm2B,EAAaqD,gBAAgB7pB,EAAK3P,IAAIya,YAAY9K,EAAKigK,cACvDz5I,EAAaqD,gBAAgB7pB,EAAK3P,IAAIk+J,UAAUvuJ,EAAKkgK,aAE7D,CACJ,CACJ,CACJ,CACA,IAAIpB,EAASzzI,EAAcw3F,YACvBk8C,EAAoB1zI,EAAc2zI,2BAClCE,EAAmB7zI,EAAc8zI,oBACqC,KAAzC,KAA5BmB,EAAQlF,MAAMyD,UAA+C,KAA5ByB,EAAQlF,MAAMyD,aAChDyB,EAAQjB,aAAah0I,GACoB,IAArCi1I,EAAQlF,MAAMG,oBAAiE,IAArC+E,EAAQlF,MAAMG,mBACxDlwI,EAAcs9G,UAAU73B,EAA0C7iB,SAAS+H,eAAesqE,EAAQlF,MAAMmE,YAAal0I,EAAcw3F,cAEnIx3F,EAAcs9G,UAAU73B,EAA0C7iB,SAAS+H,eAAesqE,EAAQlF,MAAMmE,YAAal0I,EAAc2zI,6BAEvI3zI,EAAco0I,kBAAkBa,EAAQlF,MAAM3hB,aAE9C6mB,EAAQlF,MAAM2B,YAIlB,IAAK,IAAIyD,EAAO,EAAGA,EAAO,EAAGA,IAAQ,CACjC,IAAIjyD,EAASz6D,EAAoC9P,GAAGW,UAAUne,EAAa8L,cAAcnnB,GAAgB2mB,QACzG,MAAOy8E,EAAO3pE,WAAY,CACtB,IAAI/4B,EAAQ0iG,EAAOzpE,QACnB,IAAM07H,GAAQ1sH,EAAoC9P,GAAG21C,QAAQ9tE,EAAOusJ,EAAiDtuI,gBAA6B,IAAT02I,IAAgB1sH,EAAoC9P,GAAG21C,QAAQ9tE,EAAOusJ,EAAiDtuI,eAAkB,CAC9Q,IAAI22I,GAAY,EAKhB,GAJKD,IAEDC,GAAa/2J,GAAgB,EAAQ+C,4BAErCZ,EAAM9B,UAAY02J,EAAW,CAC7B,IAAIC,EAAa9I,EAAwDlxI,oBAAoBwgH,YAAYr7H,EAAMR,iBAC3Gs1J,EAAW/I,EAAwDlxI,oBAAoBwgH,YAAYr7H,EAAM5B,eACzGsqJ,EAASqD,EAAwDlxI,oBAAoBwgH,YAAYr7H,EAAMR,kBAA8C,IAAzBQ,EAAMtB,gBAAiD,IAAzBsB,EAAMtB,eAAyBsB,EAAMzB,eAAiB,MAAa,GAC7NoqJ,EAAUoD,EAAwDlxI,oBAAoBwgH,YAAYr7H,EAAM5B,gBAA4C,IAAzB4B,EAAMtB,gBAAiD,IAAzBsB,EAAMtB,eAAyBsB,EAAMzB,eAAiB,MAAa,GAChO,GAAIwtJ,EAAwDlxI,oBAAoBu9G,WAAaswB,GAAUqD,EAAwDlxI,oBAAoBu9G,WAAauwB,EAAS,CACrM,IAAIoM,EAAc,EAQlB,GAPIhJ,EAAwDlxI,oBAAoBu9G,WAAay8B,IACzFE,GAAgBhJ,EAAwDlxI,oBAAoBu9G,WAAaswB,IAAW1oJ,EAAMzB,eAAiB,QAE3IwtJ,EAAwDlxI,oBAAoBu9G,WAAa08B,IACzFC,GAAgBpM,EAAUoD,EAAwDlxI,oBAAoBu9G,aAAep4H,EAAMzB,eAAiB,QAEhJyB,EAAMlC,iBAAiBD,GACnBoqC,EAAoC9P,GAAG21C,QAAQ9tE,EAAO2sJ,EAAoD3tI,kBAAmB,CAC7H,IAAIg2I,EAAM/sH,EAAoC9P,GAAGw7G,SAAS3zI,EAAO2sJ,EAAoD3tI,kBACrHg2I,EAAI1hI,KAAK9T,EAAexgB,EAAU+1J,EAAaP,EACnD,MAEIx0J,EAAMszB,KAAK9T,EAAexgB,EAAU+1J,EAAaP,EAEzD,CACJ,CACJ,CACJ,CACJ,CACA,GAAID,EAAQ,CACR,IAAI3xD,EAAS36D,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAa8L,cAAcnnB,GAAgB8mB,YACrJ,MAAOw8E,EAAO7pE,WAAY,CAClBv8C,EAAMomH,EAAO3pE,QAAjB,IACIjrC,EAAM2sB,EAAa8L,cAAcnnB,GAAgB8mB,UAAU5pC,GAC/D,GAAMyrD,EAAoC9P,GAAG21C,QAAQ9/E,EAAKm9J,GAA1D,CAGA,GAAIn9J,EAAIkQ,SAAWlQ,EAAIuhK,MAAMW,eAAiBpE,EAA2C31E,SAASC,aAAa9/D,yBAA2Bw1I,EAA2C31E,SAASC,aAAa/+D,6BACvM,GAAqC,IAAjCrpB,EAAIuhK,MAAMG,mBAA0B,CACP,MAAzB1hK,EAAIuhK,MAAM0F,aACVjnK,EAAIuhK,MAAM2F,UAAU,IAAIzI,EAAwC0I,MAAMnnK,EAAIuhK,MAAM6F,eAAgB,IAAKpnK,EAAIuhK,MAAM8F,0BAA2B,EAAGrnK,EAAIy6E,OAAO8mF,MAAM3hB,aAElK,IAAI0nB,EAAW91I,EAAcw3F,YAC7Bx3F,EAAcs9G,UAAU73B,EAA0C7iB,SAAS+H,eAAesqE,EAAQlF,MAAMmE,YAAal0I,EAAc2zI,6BACnInlK,EAAIuhK,MAAM0F,YAAYtzB,OAAOniH,EAAe,GAASylF,EAA0C1uE,SAAS72C,OAAO,EAAG,EAAG,IACrH8/B,EAAcs9G,UAAUw4B,EAC5B,MACStnK,EAAIuhK,MAAMG,mBAGM,KAAxB1hK,EAAIuhK,MAAMyD,WAA4C,KAAxBhlK,EAAIuhK,MAAMyD,WACzCr4I,EAAa25I,MAAM90I,EAAexgB,EAASnB,EAAc7P,EAAI6Q,WAAY01J,EAAQC,EAfrF,CAiBJ,CACJ,CACAh1I,EAAco0I,kBAAkBP,GAChC7zI,EAAcs9G,UAAUm2B,GACxBzzI,EAAcm0I,yBAAyBT,EApGvC,CAJA,CAyGJ,EAEAv4I,EAAa46I,qBAAuB,SAAUC,GAC1C,IAAI9uK,EAAO,CAAC,EACRmyC,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAaqD,kBACvH,MAAO6a,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbj5B,EAAQ2a,EAAaqD,gBAAgBxhC,GACzC,GAAIwjB,EAAM9B,QAAS,CACf,IAAI/J,EAAO,IAAI04J,EAAkD4I,UACjEthK,EAAKuhK,aAAevhK,EAAKwhK,WAAa31J,EAAMjB,cAC5C5K,EAAK3P,GAAKwb,EAAMxb,GAChB2P,EAAKyhK,YAAc51J,EAAMwiJ,YACrBv6G,EAAoC9P,GAAGqgD,UAAUg9E,EAAUrhK,EAAK3P,KAChE2P,EAAKwhK,WAAaH,EAASrhK,EAAK3P,IAAImxK,WACpCxhK,EAAK0hK,UAAYL,EAASrhK,EAAK3P,IAAIqxK,WAGnC1hK,EAAK0hK,UAAY71J,EAAMwiJ,YAE3B97J,EAAKsZ,EAAMxb,IAAM2P,CACrB,CACJ,CACA,OAAOzN,CACX,EAEAi0B,EAAam7I,oBAAsB,SAAUpvK,GACzC,IAAImyC,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAaqD,kBACvH,MAAO6a,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbj5B,EAAQ2a,EAAaqD,gBAAgBxhC,GACzCwjB,EAAM9B,QAAU+pC,EAAoC9P,GAAGqgD,UAAU9xF,EAAMsZ,EAAMxb,IAC7E,IACQwb,EAAM9B,UACN8B,EAAMf,YAAYvY,EAAKsZ,EAAMxb,IAAI4vK,cACjCp0J,EAAM0iJ,UAAUh8J,EAAKsZ,EAAMxb,IAAI6vK,aAEvC,CACA,MAAOj7E,GACP,CACJ,CACJ,GAEA,EAAGwjB,EAA8C/a,gCAAgClnE,EAAam7I,qBAE9Fn7I,EAAao7I,SAAW,SAAUv2I,EAAexgB,EAASnB,EAAcyB,EAAgBi1J,GACpF,GAAKtsH,EAAoC9P,GAAGqgD,UAAU79D,EAAa8L,cAAennB,GAAlF,CAGA,IAAIm1J,EAAU95I,EAAa8L,cAAcnnB,GACzC,GAAK2oC,EAAoC9P,GAAGu8H,SAASD,EAAQruI,YAAequI,EAAQxuI,OAAO/lC,OAA3F,CAGA,GAAI4sK,EAAoDpxI,WAAWoG,cAAe,CAC9E,IAAIU,EAASylB,EAAoC9P,GAAGw7G,SAAS/2C,EAA8C5b,iBAAiBr/D,aAAcmrI,EAAoDpxI,YAC9L,GAAc,MAAV8G,EAAgB,CAChB,IAAIC,EAAOD,EAAOE,WAClB,GAAkC,MAA9BD,EAAKuxI,sBAA+B,CACpCxxI,EAAOyxI,qBAAqB,GAC5BxxI,EAAKuxI,sBAAsBG,sBAC3B,IAAIt7H,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK08B,EAAKuxI,sBAAsB/tI,SACrI,MAAO4S,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb9kC,EAAOsuB,EAAKuxI,sBAAsB/tI,OAAOzpC,GACzCyrD,EAAoC9P,GAAGqgD,UAAU79D,EAAaqD,gBAAiB7pB,EAAK3P,MACpFm2B,EAAaqD,gBAAgB7pB,EAAK3P,IAAIya,YAAY9K,EAAKigK,cACvDz5I,EAAaqD,gBAAgB7pB,EAAK3P,IAAIk+J,UAAUvuJ,EAAKkgK,aAE7D,CACJ,CACJ,CACJ,CACA,IAAIpB,EAASzzI,EAAcw3F,YACvBk8C,EAAoB1zI,EAAc2zI,2BAClCE,EAAmB7zI,EAAc8zI,oBACL,KAA5BmB,EAAQlF,MAAMyD,YACdyB,EAAQjB,aAAah0I,GACoB,IAArCi1I,EAAQlF,MAAMG,mBACdlwI,EAAcs9G,UAAU73B,EAA0C7iB,SAAS+H,eAAesqE,EAAQlF,MAAMmE,YAAal0I,EAAcw3F,cAEnIx3F,EAAcs9G,UAAU73B,EAA0C7iB,SAAS+H,eAAesqE,EAAQlF,MAAMmE,YAAal0I,EAAc2zI,6BAEvI3zI,EAAco0I,kBAAkBa,EAAQlF,MAAM3hB,aAElD,IAAK,IAAI+mB,EAAO,EAAGA,EAAO,EAAGA,IAAQ,CACjC,IAAIjyD,EAASz6D,EAAoC9P,GAAGW,UAAUne,EAAa8L,cAAcnnB,GAAgB2mB,QACzG,MAAOy8E,EAAO3pE,WAAY,CACtB,IAAI/4B,EAAQ0iG,EAAOzpE,QACnB,KAAM07H,GAAQ1sH,EAAoC9P,GAAG21C,QAAQ9tE,EAAOusJ,EAAiDtuI,gBAA6B,IAAT02I,IAAgB1sH,EAAoC9P,GAAG21C,QAAQ9tE,EAAOusJ,EAAiDtuI,iBACxPje,EAAM9B,QAAS,CACf,IAAI22J,EAAa9I,EAAwDlxI,oBAAoBwgH,YAAYr7H,EAAMR,iBAC3Gs1J,EAAW/I,EAAwDlxI,oBAAoBwgH,YAAYr7H,EAAM5B,eACzGsqJ,EAASqD,EAAwDlxI,oBAAoBwgH,YAAYr7H,EAAMR,kBAA8C,IAAzBQ,EAAMtB,gBAAiD,IAAzBsB,EAAMtB,eAAyBsB,EAAMzB,eAAiB,MAAa,GAC7NoqJ,EAAUoD,EAAwDlxI,oBAAoBwgH,YAAYr7H,EAAM5B,gBAA4C,IAAzB4B,EAAMtB,gBAAiD,IAAzBsB,EAAMtB,eAAyBsB,EAAMzB,eAAiB,MAAa,GAChO,GAAIwtJ,EAAwDlxI,oBAAoBu9G,WAAaswB,GAAUqD,EAAwDlxI,oBAAoBu9G,WAAauwB,EAAS,CACrM,IAAIoM,EAAc,EACdhJ,EAAwDlxI,oBAAoBu9G,WAAay8B,IACzFE,GAAgBhJ,EAAwDlxI,oBAAoBu9G,WAAaswB,IAAW1oJ,EAAMzB,eAAiB,QAE3IwtJ,EAAwDlxI,oBAAoBu9G,WAAa08B,IACzFC,GAAgBpM,EAAUoD,EAAwDlxI,oBAAoBu9G,aAAep4H,EAAMzB,eAAiB,QAE3Ik2J,EAAQlF,MAAMyD,WACfhzJ,EAAMlC,kBAAiB,GAE3BkC,EAAM+pJ,QAAQvqI,EAAexgB,EAAU+1J,EAC3C,CACJ,CAER,CACJ,CACA,GAAIR,EAAQ,CACR,IAAI3xD,EAAS36D,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK40B,EAAa8L,cAAcnnB,GAAgB8mB,YACrJ,MAAOw8E,EAAO7pE,WAAY,CAClBv8C,EAAMomH,EAAO3pE,QAAjB,IACIjrC,EAAM2sB,EAAa8L,cAAcnnB,GAAgB8mB,UAAU5pC,GAClC,KAAxBwR,EAAIuhK,MAAMyD,WAA4C,KAAxBhlK,EAAIuhK,MAAMyD,WACzCr4I,EAAao7I,SAASv2I,EAAexgB,EAASnB,EAAc7P,EAAI6Q,WAAY01J,EAEpF,CACJ,CACA/0I,EAAco0I,kBAAkBP,GAChC7zI,EAAcs9G,UAAUm2B,GACxBzzI,EAAcm0I,yBAAyBT,EAvEvC,CAJA,CA4EJ,EAEAv4I,EAAazjB,IAAM,SAAU8I,EAAO2yJ,GAC3B1qH,EAAoC9P,GAAGqgD,UAAU79D,EAAaqD,gBAAiBhe,EAAMxb,KAClFyjD,EAAoC9P,GAAGqgD,UAAU79D,EAAa8L,cAAezmB,EAAMX,wBACnFsb,EAAaqD,gBAAgBhe,EAAMxb,IAAMwb,EACzC2a,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAO/jC,KAAK8d,GACnE2a,EAAaqyI,WACT2F,GACAh4I,EAAa6zI,WAI7B,EAEA7zI,EAAaq7I,sBAAwB,SAAUC,GAE3C,GADAt7I,EAAa+yI,eAAiBuI,EACK,MAA/Bt7I,EAAa+yI,eACb,GAAIzlH,EAAoC9P,GAAG21C,QAAQnzD,EAAa+yI,eAAgBvC,GAAW,CACvF,IAAIn9J,EAAMi6C,EAAoC9P,GAAGw7G,SAASh5H,EAAa+yI,eAAgBvC,GAC5E,MAAPn9J,GACA2sB,EAAam0I,eAAe9gK,EAAI6Q,WAExC,KAAO,CACH,IAAImB,EAAQioC,EAAoC9P,GAAGw7G,SAASh5H,EAAa+yI,eAAgBnB,EAAiDtuI,eAC1I,GAAa,MAATje,GAAiBioC,EAAoC9P,GAAG21C,QAAQ9tE,EAAMwe,eAAe2xH,eAAgBwb,EAA6C/X,WAClJ,MAER,CAEJh3C,EAA8C7b,sBAAsBm1E,cAAc,OAAQ,IAC1Ft5D,EAA8C7b,sBAAsBm1E,cAAc,QAAS,IAC3Ft5D,EAA8C7b,sBAAsBm1E,cAAc,QAASjK,EAAuC0E,SAASC,iBAAiB,IAAK,iBACrK,EAGAj2I,EAAaw7I,mBAAqB,SAAU3+H,GACxC,IAAIx3B,EAAQioC,EAAoC9P,GAAGw7G,SAASh5H,EAAa+yI,eAAgBnB,EAAiDtuI,eAC7H,MAATje,GAAiBioC,EAAoC9P,GAAG21C,QAAQ9tE,EAAMwe,eAAe2xH,eAAgBwb,EAA6C/X,UAC1J,EAEAj5H,EAAay7I,cAAgB,SAAUH,EAAU3tI,EAAG/mC,GAShD,GARAo5B,EAAagzI,eAAiB1oD,EAA0C7nB,SAAS19F,OAAO4oC,EAAG/mC,GAC3Fo5B,EAAa+yI,eAAiBuI,EAC1BhuH,EAAoC9P,GAAG21C,QAAQmoF,EAAU9K,GACzDxwI,EAAam0I,eAAe,EAAWjwJ,YAElCopC,EAAoC9P,GAAG21C,QAAQmoF,EAAU9J,EAAwCjL,QACtGvmI,EAAam0I,eAAe,EAAWzvJ,sBAErC4oC,EAAoC9P,GAAG21C,QAAQmoF,EAAU9J,EAAwCjL,SAAaj5G,EAAoC9P,GAAG21C,QAAQmoF,EAAU7K,GAAgB,CACzL,IAAIiL,EAAgBJ,EACpBt7I,EAAa27I,aAAe,IAAI7K,EAA8D8K,iBAC9F,IAAIC,EAAa/K,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,WAC1K8F,EAASjL,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,WACtK+F,EAAWlL,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,aACxKgG,EAAWnL,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,SACxKiG,EAAapL,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,WAC1KkG,EAAWrL,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,YACxKmG,EAActL,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,4BAC3KoG,EAAYvL,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,kBACzKqG,EAAcxL,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,YAC3KsG,EAAiBzL,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,GAAI,eAC7KuG,EAAY1L,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,KAAM,oBAC1KwG,EAAe3L,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,aAC5KyG,EAAU,IAAI5L,EAA8D6L,mBAC5En0E,EAAMsoE,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,gBACnKl6H,EAAK+0H,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,YAClK2G,EAAO9L,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,cACpKziE,EAASs9D,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,mBACtK4G,EAAa/L,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,oBAC1K6G,EAAU,IAAIhM,EAA8D6L,mBAC5EI,EAAkBjM,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,KAAM,yBA+BpL,GA9BAztE,EAAIn6F,MAAQ2xB,EAAag9I,WACzBjhI,EAAG1tC,MAAQ2xB,EAAai9I,UACxBL,EAAKvuK,MAAQ2xB,EAAak9I,YAC1B1pE,EAAOnlG,MAAQ2xB,EAAam9I,cAC5BhB,EAAS9tK,MAAQ2xB,EAAao9I,gBAC9BhB,EAAY/tK,MAAQ2xB,EAAaq9I,mBACjCtB,EAAO1tK,MAAQ2xB,EAAas9I,cAC5BtB,EAAS3tK,MAAQ2xB,EAAau9I,gBAC9BtB,EAAS5tK,MAAQ2xB,EAAaw9I,gBAC9BnB,EAAUhuK,MAAQ2xB,EAAay9I,iBAC/BvB,EAAW7tK,MAAQ2xB,EAAa09I,kBAChC7B,EAAWxtK,MAAQ2xB,EAAa29I,kBAChCpB,EAAeluK,MAAQ2xB,EAAa49I,sBACpCpB,EAAUnuK,MAAQ2xB,EAAa69I,gBAC/Bd,EAAgB1uK,MAAQ2xB,EAAa89I,uBACrCxB,EAAYjuK,MAAQ2xB,EAAa+9I,mBACjCtB,EAAapuK,MAAQ2xB,EAAag+I,oBAClCnB,EAAWxuK,MAAQ2xB,EAAai+I,kBAChCj+I,EAAa27I,aAAannD,MAAMjtH,KAAKs0K,IAChCH,EAAcn3J,cAAgD,MAAhCm3J,EAAc3O,gBAA0B2O,EAAc3O,eAAemR,wBACpGl+I,EAAa27I,aAAannD,MAAMjtH,KAAKw0K,GAErCL,EAAcn3J,cACdyb,EAAa27I,aAAannD,MAAMjtH,KAAKy0K,GAErCN,EAAcjM,qBAElBzvI,EAAa27I,aAAannD,MAAMjtH,KAAK20K,GACrCl8I,EAAa27I,aAAannD,MAAMjtH,KAAKu1K,GACrC98I,EAAa27I,aAAannD,MAAMjtH,KAAK80K,GACjC/uH,EAAoC9P,GAAG21C,QAAQmoF,EAAU1J,EAAiDtuI,eAAgB,CAC1HtD,EAAa27I,aAAannD,MAAMjtH,KAAKw1K,GACrC,IAAInT,EAAMt8G,EAAoC9P,GAAGw7G,SAASsiB,EAAU1J,EAAiDtuI,eACrHy5I,EAAgBoB,QAAUvU,EAAI3jJ,0BAClC,CAOA,IANIqnC,EAAoC9P,GAAG21C,QAAQmoF,EAAUtJ,EAAoD3tI,mBAAqBipB,EAAoC9P,GAAG21C,QAAQmoF,EAAU5J,EAA2DzL,yBACtPjmI,EAAa27I,aAAannD,MAAMjtH,KAAKg1K,GAErCjvH,EAAoC9P,GAAG21C,QAAQmoF,EAAUrJ,EAAiD5L,eAC1GrmI,EAAa27I,aAAannD,MAAMjtH,KAAKs1K,GAErCvvH,EAAoC9P,GAAG21C,QAAQmoF,EAAU1J,EAAiDtuI,eAAgB,CACtHsmI,EAAMt8G,EAAoC9P,GAAGw7G,SAASsiB,EAAU1J,EAAiDtuI,eACrHtD,EAAa27I,aAAannD,MAAMjtH,KAAKi1K,EACzC,CACIx8I,EAAa8L,cAAc4vI,EAAch3J,sBAAsB4mB,OAAO/lC,OAAS,IAC/Ey6B,EAAa27I,aAAannD,MAAMjtH,KAAKm1K,GACrC18I,EAAa27I,aAAannD,MAAMjtH,KAAKihG,GACrCxoE,EAAa27I,aAAannD,MAAMjtH,KAAKw0C,GACrC/b,EAAa27I,aAAannD,MAAMjtH,KAAKq1K,GACrC58I,EAAa27I,aAAannD,MAAMjtH,KAAKisG,IAEzCxzE,EAAa27I,aAAayC,MAAM9zD,EAA0C7nB,SAAS19F,OAAO4oC,EAAG/mC,GACjG,MACK,GAAI0mD,EAAoC9P,GAAG21C,QAAQmoF,EAAU9K,GAAW,CACzE,IAAIn9J,EAAMi6C,EAAoC9P,GAAGw7G,SAASsiB,EAAU9K,GAChEjhB,EAA6C,YAAnCl8I,EAAIuhK,MAAMyD,UAAU/rK,WAC9B+xK,EAA0B,SAAnBhrK,EAAIuhK,MAAMrnK,KACjB+wK,EAAyB,QAAnBjrK,EAAIuhK,MAAMrnK,KACpB,GAAI8wK,EACA,OAEJr+I,EAAa27I,aAAe,IAAI7K,EAA8D8K,iBAC9F,IAAI2C,EAAazN,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,KAAM,qBAC3KnzD,EAAOguD,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,KAAM,aACrKuI,EAAY1N,EAA8DgL,kBAAkB/2K,OAAO,cACnG05K,EAAU3N,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,wBACvKyI,EAAoB5N,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,oBACjL0I,EAAU7N,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,QACvK2I,EAAW9N,EAA8DgL,kBAAkB/2K,OAAO,aAGlG85K,GAFc/N,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,kCAC7JnF,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,kBAC5JnF,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,KAAM,sBAC7K6I,EAAiBhO,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,qBAE9K8I,GADYjO,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,4BAChKnF,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,KAAM,sBACvK+I,GAAkBlO,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,WAC/KgJ,GAAYnO,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,UAGzKiJ,IAFgBpO,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,KAAM,oBAChKnF,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,KAAM,iBAC5JnF,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,GAAI,gBAI5KkJ,IAHAhD,EAAWrL,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,gBACxJnF,EAA8DgL,kBAAkB/2K,OAAOusK,EAAuC0E,SAASC,iBAAiB,IAAK,gCAC7KyG,EAAU,IAAI5L,EAA8D6L,mBAClE,IAAI7L,EAA8D6L,oBAE5EyC,IADAtC,EAAU,IAAIhM,EAA8D6L,mBACzD7L,EAA8DgL,kBAAkB/2K,OAAO,uBAC1Gs6K,GAAiBvO,EAA8DgL,kBAAkB/2K,OAAO,mBAC5Gw5K,EAAWlwK,MAAQ2xB,EAAas/I,kBAChCx8D,EAAKz0G,MAAQ2xB,EAAau/I,YAC1BH,GAAiB/wK,MAAQ2xB,EAAaw/I,cACtCH,GAAehxK,MAAQ2xB,EAAay/I,sBAGpCV,EAAOW,cAAcn4K,KAAK63K,IAC1BL,EAAOW,cAAcn4K,KAAK83K,IAC1BV,EAAQtwK,MAAQ2xB,EAAa2/I,eAC7BjB,EAAkBrwK,MAAQ2xB,EAAa4/I,yBACvCX,GAAU5wK,MAAQ2xB,EAAa6/I,kBAC/BpB,EAAQpwK,MAAQ2xB,EAAa8/I,eAC7Bd,GAAgB3wK,MAAQ2xB,EAAa+/I,uBACrCb,GAAc7wK,MAAQ2xB,EAAaggJ,2BACnClB,EAAezwK,MAAQ2xB,EAAaigJ,sBACpCpB,EAAaxwK,MAAQ2xB,EAAakgJ,oBACbpP,EAA8DgL,kBAAkB/2K,OAAO,uBAC5G,GAA4B,KAAxBsO,EAAIuhK,MAAMyD,UAAkB,CAC5B,GAA4K,KAAvKp2D,EAA8C5b,iBAAiB85E,sBAAwBl+D,EAA8C5b,iBAAiB+5E,aAAoB,CAC3K,IAAIC,IAAe,EACnB,GAA4B,KAAxBhtK,EAAIuhK,MAAMyD,WAAqBp2D,EAA8C5b,iBAAiB+5E,YAoBzF7wB,GAAY+uB,IACbt+I,EAAa27I,aAAannD,MAAMjtH,KAAKg3K,GACrC8B,IAAe,GAEnB7B,EAAUL,QAAU9qK,EAAIuhK,MAAMW,cAC9BiJ,EAAUnwK,MAAQ2xB,EAAasgJ,sBArB/B,IACI,IAAI/yK,GAAO8F,EAAIuhK,MAAMyD,UAAU/rK,WAC/B,GAAa,YAATiB,GAAoB,CACpB,IAAIgzK,GAAQhzH,EAA4C4kG,MAAM5nJ,MAAM,qBAAsBgD,IACtF1D,GAAK02K,GACL1oF,GAAM3vF,KAAKo8D,IAAI,EAAGz6D,IACtB20K,EAAUL,WAAahN,EAA2C31E,SAASC,aAAavmE,yBAA2B2iE,IACnH2mF,EAAUnwK,MAAQ2xB,EAAawgJ,uBAC/BhC,EAAU7uJ,IAAMkoE,GAAIvrF,UACxB,CACJ,CACA,MAAO6qF,IACP,CAWAkpF,IACArgJ,EAAa27I,aAAannD,MAAMjtH,KAAKu1K,GAEpCwB,GAAQ/uB,IACTvvH,EAAa27I,aAAannD,MAAMjtH,KAAKi3K,GACrCx+I,EAAa27I,aAAannD,MAAMjtH,KAAK43K,KAEF,YAAnC9rK,EAAIuhK,MAAMyD,UAAU/rK,YACpB0zB,EAAa27I,aAAannD,MAAMjtH,KAAKq3K,EAE7C,CACKN,GACDt+I,EAAa27I,aAAannD,MAAMjtH,KAAKk3K,EAE7C,CACKH,IACDt+I,EAAa27I,aAAannD,MAAMjtH,KAAKu3K,GACrC9+I,EAAa27I,aAAannD,MAAMjtH,KAAKs3K,KAEZ,KAAxBxrK,EAAIuhK,MAAMyD,WAAuC,QAAnBhlK,EAAIuhK,MAAMrnK,MAA4C,KAAxB8F,EAAIuhK,MAAMyD,WAAkC,MAAdhlK,EAAIy6E,QAA4C,QAA1Bz6E,EAAIy6E,OAAO8mF,MAAMrnK,OAClIyyB,EAAa27I,aAAannD,MAAMjtH,KAAKw3K,GAEb,KAAxB1rK,EAAIuhK,MAAMyD,WAAqD,IAAjChlK,EAAIuhK,MAAMG,oBAA0C,MAAd1hK,EAAIy6E,QAAkBz6E,EAAIy6E,OAAO8mF,MAAMrnK,KAI/GyyB,EAAa27I,aAAannD,MAAMjtH,KAAK03K,IACT,KAAxB5rK,EAAIuhK,MAAMyD,WACVr4I,EAAa27I,aAAannD,MAAMjtH,KAAKy3K,IAEb,KAAxB3rK,EAAIuhK,MAAMyD,YACVr4I,EAAa27I,aAAannD,MAAMjtH,KAAKy3K,IACrCh/I,EAAa27I,aAAannD,MAAMjtH,KAAK23K,KAEzCl/I,EAAa27I,aAAannD,MAAMjtH,KAAKm1K,GACrC18I,EAAa27I,aAAayC,MAAM9zD,EAA0C7nB,SAAS19F,OAAO4oC,EAAG/mC,GACjG,CACJ,EAEAo5B,EAAaq9I,mBAAqB,SAAUoD,EAAQ39K,GAAK,EAEzDk9B,EAAakgJ,oBAAsB,SAAUO,EAAQ39K,GACjD,IAAIuiB,EAAQ,IAAIssJ,EAA6CzL,UAC7D7gJ,EAAM9B,SAAU,EAChB8B,EAAMlB,SAAS,gBACf6b,EAAaqD,gBAAgBhe,EAAMxb,IAAMwb,EACzCA,EAAMT,mBAAmBob,EAAa2yI,aACtC3yI,EAAa8L,cAAc9L,EAAa2yI,aAAarnI,OAAO/jC,KAAK8d,GACjE2a,EAAa8L,cAAc9L,EAAa2yI,aAAahlK,MAAO,EAC5DqyB,EAAaqyI,WACbryI,EAAa6zI,UACjB,EAEA7zI,EAAas/I,kBAAoB,SAAUmB,EAAQ39K,GAC/C,IAAInB,EAASq+B,EAAa+yI,eAC1B3qE,EAAgDolB,oBAAoBz7E,qBAAqB,IACzFq2D,EAAgDolB,oBAAoBkzD,kBAAkB/+K,EAAOuiB,YAC7FkkF,EAAgDolB,oBAAoBh+E,WAAWlQ,KAAO8oE,EAAgDolB,oBAAoBmzD,aAAarhJ,KAAO,IAClL,EAEAU,EAAau/I,YAAc,SAAUkB,EAAQ39K,GAAK,EAElDk9B,EAAao9I,gBAAkB,SAAUqD,EAAQ39K,GAAK,EAEtDk9B,EAAas9I,cAAgB,SAAUmD,EAAQ39K,GAAK,EAEpDk9B,EAAau9I,gBAAkB,SAAUkD,EAAQ39K,GAAK,EAEtDk9B,EAAaw9I,gBAAkB,SAAUiD,EAAQ39K,GAC7C,GAAmC,MAA/Bk9B,EAAa+yI,gBAA0BzlH,EAAoC9P,GAAG21C,QAAQnzD,EAAa+yI,eAAgBvB,EAAwCjL,OAAQ,CACnK,IAAIj4J,EAAO0xB,EAAa+yI,eACxBzkK,EAAKohK,iBACT,CACJ,EAEA1vI,EAAa4/I,yBAA2B,SAAUa,EAAQ39K,GAAK,EAE/Dk9B,EAAa4gJ,eAAiB,SAAUhkB,GAAY,EAEpD58H,EAAa6gJ,mBAAqB,SAAUtzK,GACxC,IAAI5L,EAASq+B,EAAa+yI,eAC1B/yI,EAAa8gJ,gBAAgBvzK,EAAM5L,EACvC,EAEAq+B,EAAa8gJ,gBAAkB,SAAUvzK,EAAM5L,GAC3C,IAAIizK,EAAQ,IAAInD,EAAkDsP,eAClEnM,EAAMrnK,KAAOA,EACbqnK,EAAMyD,UAAY,GAClB,IAAIR,EAAS,IAAIrH,EAASoE,EAAMrnK,KAAM,IACtCsqK,EAAOjD,MAAQA,EACfiD,EAAOjD,MAAMyB,kBAAmB,EAChC10K,EAAOi0K,SAASiC,GAChBA,EAAOjD,MAAM9mF,OAASnsF,EAAOuiB,WAC7B8b,EAAa8L,cAAc8oI,EAAMrnK,MAAQsqK,EACzC73I,EAAaqyI,UACjB,EAEAryI,EAAag+I,oBAAsB,SAAUyC,EAAQ39K,GAAK,EAE1Dk9B,EAAa+/I,uBAAyB,SAAUU,EAAQ39K,GAAK,EAE7Dk9B,EAAaggJ,2BAA6B,SAAUS,EAAQ39K,GACxD,IAAInB,EAASq+B,EAAa+yI,eAC1B/yI,EAAaqzI,gCAAgC2N,KAAKr/K,EAAOizK,MAAO9xK,EACpE,EAEAk9B,EAAa8/I,eAAiB,SAAUW,EAAQ39K,GAC5C,IAAI8xK,EAAQ,IAAInD,EAAkDsP,eAClE/gJ,EAAaizI,wBAAwB+N,KAAKpM,EAAO9xK,EACrD,EAEAk9B,EAAaihJ,6BAA+B,SAAUrM,GAClD,IAAIjzK,EAASq+B,EAAa+yI,eACtB8E,EAAS,IAAIrH,EAASoE,EAAMrnK,KAAM,IACjC+/C,EAAoC9P,GAAGqgD,UAAU79D,EAAa8L,cAAe8oI,EAAMrnK,QACpFsqK,EAAOjD,MAAQA,EACfjzK,EAAOi0K,SAASiC,GAChBA,EAAOjD,MAAM9mF,OAASnsF,EAAOuiB,WAC7B8b,EAAa8L,cAAc8oI,EAAMrnK,MAAQsqK,EACzC73I,EAAaqyI,WACbryI,EAAa6zI,WAErB,EAEA7zI,EAAakhJ,aAAe,SAAU5yF,EAAOsmF,GAGzC,IAFA,IAAIuM,EAAQ,GACRC,EAAQ,GACHh8K,EAAI,EAAGA,EAAIkpF,EAAM/oF,OAAQH,IAC9BkpF,EAAMlpF,GAAKkoD,EAAoC9P,GAAG+gD,KAAKjQ,EAAMlpF,IACrC,KAApBkpF,EAAMlpF,GAAGG,QAAiBksK,EAAkDsP,eAAeM,kBAAkB/yF,EAAMlpF,MAC9G+7K,EAAM57K,QAAuC,MAA7B+oF,EAAMlpF,GAAG+mF,UAAU,EAAG,KACvCg1F,EAAQ7yF,EAAMlpF,IAEbg8K,EAAM77K,QAAuC,MAA7B+oF,EAAMlpF,GAAG+mF,UAAU,EAAG,KACvCi1F,EAAQ9yF,EAAMlpF,KAI1B,OAAqB,KAAjB+7K,EAAM57K,QAAkC,KAAjB67K,EAAM77K,SAC7BqvK,EAAMe,QAAQwL,EAAOC,EAAO,eACrB,EAGf,EAEAphJ,EAAa+9I,mBAAqB,SAAU0C,EAAQ39K,GAAK,EAEzDk9B,EAAa89I,uBAAyB,SAAU2C,EAAQ39K,GACpD,IAAI8mK,EAAMt8G,EAAoC9P,GAAGw7G,SAASh5H,EAAa+yI,eAAgBnB,EAAiDtuI,eACxIsmI,EAAIzjJ,0BAA0ByjJ,EAAI3jJ,2BACtC,EAEA+Z,EAAa49I,sBAAwB,SAAU6C,EAAQ39K,GACnD,GAAIwqD,EAAoC9P,GAAG21C,QAAQnzD,EAAa+yI,eAAgBf,EAAoD3tI,kBAAmB,CACnJ,IAAI1iC,EAASq+B,EAAa+yI,eAC1B/yI,EAAamzI,0BAA0B6N,KAAKr/K,EAAQmB,EACxD,CACIwqD,EAAoC9P,GAAG21C,QAAQnzD,EAAa+yI,eAAgBrB,EAA2DzL,wBACvIjmI,EAAauzI,qBAAqByN,KAAKhhJ,EAAa+yI,eAAgB,IAAIzlH,EAAoC9P,GAAG8jI,UAEvH,EAEAthJ,EAAa29I,kBAAoB,SAAU8C,EAAQ39K,GAC/C,IAAIuiB,EAAQ2a,EAAa+yI,eACrBv9D,EAAQ,IAAIo7D,EAAwD2Q,YAAYjQ,EAAuC0E,SAASC,iBAAiB,IAAK,UAAW3E,EAAuC0E,SAASC,iBAAiB,IAAK,YAAa5wJ,EAAMnB,WAAY,IAC1QsxF,EAAMwrE,KAAKhhJ,EAAagzI,gBAAgB,WAC/B1lH,EAAoC9P,GAAGC,YAAY+3D,EAAMrjG,QAC1DkT,EAAMlB,SAASqxF,EAAMrjG,MACrB6tB,EAAaqyI,WACbryI,EAAa6zI,WAErB,GACJ,EAEA7zI,EAAay9I,iBAAmB,SAAUgD,EAAQ39K,GAC9C,IAAIuiB,EAAQ2a,EAAa+yI,eACrByO,EAAS,IAAI3Q,EAAwD4Q,YAChD,MAArBp8J,EAAMjC,cACNo+J,EAAO/rK,MAAQ4P,EAAMjC,aAEzBo+J,EAAOE,SAAW,WACdr8J,EAAMhC,UAAUm+J,EAAO/rK,MAC3B,EACA+rK,EAAOR,KAAKl+K,EAChB,EAEAk9B,EAAa2/I,eAAiB,SAAUc,EAAQ39K,GAAK,EAErDk9B,EAAa09I,kBAAoB,SAAU+C,EAAQ39K,GAC/Ck9B,EAAa2hJ,sBACjB,EAEA3hJ,EAAa2hJ,qBAAuB,WAChC,GAAmC,MAA/B3hJ,EAAa+yI,gBAA0BzlH,EAAoC9P,GAAG21C,QAAQnzD,EAAa+yI,eAAgBvB,EAAwCjL,OAAQ,CACnK,IAAIj4J,EAAO0xB,EAAa+yI,sBACjB/yI,EAAaqD,gBAAgB/0B,EAAKzE,IACzCyjD,EAAoC9P,GAAG46C,OAAOp4D,EAAa8L,cAAc9L,EAAak0I,kBAAkB5oI,OAAQh9B,GAChHA,EAAKk6H,UACLl6H,EAAK4W,YAAY5W,EAAK0W,cAAgB,GACtCgb,EAAa6zI,WACb7zI,EAAaqyI,UACjB,CACJ,EAEAryI,EAAa69I,gBAAkB,SAAU4C,EAAQ39K,GAC7C,IAAI8mK,EAAMt8G,EAAoC9P,GAAGw7G,SAASh5H,EAAa+yI,eAAgBnB,EAAiDtuI,eACxI,GAAW,MAAPsmI,EAAa,CACb,IAAIgY,EAAO,IAAIjR,EAAqD/F,UACpEgX,EAAK7/D,MAAQ6nD,EAAIhmI,eACjBg+I,EAAKv8J,MAAQukJ,EACbgY,EAAKZ,KAAK12D,EAA0C7nB,SAAS19F,OAAO,IAAK,KAC7E,CACJ,EAEAi7B,EAAai+I,kBAAoB,SAAUwC,EAAQ39K,GAC/C,GAAIwqD,EAAoC9P,GAAG21C,QAAQnzD,EAAa+yI,eAAgBd,EAAiD5L,cAAe,CAC5I,IAAIhhJ,EAAQioC,EAAoC9P,GAAGw7G,SAASh5H,EAAa+yI,eAAgBd,EAAiD5L,cAC1IpkD,EAA8C7b,sBAAsBy7E,oBAAoBx8J,EAC5F,CACJ,EAEA2a,EAAam9I,cAAgB,SAAUsD,EAAQ39K,GAC3C,IAAIuiB,EAAQioC,EAAoC9P,GAAGw7G,SAASh5H,EAAa+yI,eAAgBvB,EAAwCjL,OACpH,MAATlhJ,IACAioC,EAAoC9P,GAAG46C,OAAOp4D,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAQjmB,GAC7G2a,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAO/jC,KAAK8d,IAEvE2a,EAAaqyI,WACbryI,EAAa6zI,UACjB,EAEA7zI,EAAak9I,YAAc,SAAUuD,EAAQ39K,GACzC,IAAIuiB,EAAQioC,EAAoC9P,GAAGw7G,SAASh5H,EAAa+yI,eAAgBvB,EAAwCjL,OACjI,GAAa,MAATlhJ,EAAe,CACf,IAAIsjB,EAAQ3I,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAOw2I,YAAYz8J,GAClFsjB,EAAS3I,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAO/lC,OAAS,IAChF+nD,EAAoC9P,GAAG46C,OAAOp4D,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAQjmB,GAC7G2a,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAOljC,OAAOugC,EAAQ,EAAG,EAAGtjB,GAE3F,CACA2a,EAAaqyI,WACbryI,EAAa6zI,UACjB,EAEA7zI,EAAai9I,UAAY,SAAUwD,EAAQ39K,GACvC,IAAIuiB,EAAQioC,EAAoC9P,GAAGw7G,SAASh5H,EAAa+yI,eAAgBvB,EAAwCjL,OACjI,GAAa,MAATlhJ,EAAe,CACf,IAAIsjB,EAAQ3I,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAOw2I,YAAYz8J,GAClFsjB,EAAQ,IACR2kB,EAAoC9P,GAAG46C,OAAOp4D,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAQjmB,GAC7G2a,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAOljC,OAAOugC,EAAQ,EAAG,EAAGtjB,GAE3F,CACA2a,EAAaqyI,WACbryI,EAAa6zI,UACjB,EAEA7zI,EAAag9I,WAAa,SAAUyD,EAAQ39K,GACxC,IAAIuiB,EAAQioC,EAAoC9P,GAAGw7G,SAASh5H,EAAa+yI,eAAgBvB,EAAwCjL,OACpH,MAATlhJ,IACAioC,EAAoC9P,GAAG46C,OAAOp4D,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAQjmB,GAC7G2a,EAAa8L,cAAczmB,EAAMX,sBAAsB4mB,OAAOljC,OAAO,EAAG,EAAGid,IAE/E2a,EAAaqyI,WACbryI,EAAa6zI,UACjB,EAEA7zI,EAAa6/I,kBAAoB,SAAUY,EAAQ39K,GAC/Ck9B,EAAamzI,0BAA0B6N,KAAKhhJ,EAAak0I,iBAAkBpxK,EAC/E,EAEAk9B,EAAa0S,uBAAyB,SAAUkiI,EAAOrnK,EAAMlD,GACzD,IAAIgb,EAAQ,IAAI2sJ,EAAoD3tI,iBAIpE,OAHAhf,EAAM08J,eAAe13K,GAAM,GAAO,GAAO,GAAO,GAChDgb,EAAMlB,SAAS5W,GACfyyB,EAAa0tH,oBAAoBroI,EAAOuvJ,GACjCvvJ,CACX,EAEA2a,EAAa0tH,oBAAsB,SAAUroI,EAAOuvJ,GAChDvvJ,EAAM9B,SAAU,EAChB8B,EAAMT,mBAAmBgwJ,GACzB50I,EAAazjB,IAAI8I,GAAO,EAC5B,EAEA2a,EAAawgJ,uBAAyB,SAAUC,EAAQ39K,GACpD,IACI,IAAI+0F,EAAM/K,SAAS,EAASn9D,IAAIrjB,YAE1B6kK,EAA2C31E,SAAS4D,qBAAqBlqE,yBAA2B2iE,EAGtGs5E,EAA2C31E,SAAS4D,qBAAqBhqE,uBAAuB+7I,EAA2C31E,SAAS4D,qBAAqBlqE,0BAA4B2iE,GAFrMs5E,EAA2C31E,SAAS4D,qBAAqBhqE,uBAAuB+7I,EAA2C31E,SAAS4D,qBAAqBlqE,yBAA2B2iE,EAI5M,CACA,MAAOV,GAAO,CAClB,EAEAn3D,EAAasgJ,iBAAmB,SAAUG,EAAQ39K,GAE9C,IAAIuQ,EAAMi6C,EAAoC9P,GAAGw7G,SAASh5H,EAAa+yI,eAAgBvC,GACvFn9J,EAAIuhK,MAAMW,eAAiBliK,EAAIuhK,MAAMW,aACzC,EAEAv1I,EAAaigJ,sBAAwB,SAAUQ,EAAQ39K,GACnDk9B,EAAagiJ,sBACjB,EAEAhiJ,EAAaw/I,cAAgB,SAAUiB,EAAQ39K,GAC3C,IAAInB,EAASq+B,EAAa+yI,eACtBv9D,EAAQ,IAAIo7D,EAAwD2Q,YAAYjQ,EAAuC0E,SAASC,iBAAiB,KAAM,oCAAqC3E,EAAuC0E,SAASC,iBAAiB,IAAK,QAAS,GAAI,IAC/QgM,GAAQ,EACZ,GACI,GAA2B,IAAvBzsE,EAAM0sE,aACN,GAAI50H,EAAoC9P,GAAGqgD,UAAUl8F,EAAO8pC,UAAW+pE,EAAMrjG,MACzE8vK,GAAQ,OAGR,IACIjiJ,EAAamiJ,QAAQ3sE,EAAMrjG,KAAMxQ,GACjCsgL,GAAQ,CACZ,CACA,MAAO9qF,GACH8qF,GAAQ,CACZ,MAGJA,GAAQ,QAEPA,EAEb,EAEAjiJ,EAAay/I,sBAAwB,SAAUgB,EAAQ39K,GACnD,IAAInB,EAASq+B,EAAa+yI,eACtBv9D,EAAQ,IAAIo7D,EAAwD2Q,YAAYjQ,EAAuC0E,SAASC,iBAAiB,KAAM,oCAAqC3E,EAAuC0E,SAASC,iBAAiB,IAAK,QAAS,GAAI,IACnRzgE,EAAMwrE,KAAK1P,EAAuC8Q,OAAOj4E,gBAAgB,WACjE78C,EAAoC9P,GAAGqgD,UAAUl8F,EAAO8pC,UAAW+pE,EAAMrjG,OAEzE6tB,EAAaqiJ,aAAa7sE,EAAMrjG,KAAMxQ,EAE9C,GACJ,EAEAq+B,EAAaqiJ,aAAe,SAAUx4K,EAAIlI,GACtC,IAAIuQ,EAAO,IAAIq/J,EAA2Ct0E,QAAQ,qEAAuEpzF,GACzIqI,EAAKgrF,cAAgB,WACjB,GAAyB,IAArBhrF,EAAKm9E,YAAT,CAGA,IAAIhlF,EAAO6H,EAAKqrF,UACZ+kF,EAAYj4K,EAAKwR,QAAQ,qBACzB0mK,EAAWl4K,EAAKwR,QAAQ,QAASymK,GACjCE,EAAWn4K,EAAK8hF,UAAUm2F,EAAWC,GACrCh1K,EAAO1D,EACP+qK,EAAQ,IAAInD,EAAkDsP,eAClEnM,EAAMU,WAAa,EACnBV,EAAMW,eAAgB,EACtBX,EAAM2B,aAAc,EACpB3B,EAAMC,MAAQzD,EAAwDlxI,oBAAoBwgH,YAAYpzF,EAAoC9P,GAAGsT,KAAK9wB,EAAayiJ,cAAcD,EAAU,SAASr2F,UAAU,EAAG,MAC7MyoF,EAAMxxC,cAAwE,SAAxDr2C,WAAW/sD,EAAayiJ,cAAcD,EAAU,MAAoB,IAC1F5N,EAAMG,mBAAqB,EAC3BH,EAAMI,YAAcjoF,WAAW/sD,EAAayiJ,cAAcD,EAAU,SACpE5N,EAAMK,yBAA2BloF,WAAW/sD,EAAayiJ,cAAcD,EAAU,SACjF5N,EAAM5/G,aAAe+3B,WAAW/sD,EAAayiJ,cAAcD,EAAU,MACrE5N,EAAMM,mBAAqBnoF,WAAW/sD,EAAayiJ,cAAcD,EAAU,MAC3E5N,EAAMO,gBAAkBzE,EAAsDvvH,IAAI+gB,4BAA4B6qB,WAAW/sD,EAAayiJ,cAAcD,EAAU,OAC9J5N,EAAMQ,oBAAsBroF,WAAW/sD,EAAayiJ,cAAcD,EAAU,SAC5E5N,EAAMhyH,MAAQ,EACdgyH,EAAMS,mBAAqB,EAC3BT,EAAM3hB,WAAa,GACnB2hB,EAAMU,WAAa,EACnB,IAAIoN,EAAMn1K,EAAO,KAAOqnK,EAAM+N,QAC9B3iJ,EAAa4iJ,gBAAgB/4K,EAAI64K,EAAK/gL,EAAOuiB,YAC7C8b,EAAa6zI,UAzBb,CA0BJ,EACA3hK,EAAKhE,MACT,EAEA8xB,EAAamiJ,QAAU,SAAUt4K,EAAIlI,GACjC,IAAIuQ,EAAO,IAAIq/J,EAA2Ct0E,QAAQ,qEAAuEpzF,GACzIqI,EAAKgrF,cAAgB,WACjB,IAAI7yF,EAAO6H,EAAKqrF,UACZ+kF,EAAYj4K,EAAKwR,QAAQ,qBACzB0mK,EAAWl4K,EAAKwR,QAAQ,QAASymK,GACjCE,EAAWn4K,EAAK8hF,UAAUm2F,EAAWC,GACrCh1K,EAAO1D,EACPg5K,EAAQ,IAAIrS,EAASljH,EAAoC9P,GAAG+gD,KAAKhxF,GAAO,IAC5Es1K,EAAMjO,MAAMU,WAAa,EACzBuN,EAAMjO,MAAMW,eAAgB,EAC5BsN,EAAMjO,MAAM2B,aAAc,EAC1BsM,EAAMjO,MAAMC,MAAQzD,EAAwDlxI,oBAAoBwgH,YAAYpzF,EAAoC9P,GAAGsT,KAAK9wB,EAAayiJ,cAAcD,EAAU,SAASr2F,UAAU,EAAG,MACnN02F,EAAMjO,MAAMxxC,cAAwE,SAAxDr2C,WAAW/sD,EAAayiJ,cAAcD,EAAU,MAAoB,IAChGK,EAAMjO,MAAMG,mBAAqB,EACjC8N,EAAMjO,MAAMI,YAAcjoF,WAAW/sD,EAAayiJ,cAAcD,EAAU,SAC1EK,EAAMjO,MAAMK,yBAA2BloF,WAAW/sD,EAAayiJ,cAAcD,EAAU,SACvFK,EAAMjO,MAAM5/G,aAAe+3B,WAAW/sD,EAAayiJ,cAAcD,EAAU,MAC3EK,EAAMjO,MAAMM,mBAAqBnoF,WAAW/sD,EAAayiJ,cAAcD,EAAU,MACjFK,EAAMjO,MAAMO,gBAAkBzE,EAAsDvvH,IAAI+gB,4BAA4B6qB,WAAW/sD,EAAayiJ,cAAcD,EAAU,OACpKK,EAAMjO,MAAMQ,oBAAsBroF,WAAW/sD,EAAayiJ,cAAcD,EAAU,SAClFK,EAAMjO,MAAMhyH,MAAQ,EACpBigI,EAAMjO,MAAMS,mBAAqB,EACjCwN,EAAMjO,MAAM3hB,WAAa,GACzB4vB,EAAMjO,MAAMU,WAAa,EACpBhoH,EAAoC9P,GAAGqgD,UAAU79D,EAAa8L,cAAcnqC,EAAOuiB,YAAYunB,UAAW6hB,EAAoC9P,GAAG+gD,KAAKhxF,KACvJyyB,EAAa8L,cAAcnqC,EAAOuiB,YAAY0xJ,SAASiN,GAE3D7iJ,EAAa8L,cAAc+2I,EAAM3+J,YAAc2+J,EAC/CA,EAAMjO,MAAM9mF,OAASnsF,EAAOuiB,WAC5B8b,EAAa8gJ,gBAAgB,eAAgB+B,GAC7C7iJ,EAAa6zI,UACjB,CACJ,EAEA7zI,EAAayiJ,cAAgB,SAAUp4K,EAAMR,GACzC,IAAIi5K,EAAWz4K,EAAKwR,QAAQ,OAAShS,EAAK,KAC1Ci5K,EAAWz4K,EAAKwR,QAAQ,SAAUinK,GAAY,EAC9C,IAAIC,EAAS14K,EAAKwR,QAAQ,IAAKinK,GAC/B,OAAOz4K,EAAKokF,OAAOq0F,EAAUC,EAASD,EAC1C,EAEA9iJ,EAAagiJ,qBAAuB,WAChC,IAAI38J,EAAQ,IAAIqsJ,EAA2DzL,sBACvEzkC,EAASp5B,EAAgDolB,oBAAoBh+E,WACjFnqB,EAAM6iJ,aAAa1mC,EAAO7/E,KAC1Bt8B,EAAMijJ,WAAW9mC,EAAO7/E,IAAM,GAC9Bt8B,EAAM+iJ,aAAa5mC,EAAO1/E,KAC1Bz8B,EAAMmjJ,WAAWhnC,EAAO1/E,IAAM,GAC9Bz8B,EAAMqjJ,UAAU,GAChBrjJ,EAAM9B,SAAU,EAChB8B,EAAMlB,SAASmtJ,EAAuC0E,SAASC,iBAAiB,KAAM,uBACtFj2I,EAAaqD,gBAAgBhe,EAAMxb,IAAMwb,EACzCA,EAAMT,mBAAmBob,EAAa2yI,aACtC3yI,EAAa8L,cAAc9L,EAAa2yI,aAAarnI,OAAO/jC,KAAK8d,GACjE2a,EAAa8L,cAAc9L,EAAa2yI,aAAahlK,MAAO,EAC5DqyB,EAAaqyI,WACbryI,EAAa6zI,WACb7zI,EAAauzI,qBAAqByN,KAAK37J,EAAO,IAAIioC,EAAoC9P,GAAG8jI,UAC7F,EAEAthJ,EAAa4iJ,gBAAkB,SAAUr1K,EAAMlD,EAAM24K,GACjD,IAAI39J,EAAQ,IAAI0sJ,EAA8C3L,WAU9D,OATA/gJ,EAAM49J,WAAW54K,GACjBgb,EAAM9B,SAAU,EAChB8B,EAAMlB,SAAS5W,GACfyyB,EAAaqD,gBAAgBhe,EAAMxb,IAAMwb,EACzCA,EAAMT,mBAAmBo+J,GACzBhjJ,EAAa8L,cAAck3I,GAAY13I,OAAO/jC,KAAK8d,GACnD2a,EAAa8L,cAAck3I,GAAYr1K,MAAO,EAC9CqyB,EAAaqyI,WACbryI,EAAa6zI,WACNxuJ,CACX,EAEA,IAAI69J,EAAgB,CAAC,EAOrB,SAAS1S,EAASjjK,EAAM8qK,GACpBz1K,KAAK6oC,UAAY,CAAC,EAClB7oC,KAAKkrF,OAAS,KACdlrF,KAAK0oC,OAAS,GACd1oC,KAAK+K,MAAO,EACZ/K,KAAK2gB,SAAU,EACf3gB,KAAKyrK,gBAAiB,EACtBzrK,KAAKgyK,MAAQ,IAAInD,EAAkDsP,eACnEn+K,KAAKuhB,SAAS5W,GACd3K,KAAKgyK,MAAMyD,UAAYA,EACvB,IAAItnJ,EAAS,OACb,OAAQsnJ,GACJ,KAAK,EACD,MACJ,KAAK,EACD,MACJ,KAAK,EACD,MACJ,KAAK,EACDtnJ,EAAS,MACT,MACJ,KAAK,EACDA,EAAS,QACT,MACJ,KAAK,EACDA,EAAS,QACT,MACJ,KAAK,EACDA,EAAS,OACT,MACJ,KAAK,EACDA,EAAS,MACT,MACJ,KAAK,EACDA,EAAS,QACT,MACJ,KAAK,EACDA,EAAS,QACT,MACJ,KAAK,GACDA,EAAS,QACT,MACJ,KAAK,GACDA,EAAS,QACT,MACJ,KAAK,GACDA,EAAS,OACT,MACJ,KAAK,GACDA,EAAS,QACT,MACJ,KAAK,GACDA,EAAS,QACT,MACJ,KAAK,GACDA,EAAS,OACT,MACJ,KAAK,GACDA,EAAS,QACT,MACJ,KAAK,GACDA,EAAS,QACT,MACJ,KAAK,GACD,MACJ,KAAK,GACD,MACJ,QACI,MAERnuB,KAAKgyK,MAAM3hB,WAAaliI,CAC5B,EA5EA,EAAGw8B,EAA4CzS,cAAc,eAAgB,CAAC9a,EAAckjJ,EAAe,OA8E3G,IAAIC,EAAY,CACZvN,SAAU,SAAU5nF,GAChBA,EAAMF,OAASlrF,KACfA,KAAK6oC,UAAUuiD,EAAM9pE,YAAc8pE,CACvC,EAEA9pE,SAAU,WACN,OAAOthB,KAAKgyK,MAAMrnK,IACtB,EAEA4W,SAAU,SAAU3gB,GAEhB,OADAZ,KAAKgyK,MAAMrnK,KAAO/J,EACXA,CACX,EAEAq1K,aAAc,SAAUh0I,GACS,KAAzBjiC,KAAKgyK,MAAMyD,WACXz1K,KAAKgyK,MAAMiE,aAAah0I,EAEhC,EAEAv4B,SAAU,WACN,OAAO1J,KAAKshB,UAChB,GAQJ,SAASusJ,IAAgB,EALzB,EAAGljH,EAA4CzS,cAAc,WAAY,CAAC01H,EAAU2S,EAAW,OAO/F,IAAIC,EAAe,CAAC,EAOpB,SAAS7S,IAAuB,EALhC,EAAGhjH,EAA4CzS,cAAc,cAAe,CAAC21H,EAAa2S,EAAc,OAOxG,IAAIC,EAAsB,CAAC,EAO3B,SAAS/S,IAAgB,EALzB,EAAG/iH,EAA4CzS,cAAc,qBAAsB,CAACy1H,EAAoB8S,EAAqB,OAO7H,IAAIC,EAAe,CAAC,GAEpB,EAAG/1H,EAA4CzS,cAAc,cAAe,CAACw1H,EAAagT,EAAc,MAGjG,EAED;;;oCAIA,CAAE/hL,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCohL,QAAS,IAAM,EACfC,gBAAiB,IAAM,EACvBC,gBAAiB,IAAM,IAEzB,IAAIn2H,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1F46C,EAAyC,oBAAuC,kBAczG,SAASo7E,IAAY,CAErBA,EAAQG,MAAQ,KAEhB,IAAIC,EAAW,CACXzF,qBAAsB,WAClB,OAAO,CACX,EAEA0F,aAAc,WACV,OAAO,IACX,EAEAC,mBAAoB,SAAUv1K,GAC1B,OAAO,IACX,EAEAw1K,eAAgB,SAAUC,GAAa,GAQ3C,SAASP,IACL5gL,KAAKi3C,KAAO,KACZj3C,KAAKohL,YAAa,EAClBphL,KAAKqhL,YAAa,EAClBrhL,KAAKshL,UAAY,IACrB,EAVA,EAAG32H,EAA4CzS,cAAc,UAAW,CAACyoI,EAASI,EAAU,OAY5F,IAAIQ,EAAmB,CACnBjgK,SAAU,WACN,OAAOthB,KAAKy2F,KAChB,EAEAl1E,SAAU,SAAU3gB,GAEhB,OADAZ,KAAKy2F,MAAQ71F,EACNA,CACX,EAEAksB,QAAS,WACL,OAAO9sB,KAAKi3C,IAChB,EAEAjqB,QAAS,SAAUpsB,GAEf,OADAZ,KAAKi3C,KAAOr2C,EACLA,CACX,EAEA4gL,YAAa,WACT,OAAOxhL,KAAKohL,UAChB,EAEAK,YAAa,SAAU7gL,GAEnB,OADAZ,KAAKohL,WAAaxgL,EACXA,CACX,EAEA8f,YAAa,WACT,OAAO1gB,KAAKqhL,UAChB,EAEAzgK,YAAa,SAAUhgB,GAEnB,OADAZ,KAAKqhL,WAAazgL,EACXA,CACX,EAEA8gL,qBAAsB,SAAU9gL,GAC5BZ,KAAK2hL,mBAAqBj3H,EAAoC9P,GAAGgnI,QAAQ5hL,KAAK2hL,mBAAoB/gL,EACtG,EAEAihL,wBAAyB,SAAUjhL,GAC/BZ,KAAK2hL,mBAAqBj3H,EAAoC9P,GAAGknI,QAAQ9hL,KAAK2hL,mBAAoB/gL,EACtG,EAEAmhL,qBAAsB,WACa,MAA3B/hL,KAAK2hL,oBACL3hL,KAAK2hL,mBAAmB3hL,KAEhC,EAEAgiL,aAAc,WAIV,OAHsB,MAAlBhiL,KAAKshL,YACLthL,KAAKshL,UAAY,IAEdthL,KAAKshL,SAChB,GAQJ,SAAST,IACL7gL,KAAKiiL,QAAU,KACfjiL,KAAKkiL,OAAS,EACdliL,KAAKmiL,OAAQ,EACbniL,KAAKohL,YAAa,EAClBphL,KAAKoiL,OAAQ,EACbpiL,KAAKqiL,OAAS98E,EAAuC1tD,OAAOC,YAC5D93C,KAAKsiL,OAAS,IAClB,EAbA,EAAG33H,EAA4CzS,cAAc,kBAAmB,CAAC0oI,EAAiBW,EAAkB,OAepH,IAAIgB,EAAmB,CACnBC,gBAAiB,SAAU5hL,GACvBZ,KAAKyiL,cAAgB/3H,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKyiL,cAAe7hL,EAC5F,EAEA8hL,mBAAoB,SAAU9hL,GAC1BZ,KAAKyiL,cAAgB/3H,EAAoC9P,GAAGknI,QAAQ9hL,KAAKyiL,cAAe7hL,EAC5F,EAEA+hL,gBAAiB,SAAU5mK,GACG,MAAtB/b,KAAKyiL,eACLziL,KAAKyiL,cAAcziL,KAAM+b,EAEjC,EAEA6mK,gBAAiB,SAAUhiL,GACvBZ,KAAK6iL,cAAgBn4H,EAAoC9P,GAAGgnI,QAAQ5hL,KAAK6iL,cAAejiL,EAC5F,EAEAkiL,mBAAoB,SAAUliL,GAC1BZ,KAAK6iL,cAAgBn4H,EAAoC9P,GAAGknI,QAAQ9hL,KAAK6iL,cAAejiL,EAC5F,EAEAmiL,gBAAiB,WACa,MAAtB/iL,KAAK6iL,eACL7iL,KAAK6iL,cAAc7iL,KAE3B,EAEAgjL,iBAAkB,SAAUpiL,GACxBZ,KAAKijL,eAAiBv4H,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKijL,eAAgBriL,EAC9F,EAEAsiL,oBAAqB,SAAUtiL,GAC3BZ,KAAKijL,eAAiBv4H,EAAoC9P,GAAGknI,QAAQ9hL,KAAKijL,eAAgBriL,EAC9F,EAEAuiL,iBAAkB,WACa,MAAvBnjL,KAAKijL,gBACLjjL,KAAKijL,eAAejjL,KAE5B,EAEAojL,kBAAmB,SAAUxiL,GACzBZ,KAAKqjL,gBAAkB34H,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKqjL,gBAAiBziL,EAChG,EAEA0iL,qBAAsB,SAAU1iL,GAC5BZ,KAAKqjL,gBAAkB34H,EAAoC9P,GAAGknI,QAAQ9hL,KAAKqjL,gBAAiBziL,EAChG,EAEA2iL,kBAAmB,WACa,MAAxBvjL,KAAKqjL,iBACLrjL,KAAKqjL,gBAAgBrjL,KAE7B,EAEAshB,SAAU,WACN,OAAOthB,KAAKy2F,KAChB,EAEAl1E,SAAU,SAAU3gB,GAKhB,OAJIZ,KAAKy2F,QAAU71F,IACfZ,KAAKy2F,MAAQ71F,EACbZ,KAAK+iL,mBAEFniL,CACX,EAEA4iL,WAAY,WACR,OAAOxjL,KAAKiiL,OAChB,EAEAwB,WAAY,SAAU7iL,GAElB,OADAZ,KAAKiiL,QAAUrhL,EACRA,CACX,EAEA8iL,UAAW,WACP,OAAO1jL,KAAKkiL,MAChB,EAEAyB,UAAW,SAAU/iL,GAEjB,OADAZ,KAAKkiL,OAASthL,EACPA,CACX,EAEAksB,QAAS,WACL,OAAO9sB,KAAKi3C,IAChB,EAEAjqB,QAAS,SAAUpsB,GAEf,OADAZ,KAAKi3C,KAAOr2C,EACLA,CACX,EAEAgjL,iBAAkB,WACd,OAAO5jL,KAAK6jL,aAChB,EAEAC,iBAAkB,SAAUljL,GAExB,OADAZ,KAAK6jL,cAAgBjjL,EACdA,CACX,EAEA+gB,WAAY,WACR,OAAO3hB,KAAKmiL,KAChB,EAEAtgK,WAAY,SAAUjhB,GAKlB,OAJIZ,KAAKmiL,QAAUvhL,IACfZ,KAAKmiL,MAAQvhL,EACbZ,KAAK+iL,mBAEFniL,CACX,EAEA4gL,YAAa,WACT,OAAOxhL,KAAKohL,UAChB,EAEAK,YAAa,SAAU7gL,GAKnB,OAJIZ,KAAKohL,aAAexgL,IACpBZ,KAAKohL,WAAaxgL,EAClBZ,KAAK+iL,mBAEFniL,CACX,EAEAmjL,SAAU,WACN,OAAO/jL,KAAKoiL,KAChB,EAEA4B,SAAU,SAAUpjL,GAKhB,OAJIZ,KAAKoiL,QAAUxhL,IACfZ,KAAKoiL,MAAQxhL,EACbZ,KAAK+iL,mBAEFniL,CACX,EAEA4f,UAAW,WACP,OAAOxgB,KAAKqiL,MAChB,EAEA5hK,UAAW,SAAU7f,GAKjB,OAJIZ,KAAKqiL,SAAWzhL,IAChBZ,KAAKqiL,OAASzhL,EACdZ,KAAK+iL,mBAEFniL,CACX,EAEA+Y,IAAK,SAAUhP,GACX,IAAIe,EAAO,IAAIm1K,EAKf,OAJAn1K,EAAK6V,SAAS5W,GACde,EAAK+3K,WAAWzjL,MAChB0L,EAAKi4K,UAAU3jL,KAAK0jL,YAAc,GAClC1jL,KAAKikL,YAAYt/K,KAAK+G,GACfA,CACX,EAEAu4K,UAAW,WAIP,OAHmB,MAAfjkL,KAAKsiL,SACLtiL,KAAKsiL,OAAS,IAEXtiL,KAAKsiL,MAChB,IAGJ,EAAG33H,EAA4CzS,cAAc,kBAAmB,CAAC2oI,EAAiB0B,EAAkB,MAG7G,EAED;;;2CAIA,CAAE5jL,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC2kL,cAAe,IAAM,EACrBC,YAAa,IAAM,EACnBC,kBAAmB,IAAM,EACzBC,oBAAqB,IAAM,IAE7B,IAAI/vI,EAA8C,yBAA4C,uBAC1FgwI,EAAoD,+BAAkD,6BACtGC,EAAiD,2BAA8C,iCAkBxH,SAASJ,IACLG,EAAkDE,OAAOhkL,KAAKR,KAClE,CAEA,IAAIykL,EAAe,CACfC,GAAI,SAAU1S,GACVuS,EAA+CnnJ,aAAaihJ,6BAA6BrM,EAC7F,GAUJ,SAASqS,IACLC,EAAkDE,OAAOhkL,KAAKR,KAClE,EATA,EAAGs0C,EAA4C4D,cAAc,cAAe,CAACisI,EAAaM,EAAcH,EAAkDE,SAW1J,IAAIG,EAAuB,CACvBD,GAAI,SAAU1S,GACVuS,EAA+CnnJ,aAAa6zI,UAChE,GAUJ,SAASmT,IACLE,EAAkDE,OAAOhkL,KAAKR,KAClE,EATA,EAAGs0C,EAA4C4D,cAAc,sBAAuB,CAACmsI,EAAqBM,EAAsBL,EAAkDE,SAWlL,IAAII,EAAqB,CACrBF,GAAI,SAAU1S,GAAS,GAU3B,SAASkS,IACLI,EAAkDE,OAAOhkL,KAAKR,KAClE,EATA,EAAGs0C,EAA4C4D,cAAc,oBAAqB,CAACksI,EAAmBQ,EAAoBN,EAAkDE,SAW5K,IAAIK,EAAiB,CACjBH,GAAI,WAAc,IAGtB,EAAGpwI,EAA4C4D,cAAc,gBAAiB,CAACgsI,EAAeW,EAAgBP,EAAkDE,SAKhKD,EAA+CnnJ,aAAakzI,mBAAqB,IAAI6T,EACrFI,EAA+CnnJ,aAAaozI,qBAAuB,IAAI0T,EACvFK,EAA+CnnJ,aAAaszI,2BAA6B,IAAI2T,EAC7FE,EAA+CnnJ,aAAawzI,mBAAqB,IAAIwT,CAG9E,EAED;;;oCAIA,CAAEzlL,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCulL,MAAO,IAAM,EACbC,SAAU,IAAM,EAChBC,KAAM,IAAM,EACZvb,SAAU,IAAM,EAChBlG,cAAe,IAAM,EACrB0hB,gBAAiB,IAAM,EACvBC,WAAY,IAAM,EAClBC,eAAgB,IAAM,IAExB,IAAIz6H,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1F46C,EAAyC,oBAAuC,kBAChFvI,EAA4C,uBAA0C,qBACtFooF,EAAkD,6BAAgD,2BAClG/jC,EAA4D,uCAA0D,qCACtHgkC,EAAyD,oCAAuD,kCAChHC,EAAuD,kCAAqD,gCAC5GC,EAAoD,+BAAkD,6BACtGC,EAA2D,sCAAyD,oCACpHC,EAAgD,0BAA6C,wBAC7FC,EAA+C,yBAA4C,uBAC3FC,EAA6C,uBAA0C,qBACvFC,EAAyC,mBAAsC,iBAC/EC,EAA0C,mBAAsC,yBAChFC,EAA6C,sBAAyC,4BA6B/G,SAASf,IACL/kL,KAAK+lL,kBAAoB,EACzB/lL,KAAKyhB,QAAU,EACfzhB,KAAKgmL,WAAY,CACrB,CAEA,IAAIC,EAAY,CAAC,EAOjB,SAAS1iB,IACLvjK,KAAKkmL,aAAe,KACpBlmL,KAAKmmL,WAAa,EAClBnmL,KAAKomL,UAAW,EAChBpmL,KAAKqmL,mBAAoB,EACzBrmL,KAAKsmL,WAAY,EACjBtmL,KAAKumL,qBAAsB,EAC3BvmL,KAAKwmL,SAAW,EAChBxmL,KAAKymL,QAAU,EACfzmL,KAAK0mL,SAAW1pF,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GAChFnC,KAAK2mL,aAAe3pF,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GACpFnC,KAAK4mL,WAAa,EAClB5mL,KAAK6mL,UAAW,EAChB7mL,KAAK8mL,SAAU,EACf9mL,KAAK+mL,WAAa,IAAI/pF,EAA0C6C,SAChE7/F,KAAKgnL,WAAa,IAAIhqF,EAA0C6C,SAChE7/F,KAAKinL,WAAa,IAAIjqF,EAA0C6C,SAChE7/F,KAAKknL,cAAgB,IAAIrlL,MAAM,GAC/B7B,KAAKmnL,WAAa,EAClBnnL,KAAKonL,eAAgB,EACrBpnL,KAAKqnL,YAAc,EACnBrnL,KAAKsnL,WAAa,IAAItqF,EAA0C6C,SAChE7/F,KAAKunL,eAAiB,EACtBvnL,KAAKwnL,gBAAkB,EACvBxnL,KAAKynL,WAAa,GAClBznL,KAAK0nL,qBAAsB,EAC3B1nL,KAAK2nL,YAAa,EAClB9B,EAAwCliB,MAAMnjK,KAAKR,KACvD,EAjCA,EAAG2qD,EAA4CzS,cAAc,WAAY,CAAC6sI,EAAUkB,EAAW,OAmC/F1iB,EAAcqkB,eAAiB,KAC/BrkB,EAAcskB,oBAAsB,KACpCtkB,EAAcukB,WAAa,KAC3BvkB,EAAcwkB,YAAc,KAE5BxkB,EAAcykB,mBAAqB,WAC/BzkB,EAAcskB,oBAAsB,IAAIxC,EAAuD7vI,SAC/F+tH,EAAcskB,oBAAoB/8J,YAAa,EAC/Cy4I,EAAcskB,oBAAoBlyI,mBAAkB,GACpD4tH,EAAcskB,oBAAoBx9J,aAAc,EAChDk5I,EAAcqkB,eAAiB,IAAIvC,EAAuD3vI,aAC1F6tH,EAAcqkB,eAAehyI,eAAgB,EAC7C2tH,EAAcqkB,eAAe98J,YAAa,EAC1Cy4I,EAAcqkB,eAAetxD,cAAe,EAO5C,IANA,IAAI2xD,EAAkB,EAAV3iL,KAAK8Z,GACb7b,EAAO0kL,EAAQ,GACftvI,EAAM,IAIDpsC,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAClC,IAAI4/F,EAAOnG,EAA0ChkD,SAAS72C,OAAO,EAAU,EAANw2C,EAAS,EAAG,GACjFyqD,EAAOpG,EAA0ChkD,SAAS72C,OAAO,EAAU,EAANw2C,EAASrzC,KAAKgxC,IAAI/pC,GAAKosC,EAAKrzC,KAAKixC,IAAIhqC,GAAKosC,GAC/GuvI,EAAOlrF,EAA0ChkD,SAAS72C,OAAO,EAAU,EAANw2C,EAASrzC,KAAKgxC,IAAI/pC,EAAIhJ,GAAQo1C,EAAKrzC,KAAKixC,IAAIhqC,EAAIhJ,GAAQo1C,GACjI4qH,EAAcqkB,eAAehxD,YAAYzzB,EAAMC,EAAM8kF,EAAM3iF,EAAuC1tD,OAAOg6C,UAAWwzF,EAAuDtrI,MAAM45E,QACrL,CACA,IAASpnH,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAC9B4/F,EAAOnG,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GACvE+lL,EAAOlrF,EAA0ChkD,SAAS72C,OAAO,EAAU,EAANw2C,EAASrzC,KAAKgxC,IAAI/pC,GAAKosC,EAAKrzC,KAAKixC,IAAIhqC,GAAKosC,GAC/GyqD,EAAOpG,EAA0ChkD,SAAS72C,OAAO,EAAU,EAANw2C,EAASrzC,KAAKgxC,IAAI/pC,EAAIhJ,GAAQo1C,EAAKrzC,KAAKixC,IAAIhqC,EAAIhJ,GAAQo1C,GACjI4qH,EAAcqkB,eAAehxD,YAAYzzB,EAAMC,EAAM8kF,EAAM3iF,EAAuCntD,MAAMq4C,SAAS,IAAK,IAAKnrF,KAAKC,IAAI,EAAkB,IAAdD,KAAKixC,IAAIhqC,IAAYjH,KAAKC,IAAI,EAAkB,IAAdD,KAAKixC,IAAIhqC,KAAa84K,EAAuDtrI,MAAM45E,QACjQ,CACA4vC,EAAcskB,oBAAoB/tI,QAAQkjD,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GAAI66F,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GAAIojG,EAAuC1tD,OAAOg6C,UAAWwzF,EAAuDtrI,MAAM45E,SAIxS,IAASpnH,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAC9B4/F,EAAOnG,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAU,EAANw2C,EAAS,GACjFuvI,EAAOlrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,GAAKosC,EAAK,EAAU,EAANA,EAASrzC,KAAKixC,IAAIhqC,GAAKosC,GAC/GyqD,EAAOpG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,GAAQo1C,EAAK,EAAU,EAANA,EAASrzC,KAAKixC,IAAIhqC,EAAIhJ,GAAQo1C,GACjI4qH,EAAcqkB,eAAehxD,YAAYzzB,EAAMC,EAAM8kF,EAAM3iF,EAAuC1tD,OAAO25C,YAAa6zF,EAAuDtrI,MAAM45E,QACvL,CACA,IAASpnH,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAC9B4/F,EAAOnG,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GACvEihG,EAAOpG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,GAAKosC,EAAK,EAAU,EAANA,EAASrzC,KAAKixC,IAAIhqC,GAAKosC,GAC/GuvI,EAAOlrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,GAAQo1C,EAAK,EAAU,EAANA,EAASrzC,KAAKixC,IAAIhqC,EAAIhJ,GAAQo1C,GACjI4qH,EAAcqkB,eAAehxD,YAAYzzB,EAAMC,EAAM8kF,EAAM3iF,EAAuCntD,MAAMq4C,SAAS,IAAKnrF,KAAKC,IAAI,EAAkB,IAAdD,KAAKixC,IAAIhqC,IAAY,IAAKjH,KAAKC,IAAI,EAAkB,IAAdD,KAAKixC,IAAIhqC,KAAa84K,EAAuDtrI,MAAM45E,QACjQ,CACA4vC,EAAcskB,oBAAoB/tI,QAAQkjD,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GAAI66F,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GAAIojG,EAAuC1tD,OAAO25C,YAAa6zF,EAAuDtrI,MAAM45E,SAI1S,IAASpnH,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAC9B4/F,EAAOnG,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,EAAU,EAANw2C,GAC3EyqD,EAAOpG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,GAAKosC,EAAKrzC,KAAKixC,IAAIhqC,GAAKosC,EAAK,EAAU,EAANA,GAC3GuvI,EAAOlrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,GAAQo1C,EAAKrzC,KAAKixC,IAAIhqC,EAAIhJ,GAAQo1C,EAAK,EAAU,EAANA,GAC7H4qH,EAAcqkB,eAAehxD,YAAYzzB,EAAMC,EAAM8kF,EAAM3iF,EAAuC1tD,OAAOs5C,WAAYk0F,EAAuDtrI,MAAM45E,QACtL,CACA,IAASpnH,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAC9B4/F,EAAOnG,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GACvE+lL,EAAOlrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,GAAKosC,EAAKrzC,KAAKixC,IAAIhqC,GAAKosC,EAAK,EAAU,EAANA,GAC3GyqD,EAAOpG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,GAAQo1C,EAAKrzC,KAAKixC,IAAIhqC,EAAIhJ,GAAQo1C,EAAK,EAAU,EAANA,GAC7H4qH,EAAcqkB,eAAehxD,YAAYzzB,EAAMC,EAAM8kF,EAAM3iF,EAAuCntD,MAAMq4C,SAAS,IAAKnrF,KAAKC,IAAI,EAAkB,IAAdD,KAAKixC,IAAIhqC,IAAYjH,KAAKC,IAAI,EAAkB,IAAdD,KAAKixC,IAAIhqC,IAAY,KAAM84K,EAAuDtrI,MAAM45E,QACjQ,CACA4vC,EAAcskB,oBAAoB/tI,QAAQkjD,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GAAI66F,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GAAIojG,EAAuC1tD,OAAOs5C,WAAYk0F,EAAuDtrI,MAAM45E,SACzS4vC,EAAc4kB,kBACd5kB,EAAc6kB,gBAClB,EAEA7kB,EAAc6kB,eAAiB,WAC3B7kB,EAAcukB,WAAa,IAAIzC,EAAuD3vI,aACtF6tH,EAAcukB,WAAWlyI,eAAgB,EACzC2tH,EAAcukB,WAAWh9J,YAAa,EACtCy4I,EAAcukB,WAAWxxD,cAAe,EAC5BhxH,KAAK8Z,GAAjB,IAEIu5B,EAAM,IACV4qH,EAAc8kB,YAAY9kB,EAAcukB,WAAY9qF,EAA0ChkD,SAAS72C,OAAO,EAAU,EAANw2C,EAAS,EAAG,GAAU,EAANA,EAAS4sD,EAAuC1tD,OAAOg6C,WACzL0xE,EAAc8kB,YAAY9kB,EAAcukB,WAAY9qF,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAU,EAANw2C,EAAS,GAAU,EAANA,EAAS4sD,EAAuC1tD,OAAO25C,aACzL+xE,EAAc8kB,YAAY9kB,EAAcukB,WAAY9qF,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,EAAU,EAANw2C,GAAgB,EAANA,EAAS4sD,EAAuC1tD,OAAOs5C,WAC7L,EAEAoyE,EAAc8kB,YAAc,SAAUC,EAAIhxI,EAAQnmC,EAAM0B,GACpD,IAAI01K,EAAOhjF,EAAuCntD,MAAMq4C,SAAS,IAAK/lC,EAAoC9P,GAAGyG,SAAoB,GAAVxuC,EAAMpS,GAAWoS,EAAM/S,EAAG4qD,EAAoC9P,GAAGyG,SAAoB,GAAVxuC,EAAMnR,IACpM8mL,EAAMjjF,EAAuCntD,MAAMq4C,SAAS,IAAK/lC,EAAoC9P,GAAGyG,SAAoB,GAAVxuC,EAAMpS,GAAWiqD,EAAoC9P,GAAGyG,SAAoB,GAAVxuC,EAAM/S,GAAW4qD,EAAoC9P,GAAGyG,SAAoB,GAAVxuC,EAAMnR,IAChQ4mL,EAAGnxD,QAAQn6B,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO0B,EAAOwyK,EAAuDtrI,MAAM45E,SACvgB20D,EAAGnxD,QAAQn6B,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO0B,EAAOwyK,EAAuDtrI,MAAM45E,SACvgB20D,EAAGnxD,QAAQn6B,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAOo3K,EAAMlD,EAAuDtrI,MAAM45E,SACtgB20D,EAAGnxD,QAAQn6B,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAOo3K,EAAMlD,EAAuDtrI,MAAM45E,SACtgB20D,EAAGnxD,QAAQn6B,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAOq3K,EAAKnD,EAAuDtrI,MAAM45E,SACrgB20D,EAAGnxD,QAAQn6B,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAO6rF,EAA0ChkD,SAAS72C,OAAOm1C,EAAOvM,EAAI55B,EAAMmmC,EAAOtzC,EAAImN,EAAMmmC,EAAOd,EAAIrlC,GAAOq3K,EAAKnD,EAAuDtrI,MAAM45E,QACzgB,EAEA4vC,EAAc4kB,gBAAkB,WAC5B5kB,EAAcwkB,YAAc,IAAI1C,EAAuD3vI,aACvF6tH,EAAcwkB,YAAYnyI,eAAgB,EAC1C2tH,EAAcwkB,YAAYj9J,YAAa,EACvCy4I,EAAcwkB,YAAYzxD,cAAe,EAKzC,IAJA,IAAI2xD,EAAkB,EAAV3iL,KAAK8Z,GACb7b,EAAO0kL,EAAQ,GACftvI,EAAM,IACN5S,EAAQ,EACHx5B,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAClC,IAAImjC,IAAUX,EAAQ,IAClBsjD,KAAStjD,EAAQ,GAAK,IACtBo9D,EAAOnG,EAA0ChkD,SAAS72C,OAAOw2C,GAAO,EAAU,EAAK,EAAQ,IAAM,GAAKrzC,KAAKgxC,IAAI/pC,GAAIjH,KAAKixC,IAAIhqC,IAChI62F,EAAOpG,EAA0ChkD,SAAS72C,QAAQw2C,GAAO,EAAU,EAAK,EAAQ,IAAM,GAAKrzC,KAAKgxC,IAAI/pC,GAAIjH,KAAKixC,IAAIhqC,IACjI27K,EAAOlrF,EAA0ChkD,SAAS72C,OAAOw2C,GAAO,EAAU,IAAO,EAAQ,EAAI,GAAKrzC,KAAKgxC,IAAI/pC,EAAIhJ,GAAO+B,KAAKixC,IAAIhqC,EAAIhJ,IAC3IklL,EAAOzrF,EAA0ChkD,SAAS72C,QAAQw2C,GAAO,EAAU,IAAO,EAAQ,EAAI,GAAKrzC,KAAKgxC,IAAI/pC,EAAIhJ,GAAO+B,KAAKixC,IAAIhqC,EAAIhJ,IAChJggK,EAAcwkB,YAAY5wD,QAAQh0B,EAAM+kF,EAAM9kF,EAAMqlF,EAAMljF,EAAuCntD,MAAMs4C,eAAe,IAAK6U,EAAuC1tD,OAAOg6C,WAAYwzF,EAAuDtrI,MAAM45E,SAClP5tF,GACJ,CACAA,EAAQ,EACR,IAASx5B,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAC9BmjC,IAAUX,EAAQ,IAClBsjD,KAAStjD,EAAQ,GAAK,IACtBo9D,EAAOnG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,GAAIjH,KAAKixC,IAAIhqC,GAAIosC,GAAO,EAAU,EAAK,EAAQ,IAAM,IAC/HyqD,EAAOpG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,GAAIjH,KAAKixC,IAAIhqC,IAAKosC,GAAO,EAAU,EAAK,EAAQ,IAAM,IAChIuvI,EAAOlrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,GAAO+B,KAAKixC,IAAIhqC,EAAIhJ,GAAOo1C,GAAO,EAAU,IAAO,EAAQ,EAAI,IAC7I8vI,EAAOzrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,GAAO+B,KAAKixC,IAAIhqC,EAAIhJ,IAAQo1C,GAAO,EAAU,IAAO,EAAQ,EAAI,IAClJ4qH,EAAcwkB,YAAY5wD,QAAQh0B,EAAM+kF,EAAM9kF,EAAMqlF,EAAMljF,EAAuCntD,MAAMs4C,eAAe,IAAK6U,EAAuC1tD,OAAOs5C,YAAak0F,EAAuDtrI,MAAM45E,SACnP5tF,GACJ,CACAA,EAAQ,EACR,IAASx5B,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAC9BmjC,IAAUX,EAAQ,IAClBsjD,KAAStjD,EAAQ,GAAK,IACtBo9D,EAAOnG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,GAAIosC,GAAO,EAAU,EAAK,EAAQ,IAAM,GAAKrzC,KAAKixC,IAAIhqC,IAChI62F,EAAOpG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,IAAKosC,GAAO,EAAU,EAAK,EAAQ,IAAM,GAAKrzC,KAAKixC,IAAIhqC,IACjI27K,EAAOlrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,GAAOo1C,GAAO,EAAU,IAAO,EAAQ,EAAI,GAAKrzC,KAAKixC,IAAIhqC,EAAIhJ,IAC3IklL,EAAOzrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,IAAQo1C,GAAO,EAAU,IAAO,EAAQ,EAAI,GAAKrzC,KAAKixC,IAAIhqC,EAAIhJ,IAChJggK,EAAcwkB,YAAY5wD,QAAQh0B,EAAMC,EAAM8kF,EAAMO,EAAMljF,EAAuCntD,MAAMs4C,eAAe,IAAK6U,EAAuC1tD,OAAO25C,aAAc6zF,EAAuDtrI,MAAM45E,SACpP5tF,GACJ,CAIAA,EAAQ,EACR,IAASx5B,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAC9BmjC,IAAUX,EAAQ,IAClBsjD,KAAStjD,EAAQ,GAAK,IACtBo9D,EAAOnG,EAA0ChkD,SAAS72C,QAAQw2C,GAAO,EAAU,EAAK,EAAQ,IAAM,GAAKrzC,KAAKgxC,IAAI/pC,GAAIjH,KAAKixC,IAAIhqC,IACjI62F,EAAOpG,EAA0ChkD,SAAS72C,OAAOw2C,GAAO,EAAU,EAAK,EAAQ,IAAM,GAAKrzC,KAAKgxC,IAAI/pC,GAAIjH,KAAKixC,IAAIhqC,IAChI27K,EAAOlrF,EAA0ChkD,SAAS72C,QAAQw2C,GAAO,EAAU,IAAO,EAAQ,EAAI,GAAKrzC,KAAKgxC,IAAI/pC,EAAIhJ,GAAO+B,KAAKixC,IAAIhqC,EAAIhJ,IAC5IklL,EAAOzrF,EAA0ChkD,SAAS72C,OAAOw2C,GAAO,EAAU,IAAO,EAAQ,EAAI,GAAKrzC,KAAKgxC,IAAI/pC,EAAIhJ,GAAO+B,KAAKixC,IAAIhqC,EAAIhJ,IAC/IggK,EAAcwkB,YAAY5wD,QAAQh0B,EAAM+kF,EAAM9kF,EAAMqlF,EAAMljF,EAAuC1tD,OAAOg6C,UAAWwzF,EAAuDtrI,MAAM45E,SAChL5tF,GACJ,CAIAA,EAAQ,EACR,IAASx5B,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAC9BmjC,IAAUX,EAAQ,IAClBsjD,KAAStjD,EAAQ,GAAK,IACtBo9D,EAAOnG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,GAAIjH,KAAKixC,IAAIhqC,IAAKosC,GAAO,EAAU,EAAK,EAAQ,IAAM,IAChIyqD,EAAOpG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,GAAIjH,KAAKixC,IAAIhqC,GAAIosC,GAAO,EAAU,EAAK,EAAQ,IAAM,IAC/HuvI,EAAOlrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,GAAO+B,KAAKixC,IAAIhqC,EAAIhJ,IAAQo1C,GAAO,EAAU,IAAO,EAAQ,EAAI,IAC9I8vI,EAAOzrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,GAAO+B,KAAKixC,IAAIhqC,EAAIhJ,GAAOo1C,GAAO,EAAU,IAAO,EAAQ,EAAI,IACjJ4qH,EAAcwkB,YAAY5wD,QAAQh0B,EAAM+kF,EAAM9kF,EAAMqlF,EAAMljF,EAAuC1tD,OAAOs5C,WAAYk0F,EAAuDtrI,MAAM45E,SACjL5tF,GACJ,CAIAA,EAAQ,EACR,IAASx5B,EAAI,EAAGA,EAAI07K,EAAO17K,GAAKhJ,EAAM,CAC9BmjC,IAAUX,EAAQ,IAClBsjD,KAAStjD,EAAQ,GAAK,IACtBo9D,EAAOnG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,IAAKosC,GAAO,EAAU,EAAK,EAAQ,IAAM,GAAKrzC,KAAKixC,IAAIhqC,IACjI62F,EAAOpG,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,GAAIosC,GAAO,EAAU,EAAK,EAAQ,IAAM,GAAKrzC,KAAKixC,IAAIhqC,IAChI27K,EAAOlrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,IAAQo1C,GAAO,EAAU,IAAO,EAAQ,EAAI,GAAKrzC,KAAKixC,IAAIhqC,EAAIhJ,IAC5IklL,EAAOzrF,EAA0ChkD,SAAS72C,OAAOmD,KAAKgxC,IAAI/pC,EAAIhJ,GAAOo1C,GAAO,EAAU,IAAO,EAAQ,EAAI,GAAKrzC,KAAKixC,IAAIhqC,EAAIhJ,IAC/IggK,EAAcwkB,YAAY5wD,QAAQh0B,EAAMC,EAAM8kF,EAAMO,EAAMljF,EAAuC1tD,OAAO25C,YAAa6zF,EAAuDtrI,MAAM45E,SAClL5tF,GACJ,CACJ,EAEA,IAAI2iJ,EAAiB,CACjBve,aAAc,WAIV,OAHyB,MAArBnqK,KAAKkmL,eACLlmL,KAAKkmL,aAAe,IAAIjB,EAAgBjlL,OAErCA,KAAKkmL,YAChB,EAEAyC,UAAW,WACP,OAAO3oL,KAAKomL,QAChB,EAEAwC,UAAW,SAAUhoL,GASjB,OARIZ,KAAKomL,WAAaxlL,IAClBZ,KAAKomL,SAAWxlL,EACK,MAAjBZ,KAAK4pK,WACL5pK,KAAK4pK,SAASif,MAAQ7oL,KAAKomL,SAC3BpmL,KAAK4pK,SAASkf,WAElB9oL,KAAKqiB,WAEFzhB,CACX,EAEAmoL,mBAAoB,WAChB,OAAO/oL,KAAKqmL,iBAChB,EAEA2C,mBAAoB,SAAUpoL,GAS1B,OARIZ,KAAKqmL,oBAAsBzlL,IAC3BZ,KAAKqmL,kBAAoBzlL,EACJ,MAAjBZ,KAAK4pK,WACL5pK,KAAK4pK,SAASqf,eAAiBjpL,KAAKqmL,kBACpCrmL,KAAK4pK,SAASkf,WAElB9oL,KAAKqiB,WAEFzhB,CACX,EAEAsoL,WAAY,WACR,OAAOlpL,KAAKsmL,SAChB,EAEA6C,WAAY,SAAUvoL,GASlB,OARIZ,KAAKsmL,YAAc1lL,IACnBZ,KAAKsmL,UAAY1lL,EACI,MAAjBZ,KAAK4pK,WACL5pK,KAAK4pK,SAASwf,OAASppL,KAAKsmL,UAC5BtmL,KAAK4pK,SAASkf,WAElB9oL,KAAKqiB,WAEFzhB,CACX,EAEAyoL,qBAAsB,WAClB,OAAOrpL,KAAKumL,mBAChB,EAEA+C,qBAAsB,SAAU1oL,GAK5B,OAJIZ,KAAKumL,sBAAwB3lL,IAC7BZ,KAAKumL,oBAAsB3lL,EAC3BZ,KAAKqiB,WAEFzhB,CACX,EAEA2oL,YAAa,WACT,OAAOvpL,KAAKmmL,UAChB,EAEAqD,YAAa,SAAU5oL,GAKnB,OAJIZ,KAAKmmL,aAAevlL,IACpBZ,KAAKqiB,UACLriB,KAAKmmL,WAAavlL,GAEfA,CACX,EAEA6oL,UAAW,WACP,OAAOzpL,KAAKwmL,QAChB,EAEAkD,UAAW,SAAU9oL,GAKjB,OAJIZ,KAAKwmL,WAAa5lL,IAClBZ,KAAKqiB,UACLriB,KAAKwmL,SAAW5lL,GAEbA,CACX,EAEA+oL,SAAU,WACN,OAAO3pL,KAAKymL,OAChB,EAEAmD,SAAU,SAAUhpL,GAKhB,OAJIZ,KAAKymL,UAAY7lL,IACjBZ,KAAKqiB,UACLriB,KAAKymL,QAAU7lL,GAEZA,CACX,EAEAipL,UAAW,WACP,OAAO7pL,KAAK0mL,QAChB,EAEAoD,UAAW,SAAUlpL,GAKjB,OAJIZ,KAAK0mL,WAAa9lL,IAClBZ,KAAKqiB,UACLriB,KAAK0mL,SAAW9lL,GAEbA,CACX,EAEAmpL,cAAe,WACX,OAAO/pL,KAAK2mL,YAChB,EAEAqD,cAAe,SAAUppL,GAKrB,OAJIZ,KAAK2mL,eAAiB/lL,IACtBZ,KAAKqiB,UACLriB,KAAK2mL,aAAe/lL,GAEjBA,CACX,EAEAqpL,YAAa,WACT,OAAOjqL,KAAK4mL,UAChB,EAEAsD,YAAa,SAAUtpL,GAEnB,OADAZ,KAAK4mL,WAAahmL,EACXA,CACX,EAEAglI,QAAS,WACL5lI,KAAK6mL,UAAW,CACpB,EAEA5Z,aAAc,WACW,MAAjBjtK,KAAK4pK,WACL5pK,KAAK4pK,SAAS/2J,MAAQ7S,KAAKwgB,YAEnC,EAEAylJ,qBAAsB,SAAUlV,GAC5BA,EAAUG,sBAAsB,QAASlxJ,KAAK2oL,YAAYj/K,YAC1DqnJ,EAAUG,sBAAsB,iBAAkBlxJ,KAAK+oL,qBAAqBr/K,YAC5EqnJ,EAAUG,sBAAsB,SAAUlxJ,KAAKkpL,aAAax/K,YAC5DqnJ,EAAUG,sBAAsB,mBAAoBlxJ,KAAKqpL,uBAAuB3/K,YAChFqnJ,EAAUG,sBAAsB,UAAWlxJ,KAAKupL,cAAc7/K,YAC9DqnJ,EAAUG,sBAAsB,QAASlxJ,KAAKypL,YAAY//K,YAC1DqnJ,EAAUG,sBAAsB,OAAQlxJ,KAAK2pL,WAAWjgL,YACxDqnJ,EAAUG,sBAAsB,QAASlxJ,KAAK6pL,YAAYngL,YAC1DqnJ,EAAUG,sBAAsB,YAAalxJ,KAAK+pL,gBAAgBrgL,YAClEqnJ,EAAUG,sBAAsB,UAAWlxJ,KAAKiqL,cAAcvgL,YAC9DqnJ,EAAUG,sBAAsB,MAAOlxJ,KAAK8mL,QAAQp9K,WACxD,EAEAu7J,UAAW,WACP,IAAIG,EAAY,IAAIvjK,MAAM,IAe1B,OAdAujK,EAAU,GAAKplK,KAAKmmL,WACpB/gB,EAAU,GAAKplK,KAAKwmL,SACpBphB,EAAU,GAAKplK,KAAKymL,QACpBrhB,EAAU,GAAKplK,KAAK0mL,SAAS37I,EAC7Bq6H,EAAU,GAAKplK,KAAK0mL,SAAS1iL,EAC7BohK,EAAU,GAAKplK,KAAK0mL,SAASlwI,EAC7B4uH,EAAU,GAAKplK,KAAK2mL,aAAa57I,EACjCq6H,EAAU,GAAKplK,KAAK2mL,aAAa3iL,EACjCohK,EAAU,GAAKplK,KAAK2mL,aAAanwI,EACjC4uH,EAAU,GAAKplK,KAAKwgB,YAAY/f,EAAI,IACpC2kK,EAAU,IAAMplK,KAAKwgB,YAAY1gB,EAAI,IACrCslK,EAAU,IAAMplK,KAAKwgB,YAAY9e,EAAI,IACrC0jK,EAAU,IAAMplK,KAAKwgB,YAAYjU,EAAI,IACrC64J,EAAU,IAAMplK,KAAKwhB,cACd4jJ,CACX,EAEAF,cAAe,WACX,MAAO,CAAC,UAAW,QAAS,OAAQ,UAAW,UAAW,UAAW,cAAe,cAAe,cAAe,aAAc,eAAgB,cAAe,eAAgB,UACnL,EAEAC,UAAW,SAAUC,GACjB,GAAyB,KAArBA,EAAUziK,OAAe,CACzB3C,KAAKmmL,WAAa/gB,EAAU,GAC5BplK,KAAKwmL,SAAWphB,EAAU,GAC1BplK,KAAKymL,QAAUrhB,EAAU,GACzBplK,KAAK0mL,SAAS37I,EAAIq6H,EAAU,GAC5BplK,KAAK0mL,SAAS1iL,EAAIohK,EAAU,GAC5BplK,KAAK0mL,SAASlwI,EAAI4uH,EAAU,GAC5BplK,KAAK2mL,aAAa57I,EAAIq6H,EAAU,GAChCplK,KAAK2mL,aAAa3iL,EAAIohK,EAAU,GAChCplK,KAAK2mL,aAAanwI,EAAI4uH,EAAU,GAChCplK,KAAK0hB,YAAY0jJ,EAAU,KAC3B,IAAIvyJ,EAAQ0yF,EAAuCntD,MAAMq4C,SAAS/lC,EAAoC9P,GAAGyG,SAA0B,IAAhB+jH,EAAU,KAAa16G,EAAoC9P,GAAGyG,SAAyB,IAAf+jH,EAAU,IAAY16G,EAAoC9P,GAAGyG,SAA0B,IAAhB+jH,EAAU,KAAa16G,EAAoC9P,GAAGyG,SAA0B,IAAhB+jH,EAAU,MACpVplK,KAAKygB,UAAU5N,EACnB,CACJ,EAEAs3K,sBAAuB,SAAUvpL,GAC7BZ,KAAKoqL,sBAAwB1/H,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKoqL,sBAAuBxpL,EAC5G,EAEAypL,yBAA0B,SAAUzpL,GAChCZ,KAAKoqL,sBAAwB1/H,EAAoC9P,GAAGknI,QAAQ9hL,KAAKoqL,sBAAuBxpL,EAC5G,EAEA0pL,YAAa,WACyB,MAA9BtqL,KAAKoqL,uBACLpqL,KAAKoqL,sBAAsBpqL,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,UAEpF,EAEA3R,UAAW,WACP,OAAOriH,EAAoC9P,GAAGw7G,SAASp2J,KAAM0lL,EAA6C9uB,cAC9G,EAEAsP,kBAAmB,SAAUx6J,GACzB1L,KAAK4oL,UAAUl+H,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,SAASC,YAC9C,MAAlD93G,EAAK43G,WAAWC,aAAa,kBAC7BvjH,KAAKgpL,mBAAmBt+H,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,kBAAkBC,YAEtHxjH,KAAKgpL,oBAAmB,GAEkB,MAA1Ct9K,EAAK43G,WAAWC,aAAa,UAC7BvjH,KAAKmpL,WAAWz+H,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,UAAUC,YAEtGxjH,KAAKmpL,YAAW,GAEoC,MAApDz9K,EAAK43G,WAAWC,aAAa,oBAC7BvjH,KAAKspL,qBAAqB5+H,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,oBAAoBC,YAE1HxjH,KAAKspL,sBAAqB,GAEa,MAAvC59K,EAAK43G,WAAWC,aAAa,OAC7BvjH,KAAK8mL,QAAUp8H,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,OAAOC,WAElGxjH,KAAK8mL,SAAU,EAEnB9mL,KAAKwpL,YAAYr/F,WAAWz+E,EAAK43G,WAAWC,aAAa,WAAWC,YACpExjH,KAAK0pL,UAAUv/F,WAAWz+E,EAAK43G,WAAWC,aAAa,SAASC,YAChExjH,KAAK4pL,SAASz/F,WAAWz+E,EAAK43G,WAAWC,aAAa,QAAQC,YAC9DxjH,KAAK8pL,UAAU9sF,EAA0ChkD,SAASrxC,MAAM+D,EAAK43G,WAAWC,aAAa,SAASC,YAC9GxjH,KAAKgqL,cAAchtF,EAA0ChkD,SAASrxC,MAAM+D,EAAK43G,WAAWC,aAAa,aAAaC,YACvE,MAA3C93G,EAAK43G,WAAWC,aAAa,YAC7BvjH,KAAKkqL,YAAYhgG,SAASx+E,EAAK43G,WAAWC,aAAa,WAAWC,WAE1E,EAEAztE,KAAM,SAAU9T,EAAexgB,EAAS8iJ,GACpC,IAAIgmB,EAAWtoJ,EAAcw3F,YACzB5sF,EAAWmwD,EAA0C6H,SAAS+H,eAAe5P,EAA0C6H,SAAS+H,eAAe5P,EAA0C6H,SAASiL,YAAY9vG,KAAKymL,QAAU,IAAMnhL,KAAK8Z,IAAK49E,EAA0C6H,SAAS6K,YAAY1vG,KAAKwmL,SAAW,IAAMlhL,KAAK8Z,KAAM49E,EAA0C6H,SAAS+K,WAAW5vG,KAAKmmL,WAAa,IAAM7gL,KAAK8Z,KAiB5a,OAhBA6iB,EAAcs9G,UAAUviD,EAA0C6H,SAAS+H,eAAe5P,EAA0C6H,SAAS+H,eAAe5P,EAA0C6H,SAAS+H,eAAe//D,EAAUmwD,EAA0C6H,SAASmL,SAAShwG,KAAK0mL,SAAS37I,EAAG/qC,KAAK0mL,SAAS1iL,EAAGhE,KAAK0mL,SAASlwI,IAAKwmD,EAA0C6H,SAASmM,YAAYhxG,KAAK2mL,eAAgB4D,IAC7atoJ,EAAcuoJ,qBAAqBxqL,KAAKqpL,wBACxC5D,EAA8C/8F,YAAYG,gBAAgB5mD,EAAe,IAAI+6D,EAA0ChkD,SAAY,EAAGusD,EAAuC1tD,OAAOg6C,WAAW,GAC3M7xF,KAAK4mL,WAAa,GAGG,MAAjB5mL,KAAK4pK,WACL5pK,KAAK4pK,SAAS/2J,MAAQ7S,KAAKwgB,YAC3BxgB,KAAK4pK,SAASj5H,OAAO1O,EAAexgB,EAAUzhB,KAAKwhB,gBAM3DygB,EAAcuoJ,sBAAqB,GACnCvoJ,EAAcs9G,UAAUgrC,IACjB,CACX,EAEAhjB,kBAAmB,SAAUC,GAE7B,EAEAiB,SAAU,SAAUvlD,EAAK82C,GACjBtvG,EAAoC9P,GAAG6vI,SAASzwB,EAASzrJ,cAAe,UACxEvO,KAAK8mL,SAAU,GAEd9mL,KAAK4mL,aACF5mL,KAAK8mL,QACL9mL,KAAK4pK,SAAW,IAAIH,EAASvmD,EAAKx4D,EAAoC9P,GAAGq+C,cAAc+gE,EAAU,OAAQ,QAASh6J,KAAK2oL,YAAa3oL,KAAKqmL,mBAAmB,EAAMrmL,KAAKwgB,aAGvKxgB,KAAK4pK,SAAW,IAAIH,EAASvmD,EAAKx4D,EAAoC9P,GAAGq+C,cAAc+gE,EAAU,OAAQ,QAASh6J,KAAK2oL,YAAa3oL,KAAKqmL,mBAAmB,EAAMrmL,KAAKwgB,aAGnL,EAEAkqK,YAAa,SAAUjvI,GACnB,IAAIkvI,EAAevF,EAAgDx6D,oBAAoBxkF,OACnFwkJ,EAAcxF,EAAgDx6D,oBAAoBzkF,MAClF0kJ,EAAazF,EAAgDx6D,oBAAoBzkF,MAAQi/I,EAAgDx6D,oBAAoBxkF,OAAU,KACvK2E,EAAM0Q,EAAK,EAAI,EAAgBovI,GAAeA,EAAY,MAAQ,EAClE7mL,EAAKy3C,EAAK,EAAIkvI,EAAe,KACjC,OAAO3tF,EAA0C6C,SAAS19F,OAAO4oC,EAAG/mC,EACxE,EAEA2sC,OAAQ,SAAUm6I,GACd9qL,KAAKonL,eAAgB,CAEzB,EAEA2D,UAAW,SAAUD,GACjB9qL,KAAKonL,eAAgB,CAEzB,EAEA4D,UAAW,SAAUnN,EAAQ39K,GACzB,IAAI0M,EAAW5M,KAAK0qL,YAAY1tF,EAA0C6C,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,UACvGvsG,KAAKsnL,WAAa16K,EAClB,IAAI6uC,EAAM7uC,EACV,GAAI1M,EAAE+qL,SAAU,CACZ,GAAIjuF,EAA0C6C,SAASkJ,SAASttD,EAAKz7C,KAAK+mL,YAAYv8E,aAAexqG,KAAKynL,WAGtG,OAFAznL,KAAKqnL,YAAc,GACnBrnL,KAAKunL,eAAiBvnL,KAAK0mL,SAAS37I,GAC7B,EAEX,GAAIiyD,EAA0C6C,SAASkJ,SAASttD,EAAKz7C,KAAKgnL,YAAYx8E,aAAexqG,KAAKynL,WAGtG,OAFAznL,KAAKqnL,YAAc,GACnBrnL,KAAKunL,eAAiBvnL,KAAK0mL,SAAS1iL,GAC7B,EAEX,GAAIg5F,EAA0C6C,SAASkJ,SAASttD,EAAKz7C,KAAKinL,YAAYz8E,aAAexqG,KAAKynL,WAGtG,OAFAznL,KAAKqnL,YAAc,GACnBrnL,KAAKunL,eAAiBvnL,KAAK0mL,SAASlwI,GAC7B,CAEf,KAAO,CACH,GAAIwmD,EAA0C6C,SAASkJ,SAASttD,EAAKz7C,KAAK+mL,YAAYv8E,aAAexqG,KAAKynL,WAGtG,OAFAznL,KAAKqnL,YAAc,EACnBrnL,KAAKunL,eAAiBvnL,KAAK2mL,aAAa57I,GACjC,EAEX,GAAIiyD,EAA0C6C,SAASkJ,SAASttD,EAAKz7C,KAAKgnL,YAAYx8E,aAAexqG,KAAKynL,WAGtG,OAFAznL,KAAKqnL,YAAc,EACnBrnL,KAAKunL,eAAiBvnL,KAAK2mL,aAAa3iL,GACjC,EAEX,GAAIg5F,EAA0C6C,SAASkJ,SAASttD,EAAKz7C,KAAKinL,YAAYz8E,aAAexqG,KAAKynL,WAGtG,OAFAznL,KAAKqnL,YAAc,EACnBrnL,KAAKunL,eAAiBvnL,KAAK2mL,aAAanwI,GACjC,CAEf,CACA,IAAK,IAAIh0C,EAAI,EAAGA,EAAIxC,KAAKknL,cAAcvkL,OAAQH,IAC3C,GAAIw6F,EAA0C6C,SAASkJ,SAASttD,EAAKz7C,KAAKknL,cAAc1kL,IAAIgoG,aAAexqG,KAAKynL,WAC5G,OAAQjlL,GACJ,KAAK,EAID,OAHAxC,KAAKqnL,YAAc,EACnBrnL,KAAKunL,eAAiBvnL,KAAKmmL,WAC3BnmL,KAAKwnL,gBAAkBxnL,KAAKwmL,UACrB,EACX,KAAK,EAID,OAHAxmL,KAAKqnL,YAAc,EACnBrnL,KAAKunL,eAAiBvnL,KAAKmmL,WAC3BnmL,KAAKwnL,gBAAkBxnL,KAAKwmL,UACrB,EACX,KAAK,EAID,OAHAxmL,KAAKqnL,YAAc,EACnBrnL,KAAKunL,eAAiBvnL,KAAKwmL,SAC3BxmL,KAAKwnL,gBAAkBxnL,KAAKymL,SACrB,EACX,KAAK,EAID,OAHAzmL,KAAKqnL,YAAc,EACnBrnL,KAAKunL,eAAiBvnL,KAAKwmL,SAC3BxmL,KAAKwnL,gBAAkBxnL,KAAKymL,SACrB,EACX,KAAK,EAID,OAHAzmL,KAAKqnL,YAAc,EACnBrnL,KAAKunL,eAAiBvnL,KAAKymL,QAC3BzmL,KAAKwnL,gBAAkBxnL,KAAKmmL,YACrB,EACX,KAAK,EAID,OAHAnmL,KAAKqnL,YAAc,EACnBrnL,KAAKunL,eAAiBvnL,KAAKymL,QAC3BzmL,KAAKwnL,gBAAkBxnL,KAAKmmL,YACrB,EACX,QACI,MAIhB,OAAO,CACX,EAEA+E,QAAS,SAAUrN,EAAQ39K,GACvB,QAAMF,KAAKqnL,cACPrnL,KAAKqnL,YAAc,EACnBrnL,KAAK0nL,qBAAsB,GACpB,EAGf,EAEAyD,UAAW,SAAUtN,EAAQ39K,GACzB,IAAI0M,EAAW5M,KAAK0qL,YAAY1tF,EAA0C6C,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,UACvG,GAAMvsG,KAAKqnL,YAAa,CACpB,IAAIlqI,EAAO,EACPiuI,EAAQx+K,EAASm+B,EAAI/qC,KAAKsnL,WAAWv8I,EACrCsgJ,IAAUz+K,EAAS5I,EAAIhE,KAAKsnL,WAAWtjL,GA0B3C,OAzBIhE,KAAK0nL,oBACD1nL,KAAK2nL,YACLxqI,EAAOkuI,EACPrrL,KAAK2nL,YAAa,EAClB/B,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQC,gBAGzGruI,EAAOiuI,EACPprL,KAAK2nL,YAAa,EAClB/B,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQE,gBAIzGnmL,KAAKkjD,IAAI4iI,GAAS9lL,KAAKkjD,IAAI6iI,IAC3BluI,EAAOiuI,EACPprL,KAAK2nL,YAAa,IAGlBxqI,EAAOkuI,EACPrrL,KAAK2nL,YAAa,GAElBxqI,EAAO,IACPn9C,KAAK0nL,qBAAsB,IAG3B1nL,KAAKqnL,aACT,KAAK,EACD,MACJ,KAAK,EACDrnL,KAAK2mL,aAAa57I,EAAI/qC,KAAKunL,eAAkB,GAAKvnL,KAAKmnL,YAAchqI,EAAOioI,EAAgDx6D,oBAAoBzkF,OAChJ,MACJ,KAAK,EACDnmC,KAAK2mL,aAAa3iL,EAAIhE,KAAKunL,eAAkB,GAAKvnL,KAAKmnL,YAAchqI,EAAOioI,EAAgDx6D,oBAAoBzkF,OAChJ,MACJ,KAAK,EACDnmC,KAAK2mL,aAAanwI,EAAIx2C,KAAKunL,eAAkB,GAAKvnL,KAAKmnL,YAAchqI,EAAOioI,EAAgDx6D,oBAAoBzkF,OAChJ,MACJ,KAAK,EACDnmC,KAAKmmL,WAAanmL,KAAKunL,eAAiB6D,EAAQ,EAChDprL,KAAKwmL,SAAWxmL,KAAKwnL,gBAAkB6D,EAAQ,EAC/C,MACJ,KAAK,EACDrrL,KAAKwmL,SAAWxmL,KAAKunL,eAAiB8D,EAAQ,EAC9CrrL,KAAKymL,QAAUzmL,KAAKwnL,gBAAkB4D,EAAQ,EAC9C,MACJ,KAAK,EACDprL,KAAKymL,QAAUzmL,KAAKunL,eAAiB8D,EAAQ,EAC7CrrL,KAAKmmL,WAAanmL,KAAKwnL,gBAAkB4D,EAAQ,EACjD,MACJ,KAAK,EACDprL,KAAKmmL,WAAanmL,KAAKunL,eAAiB6D,EAAQ,EAChDprL,KAAKwmL,SAAWxmL,KAAKwnL,gBAAkB6D,EAAQ,EAC/C,MACJ,KAAK,EACDrrL,KAAKwmL,SAAWxmL,KAAKunL,eAAiB8D,EAAQ,EAC9CrrL,KAAKymL,QAAUzmL,KAAKwnL,gBAAkB4D,EAAQ,EAC9C,MACJ,KAAK,EACDprL,KAAKymL,QAAUzmL,KAAKunL,eAAiB8D,EAAQ,EAC7CrrL,KAAKmmL,WAAanmL,KAAKwnL,gBAAkB4D,EAAQ,EACjD,MACJ,KAAK,GACDprL,KAAK0mL,SAAS37I,EAAI/qC,KAAK0mL,SAAS1iL,EAAIhE,KAAK0mL,SAASlwI,EAAIx2C,KAAKunL,eAAiBjiL,KAAKo8D,IAAI,EAAIvkB,EAAO,KAChG,MACJ,QACI,MAGR,OADAn9C,KAAKsqL,eACE,CACX,CACI,IAAI7uI,EAAM7uC,EACV,GAAIowF,EAA0C6C,SAASkJ,SAASttD,EAAKz7C,KAAK+mL,YAAYv8E,aAAexqG,KAAKynL,WAEtG,OADA7B,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQG,gBAClG,EAEX,GAAI1uF,EAA0C6C,SAASkJ,SAASttD,EAAKz7C,KAAKgnL,YAAYx8E,aAAexqG,KAAKynL,WAEtG,OADA7B,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQG,gBAClG,EAEX,GAAI1uF,EAA0C6C,SAASkJ,SAASttD,EAAKz7C,KAAKinL,YAAYz8E,aAAexqG,KAAKynL,WAEtG,OADA7B,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQG,gBAClG,EAEX,IAAK,IAAIlpL,EAAI,EAAGA,EAAIxC,KAAKknL,cAAcvkL,OAAQH,IAC3C,GAAIw6F,EAA0C6C,SAASkJ,SAASttD,EAAKz7C,KAAKknL,cAAc1kL,IAAIgoG,aAAexqG,KAAKynL,WAE5G,OADA7B,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQG,gBAClG,EAInB,OAAO,CACX,EAEAC,WAAY,SAAU9N,EAAQ39K,GAC1B,OAAO,CACX,EAEAuL,MAAO,SAAUoyK,EAAQ39K,GACrB,OAAO,CACX,EAEA0rL,iBAAkB,SAAU/N,EAAQ39K,GAChC,OAAO,CACX,EAEA2rL,QAAS,SAAUhO,EAAQ39K,GACvB,OAAO,CACX,EAEA4rL,MAAO,SAAUjO,EAAQ39K,GACrB,OAAO,CACX,EAEA6rL,MAAO,SAAUtwI,GACb,OAAO,CACX,GAQJ,SAASqpI,IACL9kL,KAAKgsL,WAAa,EAClBhsL,KAAKisL,WAAa,EAClBjsL,KAAKksL,cAAgB,CACzB,EATA,EAAGvhI,EAA4CzS,cAAc,gBAAiB,CAACqrH,EAAemlB,EAAgB7C,EAAwCliB,MAAO+hB,EAA6C9uB,gBAW1M,IAAIu1B,EAAS,CAAC,EAMd,SAASnH,IACLhlL,KAAKosL,eAAiB,IAAIpvF,EAA0CqI,UACxE,EANA,EAAG16C,EAA4CzS,cAAc,QAAS,CAAC4sI,EAAOqH,EAAQ,OAQtFnH,EAAK7iL,OAAS,SAAUkqL,EAAUC,GAC9B,IAAIC,EAAO,IAAIvH,EACfuH,EAAKF,SAAWA,EAChBE,EAAKD,QAAUA,EAEf,IADA,IAAI51F,EAAS,IAAI70F,MAAMwqL,EAAS1pL,QACvBH,EAAI,EAAGA,EAAI6pL,EAAS1pL,SAAUH,EACnCk0F,EAAOl0F,GAAK6pL,EAAS7pL,GAAG+kG,eAG5B,OADAglF,EAAKH,eAAiBpvF,EAA0CyH,WAAWqT,wBAAwBphB,GAC5F61F,CACX,EAEAvH,EAAKwH,cAAgB,SAAUH,EAAUC,GACrC,IAAIC,EAAO,IAAIvH,EACfuH,EAAKE,gBAAkBJ,EACvBE,EAAKD,QAAUA,EAEf,IADA,IAAI51F,EAAS,IAAI70F,MAAM0qL,EAAKE,gBAAgB9pL,QACnCH,EAAI,EAAGA,EAAI+pL,EAAKE,gBAAgB9pL,SAAUH,EAC/Ck0F,EAAOl0F,GAAK+pL,EAAKE,gBAAgBjqL,GAAG+kG,eAGxC,OADAglF,EAAKH,eAAiBpvF,EAA0CyH,WAAWqT,wBAAwBphB,GAC5F61F,CACX,EAEA,IAAIG,EAAQ,CACR17D,QAAS,WACoB,MAArBhxH,KAAKoxH,eACLpxH,KAAKoxH,aAAaJ,UAClBhxH,KAAKoxH,aAAe,MAEQ,MAA5BpxH,KAAK2sL,sBACL3sL,KAAK2sL,oBAAoB37D,UACzBhxH,KAAK2sL,oBAAsB,MAEP,MAApB3sL,KAAK8hJ,cACL9hJ,KAAK8hJ,YAAY9wB,UACjBhxH,KAAK8hJ,YAAc,KAE3B,EAEA8qC,WAAY,SAAUC,GAClB7sL,KAAK8sL,SAAWD,CACpB,EAGAE,eAAgB,WACS,MAAjB/sL,KAAKqsL,SACLrsL,KAAKoxH,aAAek0D,EAAqDh1D,mCAAmCnuH,OAAOnC,KAAKqsL,UACzF,MAAxBrsL,KAAKysL,kBACZzsL,KAAK2sL,oBAAsBrH,EAAqDj1D,0CAA0CluH,OAAOnC,KAAKysL,kBAE1IzsL,KAAK8hJ,YAAc,IAAIwjC,EAAqDr1D,YAAY,IAAI+8D,YAAYhtL,KAAKssL,SACjH,EAEAW,aAAc,SAAUhrJ,GACK,MAArBjiC,KAAKoxH,aACLnvF,EAAcirJ,iBAAiBltL,KAAKoxH,cACD,MAA5BpxH,KAAK2sL,qBACZ1qJ,EAAcirJ,iBAAiBltL,KAAK2sL,qBAEhB,MAApB3sL,KAAK8hJ,aACL7/G,EAAckrJ,gBAAgBntL,KAAK8hJ,YAE3C,EAEAsrC,WAAY,SAAUnrJ,EAAeiqJ,GACT,MAApBlsL,KAAK8hJ,aAAwC,MAAjB9hJ,KAAK8sL,UAGrC9sL,KAAKqtL,cAAcrtL,KAAK8sL,SAAUZ,EAAejqJ,EAAe,EACpE,EAEAorJ,cAAe,SAAUC,EAAOpB,EAAejqJ,EAAesrJ,GAC1D,KAAIA,EAAQ,MAAZ,CAGA,IAAIjyI,EAASoP,EAAoC9P,GAAGW,UAAU+xI,GAC9D,MAAOhyI,EAAOE,WAAY,CACtB,IAAI9vC,EAAO4vC,EAAOI,QAClB,GAAsB,MAAlBhwC,EAAK8hL,WAAqB9hL,EAAKiV,QAAS,CACxC,IAAIwkG,EAASz6D,EAAoC9P,GAAGW,UAAU7vC,EAAK8hL,WACnE,MAAOroE,EAAO3pE,WAAY,CACtB,IAAIiyI,EAAQtoE,EAAOzpE,QACf+xI,EAAMvB,gBAAkBA,GACxBjqJ,EAAc6T,GAAGolG,aAAamG,EAA0D/kC,MAAMqb,UAAW81D,EAAMxB,WAAY5qC,EAA0D/kC,MAAM26B,aAAiC,EAAnBw2C,EAAMzB,WAEvN,CACJ,CACAhsL,KAAKqtL,cAAc3hL,EAAKy5I,SAAU+mC,EAAejqJ,EAAesrJ,EAAQ,EAC5E,CAdA,CAeJ,EAEAG,YAAa,WACT,OAAO1tL,KAAK8sL,QAChB,EAEAa,YAAa,SAAU/sL,GAEnB,OADAZ,KAAK8sL,SAAWlsL,EACTA,CACX,GAQJ,SAASukL,IACLnlL,KAAK+lC,MAAQ,CACjB,EAPA,EAAG4kB,EAA4CzS,cAAc,OAAQ,CAAC8sI,EAAM0H,EAAO,KAAMhiI,EAAoC9P,GAAGs2E,cAShI,IAAI08D,EAAkB,CAAC,EAOvB,SAASnkB,EAASf,EAAS1O,EAAU6uB,EAAOI,EAAgBG,EAAQv2K,GAChE7S,KAAKipL,gBAAiB,EACtBjpL,KAAK6oL,OAAQ,EACb7oL,KAAKopL,QAAS,EACdppL,KAAK6tL,MAAQ,KACb7tL,KAAK8tL,eAAiB,GACtB9tL,KAAK+tL,cAAgB,GACrB/tL,KAAKguL,sBAAwB,GAC7BhuL,KAAKiuL,gBAAkB,GACvBjuL,KAAKkuL,cAAgB,GACrBluL,KAAK6S,MAAQ0yF,EAAuC1tD,OAAOC,YAC3D93C,KAAKmuL,cAAgB,CAAC,EACtBnuL,KAAKouL,UAAY,IAAIvsL,MAAM,GAC3B7B,KAAKquL,cAAgB,EACrBruL,KAAK6sL,QAAU,GACf7sL,KAAKsuL,QAAU,CAAC,EAChBtuL,KAAKuuL,YAAc,CAAC,EACpBvuL,KAAKwuL,cAAgB,KACrBxuL,KAAK0pK,UAAW,EAChB1pK,KAAKyuL,gBAAiB,EACtBzuL,KAAK0uL,mBAAoB,EACzB1uL,KAAK8gH,QAAS,EACd9gH,KAAK6S,MAAQA,EACb7S,KAAKopL,OAASA,EACdppL,KAAK6oL,MAAQA,EACb7oL,KAAKipL,eAAiBA,EACtBjpL,KAAKg6J,SAAWA,EACZtvG,EAAoC9P,GAAG6vI,SAASzqL,KAAKg6J,SAASzrJ,cAAe,QAC7EvO,KAAK2uL,iBAAiBjmB,EAAS1oK,KAAKg6J,UAGpCh6J,KAAK4uL,iBAAiBlmB,EAAS1oK,KAAKg6J,SAAU,EAEtD,EAtCA,EAAGrvG,EAA4CzS,cAAc,iBAAkB,CAACitI,EAAgByI,EAAiB,OAwCjHnkB,EAASolB,gBAAkB,SAAUC,EAAI/3E,GACrC,OAAI+3E,EAAG/jJ,EAAIgsE,EAAGhsE,GACF,EAEH+jJ,EAAG/jJ,EAAIgsE,EAAGhsE,EACR,EAEF+jJ,EAAG9qL,EAAI+yG,EAAG/yG,GACP,EAEH8qL,EAAG9qL,EAAI+yG,EAAG/yG,EACR,EAEF8qL,EAAGt4I,EAAIugE,EAAGvgE,GACP,EAEHs4I,EAAGt4I,EAAIugE,EAAGvgE,EACR,EAGA,CAEf,EAEAizH,EAASslB,eAAiB,SAAUD,EAAI/3E,GACpC,OAAI+3E,EAAG/jJ,EAAIgsE,EAAGhsE,GACF,EAEH+jJ,EAAG/jJ,EAAIgsE,EAAGhsE,EACR,EAEF+jJ,EAAG9qL,EAAI+yG,EAAG/yG,GACP,EAEH8qL,EAAG9qL,EAAI+yG,EAAG/yG,EACR,EAGA,CAEf,EAEAylK,EAASulB,eAAiB,SAAUC,EAAUC,GAC1C,IAAInpJ,EAAQ,EACRuV,EAASoP,EAAoC9P,GAAGW,UAAU2zI,GAC9D,MAAO5zI,EAAOE,WAAY,CACtB,IAAImiD,EAAMriD,EAAOI,QACjB,GAAIiiD,IAAQsxF,EACR,OAAOlpJ,EAEXA,GACJ,CACA,OAAQ,CACZ,EAEA0jI,EAAS0lB,oBAAsB,SAAUC,GACrC,GAAgB,MAAZA,EAAkB,CAClB,IAAK,IAAI5sL,EAAI,EAAGA,EAAI4sL,EAASzsL,SAAUH,EAChB,MAAf4sL,EAAS5sL,KACT4sL,EAAS5sL,GAAGwuH,UACZo+D,EAAS5sL,GAAK,MAGtB4sL,EAASzsL,OAAS,CACtB,CACJ,EAEA,IAAI0sL,EAAY,CACZvG,QAAS,WACA9oL,KAAK0pK,WACN1pK,KAAKgxH,UACDtmE,EAAoC9P,GAAG6vI,SAASzqL,KAAKg6J,SAASzrJ,cAAe,QAC7EvO,KAAK2uL,iBAAiB3uL,KAAKwuL,cAAexuL,KAAKg6J,UAG/Ch6J,KAAK4uL,iBAAiB5uL,KAAKwuL,cAAexuL,KAAKg6J,SAAU,GAGrE,EAUAs1B,8BAA+B,SAAU71I,EAAYsjG,EAAWwyC,GAC5D,IAAK91I,EAAW92C,OACZ,OAAO,KAEO82C,EAAW92C,OAM7B,IANA,IACI+4G,EAAgBp2G,KAAKwkD,MAAMizF,EAAUp6I,OAAS,GAI9C6sL,EAAkB,GACbC,EAAc,EAAGA,EAAch2I,EAAW92C,SAAU8sL,EAAa,CACtE,IAAIC,EAAK,IAAIvK,EACbuK,EAAG3pF,SAAWtsD,EAAWg2I,GAAaloF,eACtCmoF,EAAG3pJ,MAAQ0pJ,EACXD,EAAgB7qL,KAAK+qL,EACzB,CACAF,EAAgBG,MAAK,SAAUb,EAAI/3E,GAC/B,OAAO0yD,EAASolB,gBAAgBC,EAAG/oF,SAAUgR,EAAGhR,SACpD,IAGA,IAAI6pF,EAAY,IAAI/tL,MAAM2tL,EAAgB7sL,QACtCktL,EAAoB,EACxB,IAASJ,EAAc,EAAGA,EAAcD,EAAgB7sL,OAAQ8sL,IACvDA,IAAiBhmB,EAASolB,gBAAgBW,EAAgBC,GAAa1pF,SAAUypF,EAAgBC,EAAc,GAAG1pF,aACjH8pF,EAEND,EAAUJ,EAAgBC,GAAa1pJ,OAAS8pJ,EAAoB,EAGxE,IADA,IAAIC,EAAuB,IAAIjuL,MAAMguL,GAC5BrtL,EAAI,EAAGA,EAAIqtL,EAAmBrtL,IACnCstL,EAAqBttL,GAAK,EAE9B,IAAI84C,EAASoP,EAAoC9P,GAAGW,UAAUwhG,GAC9D,MAAOzhG,EAAOE,WAAY,CAClBi0I,EAAcn0I,EAAOI,QAAzB,IACIq0I,EAAcH,EAAUH,GAC5BK,EAAqBC,IACzB,CAGA,IAAIC,EAAkB,IAAInuL,MAAMguL,GAChC,IAASrtL,EAAI,EAAGA,EAAIqtL,IAAqBrtL,EAAG,CACxC,IAAI45F,EAAQ0zF,EAAqBttL,GACjC,GAAI45F,EAAQ,EAAG,CACX4zF,EAAgBxtL,GAAK,IAAIX,MAAMu6F,GAC/B,IAAK,IAAI1iD,EAAI,EAAGA,EAAI0iD,EAAO1iD,IACvBs2I,EAAgBxtL,GAAGk3C,GAAK,CAEhC,CACJ,CAGA,IAASl3C,EAAI,EAAGA,EAAIu6I,EAAUp6I,SAAUH,EAAG,CACvC,IAAIytL,EAAY3qL,KAAKwkD,MAAMtnD,EAAI,GAC3ButL,EAAcH,EAAU7yC,EAAUv6I,IACtCwtL,EAAgBD,KAAeD,EAAqBC,IAAgBE,CACxE,CAKA,IAAIC,EAAc,IAAIruL,MAAM65G,GAC5B,IAASl5G,EAAI,EAAGA,EAAIk5G,IAAiBl5G,EAAG,CAEpC,IAAIqwD,EAAKkqF,EAAc,EAAJv6I,EAAQ,GACvB2tL,EAAKpzC,EAAc,EAAJv6I,EAAQ,GACvBwpE,EAAK+wE,EAAc,EAAJv6I,EAAQ,GACvB4tL,EAAQpzF,EAA0ChkD,SAASsqD,gBAAgB7pD,EAAW02I,GAAI5oF,eAAgB9tD,EAAWoZ,GAAI00C,gBACzH8oF,EAAQrzF,EAA0ChkD,SAASsqD,gBAAgB7pD,EAAWuyB,GAAIu7B,eAAgB9tD,EAAW02I,GAAI5oF,gBAC7H2oF,EAAY1tL,GAAKw6F,EAA0ChkD,SAASK,MAAM+2I,EAAOC,GACjFH,EAAY1tL,GAAG4lG,WACnB,CAGA,IAAIkoF,EAAiC,EAAhB50E,EACjB60E,EAAgB,IAAI1uL,MAAMyuL,GAC1BE,EAAiBlrL,KAAKilF,IAAI,MAAQjlF,KAAKgxC,IAAIi5I,IAC/C,IAAS/sL,EAAI,EAAGA,EAAI8tL,IAAkB9tL,EAAG,CACjCitL,EAAc1yC,EAAUv6I,GACxButL,EAAcH,EAAUH,GAD5B,IAEIgB,EAAaP,EAAY5qL,KAAKwkD,MAAMtnD,EAAI,IACxCi9J,EAAM,IAAIziE,EAA0ChkD,SACpDmsE,EAASz6D,EAAoC9P,GAAGW,UAAUy0I,EAAgBD,IAC9E,MAAO5qE,EAAO3pE,WAAY,CAClBy0I,EAAY9qE,EAAOzpE,QAAvB,IACIj5C,EAAIytL,EAAYD,GAChBjzF,EAA0ChkD,SAASC,IAAIw3I,EAAYhuL,GAAK+tL,GACxE/wB,EAAI9lJ,IAAIlX,EAEhB,CACA8tL,EAAc/tL,GAAKi9J,EACnB8wB,EAAc/tL,GAAG4lG,WACrB,CACA,OAAOmoF,CACX,EAUAG,yBAA0B,SAAUj3I,EAAYsjG,EAAWwyC,GACvD,IAAK91I,EAAW92C,OACZ,OAAO,KAEO82C,EAAW92C,OAM7B,IANA,IACI+4G,EAAgBp2G,KAAKwkD,MAAMizF,EAAUp6I,OAAS,GAI9C6sL,EAAkB,GACbC,EAAc,EAAGA,EAAch2I,EAAW92C,SAAU8sL,EAAa,CACtE,IAAIC,EAAK,IAAIvK,EACbuK,EAAG3pF,SAAWtsD,EAAWg2I,GAAaloF,eACtCmoF,EAAG3pJ,MAAQ0pJ,EACXD,EAAgB7qL,KAAK+qL,EACzB,CACAF,EAAgBG,MAAK,SAAUb,EAAI/3E,GAC/B,OAAO0yD,EAASolB,gBAAgBC,EAAG/oF,SAAUgR,EAAGhR,SACpD,IAGA,IAAI6pF,EAAY,IAAI/tL,MAAM2tL,EAAgB7sL,QACtCktL,EAAoB,EACxB,IAASJ,EAAc,EAAGA,EAAcD,EAAgB7sL,OAAQ8sL,IACvDA,IAAiBhmB,EAASolB,gBAAgBW,EAAgBC,GAAa1pF,SAAUypF,EAAgBC,EAAc,GAAG1pF,aACjH8pF,EAEND,EAAUJ,EAAgBC,GAAa1pJ,OAAU8pJ,EAAoB,EAGzE,IADA,IAAIC,EAAuB,IAAIjuL,MAAMguL,GAC5BrtL,EAAI,EAAGA,EAAIqtL,EAAmBrtL,IACnCstL,EAAqBttL,GAAK,EAE9B,IAAI84C,EAASoP,EAAoC9P,GAAGW,UAAUwhG,GAC9D,MAAOzhG,EAAOE,WAAY,CAClBi0I,EAAcn0I,EAAOI,QAAzB,IACIq0I,EAAcH,EAAUH,GAC5BK,EAAqBC,IACzB,CAGA,IAAIC,EAAkB,IAAInuL,MAAMguL,GAChC,IAASrtL,EAAI,EAAGA,EAAIqtL,IAAqBrtL,EAAG,CACxC,IAAI45F,EAAQ0zF,EAAqBttL,GACjC,GAAI45F,EAAQ,EAAG,CACX4zF,EAAgBxtL,GAAK,IAAIX,MAAMu6F,GAC/B,IAAK,IAAI1iD,EAAI,EAAGA,EAAI0iD,EAAO1iD,IACvBs2I,EAAgBxtL,GAAGk3C,GAAK,CAEhC,CACJ,CAGA,IAASl3C,EAAI,EAAGA,EAAIu6I,EAAUp6I,SAAUH,EAAG,CACvC,IAAIytL,EAAY3qL,KAAKwkD,MAAMtnD,EAAI,GAC3ButL,EAAcH,EAAU7yC,EAAUv6I,IACtCwtL,EAAgBD,KAAeD,EAAqBC,IAAgBE,CACxE,CAKA,IAAIU,EAAW,IAAI9uL,MAAM65G,GACzB,IAASl5G,EAAI,EAAGA,EAAIk5G,IAAiBl5G,EAAG,CACpC,IAAIssL,EAAKr1I,EAAWsjG,EAAc,EAAJv6I,EAAQ,IAClCu0G,EAAKt9D,EAAWsjG,EAAc,EAAJv6I,EAAQ,IAClCgyH,EAAK/6E,EAAWsjG,EAAc,EAAJv6I,EAAQ,IAClC4tL,EAAQpzF,EAA0ChkD,SAASsqD,gBAAgByT,EAAGxP,eAAgBunF,EAAGvnF,gBACjG8oF,EAAQrzF,EAA0ChkD,SAASsqD,gBAAgBkxB,EAAGjtB,eAAgBunF,EAAGvnF,gBACjGqpF,EAAM75E,EAAGlR,GAAKipF,EAAGjpF,GACjBgrF,EAAM95E,EAAGjR,GAAKgpF,EAAGhpF,GACjBgrF,EAAMt8D,EAAG3uB,GAAKipF,EAAGjpF,GACjB8F,EAAM6oB,EAAG1uB,GAAKgpF,EAAGhpF,GACjBirF,EAAcH,EAAMjlF,EAAMklF,EAAMC,EACpC,GAAIxrL,KAAKkjD,IAAIuoI,GAAe,KACpBX,EAAMjnF,WAAa,GAEnBwnF,EAASnuL,GAAK4tL,EACdO,EAASnuL,GAAG4lG,aAIZuoF,EAASnuL,GAAKw6F,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,OAGjF,CAED,IAAI6uL,EAAiB,EAAID,EACrBE,EAAMtlF,EAAMqlF,EACZE,GAAOL,EAAMG,EAGjBL,EAASnuL,GAAKw6F,EAA0ChkD,SAASuvD,WAAWvL,EAA0ChkD,SAAS6vD,eAAeunF,EAAOa,GAAMj0F,EAA0ChkD,SAAS6vD,eAAewnF,EAAOa,IACpOP,EAASnuL,GAAG4lG,WAChB,CACJ,CAGA,IAAIkoF,EAAiC,EAAhB50E,EACjBy1E,EAAW,IAAItvL,MAAMyuL,GACrBE,EAAiBlrL,KAAKilF,IAAI,MAAQjlF,KAAKgxC,IAAIi5I,IAC/C,IAAS/sL,EAAI,EAAGA,EAAI8tL,IAAkB9tL,EAAG,CACjCitL,EAAc1yC,EAAUv6I,GACxButL,EAAcH,EAAUH,GAD5B,IAEI2B,EAAKT,EAASrrL,KAAKwkD,MAAMtnD,EAAI,IAC7Bi9J,EAAM,IAAIziE,EAA0ChkD,SACpDmsE,EAASz6D,EAAoC9P,GAAGW,UAAUy0I,EAAgBD,IAC9E,MAAO5qE,EAAO3pE,WAAY,CAClBy0I,EAAY9qE,EAAOzpE,QAAvB,IACI2J,EAAIsrI,EAASV,GACbjzF,EAA0ChkD,SAASC,IAAIm4I,EAAI/rI,GAAKmrI,GAChE/wB,EAAI9lJ,IAAI0rC,EAEhB,CACA,IAAI2oB,EAAIv0B,EAAWg2I,GAAapoF,aAGhC8pF,EAAS3uL,GAAKw6F,EAA0ChkD,SAASsqD,gBAAgBm8D,EAAKziE,EAA0ChkD,SAAS6vD,eAAe76B,EAAGgvB,EAA0ChkD,SAASC,IAAI+0B,EAAGyxF,KACrN0xB,EAAS3uL,GAAG4lG,WAChB,CACA,OAAO+oF,CACX,EAMAE,wBAAyB,SAAU53I,EAAYsjG,EAAWwyC,GACtD,IAAI+B,EAAc73I,EAAW92C,OACzB+4G,EAAgBp2G,KAAKwkD,MAAMizF,EAAUp6I,OAAS,GAG9CmtL,EAAuB,IAAIjuL,MAAMyvL,GACjCh2I,EAASoP,EAAoC9P,GAAGW,UAAUwhG,GAC9D,MAAOzhG,EAAOE,WAAY,CACtB,IAAIi0I,EAAcn0I,EAAOI,QACzBo0I,EAAqBL,IACzB,CAIA,IADA,IAAIO,EAAkB,IAAInuL,MAAMyvL,GACvB9uL,EAAI,EAAGA,EAAI8uL,IAAe9uL,EAAG,CAClC,IAAI45F,EAAQ0zF,EAAqBttL,GAC7B45F,EAAQ,IACR4zF,EAAgBxtL,GAAK,IAAIX,MAAMu6F,GAEvC,CAGA,IAAS55F,EAAI,EAAGA,EAAIu6I,EAAUp6I,SAAUH,EAAG,CACvC,IAAIytL,EAAY3qL,KAAKwkD,MAAMtnD,EAAI,GAC3BitL,EAAc1yC,EAAUv6I,GAC5BwtL,EAAgBP,KAAeK,EAAqBL,IAAgBQ,CACxE,CAKA,IAAIC,EAAc,IAAIruL,MAAM65G,GAC5B,IAASl5G,EAAI,EAAGA,EAAIk5G,IAAiBl5G,EAAG,CAEpC,IAAIqwD,EAAKkqF,EAAc,EAAJv6I,EAAQ,GACvB2tL,EAAKpzC,EAAc,EAAJv6I,EAAQ,GACvBwpE,EAAK+wE,EAAc,EAAJv6I,EAAQ,GACvB4tL,EAAQpzF,EAA0ChkD,SAASsqD,gBAAgB7pD,EAAW02I,GAAI5oF,eAAgB9tD,EAAWoZ,GAAI00C,gBACzH8oF,EAAQrzF,EAA0ChkD,SAASsqD,gBAAgB7pD,EAAWuyB,GAAIu7B,eAAgB9tD,EAAW02I,GAAI5oF,gBAC7H2oF,EAAY1tL,GAAKw6F,EAA0ChkD,SAASK,MAAM+2I,EAAOC,GACjFH,EAAY1tL,GAAG4lG,WACnB,CAGA,IAAIkoF,EAAiC,EAAhB50E,EACjB60E,EAAgB,IAAI1uL,MAAMyuL,GAC1BE,EAAiBlrL,KAAKilF,IAAI,MAAQjlF,KAAKgxC,IAAIi5I,IAC/C,IAAS/sL,EAAI,EAAGA,EAAI8tL,IAAkB9tL,EAAG,CACjCitL,EAAc1yC,EAAUv6I,GAA5B,IACIiuL,EAAaP,EAAY5qL,KAAKwkD,MAAMtnD,EAAI,IACxCi9J,EAAM,IAAIziE,EAA0ChkD,SACpDmsE,EAASz6D,EAAoC9P,GAAGW,UAAUy0I,EAAgBP,IAC9E,MAAOtqE,EAAO3pE,WAAY,CAClBy0I,EAAY9qE,EAAOzpE,QAAvB,IACIj5C,EAAIytL,EAAYD,GAChBjzF,EAA0ChkD,SAASC,IAAIw3I,EAAYhuL,GAAK+tL,GACxE/wB,EAAI9lJ,IAAIlX,EAEhB,CACA8tL,EAAc/tL,GAAKi9J,EACnB8wB,EAAc/tL,GAAG4lG,WACrB,CACA,OAAOmoF,CACX,EAGAgB,aAAc,SAAUtC,GACpBjvL,KAAK8tL,eAAenpL,KAAKsqL,GACzB,MAAOjvL,KAAK+tL,cAAcprL,OAAS3C,KAAK8tL,eAAenrL,OACnD3C,KAAK+tL,cAAcppL,KAAK,MAE5B,MAAO3E,KAAKguL,sBAAsBrrL,OAAS3C,KAAK8tL,eAAenrL,OAC3D3C,KAAKguL,sBAAsBrpL,KAAK,MAEpC,MAAO3E,KAAKiuL,gBAAgBtrL,OAAS3C,KAAK8tL,eAAenrL,OACrD3C,KAAKiuL,gBAAgBtpL,KAAK,KAElC,EAIA6sL,gBAAiB,SAAUr2H,GACvB,IAAIs2H,EAAUt2H,EAAGu2H,aACbC,EAAcx2H,EAAGy2H,aACjB/+K,EAAQ0yF,EAAuC1tD,OAAOq5C,YAC1D,GAAiB,KAAZugG,GAA8B,KAAZA,GAAmC,KAAhBE,EAOlB,KAAZF,GAA8B,KAAZA,GAAmC,IAAhBE,EAI7Cx2H,EAAG02H,UAAUF,EAAc,GAH3B9+K,EAAQ0yF,EAAuCntD,MAAMq4C,SAAS,IAAKt1B,EAAGmlG,WAAYnlG,EAAGmlG,WAAYnlG,EAAGmlG,gBAR1C,CAG1D,IAAI7/J,EAAI6E,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,EAAGpvB,EAAGE,eAC/Bv7D,EAAIwF,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,EAAGpvB,EAAGE,eAC/B35D,EAAI4D,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,EAAGpvB,EAAGE,eACnCxoD,EAAQ0yF,EAAuCntD,MAAMq4C,SAAS,IAAK/lC,EAAoC9P,GAAGyG,SAAU,IAAM5gD,GAAKiqD,EAAoC9P,GAAGyG,SAAU,IAAMvhD,GAAK4qD,EAAoC9P,GAAGyG,SAAU,IAAM3/C,GACtP,CAMA,OAAOmR,CACX,EAIAi/K,qBAAsB,SAAU32H,GAC5B,IAAIs2H,EAAUt2H,EAAGu2H,aACbC,EAAcx2H,EAAGy2H,aACjBG,EAAa,EASjB,OARgB,KAAZN,GAAkC,IAAhBE,EAClBI,EAAa52H,EAAGu2H,aACG,KAAZD,GAAkC,KAAhBE,EACzBI,EAAa52H,EAAGE,aAGhBF,EAAG02H,UAAUF,EAAc,GAExBI,CACX,EAEApD,iBAAkB,SAAUzrE,EAAK82C,GAC7B,IAAIrvC,EAAQ3qH,KAEZA,KAAKg6J,SAAWA,EAChBh6J,KAAKwuL,cAAgBtrE,EACrB,IAAI/4G,EAAO+4G,EAAI0lD,YAAY5O,GACvB5d,EAAS,IAAI5uI,WACjB4uI,EAAO1uI,UAAY,SAAUxN,GACzByqH,EAAMyjE,UAAYzjE,EAAMqnE,yBAAyBtnI,EAAoC9P,GAAGw7G,SAASha,EAAO14I,OAAQ1B,SAChH2oH,EAAM0jE,cAAgB,EAKtB1jE,EAAMsnE,YAAYvnI,EAAoC9P,GAAGw7G,SAASha,EAAO14I,OAAQ1B,QACrF,EACAo6I,EAAOptG,WAAW7kC,EACtB,EAEA6nL,yBAA0B,SAAUvqL,GAChC,IAAIyqL,EAAW,GACXxmG,EAAQjkF,EAAK0hF,MAAM,MACnB7tC,EAASoP,EAAoC9P,GAAGW,UAAUmwC,GAC9D,MAAOpwC,EAAOE,WAAY,CACtB,IAAI22I,EAAU72I,EAAOI,QACjB66C,EAAO7rC,EAAoC9P,GAAGq+C,cAAck5F,EAAS,KAAM,KAC3E/oG,EAAQ1+B,EAAoC9P,GAAG+gD,KAAKpF,GAAMpN,MAAM,KACpE,GAAIC,EAAMzmF,OAAS,EACf,OAAQymF,EAAM,IACV,IAAK,SACD,IAAIx0E,EAAO5U,KAAKg6J,SAASzwE,UAAU,EAAGvpF,KAAKg6J,SAASklB,YAAY,MAAQ,GACpEkT,EAAUx9K,EAAOw0E,EAAM,GAC3B8oG,EAASvtL,KAAKytL,GACd,MAGhB,CACA,OAAOF,CACX,EAEAG,gBAAiB,SAAU5qL,GACvB,IAAI6qL,GAAc,EACdzF,EAAU,GACV0F,EAAgB,IAAIrN,EACxBqN,EAAc5nL,KAAO,UACrB,IAEI8uC,EAAa,GACb+4I,EAAW,GACXC,EAAW,GACXC,EAAS,GACbF,EAAS7tL,KAAK,IAAIq4F,EAA0ChkD,UAC5Dy5I,EAAS9tL,KAAK,IAAIq4F,EAA0ChkD,UAC5D05I,EAAO/tL,KAAK,IAAIq4F,EAA0C6C,UAC1D,IAAIk9C,EAAY,GAKZ41C,GAAwB,EACxBC,EAAkB,IAAI7N,EACtB8N,EAAe,IAAI/N,EACnBgO,EAAe,EAGnBF,EAAkB,IAAI7N,EACtB6N,EAAgBG,QAAU/yL,KAAK6S,MAC/B+/K,EAAgBI,QAAUhzL,KAAK6S,MAC/B+/K,EAAgBK,SAAW1tF,EAAuC1tD,OAAOC,YACzE86I,EAAgB7M,kBAAoB,GACpC6M,EAAgBnxK,QAAU,EAC1BmxK,EAAgB5M,WAAY,EAG5B6M,EAAa7G,WAAa,EAC1B6G,EAAa5G,WAAa,EAC1B4G,EAAa3G,cAAgB,EAC7B,IAAIxgG,EAAQjkF,EAAK0hF,MAAM,MACnB7tC,EAASoP,EAAoC9P,GAAGW,UAAUmwC,GAC9D,MAAOpwC,EAAOE,WAAY,CACtB,IAAI22I,EAAU72I,EAAOI,QACjB66C,EAAO7rC,EAAoC9P,GAAGq+C,cAAck5F,EAAS,KAAM,KAC3E/oG,EAAQ1+B,EAAoC9P,GAAG+gD,KAAKpF,GAAMpN,MAAM,KACpE,GAAIC,EAAMzmF,OAAS,EACf,OAAQymF,EAAM,IACV,IAAK,SAID,MACJ,IAAK,SACD,IAAI8pG,EAAe9pG,EAAM,GACzB,GAAI1+B,EAAoC9P,GAAGqgD,UAAUj7F,KAAKsuL,QAAS4E,MACjC,IAA1BP,GAA+BG,EAAe,IAC9C9yL,KAAKuxL,aAAaqB,GAClBD,KAEAA,GAAwB,IACxBE,EAAa5G,WAAa6G,EAAeD,EAAa7G,WACtDuG,EAAc/E,UAAU7oL,KAAKkuL,IAEjCF,IACIjoI,EAAoC9P,GAAGqgD,UAAUj7F,KAAKsuL,QAAS4E,IAAe,CAE9E,GADAN,EAAkB5yL,KAAKsuL,QAAQ4E,GAC3BxoI,EAAoC9P,GAAGqgD,UAAUj7F,KAAKuuL,YAAa2E,GACnE,IACI,IAAKxoI,EAAoC9P,GAAGqgD,UAAUj7F,KAAKmuL,cAAenuL,KAAKuuL,YAAY2E,IAAgB,CACvG,IAAIt+K,EAAO5U,KAAKg6J,SAASzwE,UAAU,EAAGvpF,KAAKg6J,SAASklB,YAAY,MAAQ,GACpE15C,EAAMxlI,KAAKwuL,cAAc2E,mBAAmBv+K,EAAO5U,KAAKuuL,YAAY2E,IAC7D,MAAP1tD,IACAxlI,KAAKkuL,cAAcvpL,KAAK3E,KAAKuuL,YAAY2E,IACzClzL,KAAKmuL,cAAcnuL,KAAKuuL,YAAY2E,IAAiB1tD,EAE7D,CACAxlI,KAAK+tL,cAAcppL,KAAK3E,KAAKmuL,cAAcnuL,KAAKuuL,YAAY2E,IAChE,CACA,MAAOr3F,GACP,CAEJ77F,KAAKuxL,aAAaqB,GAClBC,EAAe,IAAI/N,EACnB+N,EAAa7G,WAAa8G,EAC1BD,EAAa5G,WAAa,EAC1B4G,EAAa3G,cAAgByG,CACjC,CAEJ,MACJ,IAAK,IAEG3yL,KAAKipL,eACLuJ,EAAS7tL,KAAKq4F,EAA0ChkD,SAAS72C,QAAQgoF,WAAWf,EAAM,IAAKe,WAAWf,EAAM,IAAKe,WAAWf,EAAM,MAGtIopG,EAAS7tL,KAAKq4F,EAA0ChkD,SAAS72C,OAAOgoF,WAAWf,EAAM,IAAKe,WAAWf,EAAM,IAAKe,WAAWf,EAAM,MAEzI,MACJ,IAAK,KACGppF,KAAKipL,eACLwJ,EAAS9tL,KAAKq4F,EAA0ChkD,SAAS72C,QAAQgoF,WAAWf,EAAM,IAAKe,WAAWf,EAAM,IAAKe,WAAWf,EAAM,MAGtIqpG,EAAS9tL,KAAKq4F,EAA0ChkD,SAAS72C,OAAOgoF,WAAWf,EAAM,IAAKe,WAAWf,EAAM,IAAKe,WAAWf,EAAM,MAEzI,MACJ,IAAK,KACDspG,EAAO/tL,KAAKq4F,EAA0C6C,SAAS19F,OAAOgoF,WAAWf,EAAM,IAAMppF,KAAU,MAAK,EAAImqF,WAAWf,EAAM,IAAOe,WAAWf,EAAM,MACzJ,MACJ,IAAK,IACL,IAAK,IACGkpG,IACIK,GAAwB,IACxBE,EAAa5G,WAAa6G,EAAeD,EAAa7G,WACtDuG,EAAc/E,UAAU7oL,KAAKkuL,GAC7BA,EAAe,IAAI/N,EACnB+N,EAAa7G,WAAa8G,EAC1BD,EAAa5G,WAAa,EAC1B4G,EAAa3G,cAAgByG,GAEjCJ,EAAgB,IAAIrN,GAExBoN,GAAc,EACVlpG,EAAMzmF,OAAS,EACf4vL,EAAc5nL,KAAOy+E,EAAM,GAG3BmpG,EAAc5nL,KAAO,UAEzBkiL,EAAQloL,KAAK4tL,GACb,MACJ,IAAK,IACD,IAAIa,EAAYpzL,KAAKqzL,aAAajqG,EAAM,IACpCkqG,EAAYtzL,KAAKqzL,aAAajqG,EAAM,IACpCmqG,EAAYvzL,KAAKqzL,aAAajqG,EAAM,IAgBxC,GAfA3vC,EAAW90C,KAAKq4F,EAA0CiI,uBAAuBuS,SAASg7E,EAASY,EAAU,IAAKX,EAASW,EAAU,IAAKV,EAAOU,EAAU,MAC3J35I,EAAW90C,KAAKq4F,EAA0CiI,uBAAuBuS,SAASg7E,EAASc,EAAU,IAAKb,EAASa,EAAU,IAAKZ,EAAOY,EAAU,MAC3J75I,EAAW90C,KAAKq4F,EAA0CiI,uBAAuBuS,SAASg7E,EAASe,EAAU,IAAKd,EAASc,EAAU,IAAKb,EAAOa,EAAU,MACvJvzL,KAAKipL,gBACLlsC,EAAUp4I,KAAKmuL,GACf/1C,EAAUp4I,KAAKmuL,EAAe,GAC9B/1C,EAAUp4I,KAAKmuL,EAAe,KAG9B/1C,EAAUp4I,KAAKmuL,GACf/1C,EAAUp4I,KAAKmuL,EAAe,GAC9B/1C,EAAUp4I,KAAKmuL,EAAe,IAGlCA,GAAgB,EACZ1pG,EAAMzmF,OAAS,EAAG,CAClB,IAAI6wL,EAAY,EAChB,MAAOA,EAAYpqG,EAAMzmF,OACjB3C,KAAKipL,gBACLmK,EAAYpzL,KAAKqzL,aAAajqG,EAAM,IACpCmqG,EAAYvzL,KAAKqzL,aAAajqG,EAAMoqG,IACpCF,EAAYtzL,KAAKqzL,aAAajqG,EAAMoqG,EAAY,MAGhDJ,EAAYpzL,KAAKqzL,aAAajqG,EAAM,IACpCkqG,EAAYtzL,KAAKqzL,aAAajqG,EAAMoqG,EAAY,IAChDD,EAAYvzL,KAAKqzL,aAAajqG,EAAMoqG,KAExC/5I,EAAW90C,KAAKq4F,EAA0CiI,uBAAuBuS,SAASg7E,EAASY,EAAU,IAAKX,EAASW,EAAU,IAAKV,EAAOU,EAAU,MAC3J35I,EAAW90C,KAAKq4F,EAA0CiI,uBAAuBuS,SAASg7E,EAASc,EAAU,IAAKb,EAASa,EAAU,IAAKZ,EAAOY,EAAU,MAC3J75I,EAAW90C,KAAKq4F,EAA0CiI,uBAAuBuS,SAASg7E,EAASe,EAAU,IAAKd,EAASc,EAAU,IAAKb,EAAOa,EAAU,MAC3Jx2C,EAAUp4I,KAAKmuL,GACf/1C,EAAUp4I,KAAKmuL,EAAe,GAC9B/1C,EAAUp4I,KAAKmuL,EAAe,GAE9BA,GAAgB,EAChBU,GAER,CACA,MAGhB,CAiBA,GAfKlB,GAEDzF,EAAQloL,KAAK4tL,IAGa,IAA1BI,GAA+BG,EAAe,IAC9C9yL,KAAKuxL,aAAaqB,GAClBD,KAGAA,GAAwB,IACxBE,EAAa5G,WAAc6G,EAAeD,EAAa7G,WACvDuG,EAAc/E,UAAU7oL,KAAKkuL,IAG7BJ,EAAS9vL,OAAS,EAAG,CAMrB,IALA,IAAI8wL,EAAWnuL,KAAK8Z,GAAK,IACrBmwK,EAAmBvvL,KAAW,OAAI,IAAMyzL,EAAW,GAAKA,EACxDlD,EAAgBvwL,KAAKsvL,8BAA8B71I,EAAYsjG,EAAWwyC,GAC1EmE,EAAgB,GAChBpD,EAAiBvzC,EAAUp6I,OACtB8sL,EAAc,EAAGA,EAAca,IAAkBb,EAAa,CACnE,IAAIjrL,EAAIi1C,EAAWsjG,EAAU0yC,IAC7BjrL,EAAE8iG,WAAWipF,EAAcd,IAC3BiE,EAAc/uL,KAAKH,EACvB,CACAi1C,EAAai6I,CACjB,CACA1zL,KAAK6tL,MAAQ7I,EAAK7iL,OAAOs3C,EAAYsjG,GACrC,IAAI42C,EAAY,IAAIzO,EACpByO,EAAUhpL,KAAO,OACjBgpL,EAAUzoG,OAAS,KACnByoG,EAAU95E,OAAS,EACnB85E,EAAUnG,UAAY,KACtBmG,EAAUxuC,SAAW0nC,EACrB7sL,KAAK6sL,QAAU,GACf7sL,KAAK6sL,QAAQloL,KAAKgvL,GAClB3zL,KAAK6tL,MAAMjB,WAAW5sL,KAAK6sL,SAC3B7sL,KAAK6tL,MAAMd,iBACX/sL,KAAK8gH,QAAS,EACd9gH,KAAKyuL,gBAAiB,CAC1B,EAEAwD,YAAa,SAAUxqL,GACnB,IAAIkjH,EAAQ3qH,KAEZ,GAAIA,KAAKquL,cAAgBruL,KAAKouL,UAAUzrL,OAAQ,CAC5C,IAAIq3J,EAAWh6J,KAAKouL,UAAUpuL,KAAKquL,iBAC/BlkL,EAAOnK,KAAKwuL,cAAc5lB,YAAY5O,GACtC5d,EAAS,IAAI5uI,WACjB4uI,EAAO1uI,UAAY,SAAUxN,GACzByqH,EAAMipE,mBAAmBlpI,EAAoC9P,GAAGw7G,SAASha,EAAO14I,OAAQ1B,SACxF2oH,EAAMsnE,YAAYxqL,EACtB,EACA20I,EAAOptG,WAAW7kC,EACtB,MACInK,KAAKqyL,gBAAgB5qL,EAE7B,EAEAmsL,mBAAoB,SAAUnsL,GAC1B,IACI,IAAImrL,EAAkB,IAAI7N,EACtBmO,EAAe,GACnBlzL,KAAKsuL,QAAU,CAAC,EAChBtuL,KAAKuuL,YAAc,CAAC,EACpB,IAAI7iG,EAAQjkF,EAAK0hF,MAAM,MACnB7tC,EAASoP,EAAoC9P,GAAGW,UAAUmwC,GAC9D,MAAOpwC,EAAOE,WAAY,CACtB,IAAI22I,EAAU72I,EAAOI,QACjB66C,EAAO47F,EACP/oG,EAAQ1+B,EAAoC9P,GAAG+gD,KAAKpF,GAAMpN,MAAM,KACpE,GAAIC,EAAMzmF,OAAS,EACf,OAAQymF,EAAM,IACV,IAAK,SACI1+B,EAAoC9P,GAAGC,YAAYq4I,KACpDlzL,KAAKsuL,QAAQ4E,GAAgBN,GAEjCA,EAAkB,IAAI7N,EACtB6N,EAAgBG,QAAUxtF,EAAuC1tD,OAAOC,YACxE86I,EAAgBI,QAAUztF,EAAuC1tD,OAAOC,YACxE86I,EAAgBK,SAAW1tF,EAAuC1tD,OAAOq5C,YACzE0hG,EAAgB7M,kBAAoB,GACpC6M,EAAgBnxK,QAAU,EAC1ByxK,EAAe9pG,EAAM,GACrB,MACJ,IAAK,KACDwpG,EAAgBI,QAAUztF,EAAuCntD,MAAMq4C,SAAS,IAAKnrF,KAAKilF,IAA2B,IAAvBJ,WAAWf,EAAM,IAAW,KAAM9jF,KAAKilF,IAA2B,IAAvBJ,WAAWf,EAAM,IAAW,KAAM9jF,KAAKilF,IAA2B,IAAvBJ,WAAWf,EAAM,IAAW,MAChN,MACJ,IAAK,SAEDwpG,EAAgBG,QAAUxtF,EAAuC1tD,OAAOC,YAExE,IADA,IAAI+7I,EAAkBzqG,EAAM,GACnB5mF,EAAI,EAAGA,EAAI4mF,EAAMzmF,OAAQH,IAC9BqxL,GAAmB,IAAMzqG,EAAM5mF,GAExBxC,KAAKg6J,SAASzwE,UAAU,EAAGvpF,KAAKg6J,SAASklB,YAAY,MAAQ,GACxE2U,EAAkBnpI,EAAoC9P,GAAGq+C,cAAc46F,EAAiB,IAAK,OACtD,IAAnCA,EAAgB56K,QAAQ,QACxB46K,EAAkBA,EAAgBtqG,UAAUsqG,EAAgB3U,YAAY,MAAQ,IAEpFl/K,KAAKuuL,YAAY2E,GAAgBW,EACjC,MACJ,IAAK,KACDjB,EAAgBG,QAAUxtF,EAAuCntD,MAAMq4C,SAAS,IAAKnrF,KAAKilF,IAA2B,IAAvBJ,WAAWf,EAAM,IAAW,KAAM9jF,KAAKilF,IAA2B,IAAvBJ,WAAWf,EAAM,IAAW,KAAM9jF,KAAKilF,IAA2B,IAAvBJ,WAAWf,EAAM,IAAW,MAChN,MACJ,IAAK,KACDwpG,EAAgBK,SAAW1tF,EAAuCntD,MAAMq4C,SAAS,IAAKnrF,KAAKilF,IAA2B,IAAvBJ,WAAWf,EAAM,IAAW,KAAM9jF,KAAKilF,IAA2B,IAAvBJ,WAAWf,EAAM,IAAW,KAAM9jF,KAAKilF,IAA2B,IAAvBJ,WAAWf,EAAM,IAAW,MACjN,MACJ,IAAK,IAEDwpG,EAAgBnxK,QAAU0oE,WAAWf,EAAM,IAC3C,MACJ,IAAK,KAEDwpG,EAAgBnxK,QAAU,EAAI0oE,WAAWf,EAAM,IAC/C,MACJ,IAAK,QAEsBc,SAASd,EAAM,IACtC,MACJ,IAAK,YACDwpG,EAAgB7M,kBAAoB57F,WAAWf,EAAM,IACrD,MACJ,IAAK,KACDwpG,EAAgB7M,kBAAoB,EAAI,EAAI57F,WAAWf,EAAM,IAC7DwpG,EAAgB7M,kBAAoBzgL,KAAKC,IAAI,GAAIqtL,EAAgB7M,mBACjE,MAGhB,CACKr7H,EAAoC9P,GAAGC,YAAYq4I,KACpDlzL,KAAKsuL,QAAQ4E,GAAgBN,EAErC,CACA,MAAO/2F,GACP,CACJ,EAEAw3F,aAAc,SAAU5rL,GACpB,IAAI2hF,EAAQ1+B,EAAoC9P,GAAG+gD,KAAKl0F,GAAM0hF,MAAM,KAChE2qG,EAAW,IAAIjyL,MAAM,GACzB,OAAI6oD,EAAoC9P,GAAGC,YAAYpzC,KAGnD2hF,EAAMzmF,OAAS,IACfmxL,EAAS,GAAK5pG,SAASd,EAAM,KAE7BA,EAAMzmF,OAAS,IACX+nD,EAAoC9P,GAAGC,YAAYuuC,EAAM,IACzD0qG,EAAS,GAAK,EAGdA,EAAS,GAAK5pG,SAASd,EAAM,KAGjCA,EAAMzmF,OAAS,IACfmxL,EAAS,GAAK5pG,SAASd,EAAM,MAdtB0qG,CAiBf,EAEAlF,iBAAkB,SAAU1rE,EAAK82C,EAAUh6G,GACvC,IAAI2qE,EAAQ3qH,KAEZA,KAAKwuL,cAAgBtrE,EACrB,IAAI/4G,EAAO+4G,EAAI0lD,YAAY5O,GACvB5d,EAAS,IAAI5uI,WACjB4uI,EAAO1uI,UAAY,SAAUxN,GACzByqH,EAAMopE,gBAAgB,IAAIvO,EAAyDnpC,aAAa,IAAI9W,WAAW6W,EAAO14I,SAAUs8C,EACpI,EACAo8F,EAAOG,kBAAkBpyI,EAC7B,EAEA4pL,gBAAiB,SAAU54H,EAAInb,GAC3B,IAAIx9C,EACAwxL,EACAC,EACAtpL,EAAO,GACPskL,EAAW,GACXvzE,EAAgB,EAChB41E,EAAc,EACd73I,EAAa,GACbsjG,EAAY,GAEZmyC,EAAgB,GAChByD,GAAwB,EACxBC,EAAkB,IAAI7N,EACtBmP,EAAc,EACd93F,EAAQ,EAER+3F,GAAO,EACPC,GAAiB,EACjB9nF,EAAU,EACVC,EAAU,EACVC,EAAU,EACVqgF,EAAU,GACV0F,EAAgB,KAChB8B,EAAe,GACfC,EAAW,GACXC,EAAc,CAAC,EAEf5xL,EAASw4D,EAAGqvC,aAAe,EAC3BgqF,EAAgB,EAChBC,EAAqB,EAGzB,MAAOt5H,EAAGosC,eAAiB5kG,IAAWwxL,EAAM,CAGxC,OAFAH,EAAY74H,EAAGu2H,aACfuC,EAAgB94H,EAAGy2H,aACXoC,GAEJ,KAAK,MACD,MAGJ,KAAK,MACD,MAGJ,KAAK,MAED,IAAItyL,EADJiJ,EAAO,GAEP,GACIjJ,EAAIy5D,EAAGmlG,WACH5+J,EAAI,IACJiJ,GAAQ3I,OAAOwI,aAAa9I,UAEzBA,GACX6wL,EAAgB,IAAIrN,EACpBqN,EAAc5nL,KAAOA,EACrBkiL,EAAQloL,KAAK4tL,GACR7nI,EAAoC9P,GAAGqgD,UAAUs5F,EAAahC,EAAc5nL,QAC7E4pL,EAAYhC,EAAc5nL,MAAQ4nL,GAEtC,MAGJ,KAAK,MACDiC,EAAgB/6I,EAAW92C,OAC3B8xL,EAAqBnvL,KAAKwkD,MAAMizF,EAAUp6I,OAAS,GACnD,MAGJ,KAAK,MAED,IADA2uL,EAAcn2H,EAAGu2H,aACZlvL,EAAI,EAAGA,EAAI8uL,EAAa9uL,IAAK,CAC9B,IAAIuoC,EAAIowB,EAAGE,aAAeixC,EACtBtoG,EAAIm3D,EAAGE,aAAekxC,EACtB/1D,EAAI2kB,EAAGE,aAAemxC,EACtB62C,EAAOrmD,EAA0CiI,uBAAuB/pC,QAAQnwB,EAAIiV,EAAOxJ,EAAIwJ,EAAOh8C,EAAIg8C,EAAO,EAAG,EAAG,EAAG,EAAG,GACjIvG,EAAW90C,KAAK0+I,EACpB,CACA,MAGJ,KAAK,MACD,IAAIqxC,EAAWv5H,EAAGu2H,aAElB,IADAh2E,GAAiBg5E,EACZlyL,EAAI,EAAGA,EAAIkyL,EAAUlyL,IAAK,CAC3B,IAAImyL,EAAKx5H,EAAGu2H,aAAe8C,EACvBI,EAAKz5H,EAAGu2H,aAAe8C,EACvBK,EAAK15H,EAAGu2H,aAAe8C,EAC3Bz3C,EAAUp4I,KAAKkwL,GACf93C,EAAUp4I,KAAKiwL,GACf73C,EAAUp4I,KAAKgwL,GACHx5H,EAAGu2H,YACnB,CACA,MAGJ,KAAK,MACDzC,EAAW,GACXzsL,EAAI,EAEJ,GACIsyL,GAAK35H,EAAGmlG,WACJw0B,GAAK,IACL7F,GAAYjtL,OAAOwI,aAAasqL,KAEpCtyL,UACOsyL,IACPJ,EAAWv5H,EAAGu2H,aAAlB,IACIqD,EAAY,IAAIlzL,MAAM6yL,GAE1B,IADAR,EAAczqB,EAASulB,eAAeC,EAAUC,GAC3C1sL,EAAI,EAAGA,EAAIkyL,EAAUlyL,IACtBuyL,EAAUvyL,GAAK24D,EAAGu2H,aAAe+C,EAErClC,EAAcyC,WAAWrwL,KAAKowL,GAC9BxC,EAAc0C,gBAAgBtwL,KAAKuvL,GACnC,MAGJ,KAAK,MAED,IADA93F,EAAQjhC,EAAGu2H,aACNlvL,EAAI,EAAGA,EAAI45F,EAAO55F,IAAK,CACpB6gJ,EAAO5pG,EAAW+6I,EAAgBhyL,GAAtC,IACIokG,EAAW5J,EAA0C6C,SAAS19F,OAAOg5D,EAAGE,aAAer7D,KAAU,MAAK,EAAIm7D,EAAGE,aAAgBF,EAAGE,cACpI5hB,EAAW+6I,EAAgBhyL,GAAKw6F,EAA0CiI,uBAAuBuS,SAAS6rC,EAAK97C,eAAgB,IAAIvK,EAA0ChkD,SAAY4tD,EAC7L,CACA,MAGJ,KAAK,MACD,IAAIjJ,EAAM,IAAI97F,MAAM,IACpB,IAAKW,EAAI,EAAGA,EAAI,GAAIA,IAChBm7F,EAAIn7F,GAAK24D,EAAGE,aAEZ3Q,EAAoC9P,GAAGqgD,UAAUs5F,EAAa5pL,KAC9D4pL,EAAY5pL,GAAMuqL,SAAWl4F,EAA0C6H,SAAS1iG,OAAOw7F,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,EAAGA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,EAAGA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,EAAGA,EAAI,GAAIA,EAAI,IAAKA,EAAI,IAAK,GAClM42F,EAAY5pL,GAAMuqL,SAASnkF,UAE/B,MAGJ,KAAK,MACD,MAGJ,KAAK,MACD,IAAIokF,EAAU,GACd3yL,EAAI,EAEJ,GACI4yL,EAAKj6H,EAAGmlG,WACJ80B,EAAK,IACLD,GAAWnzL,OAAOwI,aAAa4qL,IAEnC5yL,UACO4yL,GACXlG,EAAcvqL,KAAKwwL,GACfxC,GAAwB,GACxB3yL,KAAKuxL,aAAaqB,GAEtBD,IACAC,EAAkB,IAAI7N,EACtB6N,EAAgBG,QAAUxtF,EAAuC1tD,OAAOC,YACxE86I,EAAgBI,QAAUztF,EAAuC1tD,OAAOC,YACxE86I,EAAgBK,SAAW1tF,EAAuC1tD,OAAOq5C,YACzE0hG,EAAgB7M,kBAAoB,GACpC6M,EAAgBnxK,QAAU,EAC1B,MAGJ,KAAK,MACDmxK,EAAgBI,QAAUhzL,KAAKwxL,gBAAgBr2H,GAC/C,MAGJ,KAAK,MACDy3H,EAAgBG,QAAU/yL,KAAKwxL,gBAAgBr2H,GAC/C,MAGJ,KAAK,MACDy3H,EAAgBK,SAAWjzL,KAAKwxL,gBAAgBr2H,GAChD,MAGJ,KAAK,MAGDy3H,EAAgB7M,kBAAoB,EAAI,EAAI/lL,KAAK8xL,qBAAqB32H,GAKtEy3H,EAAgB7M,kBAAoBzgL,KAAKC,IAAI,GAAIqtL,EAAgB7M,mBACjE,MAGJ,KAAK,MACD,MAGJ,KAAK,MACD,IAAI8N,EAAkB,GACtBrxL,EAAI,EAEJ,GACI4yL,EAAKj6H,EAAGmlG,WACJ80B,EAAK,IACLvB,GAAmB7xL,OAAOwI,aAAa4qL,IAE3C5yL,UACO4yL,GACX,IAAIxgL,EAAO5U,KAAKg6J,SAASzwE,UAAU,EAAGvpF,KAAKg6J,SAASklB,YAAY,MAAQ,GACxE,IACI,IAAI15C,EAAMxlI,KAAKwuL,cAAc2E,mBAAmBv+K,EAAOi/K,GAC5C,MAAPruD,GACAxlI,KAAK+tL,cAAcppL,KAAK6gI,GACxBxlI,KAAKkuL,cAAcvpL,KAAKkvL,GAIxBjB,EAAgBG,QAAUxtF,EAAuC1tD,OAAOC,aAGxE93C,KAAK+tL,cAAcppL,KAAK,KAEhC,CACA,MAAO4vF,IACHv0F,KAAK+tL,cAAcppL,KAAK,KAC5B,CACA,MAGJ,KAAK,MACgB3E,KAAK8xL,qBAAqB32H,GAC9BA,EAAGu2H,aACMv2H,EAAGy2H,aACrBiC,EAAkB,GACtBrxL,EAAI,EAEJ,GACI4yL,EAAKj6H,EAAGmlG,WACJ80B,EAAK,IACLvB,GAAmB7xL,OAAOwI,aAAa4qL,IAE3C5yL,UACO4yL,GACPxgL,EAAO5U,KAAKg6J,SAASzwE,UAAU,EAAGvpF,KAAKg6J,SAASklB,YAAY,MAAQ,GACxE,IACQ15C,EAAMxlI,KAAKwuL,cAAc2E,mBAAmBv+K,EAAOi/K,GAC5C,MAAPruD,GACAxlI,KAAKiuL,gBAAgBtpL,KAAK6gI,GAC1BxlI,KAAKkuL,cAAcvpL,KAAKkvL,GAExBO,GAAiB,GAGjBp0L,KAAKiuL,gBAAgBtpL,KAAK,KAElC,CACA,MAAOk3F,IACH77F,KAAKiuL,gBAAgBtpL,KAAK,KAC9B,CACA,MAGJ,KAAK,MACD,IAKIywL,EALAC,GAAWr1L,KAAK8xL,qBAAqB32H,GAC5BA,EAAGu2H,aACMv2H,EAAGy2H,aACrBiC,EAAkB,GACtBrxL,EAAI,EAEJ,GACI4yL,EAAKj6H,EAAGmlG,WACJ80B,EAAK,IACLvB,GAAmB7xL,OAAOwI,aAAa4qL,IAE3C5yL,UACO4yL,GACPxgL,EAAO5U,KAAKg6J,SAASzwE,UAAU,EAAGvpF,KAAKg6J,SAASklB,YAAY,MAAQ,GACxE,IACQ15C,EAAMxlI,KAAKwuL,cAAc2E,mBAAmBv+K,EAAOi/K,GACvD,GAAW,MAAPruD,EAAa,CACbxlI,KAAKguL,sBAAsBrpL,KAAK6gI,GAChCxlI,KAAKkuL,cAAcvpL,KAAKkvL,GAExB,IAAIz7B,GAAO1tG,EAAoC9P,GAAGyG,SAAU,OAASg0I,GAAW,KAChFzC,EAAgBK,SAAW1tF,EAAuCntD,MAAMq4C,SAAS,IAAK2nE,GAAMA,GAAMA,GACtG,MAEIp4J,KAAKguL,sBAAsBrpL,KAAK,KAExC,CACA,MAAO4vK,IACHv0K,KAAKguL,sBAAsBrpL,KAAK,KACpC,CACA,MAEJ,KAAK,MACD,MACJ,KAAK,MACD,MACJ,KAAK,MACDgG,EAAO,GACPnI,EAAI,EAEJ,GACIsyL,GAAK35H,EAAGmlG,WACJw0B,GAAK,IACLnqL,GAAQ3I,OAAOwI,aAAasqL,KAEhCtyL,UACOsyL,IACA35H,EAAGu2H,aACHv2H,EAAGu2H,aADd,IAEI73E,GAAQ1+C,EAAGu2H,aACD,QAAV73E,KACAA,IAAS,GAETnvD,EAAoC9P,GAAG3lC,WAAWtK,EAAM,KACxD2qL,EAGAhB,EAAS3vL,KAAKgG,GAElB0pL,EAAa1vL,KAAKk1G,IACdnvD,EAAoC9P,GAAGqgD,UAAUs5F,EAAa5pL,KAC9D4pL,EAAY5pL,GAAMkvG,MAAQA,IAE9B,MAEJ,KAAK,MAGD,IAAIi7E,GAFJnqL,EAAO,GACPnI,EAAI,EAEJ,GACIsyL,GAAK35H,EAAGmlG,WACJw0B,GAAK,IACLnqL,GAAQ3I,OAAOwI,aAAasqL,KAEhCtyL,UACOsyL,IACXR,EAAS3vL,KAAK,MAAQgG,GACtB,MAEJ,KAAK,MAED,IAAI+rF,GAAS,IAAI70F,MAAM,GACvB,IAAKW,EAAI,EAAGA,EAAI,EAAGA,IACfk0F,GAAOl0F,GAAK24D,EAAGE,aAEf3Q,EAAoC9P,GAAGqgD,UAAUs5F,EAAa5pL,KAC9D4pL,EAAY5pL,GAAM4qL,WAAav4F,EAA0ChkD,SAAS72C,QAAQu0F,GAAO,IAAKA,GAAO,IAAKA,GAAO,KAE7H,MAEJ,KAAK,MACD,IAAIz8C,GAAM,IAAIp4C,MAAM,GACpB,IAAKW,EAAI,EAAGA,EAAI,EAAGA,IACfy3C,GAAIz3C,GAAK24D,EAAGE,aAEhB,MAGJ,QACIF,EAAGq6H,aAAcvB,EAAgB,GACjC,MAGCD,CACb,CAEA74H,EAAGn0B,QACC2rJ,GAAwB,GACxB3yL,KAAKuxL,aAAaqB,GAgBtB,IALA,IAAIa,GAAWnuL,KAAK8Z,GAAK,IACrBmwK,GAAmBvvL,KAAW,OAAI,GAAKyzL,GAAW,GAAKA,GACvDlD,GAAgBvwL,KAAKsvL,8BAA8B71I,EAAYsjG,EAAWwyC,IAC1EmE,GAAgB,GAChBpD,GAAiC,EAAhB50E,EACZ+zE,GAAc,EAAGA,GAAca,KAAkBb,GAAa,CACnE,IAAIjrL,GAAIi1C,EAAWsjG,EAAU0yC,KAC7BjrL,GAAE8iG,WAAWipF,GAAcd,KAC3BiE,GAAc/uL,KAAKH,GACvB,CAIA,IAAIixL,GAAe,GACfnwE,GAAS56D,EAAoC9P,GAAGW,UAAUsxI,GAC9D,MAAOvnE,GAAO9pE,WAAY,CACtB,IAAI9vC,GAAO45G,GAAO5pE,QACdg6I,GAAiB,GACrB,IAAKlzL,EAAI,EAAGA,EAAIkJ,GAAKspL,WAAWryL,OAAQH,IAAK,CACzC,IAAImzL,GAAQjqL,GAAKupL,gBAAgBzyL,GAC7BwpL,GAAayJ,GAAa9yL,OAC1BizL,GAASlrI,EAAoC9P,GAAGW,UAAU7vC,GAAKspL,WAAWxyL,IAC9E,MAAOozL,GAAOp6I,WAAY,CACtB,IAAIq6I,GAAgBD,GAAOl6I,QAC3B+5I,GAAa9wL,KAAsB,EAAhBkxL,IACnBJ,GAAa9wL,KAAsB,EAAhBkxL,GAAoB,GACvCJ,GAAa9wL,KAAsB,EAAhBkxL,GAAoB,EAC3C,CACA,IAAIpI,GAAQ,IAAI3I,EAChB2I,GAAMzB,WAAaA,GACnByB,GAAMxB,WAAyC,EAA5BvgL,GAAKspL,WAAWxyL,GAAGG,OACtC8qL,GAAMvB,cAAgByJ,GACtBD,GAAe/wL,KAAK8oL,GACxB,CACA/hL,GAAK8hL,UAAYkI,EACrB,CAGA,IAAII,GAAY,IAAIprI,EAAoC9P,GAAGm7I,MACvDC,GAAe,GACfrC,GAAY,IAAIzO,EACpByO,GAAUhpL,KAAO,OACjBgpL,GAAUzoG,OAAS,KACnByoG,GAAU95E,OAAS,EACnB85E,GAAUnG,UAAY,KACtB,IAAIyI,IAAgB,EAGpB,IAFAH,GAAUnxL,KAAKgvL,IACfqC,GAAarxL,KAAKgvL,IACbnxL,EAAI,EAAGA,EAAI6xL,EAAa1xL,OAAQH,IAAK,CAClCq3G,GAAQw6E,EAAa7xL,GACzB,GAAIq3G,IAASo8E,GAAc,CAEvB,MAAOp8E,IAASi8E,GAAUI,OAAOr8E,OAASi8E,GAAU15F,MAAQ,EACxD05F,GAAUpxL,MAEduxL,GAAep8E,EACnB,CACA,GAAInvD,EAAoC9P,GAAG3lC,WAAWq/K,EAAS9xL,GAAI,OAAQ,CACvE,IAAI2zL,GAAQ,IAAIjR,EAChBiR,GAAMxrL,KAAO+/C,EAAoC9P,GAAGq+C,cAAcq7F,EAAS9xL,GAAI,MAAO,IACtF2zL,GAAMjrG,OAAS4qG,GAAUI,OACzBC,GAAMjrG,OAAOi6D,SAASxgJ,KAAKwxL,IAC3BA,GAAMt8E,MAAQo8E,GAAep8E,GAC7Bs8E,GAAM3I,UAAY,KAClBsI,GAAUnxL,KAAKwxL,GACnB,MAEI5B,EAAYD,EAAS9xL,IAAIq3G,MAAQo8E,GAAep8E,GAChD06E,EAAYD,EAAS9xL,IAAI0oF,OAAS4qG,GAAUI,OAC5C3B,EAAYD,EAAS9xL,IAAI0oF,OAAOi6D,SAASxgJ,KAAK4vL,EAAYD,EAAS9xL,KACnEszL,GAAUnxL,KAAK4vL,EAAYD,EAAS9xL,IAE5C,CACA,IAAK6xL,EAAa1xL,OAAQ,CACtB,IAAIyzL,GAAS1rI,EAAoC9P,GAAGW,UAAUsxI,GAC9D,MAAOuJ,GAAO56I,WAAY,CAClB9vC,GAAO0qL,GAAO16I,QAClBi4I,GAAUxuC,SAASxgJ,KAAK+G,IACxBA,GAAKw/E,OAASyoG,EAClB,CACJ,CACA,GAAIS,EAAgB,CAMhB,IADA,IAAIiC,GAAmB,GACdC,GAAe,EAAGA,GAAehG,KAAkBgG,GACxDD,GAAiB1xL,KAAK2xL,IAE1B,IAAInF,GAAWnxL,KAAK0wL,yBAAyBgD,GAAe2C,GAAkB9G,IAG1ElD,GAAW,IAAIxqL,MAAM6xL,GAAc/wL,QAEnC4zL,IADA9G,GAAc,EACL/kI,EAAoC9P,GAAGW,UAAUm4I,KAC9D,MAAO6C,GAAO/6I,WAAY,CAClBh3C,GAAI+xL,GAAO76I,QAAf,IACI86I,GAAU,IAAIx5F,EAA0CkI,8BAA8B1gG,GAAE+iG,eAAgB/iG,GAAE6iG,aAAcrK,EAA0C6C,SAAS19F,OAAOqC,GAAEqhG,GAAIrhG,GAAEshG,IAAKqrF,GAAS1B,KAC5MpD,GAASoD,IAAe+G,KACtB/G,EACN,CACAzvL,KAAK6tL,MAAQ7I,EAAKwH,cAAcH,GAAUoJ,GAC9C,MACIz1L,KAAK6tL,MAAQ7I,EAAK7iL,OAAOuxL,GAAe+B,IAE5Cz1L,KAAK6sL,QAAUmJ,GACfh2L,KAAK6tL,MAAMjB,WAAWoJ,IACtBh2L,KAAK6tL,MAAMd,iBACX/sL,KAAK8gH,QAAS,EACd9gH,KAAKyuL,gBAAiB,CAC1B,EAEAgI,eAAgB,SAAUjE,EAAU3F,EAAS6J,EAAWC,GACpD,IAAIr7I,EAASoP,EAAoC9P,GAAGW,UAAUsxI,GAC9D,MAAOvxI,EAAOE,WAAY,CACtB,IAAI9vC,EAAO4vC,EAAOI,QACdk7I,EAASlrL,EAAKwpL,SAClBl1L,KAAKy2L,eAAejE,EAAU9mL,EAAKy5I,SAAUyxC,EAAQ55F,EAA0ChkD,SAASuvD,WAAW78F,EAAK6pL,WAAYoB,IACpI,IAAIxxE,EAASz6D,EAAoC9P,GAAGW,UAAU7vC,EAAK8hL,WACnE,MAAOroE,EAAO3pE,WAGV,IAFA,IAAIiyI,EAAQtoE,EAAOzpE,QACf2tC,EAAMokG,EAAMzB,WAAayB,EAAMxB,WAC1BzpL,EAAIirL,EAAMzB,WAAYxpL,EAAI6mF,EAAK7mF,IAAK,CACzC,IAAI6gJ,EAAOmvC,EAAShwL,GACpB6gJ,EAAK77C,aAAaxK,EAA0ChkD,SAASuvD,WAAW86C,EAAK97C,eAAgBvK,EAA0ChkD,SAASuvD,WAAW78F,EAAK6pL,WAAYoB,KACpLnE,EAAShwL,GAAK6gJ,CAClB,CAER,CACJ,EAKAwzC,cAAe,SAAU50J,GACrB,IAAI60J,EAAc95F,EAA0ChkD,SAAS72C,OAAO8/B,EAAcw3F,YAAYlrB,cAAetsE,EAAcw3F,YAAYp2F,cAAepB,EAAcw3F,YAAYjrB,eACpLuoF,EAAa/5F,EAA0ChkD,SAASsqD,gBAAgBwzF,EAAa70J,EAAc+0J,8BAC3Gh2D,EAAchkC,EAA0ChkD,SAASsqD,gBAAgBrhE,EAAcg1J,kBAAmBh1J,EAAc+0J,8BAChIE,EAAiBl2D,EAAYr+H,UAAY,EAAK,EAAIq6F,EAA0ChkD,SAASC,IAAI89I,EAAY/1D,IAAgB+1D,EAAWp0L,SAAWq+H,EAAYr+H,UACvKw0L,EAAuB7xL,KAAKC,IAAI,EAAG2xL,GACvCC,EAAuB7xL,KAAKqxC,KAAKwgJ,GACjC,IAAIC,EAAkB,EAKlBC,EAAiB,EACrB,GAAIp1J,EAAcq1J,4BAA8B,EAAG,CAC/C,IAAIC,EAAcv6F,EAA0ChkD,SAASsqD,gBAAgBwzF,EAAa70J,EAAcu1J,+BAA+B70L,SAAWs/B,EAAcq1J,4BACxKF,EAAkB9xL,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,EAAG,EAAKgtG,EAAct1J,EAAcq1J,4BAA+B,MAC1GH,GAAyB,EAAIC,EAM7B,IAAIK,EAAcz6F,EAA0ChkD,SAASsqD,gBAAgBrhE,EAAcu1J,8BAA+Bv1J,EAAcg1J,mBAC5IS,EAAc16F,EAA0ChkD,SAASsqD,gBAAgBrhE,EAAcu1J,8BAA+BV,GAC9Ha,EAAqB36F,EAA0ChkD,SAAS72C,QAAQu1L,EAAY3sJ,GAAI2sJ,EAAY1zL,GAAI0zL,EAAYlhJ,GAChImhJ,EAAmBvvF,YACnBnmE,EAAc21J,sBAAsBD,GACpC,IAAIE,EAAW76F,EAA0ChkD,SAASsqD,gBAAgBrhE,EAAcg1J,kBAAmBH,GAC/GgB,EAAoBL,EAAY90L,SAChCL,GAAK06F,EAA0ChkD,SAASC,IAAI4+I,EAAUJ,IAAgBK,EAAoBA,GAC9G,GAAIx1L,EAAI,EAAG,CAIP,IAAIy1L,EAAkB/6F,EAA0ChkD,SAASuvD,WAAWtmE,EAAcg1J,kBAAmBj6F,EAA0ChkD,SAAS6vD,eAAe4uF,EAAan1L,IAGhM/C,EAAIy9F,EAA0ChkD,SAASsqD,gBAAgBy0F,EAAiBjB,GAAan0L,SAMrGq1L,GAHIh7F,EAA0ChkD,SAASsqD,gBAAgBy0F,EAAiB91J,EAAcg1J,mBAAmBt0L,SAG3G,YACds1L,EAAiBh2J,EAAcq1J,6BAA+Bh1L,EAAI,IAAM2/B,EAAcq1J,4BAA8BU,GACpHE,EAAcj2J,EAAcq1J,6BAA+Bh1L,EAAI,IAAM2/B,EAAcq1J,4BAA8BU,GACrH,GAAIz4L,EAAI04L,EAAgB,CAEpB,IAAIE,EAAgB,EACpB,GAAID,EAAc,EAAG,CAIjB,IAAIE,EAAY9yL,KAAKo8D,IAAI,GAAK,EAAIw2H,GAAc,GAChDA,EAAc,EACdC,EAAgB,EAAIC,CACxB,CAIA,IAAI53H,EAAIl7D,KAAKC,IAAI,EAAG2yL,GACpBb,EAAiB/xL,KAAKC,IAAI4yL,GAAgB54L,EAAIihE,IAAMy3H,EAAiBz3H,IACrE,IAAI43F,EAAO1tG,EAAoC9P,GAAGyG,SAAU,OAASg2I,GACrEp1J,EAAco2J,kBAAkB9yF,EAAuCntD,MAAMq4C,SAAS,IAAK2nE,EAAMA,EAAMA,IAGvGg/B,GAAmBC,CACvB,CACJ,CACJ,CACAp1J,EAAcq2J,wBAAwB/yF,EAAuCntD,MAAMq4C,SAAS,IAAK/lC,EAAoC9P,GAAGyG,SAAUpf,EAAcs2J,0BAA0B93L,EAAI02L,GAAwBzsI,EAAoC9P,GAAGyG,SAAUpf,EAAcs2J,0BAA0Bz4L,EAAIq3L,GAAwBzsI,EAAoC9P,GAAGyG,SAAUpf,EAAcs2J,0BAA0B72L,EAAIy1L,KACxal1J,EAAcu2J,yBAAyBjzF,EAAuCntD,MAAMq4C,SAAS,IAAK/lC,EAAoC9P,GAAGyG,SAAUpf,EAAcw2J,2BAA2Bh4L,EAAI22L,GAAmB1sI,EAAoC9P,GAAGyG,SAAUpf,EAAcw2J,2BAA2B34L,EAAIs3L,GAAmB1sI,EAAoC9P,GAAGyG,SAAUpf,EAAcw2J,2BAA2B/2L,EAAI01L,IACta,EAEAzmJ,OAAQ,SAAU1O,EAAexgB,GAC7B,GAAKzhB,KAAKyuL,eAAV,CAGIzuL,KAAK8gH,SAAW9gH,KAAK0pK,UACrB1pK,KAAK8oL,UAET,IAAIyB,EAAWtoJ,EAAcw3F,YACzBnnB,EAAStyG,KAAK6tL,MAAMzB,eAAe90I,OACnCohJ,EAAY,EACZ14L,KAAK6tL,MAAMzB,eAAej+J,OAAS,IACnCuqK,EAAY,EAAI14L,KAAK6tL,MAAMzB,eAAej+J,QAE9C8T,EAAcs9G,UAAUviD,EAA0C6H,SAAS+H,eAAe5P,EAA0C6H,SAAS+H,eAAe5P,EAA0C6H,SAASmM,YAAYhU,EAA0ChkD,SAAS72C,QAAQmwG,EAAOvnE,GAAIunE,EAAOtuG,GAAIsuG,EAAO97D,IAAKwmD,EAA0C6H,SAASmL,SAAS0oF,EAAWA,EAAWA,IAAanO,IACvZ,IAAIzqD,EAAY9iC,EAA0C6H,SAAS+H,eAAe3qE,EAAcw3F,YAAax3F,EAAcy3F,YACvHl1H,EAAIs7H,EAAU/mF,UAAUikD,EAA0ChkD,SAASsvD,aAC3Ep+E,EAAc5kB,KAAKqxC,KAAKmpF,EAAUnyB,UAAYmyB,EAAUnyB,UAAYmyB,EAAU9xB,UAAY8xB,EAAU9xB,UAAY8xB,EAAUzxB,UAAYyxB,EAAUzxB,WAAaqqF,EAC7Jv7I,EAAO34C,EAAE7B,SACTwrB,EAASjE,EAMT2/I,EAAiBn/G,EAAoC9P,GAAGyG,SAASpf,EAAcmE,QAC/E0jI,EAAM7nI,EAAcg7F,iBAAiBtvB,UACrCo8D,EAAM9nI,EAAcg7F,iBAAiB3uB,UACrC07D,EAAM/nI,EAAcg7F,iBAAiBxuB,UACrC/7C,EAAIptD,KAAKkjD,IAAIuhH,GAAO5sH,EAAO6sH,EAC3BC,EAAiBH,EAAMp3G,EAAKm3G,EAC5BK,EAAkB/7I,EAAS87I,EAC/B,KAAIC,EAAiB,IAArB,CAOA,IAAIyuB,EAAqB12J,EAAc22J,oBACnCC,EAAsB52J,EAAcs2J,0BACpCO,EAAiB72J,EAAcw2J,2BAanC,GAZI9S,EAA2C/sF,SAASmgG,cAAc5gK,2BAClEn4B,KAAK62L,cAAc50J,GACdjiC,KAAK0uL,mBACNzsJ,EAAc+2J,sBAAsBzzF,EAAuCntD,MAAMq4C,SAAS,IAAK,GAAI,GAAI,OAI3GxuD,EAAco2J,kBAAkB9yF,EAAuC1tD,OAAOq5C,aAC9EjvD,EAAcq2J,wBAAwB/yF,EAAuC1tD,OAAOq5C,aACpFjvD,EAAcu2J,yBAAyBjzF,EAAuC1tD,OAAOq5C,aACrFjvD,EAAc+2J,sBAAsBzzF,EAAuC1tD,OAAOC,cAEpE,MAAd93C,KAAK6tL,MAAT,CAGAtI,EAAkDjrD,YAAY2G,sBAAwB,GACtF,IAAI7kC,EAAQp8F,KAAK8tL,eAAenrL,OAEhC,GADA3C,KAAK6tL,MAAMZ,aAAahrJ,GACpBm6D,EAAQ,EACR,IAAK,IAAI55F,EAAI,EAAGA,EAAIxC,KAAK8tL,eAAenrL,OAAQH,IAAK,CACjD,GAAIxC,KAAK8tL,eAAetrL,GAAGwjL,UAAW,CAClC,IAAIroF,EAAM39F,KAAK8tL,eAAetrL,GAC9Bm7F,EAAIo1F,QAAU/yL,KAAK6S,MACnB8qF,EAAIq1F,QAAUhzL,KAAK6S,MACnB7S,KAAK8tL,eAAetrL,GAAKm7F,CAC7B,CAGA17D,EAAcg3J,YAAYj5L,KAAK8tL,eAAetrL,GAAIxC,KAAK+tL,cAAcvrL,GAAIxC,KAAKguL,sBAAsBxrL,GAAIxC,KAAKiuL,gBAAgBzrL,GAAIif,GAClG,MAA3BzhB,KAAK6tL,MAAMz8D,aACXm0D,EAAkDjrD,YAAY/hH,IAAI0pB,EAAejiC,KAAK6tL,MAAMz8D,aAAaA,aAAcpxH,KAAK6tL,MAAM/rC,YAAYplC,OAAkC,MAAzB18G,KAAK+tL,cAAcvrL,GAAcxC,KAAK+tL,cAAcvrL,GAAGo3H,UAAY,KAAMn4G,GAAS,EAAO,IAGhP8jK,EAAkDjrD,YAAY/hH,IAAI0pB,EAAejiC,KAAK6tL,MAAMlB,oBAAoBv7D,aAAcpxH,KAAK6tL,MAAM/rC,YAAYplC,OAAkC,MAAzB18G,KAAK+tL,cAAcvrL,GAAcxC,KAAK+tL,cAAcvrL,GAAGo3H,UAAY,KAAMn4G,GAAS,EAAO,IAE3PwgB,EAAcuqI,UACdxsK,KAAK6tL,MAAMT,WAAWnrJ,EAAez/B,EACzC,KACG,CACHy/B,EAAcuqI,UACd,IAAShqK,EAAI,EAAGA,EAAIxC,KAAK+tL,cAAcprL,OAAQH,IACd,MAAzBxC,KAAK+tL,cAAcvrL,KACnBy/B,EAAci3J,gBAAgBl5L,KAAK+tL,cAAcvrL,IAClB,MAA3BxC,KAAK6tL,MAAMz8D,aACXm0D,EAAkDjrD,YAAY/hH,IAAI0pB,EAAejiC,KAAK6tL,MAAMz8D,aAAaA,aAAcpxH,KAAK6tL,MAAM/rC,YAAYplC,OAAkC,MAAzB18G,KAAK+tL,cAAcvrL,GAAcxC,KAAK+tL,cAAcvrL,GAAGo3H,UAAY,KAAMn4G,GAAS,EAAO,IAGhP8jK,EAAkDjrD,YAAY/hH,IAAI0pB,EAAejiC,KAAK6tL,MAAMlB,oBAAoBv7D,aAAcpxH,KAAK6tL,MAAM/rC,YAAYplC,OAAkC,MAAzB18G,KAAK+tL,cAAcvrL,GAAcxC,KAAK+tL,cAAcvrL,GAAGo3H,UAAY,KAAMn4G,GAAS,EAAO,KAG/PwgB,EAAcuqI,UACdxsK,KAAK6tL,MAAMT,WAAWnrJ,EAAez/B,EAE7C,CACAy/B,EAAcs9G,UAAUgrC,GACxBtoJ,EAAco2J,kBAAkBM,GAChC12J,EAAcq2J,wBAAwBO,GACtC52J,EAAcu2J,yBAAyBM,GACvC72J,EAAc+2J,sBAAsBzzF,EAAuC1tD,OAAOq5C,YA5ClF,CArBA,CA/BA,CAiGJ,EAEA8/B,QAAS,WACa,MAAdhxH,KAAK6tL,QACL7tL,KAAK6tL,MAAM78D,UACXhxH,KAAK6tL,MAAQ,MAEjB,IAAIvyI,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKmuL,gBAC/G,MAAO7yI,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb8pF,EAAMxlI,KAAKmuL,cAAclvL,GAClB,MAAPumI,GACAA,EAAIxU,SAEZ,CACAtmE,EAAoC9P,GAAG24H,UAAUvzK,KAAKmuL,eACtD1kB,EAAS0lB,oBAAoBnvL,KAAK+tL,eAClCtkB,EAAS0lB,oBAAoBnvL,KAAKguL,uBAClCvkB,EAAS0lB,oBAAoBnvL,KAAKiuL,iBAClCjuL,KAAK8tL,eAAenrL,OAAS,EAC7B3C,KAAK8gH,QAAS,CAClB,GAQJ,SAASokE,IACLllL,KAAK65G,OAAS,EACd75G,KAAKmlJ,SAAW,GAChBnlJ,KAAK2gB,SAAU,EACf3gB,KAAKwtL,UAAY,GACjBxtL,KAAKg1L,WAAa,GAClBh1L,KAAKi1L,gBAAkB,EAC3B,EAZA,EAAGtqI,EAA4CzS,cAAc,WAAY,CAACuxH,EAAU4lB,EAAW,OAc/F,IAAI8J,EAAc,CAAC,EAOnB,SAASlU,EAAgBxiK,GACrBziB,KAAKo5L,SAAW,KAChBp5L,KAAKq5L,WAAY,EACjBr5L,KAAKs5L,aAAe,KACpBxT,EAA2CnF,QAAQngL,KAAKR,MACxDA,KAAKo5L,SAAW32K,CACpB,EAXA,EAAGkoC,EAA4CzS,cAAc,aAAc,CAACgtI,EAAYiU,EAAa,OAarG,IAAII,EAAmB,CACnBrY,eAAgB,SAAUC,GACtBnhL,KAAKs5L,aAAenY,CACxB,EAEA7F,qBAAsB,WAClB,OAAO,CACX,EAEA0F,aAAc,WACV,IAAIsM,EAAQ,GAIZ,OAHIttL,KAAKo5L,SAASxvB,SAASijB,QAAQlqL,OAAS,GAAmD,MAA9C3C,KAAKo5L,SAASxvB,SAASijB,QAAQ,GAAG1nC,UAC/EnlJ,KAAKw5L,YAAYlM,EAAOttL,KAAKo5L,SAASxvB,SAASijB,QAAQ,GAAG1nC,UAEvDmoC,CACX,EACAkM,YAAa,SAAUlM,EAAOnoC,GAC1B,IAAI7pG,EAASoP,EAAoC9P,GAAGW,UAAU4pG,GAC9D,MAAO7pG,EAAOE,WAAY,CACtB,IAAI4vC,EAAQ9vC,EAAOI,QACfhwC,EAAO,IAAIo6K,EAA2CjF,gBAC1Dn1K,EAAK6V,SAAS6pE,EAAMzgF,MACpBe,EAAKshB,QAAQo+D,GACb1/E,EAAK+1K,YAAYr2F,EAAMzqE,SACvBjV,EAAKs3K,iBAAiBt4H,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,OAC1F0L,EAAK82K,gBAAgB93H,EAAoC9P,GAAGxlC,KAAK,sBAAuBpV,OACxFstL,EAAM3oL,KAAK+G,GACX1L,KAAKw5L,YAAY9tL,EAAKu4K,YAAa74F,EAAM+5D,SAC7C,CACJ,EACAs0C,oBAAqB,SAAU/tL,EAAMqQ,GACjC,IAAIqvE,EAAQ1/E,EAAKohB,UACJ,MAATs+D,IACAA,EAAMzqE,QAAU5E,EAExB,EACA29K,qBAAsB,SAAUhuL,GAC5B,GAAyB,MAArB1L,KAAKs5L,aAAsB,CAC3B,IAAIluG,EAAQ1/E,EAAKohB,UACbs5H,EAAU,CAAC,EACfA,EAAQ,QAAUh7D,EAAMzgF,KACxBy7I,EAAQ,WAAah7D,EAAMmqG,WAAWxqJ,EAAErhC,WACxC08I,EAAQ,WAAah7D,EAAMmqG,WAAWvxL,EAAE0F,WACxC08I,EAAQ,WAAah7D,EAAMmqG,WAAW/+I,EAAE9sC,WACxC1J,KAAKs5L,aAAaK,YAAYvzC,EAClC,CACJ,EAEA66B,mBAAoB,SAAUv1K,GAC1B,OAAOo6K,EAA2CnF,QAAQrgL,UAAU2gL,mBAAmBzgL,KAAKR,KAAM0L,EACtG,IAGJ,EAAGi/C,EAA4CzS,cAAc,kBAAmB,CAAC+sI,EAAiBsU,EAAkBzT,EAA2CnF,SAGxJ,EAED;;;iCAIA,CAAEhiL,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCq6L,gBAAiB,IAAM,EACvBhiB,MAAO,IAAM,IAEf,IAAIltH,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FnW,EAA4C,uBAA0C,qBACtF+iH,EAA4D,uCAA0D,qCACtHsiC,EAAoD,+BAAkD,6BACtGC,EAAuD,kCAAqD,gCAC5G9jG,EAAyC,oBAAuC,kBAChFy1D,EAA+C,0BAA6C,wBAC5FsuC,EAAyD,oCAAuD,kCAmBzI,SAASniB,EAAMp4G,EAAUjmB,EAAU1mC,EAAOmnL,EAAWh6I,GACjDhgD,KAAKi6L,UAAY,KACjBj6L,KAAKk6L,YAAclkG,EAAuCn+C,OAAOC,YACjE93C,KAAKm6L,OAAS,EACdn6L,KAAKo6L,cAAgB,EACrBp6L,KAAKi6L,UAAYz6H,EACjBx/D,KAAKo6L,cAAgB7gJ,EACrBv5C,KAAKk6L,YAAcrnL,EACnB7S,KAAKm6L,OAASn6I,CAClB,CAMA43H,EAAMyiB,cAAgB7lJ,EAA0CqwD,SAAS1iG,OAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC7Hy1K,EAAM0iB,YAAa,EAEnB,IAAIC,EAAS,CACT30D,QAAS,WAAc,EAIvB40D,mBAAoB,WAChB,OAAsB,MAAlBx6L,KAAKi6L,UACGj6L,KAAKi6L,UAAU1tL,GAAK,EAAIvM,KAAKi6L,UAAU/5L,GAAMF,KAAKm6L,OAEnD,CAEf,EAEA/1C,OAAQ,SAAUniH,EAAexgB,EAASg5K,GAGtC,IAAIC,EAA0BlmJ,EAA0CqwD,SAAS+H,eAAep4D,EAA0CqwD,SAASiL,WAAW27C,EAA6CjzG,YAAYqpD,iBAAiB7hG,KAAKi6L,UAAUvnI,IAAKle,EAA0CqwD,SAAS+H,eAAep4D,EAA0CqwD,SAAS6K,WAAW+7C,EAA6CjzG,YAAYqpD,iBAAiB7hG,KAAKi6L,UAAUz3L,IAAKgyC,EAA0CqwD,SAASiL,WAAW27C,EAA6CjzG,YAAYqpD,iBAAiB7hG,KAAKi6L,UAAUtnI,UACjnB+nI,EAA0BlmJ,EAA0CqwD,SAAS+H,eAAe8tF,EAAyB9iB,EAAMyiB,eAE3H,IAAIlkB,EAAc3hI,EAA0CqwD,SAAS+H,eAAep4D,EAA0CqwD,SAAS+H,eAAe8tF,EAAyBlmJ,EAA0CqwD,SAASmM,YAAYypF,IAAex4J,EAAcw3F,aACvQxtE,EAAIjsD,KAAKi6L,UAAUx3L,GAAKs3L,EAAuDz8J,oBAAoBu9G,WAAa76I,KAAKi6L,UAAU33L,GAC/HqhD,EAAI,EACJsI,EAAI,IACJtI,GAAK,GAETsI,EAAI3mD,KAAKkjD,IAAIyD,GAAK,IAClBA,EAA+D,KAA1DA,EAAIvB,EAAoC9P,GAAGyG,SAAS4K,IAAYtI,EACrE,IAAI9wC,EAAQmjF,EAAuC59C,MAAMs4C,eAAehmC,EAAoC9P,GAAGyG,SAAoB,IAAV5/B,GAAiBzhB,KAAKk6L,aAM/IjuI,EAAIw/F,EAA6CjzG,YAAYqpD,iBAAiB51C,GAE9E,IADA,IAAIoB,EAAIpB,EACCzpD,EAAI,EAAGA,EAAI,EAAGA,IACnB6qD,IAAMpB,EAAIoB,EAAIrtD,KAAKi6L,UAAU/5L,EAAIoF,KAAKixC,IAAI8W,KAAO,EAAIrtD,KAAKi6L,UAAU/5L,EAAIoF,KAAKgxC,IAAI+W,IAErFusI,EAAgBe,YAAY14J,EAAejiC,KAAKi6L,UAAU1tL,EAAIvM,KAAKm6L,OAAQn6L,KAAKi6L,UAAU/5L,EAAGmtD,EAAGx6C,EAAOsjK,EAC3G,GAQJ,SAASyjB,IAAoB,EAL7B,EAAGjvI,EAA4CzS,cAAc,QAAS,CAAC0/H,EAAO2iB,EAAQ,OAatFX,EAAgBgB,wBAA0B,SAAU34J,EAAeu+F,EAAepuE,EAAcquE,EAAkB5tH,EAAOsjK,EAAax1C,GAC5F,MAAlCi5D,EAAgBiB,iBAChBjB,EAAgBiB,eAAiB,IAAIhB,EAAkD5/D,eAE/C,MAAxC2/D,EAAgBkB,uBAChBlB,EAAgBkB,qBAAuBlB,EAAgBmB,0BAA0B,MAErF,IAAIC,EAAa/4J,EAAcw3F,YAC/Bx3F,EAAcs9G,UAAU42B,GACxBl0I,EAAc6T,GAAGumE,WAAWk7C,EAA0Dj7C,MAAMC,aAAcq9E,EAAgBkB,qBAAqB1pE,cAC/InvF,EAAc6T,GAAGumE,WAAWk7C,EAA0Dj7C,MAAMY,qBAAsB,MAClH28E,EAAkD5/D,cAAc1hH,IAAI0pB,EAAeu+F,EAAepuE,EAAcquE,EAAkB5tH,EAAO,EAAGmoL,EAAYr6D,GACxJ1+F,EAAc6T,GAAGo/E,WAAWqiC,EAA0Dj7C,MAAMoxB,WAAY,EAAGksD,EAAgBkB,qBAAqB1+F,OAChJn6D,EAAcs9G,UAAUy7C,EAC5B,EAGApB,EAAgBe,YAAc,SAAU14J,EAAeu+F,EAAepuE,EAAcquE,EAAkB5tH,EAAOsjK,GACnE,MAAlCyjB,EAAgBiB,iBAChBjB,EAAgBiB,eAAiB,IAAIhB,EAAkD5/D,eAE9B,MAAzD2/D,EAAgBqB,wCAChBrB,EAAgBqB,sCAAwCrB,EAAgBsB,2CAA2C,MAEvH,IAAIF,EAAa/4J,EAAcw3F,YAC/Bx3F,EAAcs9G,UAAU42B,GACxBl0I,EAAc6T,GAAGumE,WAAWk7C,EAA0Dj7C,MAAMC,aAAcq9E,EAAgBqB,sCAAsC7pE,cAChKnvF,EAAc6T,GAAGumE,WAAWk7C,EAA0Dj7C,MAAMY,qBAAsB,MAClH28E,EAAkD5/D,cAAc1hH,IAAI0pB,EAAeu+F,EAAepuE,EAAcquE,EAAkB5tH,EAAO,EAAGmoL,EAAYxmJ,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG,IACxN8/B,EAAc6T,GAAGo/E,WAAWqiC,EAA0Dj7C,MAAMoxB,WAAY,EAAGksD,EAAgBqB,sCAAsC7+F,MAAQ,GACzKn6D,EAAcs9G,UAAUy7C,EAC5B,EAEApB,EAAgBmB,0BAA4B,SAAUzJ,GAOlD,IANA,IAAI6J,EAAK,IAAIrB,EAAqDtpE,qBAAqB8gE,GACnF91E,EAAQ2/E,EAAG5pE,OACXxrF,EAAQ,EAIHvjC,EAAI,EAAGA,EAAI8uL,EAAc,IAAK9uL,EACnCg5G,EAAMz1E,KAAWyO,EAA0CwE,SAAS72C,OAAO,EAAIK,EAAI8uL,EAAc,IAAM,EAAG,GAE9G,IAAS9uL,EAAI,EAAGA,EAAI8uL,EAAc,IAAK9uL,EACnCg5G,EAAMz1E,KAAWyO,EAA0CwE,SAAS72C,OAAO,EAAIK,EAAI8uL,EAAc,IAAO,IAAM,EAAG,GAGrH,OADA6J,EAAG3pE,SACI2pE,CACX,EAEAvB,EAAgBsB,2CAA6C,SAAU5J,GACnE,IAAI6J,EAAK,IAAIrB,EAAqDtpE,qBAAqB8gE,GACnF91E,EAAQ2/E,EAAG5pE,OAGf/V,EAAM,GAAKhnE,EAA0CwE,SAAS72C,OAAO,KAAO,EAAG,GAC/E,IAAK,IAAIK,EAAI,EAAGA,EAAI8uL,IAAe9uL,EAC/Bg5G,EAAMh5G,GAAKgyC,EAA0CwE,SAAS72C,OAAO,EAAIK,EAAI8uL,EAAa,EAAG,GAGjG,OADA6J,EAAG3pE,SACI2pE,CACX,EAEA,IAAIC,EAAmB,CAAC,GAExB,EAAGzwI,EAA4CzS,cAAc,kBAAmB,CAAC0hJ,EAAiBwB,EAAkB,MAG7G,EAED;;;uCAIA,CAAEz8L,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCikK,WAAY,IAAM,EAClB63B,aAAc,IAAM,IAEtB,IAAI3wI,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FnW,EAA4C,uBAA0C,qBACtFo+E,EAAyC,oBAAuC,kBAChFixC,EAAyC,mBAAsC,yBAC/Ey3B,EAA4C,sBAAyC,4BACrFC,EAAyC,mBAAsC,yBAC/EC,EAAmD,6BAAgD,mCAkB5H,SAASh4B,IACLxjK,KAAKy7L,UAAY,GACjBz7L,KAAKkmL,aAAe,KACpBlmL,KAAK07L,gBAAkB,EACvB17L,KAAK27L,cAAgB/oE,EAAuC/6E,OAAOk6C,aACnE/xF,KAAK47L,YAAc,GACnB57L,KAAK67L,YAAc,GACnBh4B,EAAuCF,MAAMnjK,KAAKR,KACtD,CAEA,IAAI87L,EAAc,CACdC,WAAY,WACR,OAAO/7L,KAAKy7L,SAChB,EAEAO,WAAY,SAAUp7L,GAElB,OADAZ,KAAKy7L,UAAY76L,EACVA,CACX,EAEAupK,aAAc,WAIV,OAHyB,MAArBnqK,KAAKkmL,eACLlmL,KAAKkmL,aAAe,IAAImV,EAAar7L,OAElCA,KAAKkmL,YAChB,EAEAtgD,QAAS,WACL,IAAItqF,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKy7L,WACnE,MAAOngJ,EAAOE,WAAY,CACtB,IAAIw2H,EAAQ12H,EAAOI,QACM,MAArBs2H,EAAM0F,cACN1F,EAAM0F,YAAY9xC,UAClBosC,EAAM2F,UAAU,MAExB,CACJ,EAEA1R,qBAAsB,SAAUlV,GAC5BA,EAAUG,sBAAsB,eAAgBlxJ,KAAKi8L,mBAAmBvyL,YACxEqnJ,EAAUG,sBAAsB,aAAclxJ,KAAK27L,cAAcvhJ,OACrE,EAEA6hJ,iBAAkB,WACd,OAAOj8L,KAAK07L,eAChB,EAEAQ,iBAAkB,SAAUt7L,GAKxB,OAJIZ,KAAK07L,kBAAoB96L,IACzBZ,KAAKqiB,UACLriB,KAAK07L,gBAAkB96L,GAEpBA,CACX,EAEAu7L,eAAgB,WACZ,OAAOn8L,KAAK27L,aAChB,EAEAS,eAAgB,SAAUx7L,GAKtB,OAJIZ,KAAK27L,gBAAkB/6L,IACvBZ,KAAKqiB,UACLriB,KAAK27L,cAAgB/6L,GAElBA,CACX,EAEAqkK,UAAW,WACP,IAAIG,EAAY,IAAIvjK,MAAM,GAO1B,OANAujK,EAAU,GAAKplK,KAAK07L,gBACpBt2B,EAAU,GAAKplK,KAAKwgB,YAAY/f,EAAI,IACpC2kK,EAAU,GAAKplK,KAAKwgB,YAAY1gB,EAAI,IACpCslK,EAAU,GAAKplK,KAAKwgB,YAAY9e,EAAI,IACpC0jK,EAAU,GAAKplK,KAAKwgB,YAAYjU,EAAI,IACpC64J,EAAU,GAAKplK,KAAKwhB,cACb4jJ,CACX,EAEAF,cAAe,WACX,MAAO,CAAC,eAAgB,YAAa,cAAe,aAAc,cAAe,UACrF,EAEAC,UAAW,SAAUC,GACjB,GAAyB,IAArBA,EAAUziK,OAAc,CACxB3C,KAAK07L,gBAAkBt2B,EAAU,GACjCplK,KAAK0hB,YAAY0jJ,EAAU,IAC3B,IAAIvyJ,EAAQ+/G,EAAuCx6E,MAAMq4C,SAAS/lC,EAAoC9P,GAAGyG,SAAyB,IAAf+jH,EAAU,IAAY16G,EAAoC9P,GAAGyG,SAAyB,IAAf+jH,EAAU,IAAY16G,EAAoC9P,GAAGyG,SAAyB,IAAf+jH,EAAU,IAAY16G,EAAoC9P,GAAGyG,SAAyB,IAAf+jH,EAAU,KAClVplK,KAAKygB,UAAU5N,EACnB,CACJ,EAEAqzJ,kBAAmB,SAAUx6J,GACzB1L,KAAKk8L,iBAAiB/xG,WAAWz+E,EAAK43G,WAAWC,aAAa,gBAAgBC,YAC9ExjH,KAAKo8L,eAAexpE,EAAuCx6E,MAAMC,KAAK3sC,EAAK43G,WAAWC,aAAa,cAAcC,WACrH,EAEAztE,KAAM,SAAU9T,EAAexgB,EAAS8iJ,GACpC,IAAIwT,EAAW91I,EAAcw3F,YAC7Bx3F,EAAcs9G,UAAUt9G,EAAc2zI,4BACtC,IAAIt6H,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKy7L,WACnE,MAAOngJ,EAAOE,WAAY,CACtB,IAAIw2H,EAAQ12H,EAAOI,QACfs2H,EAAMW,gBACmB,MAArBX,EAAM0F,aACN1F,EAAM2F,UAAU,IAAI4jB,EAAuC3jB,MAAM5F,EAAM6F,eAAgB,IAAK73K,KAAKwgB,YAAa,EAAGyhB,EAAc8zI,sBAEnI/D,EAAM0F,YAAYtzB,OAAOniH,EAAexgB,EAAUzhB,KAAKwhB,cAAe,IAAIgzB,EAA0CwE,UAE5H,CAEA,OADA/W,EAAcs9G,UAAUw4B,IACjB,CACX,EAEAxQ,kBAAmB,SAAUC,GACzBxnK,KAAK47L,YAAcp0B,EAAGG,cAAgBj9G,EAAoC9P,GAAGvU,OAAO,eAAgBmhI,EAAGI,gBAAiB5nK,KAAKiH,GAAGyC,YACtH1J,KAAK47L,YAAYryG,UAAU,EAAGvpF,KAAK47L,YAAY1c,YAAY,OAArE,IACI/0K,EAAO,IAAII,KAAK,CAACvK,KAAK67L,cAC1Br0B,EAAGK,QAAQ7nK,KAAK47L,YAAazxL,GAC7B05J,EAAuCF,MAAMrjK,UAAUinK,kBAAkB/mK,KAAKR,KAAMwnK,EACxF,EAEAiB,SAAU,SAAUC,EAAS1O,GACzB,IAAIrvC,EAAQ3qH,KAERmK,EAAOu+J,EAAQE,YAAY5O,GAC3B92C,EAAM,IAAI11G,WACd01G,EAAIx1G,UAAY,SAAU0pJ,GACtBzsC,EAAMkxE,YAAcnxI,EAAoC9P,GAAGw7G,SAASlzC,EAAIx/G,OAAQ1B,QAChF2oH,EAAM01D,WAAW11D,EAAMkxE,YAC3B,EACA34E,EAAIl0E,WAAW7kC,EACnB,EAEAk2K,WAAY,SAAUgc,GAClB,IAAI50L,EAAO40L,EAASlzG,MAAM,MAC1BnpF,KAAKy7L,UAAU94L,OAAS,EACxB,IAAK,IAAIH,EAAI,EAAGA,EAAIiF,EAAK9E,OAAQH,GAAK,EAAG,CACrC,IAAI+7K,EAAQ/7K,EACRg8K,EAAQh8K,EAAI,EAChB,GAAIiF,EAAKjF,GAAGG,OAAS,EAAG,CACpB,IAAIqvK,EAAQ,IAAIwpB,EAAiDrd,eACjE,GAAgC,MAA5B12K,EAAKjF,GAAG+mF,UAAU,EAAG,GACrBg1F,IACAC,IACAxM,EAAMrnK,KAAO+/C,EAAoC9P,GAAG+gD,KAAKl0F,EAAKjF,IAC9DA,QAEC,IAAgC,MAA5BiF,EAAKjF,GAAG+mF,UAAU,EAAG,GAGzB,CACD/mF,GAAK,EACL,QACJ,CALIwvK,EAAMrnK,KAAOlD,EAAKjF,GAAG+mF,UAAU,EAAG,EAKtC,CACAyoF,EAAMyD,UAAY,GAClBzD,EAAMU,WAAa,EACnBV,EAAMW,eAAgB,EACtBX,EAAM2B,aAAc,EACpB3B,EAAMG,mBAAqB,EAC3BH,EAAMhyH,MAAQ,EACdgyH,EAAMS,mBAAqB,EAC3BT,EAAM3hB,WAAa,GACnB2hB,EAAMU,WAAa,EACnBV,EAAMe,QAAQtrK,EAAK82K,GAAQ92K,EAAK+2K,GAAQ,cACxCx+K,KAAKy7L,UAAU92L,KAAKqtK,EACxB,MAEIxvK,GAAK,CAEb,CACJ,GAQJ,SAAS64L,EAAa54K,GAClBziB,KAAKo5L,SAAW,KAChBp5L,KAAKq5L,WAAY,EACjBr5L,KAAKs5L,aAAe,KACpBgC,EAA0C3a,QAAQngL,KAAKR,MACvDA,KAAKo5L,SAAW32K,CACpB,EAXA,EAAGkoC,EAA4CzS,cAAc,aAAc,CAACsrH,EAAYs4B,EAAaj4B,EAAuCF,QAa5I,IAAI24B,EAAgB,CAChBpb,eAAgB,SAAUC,GACtBnhL,KAAKs5L,aAAenY,CACxB,EAEA7F,qBAAsB,WAClB,OAAO,CACX,EAEA0F,aAAc,WACV,IAAIsM,EAAQ,GACRhyI,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKo5L,SAAS2C,cAC5E,MAAOzgJ,EAAOE,WAAY,CACtB,IAAIw2H,EAAQ12H,EAAOI,QACfhwC,EAAO,IAAI4vL,EAA0Cza,gBACzDn1K,EAAK6V,SAASywJ,EAAMrnK,MACpBe,EAAKshB,QAAQglJ,GACbtmK,EAAK+1K,YAAYzP,EAAMW,eACvBjnK,EAAKs3K,iBAAiBt4H,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,OAC1F0L,EAAK82K,gBAAgB93H,EAAoC9P,GAAGxlC,KAAK,sBAAuBpV,OACxFstL,EAAM3oL,KAAK+G,EACf,CACA,OAAO4hL,CACX,EACAmM,oBAAqB,SAAU/tL,EAAMqQ,GACjC,IAAIi2J,EAAQtmK,EAAKohB,UACJ,MAATklJ,IACAA,EAAMW,cAAgB52J,EAE9B,EACA29K,qBAAsB,SAAUhuL,GAC5B,GAAyB,MAArB1L,KAAKs5L,aAAsB,CAC3B,IAAItnB,EAAQtmK,EAAKohB,UACbs5H,EAAU,CAAC,EACfA,EAAQ,QAAU4rB,EAAMrnK,KACxBy7I,EAAQ,kBAAoB4rB,EAAMxxC,cAAc92H,WAChD08I,EAAQ,aAAe4rB,EAAMS,mBAAmB/oK,WAChD08I,EAAQ,eAAiB4rB,EAAMI,YAAY1oK,WAC3C08I,EAAQ,gBAAkB4rB,EAAM5/G,aAAa1oD,WAC7C08I,EAAQ,qBAAuB4rB,EAAMK,yBAAyB3oK,WAC9D08I,EAAQ,yBAA2B4rB,EAAMQ,oBAAoB9oK,WAC7D08I,EAAQ,SAAW4rB,EAAMC,MAAMvoK,WAC/B08I,EAAQ,qBAAuB4rB,EAAMO,gBAAgB7oK,WACrD08I,EAAQ,yBAA2B4rB,EAAMM,mBAAmB5oK,WAC5D1J,KAAKs5L,aAAaK,YAAYvzC,EAClC,CACJ,EAEA66B,mBAAoB,SAAUv1K,GAC1B,OAAO4vL,EAA0C3a,QAAQrgL,UAAU2gL,mBAAmBzgL,KAAKR,KAAM0L,EACrG,IAGJ,EAAGi/C,EAA4CzS,cAAc,eAAgB,CAACmjJ,EAAciB,EAAehB,EAA0C3a,SAG9I,EAED;;;2CAIA,CAAEhiL,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC4+K,eAAgB,IAAM,EACtBl/J,oBAAqB,IAAM,IAE7B,IAAIyrC,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1F4xI,EAAwD,mCAAsD,iCAC9Gv/F,EAA4C,uBAA0C,qBACtFytE,EAAyC,oBAAuC,kBAChF+xB,EAAyD,oCAAuD,kCAgBrIv9K,EAAsB,CACtBw9K,cAAe,EACfC,QAAS,EACTC,WAAY,EACZC,QAAS,GASb,SAASze,IACLn+K,KAAKyzK,kBAAmB,EAGxBzzK,KAAKmgE,YAAc,EACnBngE,KAAK68L,aAAe,EAGpB78L,KAAK88L,mBAAoB,EACzB98L,KAAKy1K,UAAY,GACjBz1K,KAAK+8L,sBAAuB,EAC5B/8L,KAAKmyK,mBAAqB,EAC1BnyK,KAAKqwJ,WAAa,OAClBrwJ,KAAK0yK,WAAa,SAClB1yK,KAAKsvG,QAAU,EACftvG,KAAKuvG,MAAQ,EACbvvG,KAAKwvG,KAAO,EACZxvG,KAAKggD,MAAQ,EACbhgD,KAAKutC,KAAO,EACZvtC,KAAKgxG,YAAc,IAAIhU,EAA0ChkD,SAGjEh5C,KAAK++C,IAAM,EACX/+C,KAAKk/C,IAAM,EACXl/C,KAAKi/F,SAAW,EAGhBj/F,KAAK0zK,iBAAmB,EACxB1zK,KAAKg9L,iBAAmB,EAGxBh9L,KAAKi9L,oBAAsBxyB,EAAuC5yH,OAAOC,YACzE93C,KAAK2zK,aAAc,EACnB3zK,KAAK2yK,eAAgB,EACrB3yK,KAAKk9L,gBAAiB,EAEtBl9L,KAAKwgI,cAAgB,EACrBxgI,KAAKyyK,mBAAqB,EAC1BzyK,KAAKoyD,aAAe,EACpBpyD,KAAKoyK,YAAc,EACnBpyK,KAAKwyK,oBAAsB,EAC3BxyK,KAAKqyK,yBAA2B,EAChCryK,KAAKsyK,mBAAqB,EAC1BtyK,KAAKuyK,gBAAkB,EACvBvyK,KAAKiyK,MAAQ,EAEbjyK,KAAKm9L,OAAS,KACdn9L,KAAKi6L,UAAY,IAAIsC,EAAsDziI,IAC3E95D,KAAKm2K,YAAc,IAAIn5E,EAA0C6H,SACjE7kG,KAAKm2K,YAAcn5E,EAA0C6H,SAAS6H,cAC1E,EAxDA,EAAG/hD,EAA4CzS,cAAc,sBAAuBj5B,IACpF,EAAG0rC,EAA4C4jC,cAAc,sBAAuBtvE,GAyDpFk/J,EAAeM,kBAAoB,SAAUloF,GACzC,GAAoB,KAAhBA,EAAK5zF,OACL,OAAO,EAGX,IADA,IAAIy6L,EAAW,EACN56L,EAAI,EAAGA,EAAI,GAAIA,IACpB,OAAQ+zF,EAAK1K,OAAOrpF,EAAG,IACnB,IAAK,IACD46L,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MAGZ,OAAQA,EAAW,IAAI1zL,aAAe6sF,EAAK8mG,OAAO,IAAI3zL,UAC1D,EAEAy0K,EAAemf,iBAAmB,SAAUvzG,EAAK54E,GAC7C,IAAIswD,EAAMsoB,EAAIwzG,cAAcpsL,GAI5B,OAHIswD,EAAI9+D,OAASwO,EAAO,IACpBswD,EAAMA,EAAI8nB,UAAU,EAAGp4E,EAAO,GAAK,IAAMswD,EAAIoqB,OAAO16E,EAAO,EAAG,IAE3DswD,CACX,EAEA08G,EAAeqf,gBAAkB,SAAUzzG,EAAK6F,EAAME,GAClD,IAAI2tG,EAAW1zG,EAAI2zG,QAAQ5tG,GACvBgO,EAAQ2/F,EAASxkL,QAAQ,MACd,IAAX6kF,IACAA,EAAQ2/F,EAAS96L,OACjB86L,GAAY,MAEhB,IAAIl/F,EAAMk/F,EAAS96L,OAASm7F,EAAQ,EAChCvwE,EAAO,WAEX,OADAkwK,EAAWlwK,EAAKs+D,OAAO,EAAG+D,EAAOkO,GAAS2/F,EAAWlwK,EAAKs+D,OAAO,EAAGiE,EAAQyO,GACrEk/F,CACX,EAEAtf,EAAewf,mBAAqB,SAAUpnG,GAC1C,GAAoB,KAAhBA,EAAK5zF,OACL,MAAO,IAGX,IADA,IAAIy6L,EAAW,EACN56L,EAAI,EAAGA,EAAI,GAAIA,IACpB,OAAQ+zF,EAAK/zF,IACT,IAAK,IACD46L,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MACJ,IAAK,IACDA,GAAY,EACZ,MAGZ,OAASA,EAAW,EACxB,EAEA,IAAIQ,EAAkB,CAClB9lB,wBAAyB,WACrB,OAAO93K,KAAKi9L,mBAChB,EAEArpB,wBAAyB,SAAUhzK,GAK/B,OAJIA,IAAUZ,KAAKi9L,sBACfj9L,KAAKi9L,oBAAsBr8L,EAC3BZ,KAAKm9L,OAAS,MAEXv8L,CACX,EAEA82K,UAAW,WACP,OAAO13K,KAAKm9L,MAChB,EAEAxlB,UAAW,SAAU/2K,GAEjB,OADAZ,KAAKm9L,OAASv8L,EACPA,CACX,EAEAi9L,eAAgB,WACZ,OAAO79L,KAAK2K,IAChB,EAEAmzL,iBAAkB,SAAU9jC,GAAY,EAExClJ,UAAW,SAAUC,GACjBA,EAAUE,mBAAmB,kBAC7BF,EAAUG,sBAAsB,OAAQlxJ,KAAK2K,MAC7ComJ,EAAUG,sBAAsB,SAAUlxJ,KAAKkrF,QAC/C6lE,EAAUG,sBAAsB,qBAAsBvmG,EAA4C4kG,MAAM6B,MAAM,sBAAuBpxJ,KAAKmyK,qBAC1IphB,EAAUG,sBAAsB,YAAavmG,EAA4C4kG,MAAM6B,MAAM,kBAAmBpxJ,KAAKy1K,YAC7H1kB,EAAUG,sBAAsB,uBAAwBlxJ,KAAK+8L,qBAAqBrzL,YAClFqnJ,EAAUG,sBAAsB,aAAclxJ,KAAKqwJ,WAAW3mJ,YAC9DqnJ,EAAUG,sBAAsB,aAAclxJ,KAAK0yK,WAAWhpK,YAC9DqnJ,EAAUG,sBAAsB,UAAWlxJ,KAAKsvG,QAAQ5lG,YACxDqnJ,EAAUG,sBAAsB,QAASlxJ,KAAKuvG,MAAM7lG,YACpDqnJ,EAAUG,sBAAsB,OAAQlxJ,KAAKwvG,KAAK9lG,YAClDqnJ,EAAUG,sBAAsB,QAASlxJ,KAAKggD,MAAMt2C,YACpDqnJ,EAAUG,sBAAsB,OAAQlxJ,KAAKutC,KAAK7jC,YAClDqnJ,EAAUG,sBAAsB,cAAelxJ,KAAKgxG,YAAYtnG,YAC3D1J,KAAKmyK,qBACNphB,EAAUG,sBAAsB,MAAOlxJ,KAAK++C,IAAIr1C,YAChDqnJ,EAAUG,sBAAsB,MAAOlxJ,KAAKk/C,IAAIx1C,YAChDqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAKi/F,SAASv1F,aAE9DqnJ,EAAUG,sBAAsB,mBAAoBlxJ,KAAK0zK,iBAAiBhqK,YAC1EqnJ,EAAUG,sBAAsB,mBAAoBlxJ,KAAKg9L,iBAAiBtzL,YAC1EqnJ,EAAUG,sBAAsB,sBAAuBlxJ,KAAK83K,0BAA0B19H,QACtF22G,EAAUG,sBAAsB,cAAelxJ,KAAK2zK,YAAYjqK,YAChEqnJ,EAAUG,sBAAsB,gBAAiBlxJ,KAAK2yK,cAAcjpK,YACpEqnJ,EAAUG,sBAAsB,iBAAkBlxJ,KAAKk9L,eAAexzL,YACtC,IAA5B1J,KAAKmyK,qBACLphB,EAAUG,sBAAsB,gBAAiBlxJ,KAAKwgI,cAAc92H,YACpEqnJ,EAAUG,sBAAsB,qBAAsBvmG,EAA4C4kG,MAAM6B,MAAM,WAAYpxJ,KAAKyyK,qBAC/H1hB,EAAUG,sBAAsB,eAAgBlxJ,KAAKoyD,aAAa1oD,YAClEqnJ,EAAUG,sBAAsB,cAAelxJ,KAAKoyK,YAAY1oK,YAChEqnJ,EAAUG,sBAAsB,sBAAuBlxJ,KAAKwyK,oBAAoB9oK,YAChFqnJ,EAAUG,sBAAsB,2BAA4BlxJ,KAAKqyK,yBAAyB3oK,YAC1FqnJ,EAAUG,sBAAsB,qBAAsBlxJ,KAAKsyK,mBAAmB5oK,YAC9EqnJ,EAAUG,sBAAsB,kBAAmBlxJ,KAAKuyK,gBAAgB7oK,YACxEqnJ,EAAUG,sBAAsB,QAASlxJ,KAAKiyK,MAAMvoK,aAExDqnJ,EAAUgB,kBACd,EAEAmU,kBAAmB,SAAUx6J,GACzB1L,KAAK2K,KAAOe,EAAK43G,WAAWC,aAAa,QAAQC,UACjDxjH,KAAKkrF,OAASx/E,EAAK43G,WAAWC,aAAa,UAAUC,UACrDxjH,KAAKmyK,mBAAqBxnH,EAA4C4kG,MAAM5nJ,MAAM,sBAAuB+D,EAAK43G,WAAWC,aAAa,sBAAsBC,WAC5JxjH,KAAKy1K,UAAY9qH,EAA4C4kG,MAAM5nJ,MAAM,kBAAmB+D,EAAK43G,WAAWC,aAAa,aAAaC,WACtIxjH,KAAK+8L,qBAAuBryI,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,wBAAwBC,WAChIxjH,KAAKqwJ,WAAalmE,WAAWz+E,EAAK43G,WAAWC,aAAa,cAAcC,WACxExjH,KAAK0yK,WAAavoF,WAAWz+E,EAAK43G,WAAWC,aAAa,cAAcC,WACxExjH,KAAKsvG,QAAUnlB,WAAWz+E,EAAK43G,WAAWC,aAAa,WAAWC,WAClExjH,KAAKuvG,MAAQplB,WAAWz+E,EAAK43G,WAAWC,aAAa,SAASC,WAC9DxjH,KAAKwvG,KAAOrlB,WAAWz+E,EAAK43G,WAAWC,aAAa,QAAQC,WAC5DxjH,KAAKggD,MAAQmqC,WAAWz+E,EAAK43G,WAAWC,aAAa,SAASC,WAC9DxjH,KAAKutC,KAAO48C,WAAWz+E,EAAK43G,WAAWC,aAAa,QAAQC,WAC5DxjH,KAAKgxG,YAAchU,EAA0ChkD,SAASrxC,MAAM+D,EAAK43G,WAAWC,aAAa,eAAeC,WACnHxjH,KAAKmyK,qBACNnyK,KAAK++C,IAAMorC,WAAWz+E,EAAK43G,WAAWC,aAAa,OAAOC,WAC1DxjH,KAAKk/C,IAAMirC,WAAWz+E,EAAK43G,WAAWC,aAAa,OAAOC,WAC1DxjH,KAAKi/F,SAAW9U,WAAWz+E,EAAK43G,WAAWC,aAAa,YAAYC,YAExExjH,KAAK0zK,iBAAmBvpF,WAAWz+E,EAAK43G,WAAWC,aAAa,oBAAoBC,WACpFxjH,KAAKg9L,iBAAmB7yG,WAAWz+E,EAAK43G,WAAWC,aAAa,oBAAoBC,WACpFxjH,KAAK4zK,wBAAwBnJ,EAAuCryH,MAAMC,KAAK3sC,EAAK43G,WAAWC,aAAa,uBAAuBC,YACnIxjH,KAAK2zK,YAAcjpH,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,eAAeC,WACxD,MAAlD93G,EAAK43G,WAAWC,aAAa,oBAC7BvjH,KAAKk9L,eAAiBxyI,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,kBAAkBC,YAExF,IAA5BxjH,KAAKmyK,qBACLnyK,KAAK2yK,cAAgBjoH,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,iBAAiBC,WAClHxjH,KAAKwgI,cAAgBr2C,WAAWz+E,EAAK43G,WAAWC,aAAa,iBAAiBC,WAC9ExjH,KAAKyyK,mBAAqB9nH,EAA4C4kG,MAAM5nJ,MAAM,WAAY+D,EAAK43G,WAAWC,aAAa,sBAAsBC,WACjJxjH,KAAKoyD,aAAe+3B,WAAWz+E,EAAK43G,WAAWC,aAAa,gBAAgBC,WAC5ExjH,KAAKoyK,YAAcjoF,WAAWz+E,EAAK43G,WAAWC,aAAa,eAAeC,WAC1ExjH,KAAKwyK,oBAAsBroF,WAAWz+E,EAAK43G,WAAWC,aAAa,uBAAuBC,WAC1FxjH,KAAKqyK,yBAA2BloF,WAAWz+E,EAAK43G,WAAWC,aAAa,4BAA4BC,WACpGxjH,KAAKsyK,mBAAqBnoF,WAAWz+E,EAAK43G,WAAWC,aAAa,sBAAsBC,WACxFxjH,KAAKuyK,gBAAkBpoF,WAAWz+E,EAAK43G,WAAWC,aAAa,mBAAmBC,WAClFxjH,KAAKiyK,MAAQ9nF,WAAWz+E,EAAK43G,WAAWC,aAAa,SAASC,WAEtE,EAEAuvD,QAAS,SAAUwL,EAAOC,EAAOuf,GAC7B/9L,KAAKiyK,MAAQuqB,EAAuDl/J,oBAAoB40I,qBAAqBqM,EAAM1yF,OAAO,GAAI,KAC9H7rF,KAAKoyD,aAAe+3B,WAAW,KAAOq0F,EAAM3yF,OAAO,GAAI,IACvD7rF,KAAKoyK,YAAcjoF,WAAWq0F,EAAM3yF,OAAO,EAAG,IAC9C7rF,KAAKqyK,yBAA2BloF,WAAWq0F,EAAM3yF,OAAO,GAAI,IAC5D7rF,KAAKwyK,oBAAsBroF,WAAWq0F,EAAM3yF,OAAO,GAAI,IACvD,IAAImyG,EAAO7zG,WAAWq0F,EAAM3yF,OAAO,GAAI,KACvC7rF,KAAKsyK,mBAAqBnoF,WAAWq0F,EAAM3yF,OAAO,GAAI,IACtD7rF,KAAKuyK,gBAAyB,IAAPyrB,EACvB,IAAIpiF,EAAQ,MAAQoiF,GAAmB,EAAV14L,KAAK8Z,IAClCpf,KAAKwgI,cAAgBl7H,KAAKo8D,IAAKk6C,EAAOA,EAAQmiF,EAAS,EAAI,GAC3D/9L,KAAKyyK,mBAAqB,CAC9B,EAEAsN,MAAO,WAUH,IAAIxB,EAAQ,IAAI7zH,EAAoC9P,GAAG24C,cACvDgrF,EAAM5qF,OAAO,sBACb4qF,EAAM5qF,OAAO6oG,EAAuDl/J,oBAAoB2gK,oBAAoBj+L,KAAKiyK,QACjHsM,EAAM5qF,OAAO,KACb4qF,EAAM5qF,OAAO3zF,KAAKwgI,cAAc+8D,cAAc,IAC9Chf,EAAM5qF,OAAO,aACb4qF,EAAM5qF,OAAOwqF,EAAemf,iBAAiBt9L,KAAKuyK,gBAAiB,IACnEgM,EAAM5qF,OAAO,SACb4qF,EAAM5qF,OAAOwqF,EAAewf,mBAAmBpf,EAAM70K,aACrD60K,EAAM3qF,WAAW,IACjB,IAAI4qF,EAAQ,IAAI9zH,EAAoC9P,GAAG24C,cAWvD,OAVAirF,EAAM7qF,OAAO,YACb6qF,EAAM7qF,OAAOwqF,EAAeqf,gBAAgBx9L,KAAKoyK,YAAa,EAAG,GAAK,KACtEoM,EAAM7qF,OAAOwqF,EAAeqf,gBAAgBx9L,KAAKqyK,yBAA0B,EAAG,GAAK,KACnFmM,EAAM7qF,QAAQwqF,EAAeqf,gBAAgBx9L,KAAKoyD,aAAc,EAAG,GAAK,KAAKm3B,UAAU,IACvFi1F,EAAM7qF,OAAOwqF,EAAeqf,gBAAgBx9L,KAAKwyK,oBAAqB,EAAG,GAAK,KAC9EgM,EAAM7qF,OAAOwqF,EAAeqf,gBAAgBx9L,KAAKsyK,mBAAoB,EAAG,GAAK,KAC7EkM,EAAM7qF,OAAOwqF,EAAemf,iBAAiBt9L,KAAKuyK,gBAAkB,OAAQ,IAC5EiM,EAAM7qF,OAAO,SACb6qF,EAAM7qF,OAAOwqF,EAAewf,mBAAmBnf,EAAM90K,aACrD80K,EAAM5qF,WAAW,IACV2qF,EAAM70K,WAAa80K,EAAM90K,UACpC,EAEAmuK,aAAc,WAaV,OAZA73K,KAAKi6L,UAAU1tL,EAAIvM,KAAKwgI,cACxBxgI,KAAKi6L,UAAU/5L,EAAIF,KAAKoyD,aACxBpyD,KAAKi6L,UAAUz3L,EAAIxC,KAAKoyK,YACxBpyK,KAAKi6L,UAAUvnI,EAAI1yD,KAAKwyK,oBACxBxyK,KAAKi6L,UAAUtnI,MAAQ3yD,KAAKqyK,yBAC5BryK,KAAKi6L,UAAUj/H,UAAYh7D,KAAKiyK,MAC3BjyK,KAAKuyK,gBAGNvyK,KAAKi6L,UAAUx3L,EAAIzC,KAAKuyK,gBAFxBvyK,KAAKi6L,UAAUx3L,EAAI85L,EAAsDh+I,IAAI+gB,4BAA4Bt/D,KAAKi6L,UAAU1tL,GAI5HvM,KAAKi6L,UAAU33L,EAAItC,KAAKiyK,MAASjyK,KAAKsyK,mBAAqBtyK,KAAKi6L,UAAUx3L,EACnEzC,KAAKi6L,SAChB,EAEAiE,aAAc,SAAUt9L,GAEpB,OADAZ,KAAKi6L,UAAYr5L,EACVA,CACX,EAEAq1K,aAAc,SAAUh0I,GACpB,OAAQjiC,KAAKmyK,oBACT,KAAK,EACDnyK,KAAKm+L,gBAAgBl8J,GACrB,MACJ,KAAK,EACDjiC,KAAKo+L,sBAAsBn8J,GAC3B,MACJ,KAAK,EACDjiC,KAAKq+L,wBAAwBp8J,GAC7B,MACJ,QACI,MAEZ,EAEAi0I,uBAAwB,WACpB,OAAQl2K,KAAKmyK,oBACT,KAAK,EACL,KAAK,EACL,KAAK,EACD,OAAO,EACX,QACI,OAAO,EAEnB,EAEAmsB,yBAA0B,SAAUr8J,GAAiB,EAErDm8J,sBAAuB,SAAUn8J,GACzBjiC,KAAK88L,oBACL98L,KAAK++C,IAAMy9I,EAAuDl/J,oBAAoByhH,eAAehgD,UACrG/+F,KAAKk/C,IAAMs9I,EAAuDl/J,oBAAoByhH,eAAelgD,UACrG7+F,KAAKi/F,SAAWu9F,EAAuDl/J,oBAAoBihK,gBAE/Fv+L,KAAKm2K,YAAcn5E,EAA0C6H,SAAS6H,eACtE1sG,KAAKm2K,YAAY9jE,UAAUryG,KAAKgxG,aAChC,IAAIwtF,EAAc,EAAIv8J,EAAc8zI,oBAAuB/1K,KAAKggD,MAAQhgD,KAAKqwJ,WAI7E,GAHArwJ,KAAKm2K,YAAYn2H,MAAMg9C,EAA0ChkD,SAAS72C,OAAOq8L,EAAYA,EAAYA,IACzGx+L,KAAKm2K,YAAYtkE,UAAU7U,EAA0C6H,SAASwK,qBAAsBrvG,KAAKsvG,QAAU,IAAMhqG,KAAK8Z,GAAMpf,KAAKuvG,MAAQ,IAAMjqG,KAAK8Z,GAAMpf,KAAKwvG,KAAO,IAAMlqG,KAAK8Z,KACzLpf,KAAKm2K,YAAYtkE,UAAU7U,EAA0C6H,SAASiL,YAAW,GAAYxqG,KAAK8Z,KACpGpf,KAAK0zK,iBAAkB,CACzB,IAAI+qB,GAAqBjC,EAAuDl/J,oBAAoBu9G,WAAa76I,KAAKg9L,kBAAoBh9L,KAAK0zK,iBAAoBpuK,KAAK8Z,GAAK,GAAgB,EAAV9Z,KAAK8Z,IACxLpf,KAAKm2K,YAAYtkE,UAAU7U,EAA0C6H,SAAS6K,YAAY+uF,GAC9F,CACAz+L,KAAKm2K,YAAY9jE,UAAUrV,EAA0ChkD,SAAS72C,OAAO,EAAKnC,KAAKi/F,SAAWh9D,EAAc8zI,oBAAsB,EAAG,IACjJ/1K,KAAKm2K,YAAYtkE,UAAU7U,EAA0C6H,SAASiL,WAAW9vG,KAAK++C,IAAM,IAAMz5C,KAAK8Z,KAC/Gpf,KAAKm2K,YAAYtkE,UAAU7U,EAA0C6H,SAAS+K,aAAa5vG,KAAKk/C,IAAM,KAAO,IAAM55C,KAAK8Z,IAC5H,EAEAi/K,wBAAyB,SAAUp8J,GAAiB,EAEpDk8J,gBAAiB,SAAUl8J,GACvB,IAAIm1H,EAAKp3J,KAAK63K,eACV/5E,EAAQy+F,EAAsDh+I,IAAIghB,uBAAuBi9H,EAAuDl/J,oBAAoBu9G,WAAYuc,GACpLp3J,KAAKmgE,YAAci3F,EAAGn8F,gBACtB,IAAIyjI,EAAoBnC,EAAsDh+I,IAAI2hB,qBAAqBk3F,EAAIp3J,KAAKmgE,YAAc,MAC1Hw+H,EAAY3hG,EAA0ChkD,SAASsqD,gBAAgBxF,EAAO4gG,GACtFvlJ,EAAK2kD,EAAM7U,OACf9vC,EAAGivD,YACHu2F,EAAUv2F,YACCtK,EAAMn7F,SAAjB,IACIunB,EAAc,EAClB,OAAQlqB,KAAKyyK,oBACT,KAAK,EACDvoJ,EAAc,EACd,MACJ,KAAK,EACDA,EAAc,EAAI,UAClB,MACJ,KAAK,EACDA,EAAe,EAAI,UAAa,GAChC,MACJ,KAAK,EACDA,EAAc,SACd,MACJ,KAAK,EACDA,EAAc,IACd,MACJ,KAAK,EACDA,EAAc,SACd,MACJ,KAAK,EACDA,EAAc,iBACd,MACJ,KAAK,EACDA,EAAc,iBACd,MACJ,KAAK,EACDA,EAAc,iBACd,MACJ,KAAK,GACDA,EAAc,EACd,MACJ,QACI,MAERA,GAAe,EAAI+X,EAAc8zI,oBACjC,IAAI6oB,EAAO5hG,EAA0C6H,SAASmI,SAAShQ,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GAAIw8L,EAAWxlJ,GACtJylJ,EAAK7tF,SACL/wG,KAAKm2K,YAAcn5E,EAA0C6H,SAAS6H,eACtE1sG,KAAKm2K,YAAY9jE,UAAUryG,KAAKgxG,aAChC,IAAIwtF,EAAc,EAAIv8J,EAAc8zI,oBAAuB/1K,KAAKggD,MAAQhgD,KAAKqwJ,WAG7E,GAFArwJ,KAAKm2K,YAAYn2H,MAAMg9C,EAA0ChkD,SAAS72C,OAAOq8L,EAAYA,EAAYA,IACzGx+L,KAAKm2K,YAAYtkE,UAAU7U,EAA0C6H,SAASwK,qBAAsBrvG,KAAKsvG,QAAU,IAAMhqG,KAAK8Z,GAAMpf,KAAKuvG,MAAQ,IAAMjqG,KAAK8Z,GAAMpf,KAAKwvG,KAAO,IAAMlqG,KAAK8Z,KACnLpf,KAAK0zK,iBAAkB,CACzB,IAAI+qB,GAAqBjC,EAAuDl/J,oBAAoBu9G,WAAa76I,KAAKg9L,kBAAoBh9L,KAAK0zK,iBAAoBpuK,KAAK8Z,GAAK,GAAgB,EAAV9Z,KAAK8Z,IACxLpf,KAAKm2K,YAAYtkE,UAAU7U,EAA0C6H,SAAS6K,YAAY+uF,GAC9F,CACA3gG,EAAQd,EAA0ChkD,SAASgH,MAAM89C,EAAO5zE,GACxElqB,KAAKm2K,YAAY9jE,UAAUvU,GACvB99F,KAAKk9L,iBACLl9L,KAAKm2K,YAAcn5E,EAA0C6H,SAAS+H,eAAegyF,EAAM5+L,KAAKm2K,aAExG,IAGJ,EAAGxrH,EAA4CzS,cAAc,iBAAkB,CAACimI,EAAgByf,EAAiB,MAG1G,EAED;;;6CAIA,CAAEj/L,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCsqJ,wBAAyB,IAAM,EAC/Bg1C,cAAe,IAAM,EACrBC,YAAa,IAAM,EACnBltB,QAAS,IAAM,EACfnwI,iBAAkB,IAAM,IAE1B,IAAIipB,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FoyC,EAA4C,uBAA0C,qBACtFC,EAA4C,uBAA0C,qBACtFgsE,EAAgD,2BAA8C,yBAC9F+1B,EAAkD,6BAAgD,2BAClG3mD,EAA4D,uCAA0D,qCACtHC,EAAyD,oCAAuD,kCAChH2mD,EAAoD,+BAAkD,6BACtGC,EAAwD,mCAAsD,iCAC9G9wB,EAA0C,oBAAuC,kBACjF+wB,EAAgD,0BAA6C,wBAC7FC,EAA0D,oCAAuD,kCACjHC,EAA6C,uBAA0C,qBACvFC,EAAgD,0BAA6C,wBAC7FC,EAAwD,iCAAoD,uCAC5GC,EAA0C,mBAAsC,yBAChFC,EAA0C,mBAAsC,yBA4BzG,SAASX,IACL7+L,KAAK++C,IAAM,EACX/+C,KAAKk/C,IAAM,EACXl/C,KAAKuiD,IAAM,CACf,CAEA,IAAIk9I,EAAiB,CAAC,EAOtB,SAASX,IACL9+L,KAAK0/L,SAAU,EACf1/L,KAAKsgB,cAAe,EACpBtgB,KAAKqwJ,WAAa,OAClBrwJ,KAAKi1C,UAAY,EACrB,EAVA,EAAG0V,EAA4CzS,cAAc,gBAAiB,CAAC2mJ,EAAeY,EAAgB,OAY9G,IAAIE,EAAe,CACfC,SAAU,SAAUC,EAASC,EAAQv9I,EAAK2L,GACtC,IAAIk7B,EAAQg2G,EAA2C/4C,QAAQl9D,MAAM02G,EAAS,OAC1EvkJ,EAASoP,EAAoC9P,GAAGW,UAAU6tC,GAC9D,MAAO9tC,EAAOE,WAAY,CACtB,IAAIogE,EAAOtgE,EAAOI,QACdqkJ,EAAcr1I,EAAoC9P,GAAG+gD,KAAKigB,GAAMzyB,MAAM,KAC1E,GAAI42G,EAAYp9L,OAAS,EAAG,CACxB,IAAI84C,EAAM,IAAIojJ,EACdpjJ,EAAIyD,IAAMirC,WAAW41G,EAAY,IAC7B//L,KAAKsgB,eACLm7B,EAAIyD,KAAO,KAEfzD,EAAIsD,IAAMorC,WAAW41G,EAAY,IAC7BA,EAAYp9L,OAAS,IAAM4/C,EAC3B9G,EAAI8G,IAAM4nC,WAAW41G,EAAY,IAGjCtkJ,EAAI8G,IAAMA,EAEd9G,EAAIyS,KAAOA,EACXluD,KAAKi1C,UAAUtwC,KAAK82C,EACxB,CACJ,CACJ,EAEAukJ,eAAgB,WACZ,IAAIliG,EAAQ,IAAI+gG,EAChB/gG,EAAM/+C,IAAM,EACZ++C,EAAM5+C,IAAM,EACZ4+C,EAAMv7C,IAAM,EACZ,IAAIjH,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKi1C,WACnE,MAAOqG,EAAOE,WAAY,CACtB,IAAIC,EAAMH,EAAOI,QACjBoiD,EAAM/+C,KAAOtD,EAAIsD,IACjB++C,EAAM5+C,KAAOzD,EAAIyD,IACjB4+C,EAAMv7C,KAAO9G,EAAI8G,GACrB,CAIA,OAHAu7C,EAAM/+C,KAAO/+C,KAAKi1C,UAAUtyC,OAC5Bm7F,EAAM5+C,KAAOl/C,KAAKi1C,UAAUtyC,OAC5Bm7F,EAAMv7C,KAAOviD,KAAKi1C,UAAUtyC,OACrBm7F,CACX,GAQJ,SAAS8zE,IAAY,EALrB,EAAGjnH,EAA4CzS,cAAc,cAAe,CAAC4mJ,EAAaa,EAAc,OAOxG/tB,EAAQquB,iBAAmB,CAAC,EAC5BruB,EAAQsuB,MAAQ,KAEhBtuB,EAAQC,kBAAoB,WACH,MAAjBD,EAAQsuB,QACRtuB,EAAQsuB,MAAQlB,EAAkD3lE,QAAQC,QAAQ+lE,EAA8CzlG,WAAW18D,UAAUi9D,eAAe,aAE5K,EAEAy3E,EAAQuuB,kBAAoB,SAAUC,GAClC,IAAInkF,EAAU,KACd,GAAIvxD,EAAoC9P,GAAGqgD,UAAU22E,EAAQquB,iBAAkBG,GAC3E,OAAOxuB,EAAQquB,iBAAiBG,GAEpC,IACInkF,EAAU8iF,EAAgD5iF,eAAegpB,gBACzE45D,EAAgD5iF,eAAe+iB,YAAYkZ,EAA0D97B,MAAM6iB,WAAYljB,GACvJ,IAAInhB,EAAMx1F,KAAKwkD,MAAMs2I,EAAQ,IACzBvpJ,EAAMupJ,EAAQ,GACd7zG,EAAOjrF,SAASkL,cAAc,UAClC+/E,EAAKnmD,OAAS,GACdmmD,EAAKpmD,MAAQ,GACb,IAAIxyB,EAAM44E,EAAK+/B,WAAW,MAE1B34G,EAAIi5G,UAAUglD,EAAQsuB,MAAMl7D,aAAqB,GAANnuF,EAAkB,GAANikD,EAAW,GAAI,GAAI,EAAG,EAAG,GAAI,IACpF,IAAIqkB,EAAQ5yB,EACZwyG,EAAgD5iF,eAAekqB,cAAc+R,EAA0D97B,MAAM6iB,WAAYiZ,EAA0D97B,MAAMgqB,eAAgB8R,EAA0D97B,MAAMiqB,eACzSw4D,EAAgD5iF,eAAekqB,cAAc+R,EAA0D97B,MAAM6iB,WAAYiZ,EAA0D97B,MAAMkqB,eAAgB4R,EAA0D97B,MAAMiqB,eACzSw4D,EAAgD5iF,eAAeipB,WAAWgT,EAA0D97B,MAAM6iB,WAAY,EAAGiZ,EAA0D97B,MAAM+oB,KAAM+S,EAA0D97B,MAAM+oB,KAAM+S,EAA0D97B,MAAMgpB,cAAenmB,GACpX4/E,EAAgD5iF,eAAekqB,cAAc+R,EAA0D97B,MAAM6iB,WAAYiZ,EAA0D97B,MAAMmqB,mBAAoB2R,EAA0D97B,MAAMoqB,uBAC7Sq4D,EAAgD5iF,eAAewqB,eAAeyR,EAA0D97B,MAAM6iB,YAC9I4/D,EAAgD5iF,eAAe+iB,YAAYkZ,EAA0D97B,MAAM6iB,WAAY,MACvJyyC,EAAQquB,iBAAiBG,GAASnkF,CACtC,CACA,MAAO1nB,GAAO,CACd,OAAO0nB,CACX,EAEA,IAAIokF,EAAW,CAAC,EAOhB,SAAS5+J,IACLzhC,KAAKsgM,cAAe,EACpBtgM,KAAKugM,iCAAmC,EACxCvgM,KAAKwgM,gCAAkC,EACvCxgM,KAAKygM,oBAAsB,KAC3BzgM,KAAK0gM,mBAAqB,EAC1B1gM,KAAK2gM,kBAAoB,GACzB3gM,KAAK4gM,cAAgB,OACrB5gM,KAAK6gM,SAAW,IAAIrB,EAAwCsB,MAC5D9gM,KAAK+gM,aAAc,EACnB/gM,KAAKghM,iBAAmB,EACxBhhM,KAAK0rF,OAAQ,EACb1rF,KAAKknB,WAAa,EAClBlnB,KAAKihM,UAAY,EACjBjhM,KAAK0lB,MAAQ,GACb1lB,KAAK8qB,YAAa,EAClB9qB,KAAKkhM,gBAAiB,EACtBlhM,KAAKmhM,eAAgB,EACrBnhM,KAAKohM,iBAAmB,GACxBphM,KAAKqhM,cAAgB,IAAI56L,KAAK,YAC9BzG,KAAKshM,YAAc,IAAI76L,KAAK,cAC5BzG,KAAKuhM,mBAAqB,CAAC,EAC3BvhM,KAAKwhM,kBAAoB,CAAC,EAC1BxhM,KAAKyhM,mBAAqB,EAC1BzhM,KAAKqnB,WAAa,EAClBrnB,KAAKymB,gBAAkB,EACvBzmB,KAAK0hM,gBAAkB,EACvB1hM,KAAK2hM,gBAAkB,EACvB3hM,KAAK4hM,gBAAkB,EACvB5hM,KAAK6hM,iBAAkB,EACvB7hM,KAAK8hM,iBAAkB,EACvB9hM,KAAK+hM,iBAAkB,EACvB/hM,KAAKgiM,WAAa,EAClBhiM,KAAKiiM,aAAe,EACpBjiM,KAAKkiM,WAAa,EAClBliM,KAAKmiM,SAAW,EAChBniM,KAAKmjB,gBAAkB,QAgBvBnjB,KAAKoiM,0BAA4B,uCACjCpiM,KAAK6lB,cAAe,EACpB7lB,KAAKooB,mBAAoB,EACzBpoB,KAAK0oB,qBAAuB,EAC5B1oB,KAAKuoB,qBAAuB,EAC5BvoB,KAAKqiM,iBAAmB,EACxBriM,KAAKolB,gBAAkB,EACvBplB,KAAKsiM,YAAc,EACnBtiM,KAAKuiM,eAAiB,EACtBviM,KAAKwiM,gBAAiB,EACtBxiM,KAAKyiM,eAAiB,EACtBziM,KAAK0iM,WAAa,EAClB1iM,KAAK2iM,kBAAoB,EACzB3iM,KAAK4iM,wBAA0B,EAC/B5iM,KAAK+jB,WAAa,EAClB/jB,KAAK2qB,iBAAmB,EACxB3qB,KAAKmmB,eAAiB,EACtBnmB,KAAKwqB,YAAc,EAcnBxqB,KAAK6iM,2BAA6B,uCAClC7iM,KAAK6oB,eAAgB,EACrB7oB,KAAKgpB,mBAAoB,EACzBhpB,KAAKspB,iBAAmB,EACxBtpB,KAAKmpB,iBAAmB,EACxBnpB,KAAKioB,WAAa,EAClBjoB,KAAK8iM,mBAAqB,GAC1B9iM,KAAK+iM,oBAAsB,EAC3B/iM,KAAKkqB,YAAc,EACnBlqB,KAAK4pB,eAAiB,EACtB5pB,KAAKgjM,UAAY,GACjBhjM,KAAKijM,cAAe,EACpBjjM,KAAKq3J,SAAW,IAAI5wJ,KAAK,KAAM,EAAG,EAAG,GAAI,EAAG,GAC5CzG,KAAKkjM,OAAQ,EACbljM,KAAKmjM,YAAc,EACnB5D,EAAwC57B,MAAMnjK,KAAKR,KACvD,EAxGA,EAAG2qD,EAA4CzS,cAAc,UAAW,CAAC05H,EAASyuB,EAAU,OA0G5F5+J,EAAiB2hK,iBAAmB,KAEpC3hK,EAAiB4hK,mBAAqB,SAAU34L,GAC5C,MAAO,EACX,EAEA+2B,EAAiB6hK,gBAAkB,SAAU54L,GACzC,MAAO,EACX,EAEA+2B,EAAiB8hK,UAAY,SAAUr1I,GACnC,IAAIs1I,EAAK94I,EAAoC9P,GAAGp0C,MAChD,IACIg9L,EAAK,IAAI/8L,KAAKynD,EAClB,CACA,MAAOqmC,GACH,IACI,OAAO9yD,EAAiBgiK,gBAAgBt5G,WAAWj8B,GACvD,CACA,MAAO2tC,GACP,CACJ,CACA,OAAO2nG,CACX,EAEA/hK,EAAiBgiK,gBAAkB,SAAUC,GACrCA,EAAY,KACZA,GAAa,GAEbA,EAAY,OACZA,EAAY,MAEhB,IAAIC,EAAK,IAAIl9L,KAAK,KAAM,GAAI,IAC5B,OAAO,IAAIA,KAAKk9L,EAAG94G,UAAYngC,EAAoC9P,GAAGyG,SAAsB,GAAZqiJ,EAAiB,GAAK,GAAK,KAC/G,EAEAjiK,EAAiBmiK,qBAAuB,WACpC,GAAyC,MAArCniK,EAAiB2hK,iBAA0B,CAC3C,IAAI14L,EAAM20L,EAA8CzlG,WAAW18D,UAAUi9D,eAAe,cAC5F14D,EAAiB2hK,iBAAmBpE,EAAkD3lE,QAAQC,QAAQ5uH,EAC1G,CACA,OAAO+2B,EAAiB2hK,gBAC5B,EAEA,IAAIS,EAAoB,CACpBv/B,YAAa,WACT,MAAO,8BACX,EAEAw/B,WAAY,WACR,OAAO9jM,KAAK6gM,SAASnnC,MACzB,EAEAmT,mBAAoB,WAChB,OAAO,CACX,EAEAC,gBAAiB,WAAc,EAE/Bi3B,cAAe,WACX,IAAIt8L,EAAOg6B,EAAiB4hK,mBAAmBrjM,KAAKm7B,qBACpD,OAAY,MAAR1zB,IACAzH,KAAK0hC,WAAWj6B,GAAM,GAAO,GAAM,GACnCzH,KAAKgkM,0BACE,EAGf,EAEAtiK,WAAY,SAAUj6B,EAAMglK,EAAUC,EAAUC,GAK5C,OAJA3sK,KAAKm/K,eAAez0H,EAAoC9P,GAAGw7G,SAAS3uJ,EAAMzF,SAAS,EAAMyqK,EAAUC,EAAUC,GAC7G3sK,KAAKikM,wBAAwB,GAAI,GACjCjkM,KAAKsgM,cAAe,EACpBtgM,KAAKkjM,OAAQ,GACN,CACX,EAEAz6B,SAAU,SAAUC,EAAS1O,GACzB,IAAIrvC,EAAQ3qH,KAEZA,KAAK6gM,SAAW,IAAIrB,EAAwCsB,MAC5D,IAAI32L,EAAOu+J,EAAQE,YAAY5O,GAC/Bh6J,KAAKotK,sBAAsBjjK,GAAM,SAAU1C,GACvCkjH,EAAMk2E,SAAS1hB,eAAe13K,GAAM,GAAO,GAAM,GAK7CkjH,EAAMk2E,SAASnnC,OAAOzgJ,QAAQ0xG,EAAMk4E,6BAA+B,GACnEl4E,EAAMk2E,SAASqD,aAAav5E,EAAMk4E,4BAEtCl4E,EAAMs5E,wBAAwB,GAAI,GAC9Bt5E,EAAM5kG,mBAAqB4kG,EAAM3vF,kBACjC2vF,EAAMo5E,gBAEVp5E,EAAM21E,cAAe,EACrB31E,EAAMu4E,OAAQ,CAClB,GACJ,EAEA37B,kBAAmB,SAAUC,GACzBxnK,KAAKmkM,YAAc38B,EAAGG,cAAgBj9G,EAAoC9P,GAAGvU,OAAO,eAAgBmhI,EAAGI,gBAAiB5nK,KAAKiH,GAAGyC,YACtH1J,KAAKmkM,YAAY56G,UAAU,EAAGvpF,KAAKmkM,YAAYjlB,YAAY,OAArE,IACIz3K,EAAO,GAKPA,EAD4B,MAA5BzH,KAAKygM,oBACEzgM,KAAK6gM,SAASzmJ,OAEdp6C,KAAKygM,oBAAoBrmJ,OAEpC,IAAIjwC,EAAO,IAAII,KAAK,CAAC9C,IACrB+/J,EAAGK,QAAQ7nK,KAAKmkM,YAAah6L,GAC7Bo1L,EAAwC57B,MAAMrjK,UAAUinK,kBAAkB/mK,KAAKR,KAAMwnK,EACzF,EACA48B,0BAA2B,WAUvB,KAA0B,IAArBpkM,KAAKwqB,aAAsBxqB,KAAK4oB,wBAAkD,IAAzB5oB,KAAKolB,iBAA0BplB,KAAK4lB,oBAG9F,OAFA5lB,KAAKugM,iCAAmC,OACxCvgM,KAAKwgM,gCAAkC,GAI3C,GADAxgM,KAAKygM,oBAAsBzgM,KAAK6gM,SAASxrG,QACrCr1F,KAAKwqB,YAAc,GAAKxqB,KAAK4oB,oBAAqB,CAClD,IAAIy7K,EAAsB,GACtB/oJ,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKygM,oBAAoB5lG,MACvF,MAAOv/C,EAAOE,WAAY,CACtB,IAAIs/C,EAAMx/C,EAAOI,QACjB2oJ,EAAoB1/L,KAAK3E,KAAKskM,mBAAmBn6G,WAAW2Q,EAAI96F,KAAKwqB,cAAc9gB,WACvF,CACA1J,KAAKygM,oBAAoB8D,UAAUvkM,KAAK6iM,2BAA4BwB,GACpErkM,KAAKugM,gCAAkCvgM,KAAKygM,oBAAoB/mC,OAAO/2J,OAAS,CACpF,MACI3C,KAAKugM,iCAAmC,EAE5C,GAAIvgM,KAAKolB,gBAAkB,GAAKplB,KAAK4lB,mBAAoB,CACrD,IAAI4+K,EAAc,GACdr/E,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAKygM,oBAAoB5lG,MACvF,MAAOsqB,EAAO3pE,WAAY,CAClBs/C,EAAMqqB,EAAOzpE,QACjB8oJ,EAAY7/L,KAAK3E,KAAKwoK,kBAAkBrP,iBAAiBn5J,KAAKykM,uBAAuBt6G,WAAW2Q,EAAI96F,KAAKmlB,yBAAyB8rE,cACtI,CACAjxF,KAAKygM,oBAAoB8D,UAAUvkM,KAAKoiM,0BAA2BoC,GACnExkM,KAAKwgM,+BAAiCxgM,KAAKygM,oBAAoB/mC,OAAO/2J,OAAS,CACnF,MACI3C,KAAKwgM,gCAAkC,CAE/C,EAEAwD,uBAAwB,WACpB,IAAIj+J,EAAQ,EACRuV,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK6gM,SAASnnC,QAC5E,MAAOp+G,EAAOE,WAAY,CACtB,IAAIkpJ,EAAappJ,EAAOI,QACxB17C,KAAK2kM,yBAAyBD,EAAY3+J,IAC9C,CACI/lC,KAAK6gM,SAASnnC,OAAO/2J,OAAS,IAC9B3C,KAAKioB,WAAa,EAE1B,EAEA28K,kCAAmC,SAAUC,GACzC,IAAIC,EAAYD,EAAQE,eACP,MAAbD,IACA9kM,KAAKknB,UAAY49K,EAAU/+J,MAC3B/lC,KAAKsgB,cAAe,GAExB,IAAI0kL,EAAWH,EAAQI,cACP,MAAZD,IACAhlM,KAAKqnB,UAAY29K,EAASj/J,MAC1B/lC,KAAKsgB,cAAe,EACpBtgB,KAAK4pB,eAAiB,GAE1B,IAAIs7K,EAAYL,EAAQM,eACP,MAAbD,IACAllM,KAAKwqB,WAAa06K,EAAUn/J,OAEhC,IAAIA,EAAQ,EACRuV,EAASoP,EAAoC9P,GAAGW,UAAUspJ,EAAQO,QACtE,MAAO9pJ,EAAOE,WAAY,CACtB,IAAI4pJ,EAAS9pJ,EAAOI,QACpB17C,KAAK2kM,yBAAyBS,EAAOz6L,KAAMo7B,IAC/C,CACI/lC,KAAK6gM,SAASnnC,OAAO/2J,OAAS,IAC9B3C,KAAKioB,WAAa,EAE1B,EACA08K,yBAA0B,SAAUh6L,EAAMo7B,GACtCp7B,EAAOA,EAAK4D,cACR5D,EAAKsO,QAAQ,QAAU,IAAyB,IAApBjZ,KAAKknB,YACjClnB,KAAKknB,UAAY6e,IAEhBp7B,EAAKsO,QAAQ,QAAU,GAAKtO,EAAKsO,QAAQ,QAAU,KAA0B,IAApBjZ,KAAKqnB,YAC/DrnB,KAAKqnB,UAAY0e,GAEjBp7B,EAAKsO,QAAQ,QAAU,IAAyB,IAApBjZ,KAAKknB,YACjClnB,KAAKknB,UAAY6e,EACjB/lC,KAAKsgB,cAAe,IAEnB3V,EAAKsO,QAAQ,OAAS,GAAKtO,EAAKsO,QAAQ,UAAY,KAA0B,IAApBjZ,KAAKqnB,YAChErnB,KAAKqnB,UAAY0e,EACjB/lC,KAAKsgB,cAAe,EACpBtgB,KAAK4pB,eAAiB,IAErBjf,EAAKsO,QAAQ,QAAU,GAAKtO,EAAKsO,QAAQ,SAAW,KAA2B,IAArBjZ,KAAKwqB,aAChExqB,KAAKwqB,WAAaub,IAEjBp7B,EAAKsO,QAAQ,SAAW,GAAKtO,EAAKsO,QAAQ,SAAW,GAAKtO,EAAKsO,QAAQ,OAAS,GAAKtO,EAAKsO,QAAQ,OAAS,KACxGtO,EAAKsO,QAAQ,QAAU,IAA6B,IAAxBjZ,KAAKmmB,cACjCnmB,KAAKmmB,cAAgB4f,GAEU,IAA1B/lC,KAAK2qB,kBACV3qB,KAAK2qB,gBAAkBob,KAG1Bp7B,EAAKsO,QAAQ,aAAe,GAAKtO,EAAKsO,QAAQ,QAAU,KAA0B,IAApBjZ,KAAK+jB,YACpE/jB,KAAK+jB,UAAYgiB,EACjB/lC,KAAKmkB,YAAY,GACjBnkB,KAAKskB,YAAY,IAEjB3Z,EAAKsO,QAAQ,UAAY,IAAyB,IAApBjZ,KAAK+jB,YACnC/jB,KAAK+jB,UAAYgiB,EACjB/lC,KAAKmkB,YAAY,GACjBnkB,KAAKskB,YAAY,IAEjBomC,EAAoC9P,GAAG3lC,WAAWtK,EAAM,OAAoC,IAA5B3K,KAAKgrB,mBACrEhrB,KAAKkrB,gBAAgB6a,GAErB2kB,EAAoC9P,GAAG3lC,WAAWtK,EAAM,OAAoC,IAA5B3K,KAAKsrB,mBACrEtrB,KAAKwrB,gBAAgBua,GAErB2kB,EAAoC9P,GAAG3lC,WAAWtK,EAAM,OAAoC,IAA5B3K,KAAK4rB,mBACrE5rB,KAAK8rB,gBAAgBia,GAErBp7B,EAAKsO,QAAQ,UAAY,IAAoC,IAA/BjZ,KAAKmlB,sBACnCnlB,KAAKqlB,mBAAmB0gB,IAEvBp7B,EAAKsO,QAAQ,aAAe,GAAKtO,EAAKsO,QAAQ,cAAgB,KAA+B,IAAzBjZ,KAAKymB,iBAC1EzmB,KAAKymB,eAAiBsf,EAE9B,EAEAk+J,uBAAwB,SAAUoB,EAAaC,IACtB,IAAjBD,IACAA,EAAcrlM,KAAK2qB,kBAEJ,IAAf26K,IACAA,EAAYtlM,KAAKmmB,gBAEF,IAAfm/K,IACAA,EAAYD,GAEhBrlM,KAAK4kB,eAAe,IAAIne,KAAK,eAC7BzG,KAAKumB,aAAa,IAAI9f,KAAK,eAC3B,IAAI60C,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK6gM,SAAShmG,MAC5E,MAAOv/C,EAAOE,WAAY,CACtB,IAAIs/C,EAAMx/C,EAAOI,QACjB,IACI,GAAI2pJ,GAAe,EAAG,CAClB,IAAIE,GAAU,EACVC,EAAgB,IAAI/+L,KAAK,cAC7B,IACI++L,EAAgB,IAAI/+L,KAAKq0F,EAAIuqG,IACzBG,EAAgBxlM,KAAK0kB,kBACrB1kB,KAAK4kB,eAAe4gL,EAE5B,CACA,MAAO3pG,GACP,CACA,IACI,IAAI4pG,EAAc,IAAIh/L,KAAK,cACvB6+L,GAAa,IACbG,EAAc,IAAIh/L,KAAKq0F,EAAIwqG,IACvBC,GAAWE,EAAczlM,KAAKqmB,gBAC9BrmB,KAAKumB,aAAak/K,GAG9B,CACA,MAAOlxB,GACP,CACJ,CACJ,CACA,MAAOmxB,GACP,CACJ,CACJ,EAEAC,WAAY,WAAc,EAE1BC,YAAa,SAAUR,GACnB,IAAI7/L,EAAM,EACVvF,KAAK6gM,SAAStvE,OACd,IAAIj2E,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK6gM,SAAShmG,MAC5E,MAAOv/C,EAAOE,WAAY,CACtB,IAAIs/C,EAAMx/C,EAAOI,QACjB,IACI,GAAI0pJ,GAAU,EAAG,CACb,IAAIG,GAAU,EACd,IACI,IAAIrmM,EAAMirF,WAAW2Q,EAAIsqG,IACrBG,GAAWrmM,EAAMqG,IACjBA,EAAMrG,EAEd,CACA,MAAO28F,GACP,CACJ,CACJ,CACA,MAAO04E,GACP,CACJ,CAEA,OADAv0K,KAAK6gM,SAASrvE,SACPjsH,CACX,EAEAsgM,gBAAiB,SAAUT,GACvB,IAAIU,EAAe,GACnB9lM,KAAK6gM,SAAStvE,OACd,IAAIj2E,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK6gM,SAAShmG,MAC5E,MAAOv/C,EAAOE,WAAY,CACtB,IAAIs/C,EAAMx/C,EAAOI,QACjB,IACQ0pJ,GAAU,IACJU,EAAa7sL,QAAQ6hF,EAAIsqG,KAAY,GACvCU,EAAanhM,KAAKm2F,EAAIsqG,IAGlC,CACA,MAAOvpG,GACP,CACJ,CAGA,OAFAiqG,EAAanW,OACb3vL,KAAK6gM,SAASrvE,SACPs0E,CACX,EAEAvhL,oBAAqB,WACjB,OAAOvkB,KAAK0gM,kBAChB,EAEAj8K,oBAAqB,SAAU7jB,GAE3B,OADAZ,KAAK0gM,mBAAqB9/L,EACnBA,CACX,EACAmlM,oBAAqB,SAAUhgG,EAAUigG,GAErC,IADA,IAAIC,EAAW,IAAIjpG,EAA0CsI,SAASS,EAASh7D,EAAGg7D,EAAS/hG,EAAG+hG,EAASvvD,EAAG,GACjGh0C,EAAI,EAAGA,EAAI,EAAGA,IACnB,GAAIwjM,EAAQxjM,GAAGy2C,IAAIgtJ,GAAY,EAC3B,OAAO,EAGf,OAAO,CACX,EAEAC,mBAAoB,WAChB,IAAIz+L,EAAO,GACP4zC,GAAQ,EACRC,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK8jM,cACnE,MAAOxoJ,EAAOE,WAAY,CACtB,IAAI3E,EAAMyE,EAAOI,QACZL,EAIDA,GAAQ,EAHR5zC,GAAQ,KAKZA,GAAQovC,CACZ,CACApvC,GAAQ,OACR,IAAI09G,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAKsmJ,aAAazrD,MAChF,MAAOsqB,EAAO3pE,WAAY,CACtB,IAAIs/C,EAAMqqB,EAAOzpE,QACb1Q,EAAKm/C,WAAW2Q,EAAI96F,KAAKonB,kBACzB6jB,EAAMk/C,WAAW2Q,EAAI96F,KAAKinB,kBAC1B8+E,EAAWm5F,EAA8C1mJ,YAAYq3C,cAAc5kD,EAAKD,GAC5F,GAAKhrC,KAAK+lM,oBAAoBhgG,EAAUg5F,EAAgDn0E,oBAAoB06B,eAA5G,CAGAjqG,GAAQ,EACR,IAAIgqE,EAAS36D,EAAoC9P,GAAGW,UAAUu/C,GAC9D,MAAOuqB,EAAO7pE,WAAY,CAClB3E,EAAMwuE,EAAO3pE,QACZL,EAIDA,GAAQ,EAHR5zC,GAAQ,KAKZA,GAAQovC,CACZ,CACApvC,GAAQ,MAbR,CAcJ,CACA,OAAOA,CACX,EAEA0+L,iBAAkB,SAAUlkK,EAAexgB,GACvCzhB,KAAK6gM,SAAStvE,OACO,MAAjBvxH,KAAKk1C,UACLl1C,KAAKk1C,SAASw/E,QAEK,MAAnB10H,KAAKomM,YACLpmM,KAAKomM,WAAW1xE,QAEK,MAArB10H,KAAKo1C,cACLp1C,KAAKo1C,aAAas/E,QAEA,MAAlB10H,KAAKi1C,WACLj1C,KAAKi1C,UAAUy/E,QAEQ,MAAvB10H,KAAKqmM,gBACLrmM,KAAKqmM,eAAe3xE,QAEH,MAAjB10H,KAAKk1C,WACLl1C,KAAKk1C,SAAW,IAAImjG,EAAuD7iG,UAEzD,MAAlBx1C,KAAKi1C,YACLj1C,KAAKi1C,UAAY,IAAIojG,EAAuD9iG,UAAUtT,IAE1FjiC,KAAKk1C,SAASpqB,WAAa9qB,KAAK8qB,WACT,MAAnB9qB,KAAKomM,aACLpmM,KAAKomM,WAAa,IAAI/tD,EAAuD7iG,SAC7Ex1C,KAAKomM,WAAWzwJ,mBAAkB,IAEtC31C,KAAKk1C,SAASpqB,WAAa9qB,KAAK8qB,WACP,MAArB9qB,KAAKo1C,eACLp1C,KAAKo1C,aAAe,IAAIijG,EAAuD3iG,cAExD,MAAvB11C,KAAKqmM,iBACLrmM,KAAKqmM,eAAiB,IAAIhuD,EAAuD3iG,aACjF11C,KAAKqmM,eAAezwJ,eAAgB,GAExC51C,KAAKgjM,UAAUrgM,OAAS,EACxB,IACI2jM,EAAatmM,KAAKwgB,YAGlBo6H,EAAWskD,EAA8C1mJ,YAAY6nB,wBAAwB8+H,EAAwD7hK,oBAAoBu9G,YAAc,IAAMv1I,KAAK8Z,GAElMmnL,GAAK,EAAGv9B,EAA8CtlE,0BAA0B1jG,KAAK8hB,sBAAsBkwJ,MAAM3hB,WAC/Gk2C,IACFvmM,KAAK4gM,cAAgB2F,GAEzB,IAAIxgG,EAAW,IAAI/I,EAA0ChkD,SACzDg5E,EAAY,KACZw0E,EAAar4B,EAAwCt2H,OAAOC,YAC5D2uJ,EAAiB,EACjBC,EAAe,EACfprJ,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK6gM,SAAShmG,MAC5E,MAAOv/C,EAAOE,WAAY,CACtB,IAAIs/C,EAAMx/C,EAAOI,QACjB,IACI,GAAI17C,KAAKymB,gBAAkB,IAAOzmB,KAAKslB,uBAA0BtlB,KAAKqnB,WAAa,GAAKrnB,KAAKknB,WAAa,GAAwC,IAA/BlnB,KAAKslB,uBAAiCtlB,KAAKgrB,mBAAqB,GAAKhrB,KAAKsrB,mBAAqB,EAAK,CACnN,IAAIq7K,EAAS,EACTC,EAAS,EACTC,EAAS,EACTtkJ,EAAM,EACN08C,EAAW,EACX6nG,EAAa,EACbz5J,EAASrtC,KAAK+mM,eAAe/mM,KAAKokB,cAAe,GACrD,IAAwB,IAApBpkB,KAAK+jB,WAA2C,IAAvB/jB,KAAKikB,eAAuBjkB,KAAKijM,aAC1D1gJ,EAAM,EAC2C,KAA5CviD,KAAKsgB,cAAgBtgB,KAAKijM,gBAC3B1gJ,EAAM,gBAGT,CACIviD,KAAKikB,gBACNopB,GAAUA,GAEdkV,EAAM,EACN,IACIA,EAAM4nC,WAAW2Q,EAAI96F,KAAK+jB,WAC9B,CACA,MAAO83E,GACP,CACI77F,KAAKsgB,cACL+sB,GAAkB,SAClBy5J,EAAcvkJ,EAAMlV,EAAU,WAC9B4xD,EAAY5xD,EAASkV,EACrBA,GAAOlV,GAEqB,IAAvBrtC,KAAKikB,eACVg7E,EAAY5xD,EAASkV,EACrBA,EAAOlV,EAASkV,EAAMviD,KAAK4gM,gBAG3B3hG,EAAY5xD,EAASkV,EACrBA,EAAM,EAAKlV,EAASkV,EAAMviD,KAAK4gM,cAEvC,CACA,IAAK5gM,KAAKslB,uBAAyBtlB,KAAKqnB,WAAa,GAAKrnB,KAAKknB,WAAa,EAAG,CAC3Ey/K,EAASx8G,WAAW2Q,EAAI96F,KAAKqnB,YAC7Bu/K,EAASz8G,WAAW2Q,EAAI96F,KAAKknB,YACzBlnB,KAAKsgB,cACAtgB,KAAK8pB,gBACN68K,GAAU,IAEV3mM,KAAKijM,cAIT0D,GAAU,IAEd,IAAI1sJ,EAAMilJ,EAA8C1mJ,YAAYglD,WAAWopG,EAAQD,EAAQpkJ,GAC3FviD,KAAKsgB,eAAiBtgB,KAAKijM,cAC3BhpJ,EAAImvD,QAAQwxC,GAEhB70C,EAAW9rD,EACXj6C,KAAKgjM,UAAUr+L,KAAKohG,EACxB,MACK,GAAmC,IAA/B/lG,KAAKslB,sBAA6B,CACvC,IAAI0hL,EAAWhnM,KAAK+mM,eAAe/mM,KAAKglB,qBAAsBhlB,KAAK6kB,4BAC/D7kB,KAAKsgB,aACL0mL,GAAY,SAGZA,GAAYhnM,KAAK4gM,cAEjB5gM,KAAK4rB,mBAAqB,IAC1Bi7K,EAAS18G,WAAW2Q,EAAI96F,KAAK4rB,qBAEjC+6K,EAASx8G,WAAW2Q,EAAI96F,KAAKgrB,oBAC7B47K,EAASz8G,WAAW2Q,EAAI96F,KAAKsrB,oBACzBtrB,KAAKmrB,qBACLw7K,GAAUA,GAEV3mM,KAAKyrB,qBACLm7K,GAAUA,GAEV5mM,KAAK+rB,qBACL86K,GAAUA,GAEd9gG,EAAW/I,EAA0ChkD,SAAS72C,OAAQwkM,EAASK,EAAYH,EAASG,EAAYJ,EAASI,GACzHhnM,KAAKgjM,UAAUr+L,KAAKohG,EACxB,CACA,OAAQ/lG,KAAKinM,gBACT,KAAK,EACDT,EAAaF,EACb,MACJ,KAAK,EAGOE,EAFJxmM,KAAKmlB,sBAAwB,EACzBnlB,KAAK4lB,mBACQ5lB,KAAKwoK,kBAAkBrP,iBAAiBn5J,KAAKykM,uBAAuBt6G,WAAW2Q,EAAI96F,KAAKmlB,yBAGxFnlB,KAAKknM,cAAcpsG,EAAI96F,KAAKmlB,sBAAuBmhL,GAIvDA,EAEjB,MACJ,QACI,MAKR,GAHkB,MAAdE,IACAA,EAAar4B,EAAwCt2H,OAAOi6C,mBAE5D9xF,KAAKwqB,YAAc,EACnB,OAAQxqB,KAAK4pB,gBACT,KAAK,EACDooG,EAAY7nC,WAAW2Q,EAAI96F,KAAKwqB,aAChCwnG,EAAYhyH,KAAKskM,mBAAmBtyE,GACpC,MACJ,KAAK,EACDA,EAAY7nC,WAAW2Q,EAAI96F,KAAKwqB,aAChCwnG,EAAY1sH,KAAK6I,IAAI6jH,GACrB,MACJ,KAAK,EACD,IACIA,EAAY7nC,WAAW2Q,EAAI96F,KAAKwqB,aAChCwnG,EAAYhyH,KAAKskM,mBAAmBtyE,GACpCA,EAAY1sH,KAAKo8D,IAAI,EAAGswD,EAC5B,CACA,MAAOuiD,GACHviD,EAAY,CAChB,CACA,MACJ,KAAK,EACD,IAAI7gH,EAAO,EACX,IACIA,EAAOg5E,WAAW2Q,EAAI96F,KAAKwqB,aACtBxqB,KAAKijM,aAKNjxE,EAAa,GAAK1sH,KAAKo8D,IAAI,IAAKvwD,IAJhCA,GAAc,GAAK4rF,EAA0Cr6C,KAAKonC,KAAKg9G,EAAY,IAAM,GACzF90E,EAAa,KAAY1sH,KAAKo8D,IAAI,IAAKvwD,GAK/C,CACA,MAAOu0L,GACH1zE,EAAY,CAChB,CACA,MACJ,KAAK,EACDA,EAAY,EACZ,MACJ,QACI,WAIRA,EAAY,GAOhB,GAL4B,IAAxBhyH,KAAKwpB,iBACLwoG,EAAY,GAEXhyH,KAAKsgB,aAAgBtgB,KAAKijM,aAE3BjjM,KAAK2qB,iBAAmB,EAAG,CAC3B,IAAIw8K,EAAW,IAAI1gM,KAAKq0F,EAAI96F,KAAK2qB,kBACjC87K,EAAkBtH,EAAwD7hK,oBAAoBwgH,YAAYqpD,GAAYhI,EAAwD7hK,oBAAoBwgH,YAAY99I,KAAKq3J,UAC/Mr3J,KAAKmmB,eAAiB,GACtBghL,EAAW,IAAI1gM,KAAKq0F,EAAI96F,KAAKmmB,gBAC7BugL,EAAgBvH,EAAwD7hK,oBAAoBwgH,YAAYqpD,GAAYhI,EAAwD7hK,oBAAoBwgH,YAAY99I,KAAKq3J,WAGjNqvC,EAAeD,CAEvB,CACAzmM,KAAKi1C,UAAU+F,SAAS+qD,EAAUygG,EAAY,IAAInuD,EAAuDt+F,MAAM0sJ,EAAgBC,GAAe10E,GAC1IhyH,KAAKymB,gBAAkB,GACvBzmB,KAAKonM,iBAAiBtsG,EAAI96F,KAAKymB,gBAAiB+/K,EAAYA,EAAYvnG,EAAU,IAAIo5C,EAAuDt+F,MAAM0sJ,EAAgBC,GAG3K,CACJ,CACA,MAAOW,GACP,CACArnM,KAAK0rF,OAAQ,CACjB,CAIA,OAHA1rF,KAAK6gM,SAASrvE,SACdxxH,KAAKsgM,cAAe,EACpBtgM,KAAKkjM,OAAQ,GACN,CACX,EACAkE,iBAAkB,SAAUE,EAAIz5K,EAAW05K,EAAWhlJ,EAAK2L,GACvDo5I,EAAK58I,EAAoC9P,GAAG+gD,KAAK2rG,GAAI/4L,cACrD,IAAIw3B,EAAQuhK,EAAGruL,QAAQ,KACvB,KAAI8sB,EAAQ,IAGP2kB,EAAoC9P,GAAG6vI,SAAS6c,EAAI,KAAzD,CAGA,IAAIE,EAAc98I,EAAoC9P,GAAG+gD,KAAK2rG,EAAG/9G,UAAU,EAAGxjD,IAC1E0hK,EAASH,EAAGz7G,OAAO9lD,GACnBqjD,EAAQo+G,EAAYr+G,MAAM,KAC1Bu+G,EAAU,KACVC,EAAO,KACX,GAAIv+G,EAAMzmF,OAAS,EAAG,CAClB,IAAI24C,EAASoP,EAAoC9P,GAAGW,UAAU6tC,GAC9D,MAAO9tC,EAAOE,WAAY,CACtB,IAAIt0C,EAAOo0C,EAAOI,QACdgP,EAAoC9P,GAAGC,YAAY6sJ,GACnDA,EAAUxgM,EAELwjD,EAAoC9P,GAAGC,YAAY8sJ,KACxDA,EAAOzgM,EAEf,CACJ,CACA,OAAQwgM,GACJ,IAAK,eACL,IAAK,UACD1nM,KAAK4nM,gBAAgBH,EAAQE,EAAM95K,EAAW05K,EAAWhlJ,EAAK2L,GAC9D,MACJ,IAAK,kBACDluD,KAAK6nM,mBAAmBJ,EAAQE,EAAM95K,EAAW00B,GAAK,EAAO2L,GAC7D,MACJ,IAAK,aACDluD,KAAK6nM,mBAAmBJ,EAAQE,EAAM95K,EAAW00B,GAAK,EAAM2L,GAC5D,MACJ,IAAK,qBACDu5I,EAASA,EAAOl+G,UAAU,EAAGk+G,EAAO9kM,OAAS,GAC7C,IAAImlM,EAAS1I,EAA2C/4C,QAAQn9D,YAAYu+G,EAAQ,KAChFtiF,EAASz6D,EAAoC9P,GAAGW,UAAUusJ,GAC9D,MAAO3iF,EAAO3pE,WAAY,CACtB,IAAI68E,EAAQlT,EAAOzpE,QACnB17C,KAAKonM,iBAAiB/uE,EAAOxqG,EAAW05K,EAAWhlJ,EAAK2L,EAC5D,CACA,MACJ,QACI,MAvCR,CAyCJ,EACA05I,gBAAiB,SAAUH,EAAQE,EAAM95K,EAAW05K,EAAWhlJ,EAAK2L,GAChE,GAAKxD,EAAoC9P,GAAG3lC,WAAWwyL,EAAQ,OAAQ/8I,EAAoC9P,GAAG6vI,SAASgd,EAAQ,KAA/H,CAKAA,EAASA,EAAOl+G,UAAU,EAAGk+G,EAAO9kM,OAAS,GAC7C,IAAImlM,EAAS1I,EAA2C/4C,QAAQn9D,YAAYu+G,EAAQ,KAChFnsJ,EAASoP,EAAoC9P,GAAGW,UAAUusJ,GAC9D,MAAOxsJ,EAAOE,WAAY,CACtB,IAAI68E,EAAQ/8E,EAAOI,QACfxG,EAAW,IAAI4pJ,EACnB5pJ,EAAS50B,aAAetgB,KAAKsgB,aAC7B40B,EAASm7G,WAAarwJ,KAAK4gM,cAC3B1rJ,EAAS0qJ,SAASvnE,EAAOsvE,EAAMplJ,EAAK2L,GAC/B3L,EAIDviD,KAAK+nM,eAAc,EAAO7yJ,EAAU,EAAGqyJ,EAAW15K,GAAW,GAAM,EAAMqgC,GAHzEluD,KAAKgoM,mBAAkB,EAAO9yJ,EAAU,EAAGqyJ,EAAW15K,GAAW,GAAM,EAAMqgC,EAKrF,CAlBA,CAmBJ,EACA25I,mBAAoB,SAAUJ,EAAQE,EAAM95K,EAAW00B,EAAK0lJ,EAAQ/5I,GAChE,GAAKxD,EAAoC9P,GAAG3lC,WAAWwyL,EAAQ,OAAQ/8I,EAAoC9P,GAAG6vI,SAASgd,EAAQ,KAA/H,CAGKQ,IAEDR,EAASA,EAAOl+G,UAAU,EAAGk+G,EAAO9kM,OAAS,IAEjD,IAAImlM,EAAS1I,EAA2C/4C,QAAQn9D,YAAYu+G,EAAQ,KAChFnsJ,EAASoP,EAAoC9P,GAAGW,UAAUusJ,GAC9D,MAAOxsJ,EAAOE,WAAY,CACtB,IAAI68E,EAAQ/8E,EAAOI,QACfxG,EAAW,IAAI4pJ,EACnB5pJ,EAAS50B,aAAetgB,KAAKsgB,aAC7B40B,EAASm7G,WAAarwJ,KAAK4gM,cAC3B1rJ,EAAS0qJ,SAASvnE,EAAOsvE,EAAMplJ,EAAK2L,GACpCluD,KAAK+nM,eAAc,EAAO7yJ,EAAU,EAAGi5H,EAAwCt2H,OAAOC,YAAajqB,GAAW,GAAO,EAAOqgC,EAChI,CAdA,CAeJ,EACAg6I,eAAgB,SAAUJ,GACtB,IAAIK,EAAY,GAEZzsJ,EAAU,EACd,MAAOA,EAAUosJ,EAAOnlM,OACc,MAA9BmlM,EAAOj8G,OAAOnwC,EAAS,IACvB0sJ,EAGR,OAAOD,CACX,EACAJ,cAAe,SAAUrkK,EAAK2kK,EAAKr6K,EAAWu5K,EAAW15K,EAAW6xK,EAASnyK,EAAM2gC,GAI/E,IAFA,IAAIzU,EAAa,GACb6uJ,EAAmB,GACd9lM,EAAI,EAAGA,EAAI6lM,EAAIpzJ,UAAUtyC,OAAQH,IACtCi3C,EAAW90C,KAAKu6L,EAA8C1mJ,YAAYglD,WAAW6qG,EAAIpzJ,UAAUzyC,GAAGu8C,IAAKspJ,EAAIpzJ,UAAUzyC,GAAG08C,IAAK,EAAKmpJ,EAAIpzJ,UAAUzyC,GAAG+/C,IAAMviD,KAAK4gM,gBAClK0H,EAAiB3jM,KAAKu6L,EAA8C1mJ,YAAYglD,WAAW6qG,EAAIpzJ,UAAUzyC,GAAGu8C,IAAKspJ,EAAIpzJ,UAAUzyC,GAAG08C,IAAK,IAE3I,IAAS18C,EAAI,EAAGA,EAAK6lM,EAAIpzJ,UAAUtyC,OAAS,EAAIH,IACxCkhC,IAIIg8J,GACA1/L,KAAKo1C,aAAa+hF,QAAQ19E,EAAWj3C,GAAIi3C,EAAWj3C,EAAI,GAAI8lM,EAAiB9lM,GAAI8lM,EAAiB9lM,EAAI,GAAI+kM,EAAWr5I,GAErHlgC,EAAY,IACR0xK,EACA1/L,KAAKk1C,SAAS4E,QAAQL,EAAWj3C,GAAIi3C,EAAWj3C,EAAI,GAAIqrB,EAAWqgC,GAGnEluD,KAAKomM,WAAWtsJ,QAAQL,EAAWj3C,GAAIi3C,EAAWj3C,EAAI,GAAIqrB,EAAWqgC,GAErEwxI,IACA1/L,KAAKk1C,SAAS4E,QAAQwuJ,EAAiB9lM,GAAI8lM,EAAiB9lM,EAAI,GAAIqrB,EAAWqgC,GAC/EluD,KAAKk1C,SAAS4E,QAAQL,EAAWj3C,GAAI8lM,EAAiB9lM,GAAIqrB,EAAWqgC,GACrEluD,KAAKk1C,SAAS4E,QAAQL,EAAWj3C,EAAI,GAAI8lM,EAAiB9lM,EAAI,GAAIqrB,EAAWqgC,MAK7F,GAAI3gC,EACA,KAAI0tB,EAAUgkJ,EAAsD/jJ,YAAYC,oBAAoB1B,GACpG,IAASj3C,EAAI,EAAGA,EAAIy4C,EAAQt4C,OAAQH,GAAK,EACrCxC,KAAKo1C,aAAawhF,YAAYn9E,EAAWwB,EAAQz4C,IAAKi3C,EAAWwB,EAAQz4C,EAAI,IAAKi3C,EAAWwB,EAAQz4C,EAAI,IAAK+kM,EAAWr5I,EAFd,CAKvH,EACA85I,kBAAmB,SAAUtkK,EAAK2kK,EAAKr6K,EAAWu5K,EAAW15K,EAAW6xK,EAASnyK,EAAM2gC,GAEnF,IADA,IAAIzU,EAAa,GACRj3C,EAAI,EAAGA,EAAI6lM,EAAIpzJ,UAAUtyC,OAAQH,IACtCi3C,EAAW90C,KAAKu6L,EAA8C1mJ,YAAYglD,WAAW6qG,EAAIpzJ,UAAUzyC,GAAGu8C,IAAKspJ,EAAIpzJ,UAAUzyC,GAAG08C,IAAK,EAAKmpJ,EAAIpzJ,UAAUzyC,GAAG+/C,IAAMviD,KAAK4gM,gBAEtK,IAASp+L,EAAI,EAAGA,EAAK6lM,EAAIpzJ,UAAUtyC,OAAS,EAAIH,IACxCkhC,GAGI1V,EAAY,GACZhuB,KAAKomM,WAAWtsJ,QAAQL,EAAWj3C,GAAIi3C,EAAWj3C,EAAI,GAAIqrB,EAAWqgC,GAIjF,GAAI3gC,EACA,KAAI0tB,EAAUgkJ,EAAsD/jJ,YAAYC,oBAAoB1B,GACpG,IAASj3C,EAAI,EAAGA,EAAIy4C,EAAQt4C,OAAQH,GAAK,EACrCxC,KAAKqmM,eAAejrJ,uBAAuB3B,EAAWwB,EAAQz4C,IAAKi3C,EAAWwB,EAAQz4C,EAAI,IAAKi3C,EAAWwB,EAAQz4C,EAAI,IAAK+kM,EAAWr5I,EAAM,EAFjC,CAKvH,EACAg5I,cAAe,SAAUqB,EAAWC,GAChC,OAAOr6B,EAAwC/1H,MAAMC,KAAKkwJ,EAC9D,EAEAxB,eAAgB,SAAU0B,EAASn6G,GAC/B,IAAIjhD,EAAS,EACb,OAAQo7J,GACJ,KAAK,EACDp7J,EAAS,EACT,MACJ,KAAK,EACDA,EAAS,MACT,MACJ,KAAK,EACDA,EAAS,MACT,MACJ,KAAK,EACDA,EAAS,SACT,MACJ,KAAK,EACDA,EAAS,IACT,MACJ,KAAK,EACDA,EAAS,SACT,MACJ,KAAK,EACDA,EAAS,iBACT,MACJ,KAAK,EACDA,EAAS,iBACT,MACJ,KAAK,EACDA,EAAS,iBACT,MACJ,KAAK,GACDA,EAASihD,EACT,MACJ,QACI,MAER,OAAOjhD,CACX,EAEAi5G,WAAY,WACR,OAAOtmJ,KAAK6gM,QAChB,EAEA6H,WAAY,SAAU9nM,GAElB,OADAZ,KAAK6gM,SAAWjgM,EACTA,CACX,EAEAiqJ,sBAAuB,SAAUxqC,GAC7B,IAAI/kE,EAASoP,EAAoC9P,GAAGW,UAAU8kE,EAAQ+kF,QACtE,MAAO9pJ,EAAOE,WAAY,CACtB,IAAI4pJ,EAAS9pJ,EAAOI,QACpB17C,KAAK8jM,aAAan/L,KAAKygM,EAAOz6L,KAClC,CACA3K,KAAK4kM,kCAAkCvkF,GACV,MAAzBA,EAAQ4kF,eAAsE,QAA7C5kF,EAAQ4kF,cAAc0D,KAAKp6L,eAC5DvO,KAAKgqB,YAAY,EAEzB,EAEAm1J,eAAgB,SAAU13K,EAAMmhM,EAAUn8B,EAAUC,EAAUC,GAM1D,GALKi8B,IACD5oM,KAAK6gM,SAAW,IAAIrB,EAAwCsB,OAEhE9gM,KAAK6gM,SAAStvE,OACdvxH,KAAK6gM,SAAS1hB,eAAe13K,EAAMmhM,EAAUl8B,EAAUC,IAClDi8B,IACD5oM,KAAKgkM,yBACDhkM,KAAKsgB,cAAgBtgB,KAAKqnB,WAAa,GAAG,CAC1C,IAAI9hB,EAAMvF,KAAK4lM,YAAY5lM,KAAKqnB,WAC5B9hB,EAAM,IACNvF,KAAKgqB,YAAY,EAEzB,CAEAyiJ,GACAzsK,KAAK6oM,cAET7oM,KAAK6gM,SAASrvE,QAClB,EAEAq3E,YAAa,WACT,KAAI7oM,KAAK2qB,gBAAkB,GAA3B,CAGA,IAAIm+K,EAAc9oM,KAAK2qB,gBACnB3qB,KAAKmmB,eAAiB,IACtB2iL,EAAc9oM,KAAKmmB,eAEvB,IAAI4iL,EAAiB5J,EAAwD7hK,oBAAoB0P,UAC7F0/C,EAAmE,GAA9DhiC,EAAoC9P,GAAGyG,SAASrhD,KAAK0lB,OAAc,GAAK,GAAK,IACtFqjL,EAAiB,IAAItiM,KAAKsiM,EAAel+G,UAAY6B,GAErD,IADA,IAAI0P,EAAQp8F,KAAK6gM,SAAShmG,KAAKl4F,OACtBH,EAAI,EAAGA,EAAI45F,EAAO55F,IACvB,IACI,IAAIs4F,EAAM96F,KAAK6gM,SAAShmG,KAAKr4F,GACzBwmM,EAAU,IAAIviM,KAAKq0F,EAAIguG,IACvBE,EAAUD,IACV/oM,KAAK6gM,SAAShmG,KAAKr1F,OAAOhD,EAAG,GAC7B45F,IACA55F,IAER,CACA,MAAO+xF,GACP,CApBJ,CAsBJ,EAEAqxC,QAAS,WACL5lI,KAAKipM,cACLjpM,KAAK6gM,SAAStvE,OACdguE,EAAwC57B,MAAMrjK,UAAUslI,QAAQplI,KAAKR,MACrEA,KAAK6gM,SAASrvE,SACdxxH,KAAKkjM,OAAQ,CACjB,EAEAj9B,qBAAsB,SAAUlV,GAC5BA,EAAUG,sBAAsB,aAAclxJ,KAAK6qB,iBAAiBnhB,YACpEqnJ,EAAUG,sBAAsB,aAAcn0D,EAA0Cr6C,KAAK+nC,QAAQzqF,KAAK0kB,mBAC1GqsI,EAAUG,sBAAsB,WAAYn0D,EAA0Cr6C,KAAK+nC,QAAQzqF,KAAKqmB,iBACxG0qI,EAAUG,sBAAsB,QAASlxJ,KAAKylB,YAAY/b,YAC1DqnJ,EAAUG,sBAAsB,kBAAmBvmG,EAA4C4kG,MAAM6B,MAAM,mBAAoBpxJ,KAAKslB,wBACpIyrI,EAAUG,sBAAsB,YAAalxJ,KAAKinB,gBAAgBvd,YAClEqnJ,EAAUG,sBAAsB,YAAalxJ,KAAKonB,gBAAgB1d,YAClEqnJ,EAAUG,sBAAsB,iBAAkBlxJ,KAAKwmB,qBAAqB9c,YAC5EqnJ,EAAUG,sBAAsB,UAAWvmG,EAA4C4kG,MAAM6B,MAAM,WAAYpxJ,KAAKikB,gBACpH8sI,EAAUG,sBAAsB,YAAavmG,EAA4C4kG,MAAM6B,MAAM,cAAepxJ,KAAKkpM,kBACzHn4C,EAAUG,sBAAsB,WAAYvmG,EAA4C4kG,MAAM6B,MAAM,YAAapxJ,KAAKinM,iBACtHl2C,EAAUG,sBAAsB,eAAgBlxJ,KAAKunB,mBAAmB7d,YACxEqnJ,EAAUG,sBAAsB,WAAYvmG,EAA4C4kG,MAAM6B,MAAM,YAAapxJ,KAAKwpB,iBACtHunI,EAAUG,sBAAsB,cAAelxJ,KAAK0nB,kBAAkBhe,YACtEqnJ,EAAUG,sBAAsB,cAAevmG,EAA4C4kG,MAAM6B,MAAM,eAAgBpxJ,KAAK6nB,oBAC5HkpI,EAAUG,sBAAsB,UAAWvmG,EAA4C4kG,MAAM6B,MAAM,WAAYpxJ,KAAKokB,gBACpH2sI,EAAUG,sBAAsB,YAAalxJ,KAAK8jB,gBAAgBpa,YAClEqnJ,EAAUG,sBAAsB,kBAAmBlxJ,KAAK0qB,sBAAsBhhB,YAC9EqnJ,EAAUG,sBAAsB,gBAAiBlxJ,KAAKkmB,oBAAoBxc,YAY1E1J,KAAKokM,4BACDpkM,KAAKugM,iCAAmC,GACxCxvC,EAAUG,sBAAsB,aAAclxJ,KAAKugM,iCACnDxvC,EAAUG,sBAAsB,sBAAuBlxJ,KAAKwqB,WAAW9gB,aAEvEqnJ,EAAUG,sBAAsB,aAAclxJ,KAAKuqB,iBAAiB7gB,YAExEqnJ,EAAUG,sBAAsB,gBAAiBlxJ,KAAK4oB,oBAAoBlf,YAC1EqnJ,EAAUG,sBAAsB,oBAAqBlxJ,KAAK+oB,wBAAwBrf,YAClFqnJ,EAAUG,sBAAsB,mBAAoBlxJ,KAAKqpB,uBAAuB3f,YAChFqnJ,EAAUG,sBAAsB,mBAAoBlxJ,KAAKkpB,uBAAuBxf,YAC5E1J,KAAKwgM,gCAAkC,GACvCzvC,EAAUG,sBAAsB,iBAAkBlxJ,KAAKwgM,gCACvDzvC,EAAUG,sBAAsB,qBAAsBlxJ,KAAKmlB,qBAAqBzb,aAEhFqnJ,EAAUG,sBAAsB,iBAAkBlxJ,KAAKmlB,qBAAqBzb,YAEhFqnJ,EAAUG,sBAAsB,eAAgBlxJ,KAAK4lB,mBAAmBlc,YACxEqnJ,EAAUG,sBAAsB,kBAAmBlxJ,KAAKkjB,uBACxD6tI,EAAUG,sBAAsB,oBAAqBlxJ,KAAKmoB,wBAAwBze,YAClFqnJ,EAAUG,sBAAsB,uBAAwBlxJ,KAAKyoB,2BAA2B/e,YACxFqnJ,EAAUG,sBAAsB,uBAAwBlxJ,KAAKsoB,2BAA2B5e,YACxFqnJ,EAAUG,sBAAsB,kBAAmBlxJ,KAAK8mB,uBACxDiqI,EAAUG,sBAAsB,kBAAmBlxJ,KAAK2mB,sBAAsBjd,YAC9EqnJ,EAAUG,sBAAsB,cAAelxJ,KAAKiqB,kBAAkBvgB,YACtEqnJ,EAAUG,sBAAsB,iBAAkBvmG,EAA4C4kG,MAAM6B,MAAM,kBAAmBpxJ,KAAK2pB,uBAClIonI,EAAUG,sBAAsB,cAAelxJ,KAAKoqB,kBAAkB1gB,YACtEqnJ,EAAUG,sBAAsB,UAAWvmG,EAA4C4kG,MAAM6B,MAAM,UAAWpxJ,KAAK8pB,gBACnHinI,EAAUG,sBAAsB,kBAAmBlxJ,KAAKgoB,iBAAiBte,YACzEqnJ,EAAUG,sBAAsB,cAAelxJ,KAAKgrB,kBAAkBthB,YACtEqnJ,EAAUG,sBAAsB,eAAgBlxJ,KAAKmrB,mBAAmBzhB,YACxEqnJ,EAAUG,sBAAsB,cAAelxJ,KAAKsrB,kBAAkB5hB,YACtEqnJ,EAAUG,sBAAsB,eAAgBlxJ,KAAKyrB,mBAAmB/hB,YACxEqnJ,EAAUG,sBAAsB,cAAelxJ,KAAK4rB,kBAAkBliB,YACtEqnJ,EAAUG,sBAAsB,eAAgBlxJ,KAAK+rB,mBAAmBriB,YACxEqnJ,EAAUG,sBAAsB,iBAAkBvmG,EAA4C4kG,MAAM6B,MAAM,WAAYpxJ,KAAKglB,uBAC3H+rI,EAAUG,sBAAsB,uBAAwBlxJ,KAAK6kB,2BAA2Bnb,YACxFqnJ,EAAUG,sBAAsB,cAAelxJ,KAAK+lB,kBAAkBrc,YACtEqnJ,EAAUG,sBAAsB,aAAclxJ,KAAKg7B,iBAAiBtxB,YACpEqnJ,EAAUG,sBAAsB,gBAAiBlxJ,KAAKm7B,oBAC1D,EAEApV,gBAAiB,WACb,OAAO/lB,KAAKkhM,cAChB,EAEAj7K,gBAAiB,SAAUrlB,GAEvB,OADAZ,KAAKkhM,eAAiBtgM,EACfA,CACX,EAEAo6B,eAAgB,WACZ,OAAOh7B,KAAKmhM,aAChB,EAEAjmK,eAAgB,SAAUt6B,GAEtB,OADAZ,KAAKmhM,cAAgBvgM,EACdA,CACX,EAEAu6B,kBAAmB,WACf,OAAOn7B,KAAKohM,gBAChB,EAEA/lK,kBAAmB,SAAUz6B,GAEzB,OADAZ,KAAKohM,iBAAmBxgM,EACjBA,CACX,EAEAiqB,eAAgB,WACZ,OAAO7qB,KAAK8qB,UAChB,EAEAC,eAAgB,SAAUnqB,GAKtB,OAJIZ,KAAK8qB,aAAelqB,IACpBZ,KAAKqiB,UACLriB,KAAK8qB,WAAalqB,GAEfA,CACX,EAEA8jB,eAAgB,WACZ,OAAO1kB,KAAKqhM,aAChB,EAEAz8K,eAAgB,SAAUhkB,GAKtB,OAJK8pD,EAAoC9P,GAAGsxH,aAAalsK,KAAKqhM,cAAezgM,KACzEZ,KAAKqiB,UACLriB,KAAKqhM,cAAgBzgM,GAElBA,CACX,EAEAylB,aAAc,WACV,OAAOrmB,KAAKshM,WAChB,EAEA/6K,aAAc,SAAU3lB,GAKpB,OAJK8pD,EAAoC9P,GAAGsxH,aAAalsK,KAAKshM,YAAa1gM,KACvEZ,KAAKqiB,UACLriB,KAAKshM,YAAc1gM,GAEhBA,CACX,EAEAslK,kBAAmB,SAAUx6J,GACzB1L,KAAK+qB,eAAe2/B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,cAAcC,YAC9GxjH,KAAK4kB,eAAe,IAAIne,KAAKiF,EAAK43G,WAAWC,aAAa,cAAcC,YACxExjH,KAAKumB,aAAa,IAAI9f,KAAKiF,EAAK43G,WAAWC,aAAa,YAAYC,YACpExjH,KAAK2lB,UAAUwkE,WAAWz+E,EAAK43G,WAAWC,aAAa,SAASC,YAChExjH,KAAKwlB,oBAAoBmlC,EAA4C4kG,MAAM5nJ,MAAM,mBAAoB+D,EAAK43G,WAAWC,aAAa,mBAAmBC,YACjJxjH,KAAKslB,sBAAwB,GAC7BtlB,KAAKwlB,oBAAoB,GAE7BxlB,KAAKmnB,cAAc+iE,SAASx+E,EAAK43G,WAAWC,aAAa,aAAaC,YACtExjH,KAAKsnB,cAAc4iE,SAASx+E,EAAK43G,WAAWC,aAAa,aAAaC,YAChB,MAAlD93G,EAAK43G,WAAWC,aAAa,mBAC7BvjH,KAAK0mB,mBAAmBwjE,SAASx+E,EAAK43G,WAAWC,aAAa,kBAAkBC,YAEpFxjH,KAAKmkB,YAAYwmC,EAA4C4kG,MAAM5nJ,MAAM,WAAY+D,EAAK43G,WAAWC,aAAa,WAAWC,YAC7HxjH,KAAKmpM,cAAc,GACnBnpM,KAAKopM,aAAaz+I,EAA4C4kG,MAAM5nJ,MAAM,YAAa+D,EAAK43G,WAAWC,aAAa,YAAYC,YAChIxjH,KAAKynB,iBAAiByiE,SAASx+E,EAAK43G,WAAWC,aAAa,gBAAgBC,YAC5ExjH,KAAKqlB,mBAAmB6kE,SAASx+E,EAAK43G,WAAWC,aAAa,kBAAkBC,YAChFxjH,KAAK0pB,aAAaihC,EAA4C4kG,MAAM5nJ,MAAM,YAAa+D,EAAK43G,WAAWC,aAAa,YAAYC,YAChIxjH,KAAK4nB,gBAAgBsiE,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAC1ExjH,KAAK+nB,gBAAgB4iC,EAA4C4kG,MAAM5nJ,MAAM,eAAgB+D,EAAK43G,WAAWC,aAAa,eAAeC,YACzIxjH,KAAKskB,YAAYqmC,EAA4C4kG,MAAM5nJ,MAAM,WAAY+D,EAAK43G,WAAWC,aAAa,WAAWC,YAC7HxjH,KAAKgkB,cAAckmE,SAASx+E,EAAK43G,WAAWC,aAAa,aAAaC,YACtExjH,KAAK4qB,oBAAoBs/D,SAASx+E,EAAK43G,WAAWC,aAAa,mBAAmBC,YAClFxjH,KAAKomB,kBAAkB8jE,SAASx+E,EAAK43G,WAAWC,aAAa,iBAAiBC,YAQnB,MAAvD93G,EAAK43G,WAAWC,aAAa,uBAC7BvjH,KAAKyqB,eAAey/D,SAASx+E,EAAK43G,WAAWC,aAAa,uBAAuBC,YAEjFxjH,KAAKyqB,eAAey/D,SAASx+E,EAAK43G,WAAWC,aAAa,cAAcC,YAKvB,MAAjD93G,EAAK43G,WAAWC,aAAa,mBAC7BvjH,KAAK8oB,kBAAkB4hC,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,iBAAiBC,YACpHxjH,KAAKipB,sBAAsByhC,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,qBAAqBC,YAC5HxjH,KAAKupB,qBAAqB4gE,WAAWz+E,EAAK43G,WAAWC,aAAa,oBAAoBC,YACtFxjH,KAAKopB,qBAAqB+gE,WAAWz+E,EAAK43G,WAAWC,aAAa,oBAAoBC,aAEhC,MAAtD93G,EAAK43G,WAAWC,aAAa,sBAC7BvjH,KAAKqlB,mBAAmB6kE,SAASx+E,EAAK43G,WAAWC,aAAa,sBAAsBC,YAEpFxjH,KAAKqlB,mBAAmB6kE,SAASx+E,EAAK43G,WAAWC,aAAa,kBAAkBC,YAKhC,MAAhD93G,EAAK43G,WAAWC,aAAa,kBAC7BvjH,KAAK8lB,iBAAiB4kC,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,gBAAgBC,YAClHxjH,KAAKojB,oBAAoB1X,EAAK43G,WAAWC,aAAa,mBAAmBC,WACzExjH,KAAKqoB,sBAAsBqiC,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,qBAAqBC,YAC5HxjH,KAAK2oB,yBAAyBwhE,WAAWz+E,EAAK43G,WAAWC,aAAa,wBAAwBC,YAC9FxjH,KAAKwoB,yBAAyB2hE,WAAWz+E,EAAK43G,WAAWC,aAAa,wBAAwBC,aAElGxjH,KAAKgnB,oBAAoBtb,EAAK43G,WAAWC,aAAa,mBAAmBC,WACzExjH,KAAK6mB,oBAAoBqjE,SAASx+E,EAAK43G,WAAWC,aAAa,mBAAmBC,YAClFxjH,KAAKmqB,gBAAgBggE,WAAWz+E,EAAK43G,WAAWC,aAAa,eAAeC,YAC5ExjH,KAAK6pB,mBAAmB8gC,EAA4C4kG,MAAM5nJ,MAAM,kBAAmB+D,EAAK43G,WAAWC,aAAa,kBAAkBC,YAC/F,MAA/C93G,EAAK43G,WAAWC,aAAa,gBAC7BvjH,KAAKsqB,gBAAgBogC,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,eAAeC,YAErE,MAA3C93G,EAAK43G,WAAWC,aAAa,YAC7BvjH,KAAKgqB,YAAY2gC,EAA4C4kG,MAAM5nJ,MAAM,UAAW+D,EAAK43G,WAAWC,aAAa,WAAWC,YAEzE,MAAnD93G,EAAK43G,WAAWC,aAAa,oBAC7BvjH,KAAKkoB,eAAegiE,SAASx+E,EAAK43G,WAAWC,aAAa,mBAAmBC,YAE9B,MAA/C93G,EAAK43G,WAAWC,aAAa,iBAC7BvjH,KAAKkrB,gBAAgBg/D,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAC1ExjH,KAAKqrB,iBAAiBq/B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,gBAAgBC,YAClHxjH,KAAKwrB,gBAAgB0+D,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAC1ExjH,KAAK2rB,iBAAiB++B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,gBAAgBC,YAClHxjH,KAAK8rB,gBAAgBo+D,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAC1ExjH,KAAKisB,iBAAiBy+B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,gBAAgBC,YAClHxjH,KAAKklB,mBAAmBylC,EAA4C4kG,MAAM5nJ,MAAM,WAAY+D,EAAK43G,WAAWC,aAAa,kBAAkBC,YAC3IxjH,KAAK+kB,yBAAyBolE,WAAWz+E,EAAK43G,WAAWC,aAAa,wBAAwBC,aAE/C,MAA/C93G,EAAK43G,WAAWC,aAAa,iBAC7BvjH,KAAKimB,gBAAgBykC,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,eAAeC,YAChHxjH,KAAKk7B,eAAewvB,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,cAAcC,YAC9GxjH,KAAKq7B,kBAAkB3vB,EAAK43G,WAAWC,aAAa,iBAAiBC,WAE7E,EAEA/9F,UAAW,WACP,OAAOzlB,KAAK0lB,KAChB,EAEAC,UAAW,SAAU/kB,GAKjB,OAJIZ,KAAK0lB,QAAU9kB,IACfZ,KAAKqiB,UACLriB,KAAK0lB,MAAQ9kB,GAEVA,CACX,EAEA0kB,oBAAqB,WACjB,OAAOtlB,KAAKyhM,kBAChB,EAEAj8K,oBAAqB,SAAU5kB,GAK3B,OAJIZ,KAAKyhM,qBAAuB7gM,IAC5BZ,KAAKqiB,UACLriB,KAAKyhM,mBAAqB7gM,GAEvBA,CACX,EAEAqmB,cAAe,WACX,OAAOjnB,KAAKknB,SAChB,EAEAC,cAAe,SAAUvmB,GAKrB,OAJIZ,KAAKknB,YAActmB,IACnBZ,KAAKqiB,UACLriB,KAAKknB,UAAYtmB,GAEdA,CACX,EAEAwmB,cAAe,WACX,OAAOpnB,KAAKqnB,SAChB,EAEAC,cAAe,SAAU1mB,GAKrB,OAJIZ,KAAKqnB,YAAczmB,IACnBZ,KAAKqiB,UACLriB,KAAKqnB,UAAYzmB,GAEdA,CACX,EAEA4lB,mBAAoB,WAChB,OAAOxmB,KAAKymB,cAChB,EAEAC,mBAAoB,SAAU9lB,GAK1B,OAJIZ,KAAKymB,iBAAmB7lB,IACxBZ,KAAKqiB,UACLriB,KAAKymB,eAAiB7lB,GAEnBA,CACX,EAEAoqB,gBAAiB,WACb,OAAOhrB,KAAK0hM,cAChB,EAEAx2K,gBAAiB,SAAUtqB,GAKvB,OAJIZ,KAAK0hM,iBAAmB9gM,IACxBZ,KAAKqiB,UACLriB,KAAK0hM,eAAiB9gM,GAEnBA,CACX,EAEA0qB,gBAAiB,WACb,OAAOtrB,KAAK2hM,cAChB,EAEAn2K,gBAAiB,SAAU5qB,GAKvB,OAJIZ,KAAK2hM,iBAAmB/gM,IACxBZ,KAAKqiB,UACLriB,KAAK2hM,eAAiB/gM,GAEnBA,CACX,EAEAgrB,gBAAiB,WACb,OAAO5rB,KAAK4hM,cAChB,EAEA91K,gBAAiB,SAAUlrB,GAKvB,OAJIZ,KAAK4hM,iBAAmBhhM,IACxBZ,KAAKqiB,UACLriB,KAAK4hM,eAAiBhhM,GAEnBA,CACX,EAEAuqB,iBAAkB,WACd,OAAOnrB,KAAK6hM,eAChB,EAEAx2K,iBAAkB,SAAUzqB,GAKxB,OAJIZ,KAAK6hM,kBAAoBjhM,IACzBZ,KAAKqiB,UACLriB,KAAK6hM,gBAAkBjhM,GAEpBA,CACX,EAEA6qB,iBAAkB,WACd,OAAOzrB,KAAK8hM,eAChB,EAEAn2K,iBAAkB,SAAU/qB,GAKxB,OAJIZ,KAAK8hM,kBAAoBlhM,IACzBZ,KAAKqiB,UACLriB,KAAK8hM,gBAAkBlhM,GAEpBA,CACX,EAEAmrB,iBAAkB,WACd,OAAO/rB,KAAK+hM,eAChB,EAEA91K,iBAAkB,SAAUrrB,GAKxB,OAJIZ,KAAK+hM,kBAAoBnhM,IACzBZ,KAAKqiB,UACLriB,KAAK+hM,gBAAkBnhM,GAEpBA,CACX,EAEAqjB,YAAa,WACT,OAAOjkB,KAAKgiM,UAChB,EAEA79K,YAAa,SAAUvjB,GAKnB,OAJIZ,KAAKgiM,aAAephM,IACpBZ,KAAKqiB,UACLriB,KAAKgiM,WAAaphM,GAEfA,CACX,EAEAsoM,cAAe,WACX,OAAOlpM,KAAKiiM,YAChB,EAEAkH,cAAe,SAAUvoM,GAKrB,OAJIZ,KAAKiiM,eAAiBrhM,IACtBZ,KAAKqiB,UACLriB,KAAKiiM,aAAerhM,GAEjBA,CACX,EAEAkpB,YAAa,WACT,OAAO9pB,KAAKkiM,UAChB,EAEAl4K,YAAa,SAAUppB,GAKnB,OAJIZ,KAAKkiM,aAAethM,IACpBZ,KAAKqiB,UACLriB,KAAKkiM,WAAathM,GAEfA,CACX,EAEAqmM,aAAc,WACV,OAAOjnM,KAAKmiM,QAChB,EAEAiH,aAAc,SAAUxoM,GAKpB,OAJIZ,KAAKmiM,WAAavhM,IAClBZ,KAAKqiB,UACLriB,KAAKmiM,SAAWvhM,GAEbA,CACX,EAEAsiB,oBAAqB,WACjB,OAAOljB,KAAKmjB,eAChB,EAEAC,oBAAqB,SAAUxiB,GAC3B,GAAwG,MAApG0+L,EAAsDhoC,kBAAkBO,kBAAkBj3J,GAC1F,MAAM,IAAI+M,MAAM,yBAIpB,OAFA3N,KAAKqiB,UACLriB,KAAKmjB,gBAAkBviB,EAChBA,CACX,EAEA4nK,gBAAiB,WACb,OAAO82B,EAAsDhoC,kBAAkBO,kBAAkB73J,KAAKmjB,gBAC1G,EAEAyC,iBAAkB,WACd,OAAO5lB,KAAK6lB,YAChB,EAEAC,iBAAkB,SAAUllB,GAGxB,OAFAZ,KAAKqiB,UACLriB,KAAK6lB,aAAejlB,EACbA,CACX,EAEAunB,sBAAuB,WACnB,OAAOnoB,KAAKooB,iBAChB,EAEAC,sBAAuB,SAAUznB,GAG7B,OAFAZ,KAAKqiB,UACLriB,KAAKooB,kBAAoBxnB,EAClBA,CACX,EAEA6nB,yBAA0B,WACtB,OAAOzoB,KAAK0oB,oBAChB,EAEAC,yBAA0B,SAAU/nB,GAGhC,OAFAZ,KAAKqiB,UACLriB,KAAK0oB,qBAAuB9nB,EACrBA,CACX,EAEA0nB,yBAA0B,WACtB,OAAOtoB,KAAKuoB,oBAChB,EAEAC,yBAA0B,SAAU5nB,GAGhC,OAFAZ,KAAKqiB,UACLriB,KAAKuoB,qBAAuB3nB,EACrBA,CACX,EAEA6jM,uBAAwB,SAAU7jM,GAC9B,IAAKZ,KAAKmoB,wBACN,OAAOvnB,EAEX,IAAIyoM,GAAazoM,EAAQZ,KAAKyoB,6BAA+BzoB,KAAKsoB,2BAA6BtoB,KAAKyoB,4BAMpG,OALI4gL,EAAY,EACZA,EAAY,EACLA,EAAY,IACnBA,EAAY,GAETA,CACX,EAEA9hL,iBAAkB,WACd,OAAOvnB,KAAKqiM,eAChB,EAEA56K,iBAAkB,SAAU7mB,GAKxB,OAJIZ,KAAKqiM,kBAAoBzhM,IACzBZ,KAAKqiB,UACLriB,KAAKqiM,gBAAkBzhM,GAEpBA,CACX,EAEAukB,mBAAoB,WAChB,OAAOnlB,KAAKolB,cAChB,EAEAC,mBAAoB,SAAUzkB,GAK1B,OAJIZ,KAAKolB,iBAAmBxkB,IACxBZ,KAAKqiB,UACLriB,KAAKolB,eAAiBxkB,GAEnBA,CACX,EAEA4oB,aAAc,WACV,OAAOxpB,KAAKsiM,WAChB,EAEA54K,aAAc,SAAU9oB,GAKpB,OAJIZ,KAAKsiM,cAAgB1hM,IACrBZ,KAAKqiB,UACLriB,KAAKsiM,YAAc1hM,GAEhBA,CACX,EAEA8mB,gBAAiB,WACb,OAAO1nB,KAAKuiM,cAChB,EAEA36K,gBAAiB,SAAUhnB,GAKvB,OAJIZ,KAAKuiM,iBAAmB3hM,IACxBZ,KAAKqiB,UACLriB,KAAKuiM,eAAiB3hM,GAEnBA,CACX,EAEAwpB,gBAAiB,WACb,OAAOpqB,KAAKwiM,cAChB,EAEAl4K,gBAAiB,SAAU1pB,GAKvB,OAJIZ,KAAKwiM,iBAAmB5hM,IACxBZ,KAAKqiB,UACLriB,KAAKwiM,eAAiB5hM,GAEnBA,CACX,EAEAinB,gBAAiB,WACb,OAAO7nB,KAAKyiM,cAChB,EAEA16K,gBAAiB,SAAUnnB,GAKvB,OAJIZ,KAAKyiM,iBAAmB7hM,IACxBZ,KAAKqiB,UACLriB,KAAKyiM,eAAiB7hM,GAEnBA,CACX,EAEAwjB,YAAa,WACT,OAAOpkB,KAAK0iM,UAChB,EAEAp+K,YAAa,SAAU1jB,GAKnB,OAJIZ,KAAK0iM,aAAe9hM,IACpBZ,KAAKqiB,UACLriB,KAAK0iM,WAAa9hM,GAEfA,CACX,EAEAokB,mBAAoB,WAChB,OAAOhlB,KAAK2iM,iBAChB,EAEAz9K,mBAAoB,SAAUtkB,GAK1B,OAJIZ,KAAK2iM,oBAAsB/hM,IAC3BZ,KAAKqiB,UACLriB,KAAK2iM,kBAAoB/hM,GAEtBA,CACX,EAEAikB,yBAA0B,WACtB,OAAO7kB,KAAK4iM,uBAChB,EAEA79K,yBAA0B,SAAUnkB,GAKhC,OAJIZ,KAAK4iM,0BAA4BhiM,IACjCZ,KAAKqiB,UACLriB,KAAK4iM,wBAA0BhiM,GAE5BA,CACX,EAEAkjB,cAAe,WACX,OAAO9jB,KAAK+jB,SAChB,EAEAC,cAAe,SAAUpjB,GAKrB,OAJIZ,KAAK+jB,YAAcnjB,IACnBZ,KAAKqiB,UACLriB,KAAK+jB,UAAYnjB,GAEdA,CACX,EAEA8pB,oBAAqB,WACjB,OAAO1qB,KAAK2qB,eAChB,EAEAC,oBAAqB,SAAUhqB,GAK3B,OAJIZ,KAAK2qB,kBAAoB/pB,IACzBZ,KAAKqiB,UACLriB,KAAK2qB,gBAAkB/pB,GAEpBA,CACX,EAEAslB,kBAAmB,WACf,OAAOlmB,KAAKmmB,aAChB,EAEAC,kBAAmB,SAAUxlB,GAKzB,OAJIZ,KAAKmmB,gBAAkBvlB,IACvBZ,KAAKqiB,UACLriB,KAAKmmB,cAAgBvlB,GAElBA,CACX,EAEA2pB,eAAgB,WACZ,OAAOvqB,KAAKwqB,UAChB,EAEAC,eAAgB,SAAU7pB,GAKtB,OAJIZ,KAAKwqB,aAAe5pB,IACpBZ,KAAKqiB,UACLriB,KAAKwqB,WAAa5pB,GAEfA,CACX,EAEAgoB,kBAAmB,WACf,OAAO5oB,KAAK6oB,aAChB,EAEAC,kBAAmB,SAAUloB,GAKzB,OAJIZ,KAAK6oB,gBAAkBjoB,IACvBZ,KAAKqiB,UACLriB,KAAK6oB,cAAgBjoB,GAElBA,CACX,EAEAmoB,sBAAuB,WACnB,OAAO/oB,KAAKgpB,iBAChB,EAEAC,sBAAuB,SAAUroB,GAK7B,OAJIZ,KAAKgpB,oBAAsBpoB,IAC3BZ,KAAKqiB,UACLriB,KAAKgpB,kBAAoBpoB,GAEtBA,CACX,EAEAyoB,qBAAsB,WAClB,OAAOrpB,KAAKspB,gBAChB,EAEAC,qBAAsB,SAAU3oB,GAK5B,OAJIZ,KAAKspB,mBAAqB1oB,IAC1BZ,KAAKqiB,UACLriB,KAAKspB,iBAAmB1oB,GAErBA,CACX,EAEAsoB,qBAAsB,WAClB,OAAOlpB,KAAKmpB,gBAChB,EAEAC,qBAAsB,SAAUxoB,GAK5B,OAJIZ,KAAKmpB,mBAAqBvoB,IAC1BZ,KAAKqiB,UACLriB,KAAKmpB,iBAAmBvoB,GAErBA,CACX,EAEA0jM,mBAAoB,SAAU1jM,GAC1B,IAAKZ,KAAK4oB,oBACN,OAAOhoB,EAEX,IAAIyoM,GAAazoM,EAAQZ,KAAKqpB,yBAA2BrpB,KAAKkpB,uBAAyBlpB,KAAKqpB,wBAS5F,OARIrpB,KAAK+oB,0BACDsgL,EAAY,EACZA,EAAY,EAEPA,EAAY,IACjBA,EAAY,IAGbA,CACX,EAEArhL,eAAgB,WACZ,OAAOhoB,KAAKioB,UAChB,EAEAC,eAAgB,SAAUtnB,GAKtB,OAJIZ,KAAKioB,aAAernB,IACpBZ,KAAKqiB,UACLriB,KAAKioB,WAAarnB,GAEfA,CACX,EAEAkmB,oBAAqB,WACjB,OAAO9mB,KAAK8iM,kBAChB,EAEA97K,oBAAqB,SAAUpmB,GAK3B,OAJIZ,KAAK8iM,qBAAuBliM,IAC5BZ,KAAKqiB,UACLriB,KAAK8iM,mBAAqBliM,GAEvBA,CACX,EAEA+lB,oBAAqB,WACjB,OAAO3mB,KAAK+iM,kBAChB,EAEAl8K,oBAAqB,SAAUjmB,GAK3B,OAJIZ,KAAK+iM,qBAAuBniM,IAC5BZ,KAAKqiB,UACLriB,KAAK+iM,mBAAqBniM,GAEvBA,CACX,EAEAqpB,gBAAiB,WACb,OAAOjqB,KAAKkqB,WAChB,EAEAC,gBAAiB,SAAUvpB,GAKvB,OAJIZ,KAAKkqB,cAAgBtpB,IACrBZ,KAAKqiB,UACLriB,KAAKkqB,YAActpB,GAEhBA,CACX,EAEA+oB,mBAAoB,WAChB,OAAO3pB,KAAK4pB,cAChB,EAEAC,mBAAoB,SAAUjpB,GAK1B,OAJIZ,KAAK4pB,iBAAmBhpB,IACxBZ,KAAKqiB,UACLriB,KAAK4pB,eAAiBhpB,GAEnBA,CACX,EAEAm1C,KAAM,SAAU9T,EAAexgB,EAAS8iJ,GACpC,IAAIpqH,EAASlY,EACTjiC,KAAKqiB,UAAYriB,KAAKmjM,aACtBnjM,KAAK4lI,UAET5lI,KAAKmjM,YAAcnjM,KAAKqiB,QACpBriB,KAAKijM,eAAiB1+B,IACtBvkK,KAAK4lI,UACL5lI,KAAKijM,aAAe1+B,GAEpBvkK,KAAKkjM,OACLljM,KAAKmmM,iBAAiBhsJ,EAAQ14B,GAElC,IAAI+/B,EAAO29I,EAAwD7hK,oBAAoBu9G,WAAaskD,EAAwD7hK,oBAAoBwgH,YAAY99I,KAAKq3J,UAC7LiyC,EAAmC,EAAnBtpM,KAAKkqB,YAkBzB,GAjBIq6I,GAAQvkK,KAAKsgB,cAAyC,IAAxBtgB,KAAKyiM,iBACnC6G,EAAiBtpM,KAAKkqB,aAAe+X,EAAc2K,WAAWlQ,KAAO,MAE9C,MAAvB18B,KAAKqmM,iBACLrmM,KAAKqmM,eAAe3gL,MAAQ1lB,KAAK0lB,MACjC1lB,KAAKqmM,eAAe3iK,IAAM1jC,KAAKqgB,mBAC/BrgB,KAAKqmM,eAAev7K,WAAa9qB,KAAK8qB,WACtC9qB,KAAKqmM,eAAe7kJ,KAAOA,EAC3BxhD,KAAKqmM,eAAetwJ,KAAK9T,EAAexgB,EAAUzhB,KAAKwhB,cAAe,IAEjD,MAArBxhB,KAAKo1C,eACLp1C,KAAKo1C,aAAa1vB,MAAQ1lB,KAAK0lB,MAC/B1lB,KAAKo1C,aAAa1R,IAAM1jC,KAAKqgB,mBAC7BrgB,KAAKo1C,aAAatqB,WAAa9qB,KAAK8qB,WACpC9qB,KAAKo1C,aAAaoM,KAAOA,EACzBxhD,KAAKo1C,aAAaW,KAAK9T,EAAexgB,EAAUzhB,KAAKwhB,cAAe,IAElD,MAAlBxhB,KAAKi1C,UAQL,OAPAj1C,KAAKi1C,UAAUW,eAAgB,EAC/B51C,KAAKi1C,UAAU5qB,YAAcrqB,KAAKoqB,kBAClCpqB,KAAKi1C,UAAUvvB,MAAS1lB,KAAe,WAAIA,KAAK0lB,MAAQ,EACxD1lB,KAAKi1C,UAAUvR,IAAM1jC,KAAKqgB,mBAC1BrgB,KAAKi1C,UAAUnqB,WAAa9qB,KAAK8qB,WACjC9qB,KAAKi1C,UAAUuM,KAAOA,EACtBxhD,KAAKi1C,UAAU+K,MAAiC,IAAxBhgD,KAAKyiM,eAAwB6G,GAAiBA,EAC9DtpM,KAAKsiM,aACT,KAAK,EACDtiM,KAAKi1C,UAAUc,KAAK9T,EAAexgB,EAAUzhB,KAAKwhB,eAAe,GACjE,MACJ,KAAK,EACDxhB,KAAKi1C,UAAU6kF,aAAa73F,EAAeR,EAAiBmiK,uBAAuBhqE,UAAWn4G,EAAUzhB,KAAKwhB,eAC7G,MACJ,KAAK,EACDxhB,KAAKi1C,UAAU6kF,aAAa73F,EAAe2vI,EAAQuuB,kBAAkB,IAAK1+K,EAAUzhB,KAAKwhB,eACzF,MACJ,KAAK,EACDxhB,KAAKi1C,UAAU6kF,aAAa73F,EAAe2vI,EAAQuuB,kBAAkB,IAAK1+K,EAAUzhB,KAAKwhB,eACzF,MACJ,KAAK,EACL,KAAK,EACDxhB,KAAKi1C,UAAU6kF,aAAa73F,EAAe2vI,EAAQuuB,kBAAkBngM,KAAKuiM,gBAAiB9gL,EAAUzhB,KAAKwhB,eAC1G,MACJ,QACI,MAkBZ,OAfqB,MAAjBxhB,KAAKk1C,WACLl1C,KAAKk1C,SAASxR,IAAM1jC,KAAKqgB,mBACzBrgB,KAAKk1C,SAASxvB,MAAQ1lB,KAAK0lB,MAC3B1lB,KAAKk1C,SAASpqB,WAAa9qB,KAAK8qB,WAChC9qB,KAAKk1C,SAASsM,KAAOA,EACrBxhD,KAAKk1C,SAASc,UAAU/T,EAAexgB,EAAUzhB,KAAKwhB,gBAEnC,MAAnBxhB,KAAKomM,aACLpmM,KAAKomM,WAAW1iK,IAAM1jC,KAAKqgB,mBAC3BrgB,KAAKomM,WAAW1gL,MAAQ1lB,KAAK0lB,MAC7B1lB,KAAKomM,WAAWt7K,WAAa9qB,KAAK8qB,WAClC9qB,KAAKomM,WAAW/7K,YAAcrqB,KAAKoqB,kBACnCpqB,KAAKomM,WAAW5kJ,KAAOA,EACvBxhD,KAAKomM,WAAWpwJ,UAAU/T,EAAexgB,EAAUzhB,KAAKwhB,iBAErD,CACX,EAEAynL,YAAa,WACY,MAAjBjpM,KAAKk1C,UACLl1C,KAAKk1C,SAASw/E,QAEK,MAAnB10H,KAAKomM,YACLpmM,KAAKomM,WAAW1xE,QAEO,MAAvB10H,KAAKqmM,gBACLrmM,KAAKqmM,eAAe3xE,QAEF,MAAlB10H,KAAKi1C,WACLj1C,KAAKi1C,UAAUy/E,QAEM,MAArB10H,KAAKo1C,cACLp1C,KAAKo1C,aAAas/E,OAE1B,GAQJ,SAASm1B,IACL7pJ,KAAKupM,cAAgB,CAAC,EACtB9nK,EAAiBjhC,KAAKR,KAC1B,EARA,EAAG2qD,EAA4CzS,cAAc,mBAAoB,CAACzW,EAAkBoiK,EAAmBtE,EAAwC57B,QAU/J,IAAI6lC,EAA2B,CAC3BxjD,YAAa,SAAUyjD,EAASC,GAC5B,IAAKh/I,EAAoC9P,GAAGqgD,UAAUj7F,KAAKupM,cAAeE,GAAU,CAChF,IAAInuJ,EAASoP,EAAoC9P,GAAGW,UAAUmuJ,GAC9D,MAAOpuJ,EAAOE,WAAY,CACtB,IAAIs/C,EAAMx/C,EAAOI,QACjB17C,KAAKsmJ,aAAazrD,KAAKl2F,KAAKm2F,EAChC,CACA96F,KAAKkjM,OAAQ,EACbljM,KAAKupM,cAAcE,IAAW,CAClC,CACJ,EAEA3jD,eAAgB,SAAU2jD,EAASC,GAC/B,GAAIh/I,EAAoC9P,GAAGqgD,UAAUj7F,KAAKupM,cAAeE,GAAU,CAC/E,IAAInuJ,EAASoP,EAAoC9P,GAAGW,UAAUmuJ,GAC9D,MAAOpuJ,EAAOE,WAAY,CACtB,IAAIs/C,EAAMx/C,EAAOI,QACjBgP,EAAoC9P,GAAG46C,OAAOx1F,KAAKsmJ,aAAazrD,KAAMC,EAC1E,CACA96F,KAAKkjM,OAAQ,SACNljM,KAAKupM,cAAcE,EAC9B,CACJ,EAEA7jE,QAAS,WACLnkG,EAAiBnhC,UAAUslI,QAAQplI,KAAKR,MACxC0qD,EAAoC9P,GAAG24H,UAAUvzK,KAAKupM,eACtDvpM,KAAKsmJ,aAAazrD,KAAKl4F,OAAS,CACpC,IAGJ,EAAGgoD,EAA4CzS,cAAc,0BAA2B,CAAC2xG,EAAyB2/C,EAA0B/nK,GAGrI,EAED;;;iCAIA,CAAE9iC,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCuhM,MAAO,IAAM,IAEf,IAAIp2I,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FzO,EAAwC,mBAAsC,iBAC9EytJ,EAA4C,uBAA0C,qBAc/G,SAAS7I,IACL9gM,KAAKwrC,KAAO,IAAI0Q,EAAsClQ,KACtDhsC,KAAK05J,OAAS,GACd15J,KAAK66F,KAAO,GACZ76F,KAAKumJ,UAAY,KACjBvmJ,KAAK4pM,QAAS,CAClB,CAEA,IAAIC,EAAS,CACTt4E,KAAM,WACFvxH,KAAK4pM,QAAS,CAClB,EAEAp4E,OAAQ,WACJxxH,KAAK4pM,QAAS,CAClB,EAEAxvJ,KAAM,WACF,IAAI3yC,EAAO,GACP4zC,GAAQ,EACRC,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK05J,QACnE,MAAOp+G,EAAOE,WAAY,CACtB,IAAI3E,EAAMyE,EAAOI,QACZL,EAIDA,GAAQ,EAHR5zC,GAAQ,KAKZA,GAAQovC,CACZ,CACApvC,GAAQ,OACR,IAAI09G,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAK66F,MACnE,MAAOsqB,EAAO3pE,WAAY,CACtB,IAAIs/C,EAAMqqB,EAAOzpE,QACjBL,GAAQ,EACR,IAAIgqE,EAAS36D,EAAoC9P,GAAGW,UAAUu/C,GAC9D,MAAOuqB,EAAO7pE,WAAY,CAClB3E,EAAMwuE,EAAO3pE,QACZL,EAIDA,GAAQ,EAHR5zC,GAAQ,KAKZA,GAAQovC,CACZ,CACApvC,GAAQ,MACZ,CACA,OAAOA,CACX,EAEA03K,eAAgB,SAAU13K,EAAMmhM,EAAUkB,EAAOn9B,GAC7C,IAAIvwE,EAAQ,EACR1Q,EAAQjkF,EAAK0hF,MAAM,QACvB,IAAKy/G,GAAYj8B,EACb,GAAIjhF,EAAM/oF,OAAS,EAAG,CAClB,IAAIonM,EAAar+G,EAAM,GACvB0Q,KACkC,IAA9B2tG,EAAW9wL,QAAQ,OAAgB8wL,EAAW9wL,QAAQ,MAAQ,IAC9DjZ,KAAKumJ,UAAY,KAEhBqiD,IACD5oM,KAAK66F,KAAKl4F,OAAS,GAEvB3C,KAAK05J,OAASiwC,EAA0CtjD,QAAQn9D,YAAY6gH,EAAY/pM,KAAKumJ,UACjG,MAEIvmJ,KAAK05J,OAAS,GAGtB,IAAIntE,EAAO,GACNu9G,IACDv9G,EAAOvsF,KAAK66F,MAEhB,MAAOuB,EAAQ1Q,EAAM/oF,OAAQ,CACzB,IAAI4zF,EAAO7K,EAAM0Q,GACbgqD,EAAUujD,EAA0CtjD,QAAQn9D,YAAYqN,EAAMv2F,KAAKumJ,WACvF,GAAIH,EAAQzjJ,OAAS,EACjB,MAEJ4pF,EAAK5nF,KAAKyhJ,GACVhqD,GACJ,CACI0tG,IACA9pM,KAAK66F,KAAOtO,EAEpB,EAEA8I,MAAO,WAEH,IADA,IAAI20G,EAAe,IAAIlJ,EACdt+L,EAAI,EAAGA,EAAIxC,KAAK05J,OAAO/2J,OAAQH,IACpCwnM,EAAatwC,OAAO/0J,KAAK3E,KAAK05J,OAAOl3J,IAEzC,IAAK,IAAIk3C,EAAI,EAAGA,EAAI15C,KAAK66F,KAAKl4F,OAAQ+2C,IAAK,CACvCswJ,EAAanvG,KAAKl2F,KAAK,IACvB,IAASnC,EAAI,EAAGA,EAAIxC,KAAK66F,KAAKnhD,GAAG/2C,OAAQH,IACrCwnM,EAAanvG,KAAKnhD,GAAG/0C,KAAK3E,KAAK66F,KAAKnhD,GAAGl3C,GAE/C,CACA,OAAOwnM,CACX,EAEAzF,UAAW,SAAU55L,EAAMlD,GACvBzH,KAAK05J,OAAO/0J,KAAKgG,GACjB,IAAK,IAAInI,EAAI,EAAGA,EAAIiF,EAAK9E,OAAQH,IAC7BxC,KAAK66F,KAAKr4F,GAAGmC,KAAK8C,EAAKjF,GAE/B,EAEA0hM,aAAc,SAAUv5L,GACpB,IAAIs/L,EAAejqM,KAAK05J,OAAOzgJ,QAAQtO,GACvC,GAAIs/L,GAAgB,EAAG,CACnBjqM,KAAK05J,OAAOl0J,OAAOykM,EAAc,GACjC,IAAK,IAAIznM,EAAI,EAAGA,EAAIxC,KAAK66F,KAAKl4F,OAAQH,IAClCxC,KAAK66F,KAAKr4F,GAAGgD,OAAOykM,EAAc,EAE1C,CACJ,IAGJ,EAAGt/I,EAA4CzS,cAAc,QAAS,CAAC4oJ,EAAO+I,EAAQ,MAG/E,EAED;;;6CAIA,CAAElrM,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCye,SAAU,IAAM,EAChBksL,UAAW,IAAM,EACjBC,iBAAkB,IAAM,EACxBC,YAAa,IAAM,EACnBzrL,aAAc,IAAM,EACpBC,UAAW,IAAM,EACjBG,QAAS,IAAM,EACfsrL,gBAAiB,IAAM,IAEzB,IAAI3/I,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1F2/I,EAAyD,oCAAuD,kCAChHC,EAAyC,mBAAsC,yBAkBpGJ,EAAmB,CACnB79C,UAAW,EACXk+C,YAAa,EACb9N,QAAS,IAGb,EAAG/xI,EAA4CzS,cAAc,mBAAoBiyJ,IACjF,EAAGx/I,EAA4C4jC,cAAc,mBAAoB47G,GAKjF,IAAInsL,EAAW,CACXuvK,MAAO,EACPtuF,SAAU,EACV3hD,SAAU,EACVmtJ,SAAU,EACVC,QAAS,IAGb,EAAG//I,EAA4CzS,cAAc,WAAYl6B,IACzE,EAAG2sC,EAA4C4jC,cAAc,WAAYvwE,GAKzE,IAAIosL,EAAc,CACdO,aAAc,IAGlB,EAAGhgJ,EAA4CzS,cAAc,cAAekyJ,IAC5E,EAAGz/I,EAA4C4jC,cAAc,cAAe67G,GAK5E,IAAIF,EAAY,CACZS,aAAc,EACdC,gBAAiB,EACjBC,mBAAoB,IAGxB,EAAGlgJ,EAA4CzS,cAAc,YAAagyJ,IAC1E,EAAGv/I,EAA4C4jC,cAAc,YAAa27G,GAK1E,IAAItrL,EAAY,CACZksL,SAAU,EACVhtG,MAAO,EACPitG,OAAQ,EACRC,OAAQ,EACRC,QAAS,EACT38G,OAAQ,IAGZ,EAAG3jC,EAA4CzS,cAAc,YAAat5B,IAC1E,EAAG+rC,EAA4C4jC,cAAc,YAAa3vE,GAK1E,IAAID,EAAe,CACfusL,OAAQ,EACRxqE,MAAO,IAGX,EAAG/1E,EAA4CzS,cAAc,eAAgBv5B,IAC7E,EAAGgsC,EAA4C4jC,cAAc,eAAgB5vE,GAK7E,IAAII,EAAU,CACVurE,MAAO,EACP4W,QAAS,GASb,SAASmpG,IACLrqM,KAAK+gM,aAAc,EACnB/gM,KAAKghM,iBAAmB,EACxBhhM,KAAK0rF,OAAQ,EACb1rF,KAAKknB,WAAa,EAClBlnB,KAAKihM,UAAY,EACjBjhM,KAAK0lB,MAAQ,GACb1lB,KAAK8qB,YAAa,EAClB9qB,KAAKkhM,gBAAiB,EACtBlhM,KAAKmhM,eAAgB,EACrBnhM,KAAKohM,iBAAmB,GACxBphM,KAAKqhM,cAAgB,IAAI56L,KAAK,YAC9BzG,KAAKshM,YAAc,IAAI76L,KAAK,cAC5BzG,KAAKuhM,mBAAqB,CAAC,EAC3BvhM,KAAKwhM,kBAAoB,CAAC,EAC1BxhM,KAAKyhM,mBAAqB,EAC1BzhM,KAAKqnB,WAAa,EAClBrnB,KAAKymB,gBAAkB,EACvBzmB,KAAK0hM,gBAAkB,EACvB1hM,KAAK2hM,gBAAkB,EACvB3hM,KAAK4hM,gBAAkB,EACvB5hM,KAAK6hM,iBAAkB,EACvB7hM,KAAK8hM,iBAAkB,EACvB9hM,KAAK+hM,iBAAkB,EACvB/hM,KAAKgiM,WAAa,EAClBhiM,KAAKiiM,aAAe,EACpBjiM,KAAKkiM,WAAa,EAClBliM,KAAKmrM,YAAc,EACnBnrM,KAAKqiM,iBAAmB,EACxBriM,KAAKorM,mBAAqB,EAC1BprM,KAAKsiM,YAAc,EACnBtiM,KAAKuiM,eAAiB,EACtBviM,KAAKwiM,gBAAiB,EACtBxiM,KAAKyiM,eAAiB,EACtBziM,KAAK0iM,WAAa,EAClB1iM,KAAK2iM,kBAAoB,EACzB3iM,KAAK4iM,wBAA0B,EAC/B5iM,KAAK+jB,WAAa,EAClB/jB,KAAK2qB,iBAAmB,EACxB3qB,KAAKmmB,eAAiB,EACtBnmB,KAAKwqB,YAAc,EACnBxqB,KAAKioB,WAAa,EAClBjoB,KAAK8iM,mBAAqB,GAC1B9iM,KAAK+iM,oBAAsB,EAC3B/iM,KAAKkqB,YAAc,EACnBlqB,KAAK4pB,eAAiB,EACtB5pB,KAAKgjM,UAAY,GACjBhjM,KAAKijM,cAAe,EACpBjjM,KAAKq3J,SAAW,IAAI5wJ,KAAK,KAAM,EAAG,EAAG,GAAI,EAAG,GAC5CzG,KAAKkjM,OAAQ,EACbljM,KAAKmjM,YAAc,EACnBoH,EAAuC5mC,MAAMnjK,KAAKR,KACtD,EA1DA,EAAG2qD,EAA4CzS,cAAc,UAAWn5B,IACxE,EAAG4rC,EAA4C4jC,cAAc,UAAWxvE,GA2DxEsrL,EAAgBjH,iBAAmB,KAEnCiH,EAAgBzG,qBAAuB,WACnC,OAAOyG,EAAgBjH,gBAC3B,EAEA,IAAIiI,EAAmB,CACnBtlL,gBAAiB,WACb,OAAO/lB,KAAKkhM,cAChB,EAEAj7K,gBAAiB,SAAUrlB,GAEvB,OADAZ,KAAKkhM,eAAiBtgM,EACfA,CACX,EAEAo6B,eAAgB,WACZ,OAAOh7B,KAAKmhM,aAChB,EAEAjmK,eAAgB,SAAUt6B,GAEtB,OADAZ,KAAKmhM,cAAgBvgM,EACdA,CACX,EAEAu6B,kBAAmB,WACf,OAAOn7B,KAAKohM,gBAChB,EAEA/lK,kBAAmB,SAAUz6B,GAEzB,OADAZ,KAAKohM,iBAAmBxgM,EACjBA,CACX,EAEAiqB,eAAgB,WACZ,OAAO7qB,KAAK8qB,UAChB,EAEAC,eAAgB,SAAUnqB,GAKtB,OAJIZ,KAAK8qB,aAAelqB,IACpBZ,KAAKqiB,UACLriB,KAAK8qB,WAAalqB,GAEfA,CACX,EAEAkjM,WAAY,WACR,OAAO,IACX,EAEAp/K,eAAgB,WACZ,OAAO1kB,KAAKqhM,aAChB,EAEAz8K,eAAgB,SAAUhkB,GAKtB,OAJK8pD,EAAoC9P,GAAGsxH,aAAalsK,KAAKqhM,cAAezgM,KACzEZ,KAAKqiB,UACLriB,KAAKqhM,cAAgBzgM,GAElBA,CACX,EAEAylB,aAAc,WACV,OAAOrmB,KAAKshM,WAChB,EAEA/6K,aAAc,SAAU3lB,GAKpB,OAJK8pD,EAAoC9P,GAAGsxH,aAAalsK,KAAKshM,YAAa1gM,KACvEZ,KAAKqiB,UACLriB,KAAKshM,YAAc1gM,GAEhBA,CACX,EAEAslK,kBAAmB,SAAUx6J,GAczB,OAbA1L,KAAK+qB,eAAe2/B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,cAAcC,YAC9GxjH,KAAK4kB,eAAe,IAAIne,KAAKiF,EAAK43G,WAAWC,aAAa,cAAcC,YACxExjH,KAAKumB,aAAa,IAAI9f,KAAKiF,EAAK43G,WAAWC,aAAa,YAAYC,YACpExjH,KAAK2lB,UAAUwkE,WAAWz+E,EAAK43G,WAAWC,aAAa,SAASC,YAChExjH,KAAKwlB,oBAAoBmlC,EAA4C4kG,MAAM5nJ,MAAM,mBAAoB+D,EAAK43G,WAAWC,aAAa,mBAAmBC,YACjJxjH,KAAKslB,sBAAwB,GAC7BtlB,KAAKwlB,oBAAoB,GAE7BxlB,KAAKmnB,cAAc+iE,SAASx+E,EAAK43G,WAAWC,aAAa,aAAaC,YACtExjH,KAAKsnB,cAAc4iE,SAASx+E,EAAK43G,WAAWC,aAAa,aAAaC,YAChB,MAAlD93G,EAAK43G,WAAWC,aAAa,mBAC7BvjH,KAAK0mB,mBAAmBwjE,SAASx+E,EAAK43G,WAAWC,aAAa,kBAAkBC,YAE5E93G,EAAK43G,WAAWC,aAAa,WAAWC,WAC5C,IAAK,QACDxjH,KAAKmkB,YAAY,GACjB,MACJ,IAAK,WACDnkB,KAAKmkB,YAAY,GACjB,MACJ,IAAK,WACDnkB,KAAKmkB,YAAY,GACjB,MACJ,IAAK,WACDnkB,KAAKmkB,YAAY,GACjB,MACJ,IAAK,UACDnkB,KAAKmkB,YAAY,GACjB,MACJ,QACI,MAGR,OADAnkB,KAAKmpM,cAAc,GACXz9L,EAAK43G,WAAWC,aAAa,YAAYC,WAC7C,IAAK,eACDxjH,KAAKsrM,cAAc,GACnB,MACJ,IAAK,kBACDtrM,KAAKsrM,cAAc,GACnB,MACJ,IAAK,qBACDtrM,KAAKsrM,cAAc,GACnB,MACJ,QACI,MAIR,OAFAtrM,KAAKynB,iBAAiByiE,SAASx+E,EAAK43G,WAAWC,aAAa,gBAAgBC,YAC5ExjH,KAAKqlB,mBAAmB6kE,SAASx+E,EAAK43G,WAAWC,aAAa,kBAAkBC,YACxE93G,EAAK43G,WAAWC,aAAa,YAAYC,WAC7C,IAAK,WACDxjH,KAAK0pB,aAAa,GAClB,MACJ,IAAK,QACD1pB,KAAK0pB,aAAa,GAClB,MACJ,IAAK,SACD1pB,KAAK0pB,aAAa,GAClB,MACJ,IAAK,UACD1pB,KAAK0pB,aAAa,GAClB,MACJ,QACI,MAGR,OADA1pB,KAAK4nB,gBAAgBsiE,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAClE93G,EAAK43G,WAAWC,aAAa,eAAeC,WAChD,IAAK,SACDxjH,KAAK+nB,gBAAgB,GACrB,MACJ,IAAK,QACD/nB,KAAK+nB,gBAAgB,GACrB,MACJ,QACI,MAER,OAAQrc,EAAK43G,WAAWC,aAAa,WAAWC,WAC5C,IAAK,SACDxjH,KAAKskB,YAAY,GACjB,MACJ,IAAK,OACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,SACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,QACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,aACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,oBACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,aACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,UACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,cACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,SACDtkB,KAAKskB,YAAY,IACjB,MACJ,QACI,MASR,OAPAtkB,KAAKgkB,cAAckmE,SAASx+E,EAAK43G,WAAWC,aAAa,aAAaC,YACtExjH,KAAK4qB,oBAAoBs/D,SAASx+E,EAAK43G,WAAWC,aAAa,mBAAmBC,YAClFxjH,KAAKomB,kBAAkB8jE,SAASx+E,EAAK43G,WAAWC,aAAa,iBAAiBC,YAC9ExjH,KAAKyqB,eAAey/D,SAASx+E,EAAK43G,WAAWC,aAAa,cAAcC,YACxExjH,KAAKgnB,oBAAoBtb,EAAK43G,WAAWC,aAAa,mBAAmBC,WACzExjH,KAAK6mB,oBAAoBqjE,SAASx+E,EAAK43G,WAAWC,aAAa,mBAAmBC,YAClFxjH,KAAKmqB,gBAAgBggE,WAAWz+E,EAAK43G,WAAWC,aAAa,eAAeC,YACpE93G,EAAK43G,WAAWC,aAAa,kBAAkBC,WACnD,IAAK,SACDxjH,KAAK6pB,mBAAmB,GACxB,MACJ,IAAK,QACD7pB,KAAK6pB,mBAAmB,GACxB,MACJ,IAAK,MACD7pB,KAAK6pB,mBAAmB,GACxB,MACJ,IAAK,WACD7pB,KAAK6pB,mBAAmB,GACxB,MACJ,IAAK,mBACD7pB,KAAK6pB,mBAAmB,GACxB,MACJ,QACI,MAKR,GAHmD,MAA/Cne,EAAK43G,WAAWC,aAAa,gBAC7BvjH,KAAKsqB,gBAAgBogC,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,eAAeC,YAErE,MAA3C93G,EAAK43G,WAAWC,aAAa,WAC7B,OAAQ73G,EAAK43G,WAAWC,aAAa,WAAWC,WAC5C,IAAK,QACDxjH,KAAKgqB,YAAY,GACjB,MACJ,IAAK,UACDhqB,KAAKgqB,YAAY,GACjB,MAMZ,GAHuD,MAAnDte,EAAK43G,WAAWC,aAAa,oBAC7BvjH,KAAKkoB,eAAegiE,SAASx+E,EAAK43G,WAAWC,aAAa,mBAAmBC,YAE9B,MAA/C93G,EAAK43G,WAAWC,aAAa,eAAwB,CAOrD,OANAvjH,KAAKkrB,gBAAgBg/D,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAC1ExjH,KAAKqrB,iBAAiBq/B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,gBAAgBC,YAClHxjH,KAAKwrB,gBAAgB0+D,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAC1ExjH,KAAK2rB,iBAAiB++B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,gBAAgBC,YAClHxjH,KAAK8rB,gBAAgBo+D,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAC1ExjH,KAAKisB,iBAAiBy+B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,gBAAgBC,YAC1G93G,EAAK43G,WAAWC,aAAa,kBAAkBC,WACnD,IAAK,SACDxjH,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,OACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,SACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,QACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,aACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,oBACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,aACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,UACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,cACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,SACDllB,KAAKklB,mBAAmB,IACxB,MACJ,QACI,MAERllB,KAAK+kB,yBAAyBolE,WAAWz+E,EAAK43G,WAAWC,aAAa,wBAAwBC,WAClG,CACmD,MAA/C93G,EAAK43G,WAAWC,aAAa,iBAC7BvjH,KAAKimB,gBAAgBykC,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,eAAeC,YAChHxjH,KAAKk7B,eAAewvB,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,cAAcC,YAC9GxjH,KAAKq7B,kBAAkB3vB,EAAK43G,WAAWC,aAAa,iBAAiBC,WAE7E,EAEAygF,uBAAwB,SAAUoB,EAAaC,GAAa,EAE5DO,gBAAiB,SAAUT,GACvB,MAAO,EACX,EAEA3/K,UAAW,WACP,OAAOzlB,KAAK0lB,KAChB,EAEAC,UAAW,SAAU/kB,GAKjB,OAJIZ,KAAK0lB,QAAU9kB,IACfZ,KAAKqiB,UACLriB,KAAK0lB,MAAQ9kB,GAEVA,CACX,EAEA0kB,oBAAqB,WACjB,OAAOtlB,KAAKyhM,kBAChB,EAEAj8K,oBAAqB,SAAU5kB,GAK3B,OAJIZ,KAAKyhM,qBAAuB7gM,IAC5BZ,KAAKqiB,UACLriB,KAAKyhM,mBAAqB7gM,GAEvBA,CACX,EAEAqmB,cAAe,WACX,OAAOjnB,KAAKknB,SAChB,EAEAC,cAAe,SAAUvmB,GAKrB,OAJIZ,KAAKknB,YAActmB,IACnBZ,KAAKqiB,UACLriB,KAAKknB,UAAYtmB,GAEdA,CACX,EAEAwmB,cAAe,WACX,OAAOpnB,KAAKqnB,SAChB,EAEAC,cAAe,SAAU1mB,GAKrB,OAJIZ,KAAKqnB,YAAczmB,IACnBZ,KAAKqiB,UACLriB,KAAKqnB,UAAYzmB,GAEdA,CACX,EAEA4lB,mBAAoB,WAChB,OAAOxmB,KAAKymB,cAChB,EAEAC,mBAAoB,SAAU9lB,GAK1B,OAJIZ,KAAKymB,iBAAmB7lB,IACxBZ,KAAKqiB,UACLriB,KAAKymB,eAAiB7lB,GAEnBA,CACX,EAEAoqB,gBAAiB,WACb,OAAOhrB,KAAK0hM,cAChB,EAEAx2K,gBAAiB,SAAUtqB,GAKvB,OAJIZ,KAAK0hM,iBAAmB9gM,IACxBZ,KAAKqiB,UACLriB,KAAK0hM,eAAiB9gM,GAEnBA,CACX,EAEA0qB,gBAAiB,WACb,OAAOtrB,KAAK2hM,cAChB,EAEAn2K,gBAAiB,SAAU5qB,GAKvB,OAJIZ,KAAK2hM,iBAAmB/gM,IACxBZ,KAAKqiB,UACLriB,KAAK2hM,eAAiB/gM,GAEnBA,CACX,EAEAgrB,gBAAiB,WACb,OAAO5rB,KAAK4hM,cAChB,EAEA91K,gBAAiB,SAAUlrB,GAKvB,OAJIZ,KAAK4hM,iBAAmBhhM,IACxBZ,KAAKqiB,UACLriB,KAAK4hM,eAAiBhhM,GAEnBA,CACX,EAEAuqB,iBAAkB,WACd,OAAOnrB,KAAK6hM,eAChB,EAEAx2K,iBAAkB,SAAUzqB,GAKxB,OAJIZ,KAAK6hM,kBAAoBjhM,IACzBZ,KAAKqiB,UACLriB,KAAK6hM,gBAAkBjhM,GAEpBA,CACX,EAEA6qB,iBAAkB,WACd,OAAOzrB,KAAK8hM,eAChB,EAEAn2K,iBAAkB,SAAU/qB,GAKxB,OAJIZ,KAAK8hM,kBAAoBlhM,IACzBZ,KAAKqiB,UACLriB,KAAK8hM,gBAAkBlhM,GAEpBA,CACX,EAEAmrB,iBAAkB,WACd,OAAO/rB,KAAK+hM,eAChB,EAEA91K,iBAAkB,SAAUrrB,GAKxB,OAJIZ,KAAK+hM,kBAAoBnhM,IACzBZ,KAAKqiB,UACLriB,KAAK+hM,gBAAkBnhM,GAEpBA,CACX,EAEAqjB,YAAa,WACT,OAAOjkB,KAAKgiM,UAChB,EAEA79K,YAAa,SAAUvjB,GAKnB,OAJIZ,KAAKgiM,aAAephM,IACpBZ,KAAKqiB,UACLriB,KAAKgiM,WAAaphM,GAEfA,CACX,EAEAsoM,cAAe,WACX,OAAOlpM,KAAKiiM,YAChB,EAEAkH,cAAe,SAAUvoM,GAKrB,OAJIZ,KAAKiiM,eAAiBrhM,IACtBZ,KAAKqiB,UACLriB,KAAKiiM,aAAerhM,GAEjBA,CACX,EAEAkpB,YAAa,WACT,OAAO9pB,KAAKkiM,UAChB,EAEAl4K,YAAa,SAAUppB,GAKnB,OAJIZ,KAAKkiM,aAAethM,IACpBZ,KAAKqiB,UACLriB,KAAKkiM,WAAathM,GAEfA,CACX,EAEA2qM,cAAe,WACX,OAAOvrM,KAAKmrM,WAChB,EAEAG,cAAe,SAAU1qM,GAKrB,OAJIZ,KAAKmrM,cAAgBvqM,IACrBZ,KAAKqiB,UACLriB,KAAKmrM,YAAcvqM,GAEhBA,CACX,EAEA2mB,iBAAkB,WACd,OAAOvnB,KAAKqiM,eAChB,EAEA56K,iBAAkB,SAAU7mB,GAKxB,OAJIZ,KAAKqiM,kBAAoBzhM,IACzBZ,KAAKqiB,UACLriB,KAAKqiM,gBAAkBzhM,GAEpBA,CACX,EAEAukB,mBAAoB,WAChB,OAAOnlB,KAAKorM,iBAChB,EAEA/lL,mBAAoB,SAAUzkB,GAK1B,OAJIZ,KAAKorM,oBAAsBxqM,IAC3BZ,KAAKqiB,UACLriB,KAAKorM,kBAAoBxqM,GAEtBA,CACX,EAEA4oB,aAAc,WACV,OAAOxpB,KAAKsiM,WAChB,EAEA54K,aAAc,SAAU9oB,GAKpB,OAJIZ,KAAKsiM,cAAgB1hM,IACrBZ,KAAKqiB,UACLriB,KAAKsiM,YAAc1hM,GAEhBA,CACX,EAEA8mB,gBAAiB,WACb,OAAO1nB,KAAKuiM,cAChB,EAEA36K,gBAAiB,SAAUhnB,GAKvB,OAJIZ,KAAKuiM,iBAAmB3hM,IACxBZ,KAAKqiB,UACLriB,KAAKuiM,eAAiB3hM,GAEnBA,CACX,EAEAwpB,gBAAiB,WACb,OAAOpqB,KAAKwiM,cAChB,EAEAl4K,gBAAiB,SAAU1pB,GAKvB,OAJIZ,KAAKwiM,iBAAmB5hM,IACxBZ,KAAKqiB,UACLriB,KAAKwiM,eAAiB5hM,GAEnBA,CACX,EAEAinB,gBAAiB,WACb,OAAO7nB,KAAKyiM,cAChB,EAEA16K,gBAAiB,SAAUnnB,GAKvB,OAJIZ,KAAKyiM,iBAAmB7hM,IACxBZ,KAAKqiB,UACLriB,KAAKyiM,eAAiB7hM,GAEnBA,CACX,EAEAwjB,YAAa,WACT,OAAOpkB,KAAK0iM,UAChB,EAEAp+K,YAAa,SAAU1jB,GAKnB,OAJIZ,KAAK0iM,aAAe9hM,IACpBZ,KAAKqiB,UACLriB,KAAK0iM,WAAa9hM,GAEfA,CACX,EAEAokB,mBAAoB,WAChB,OAAOhlB,KAAK2iM,iBAChB,EAEAz9K,mBAAoB,SAAUtkB,GAK1B,OAJIZ,KAAK2iM,oBAAsB/hM,IAC3BZ,KAAKqiB,UACLriB,KAAK2iM,kBAAoB/hM,GAEtBA,CACX,EAEAikB,yBAA0B,WACtB,OAAO7kB,KAAK4iM,uBAChB,EAEA79K,yBAA0B,SAAUnkB,GAKhC,OAJIZ,KAAK4iM,0BAA4BhiM,IACjCZ,KAAKqiB,UACLriB,KAAK4iM,wBAA0BhiM,GAE5BA,CACX,EAEAkjB,cAAe,WACX,OAAO9jB,KAAK+jB,SAChB,EAEAC,cAAe,SAAUpjB,GAKrB,OAJIZ,KAAK+jB,YAAcnjB,IACnBZ,KAAKqiB,UACLriB,KAAK+jB,UAAYnjB,GAEdA,CACX,EAEA8pB,oBAAqB,WACjB,OAAO1qB,KAAK2qB,eAChB,EAEAC,oBAAqB,SAAUhqB,GAK3B,OAJIZ,KAAK2qB,kBAAoB/pB,IACzBZ,KAAKqiB,UACLriB,KAAK2qB,gBAAkB/pB,GAEpBA,CACX,EAEAslB,kBAAmB,WACf,OAAOlmB,KAAKmmB,aAChB,EAEAC,kBAAmB,SAAUxlB,GAKzB,OAJIZ,KAAKmmB,gBAAkBvlB,IACvBZ,KAAKqiB,UACLriB,KAAKmmB,cAAgBvlB,GAElBA,CACX,EAEA2pB,eAAgB,WACZ,OAAOvqB,KAAKwqB,UAChB,EAEAC,eAAgB,SAAU7pB,GAKtB,OAJIZ,KAAKwqB,aAAe5pB,IACpBZ,KAAKqiB,UACLriB,KAAKwqB,WAAa5pB,GAEfA,CACX,EAEAonB,eAAgB,WACZ,OAAOhoB,KAAKioB,UAChB,EAEAC,eAAgB,SAAUtnB,GAKtB,OAJIZ,KAAKioB,aAAernB,IACpBZ,KAAKqiB,UACLriB,KAAKioB,WAAarnB,GAEfA,CACX,EAEAkmB,oBAAqB,WACjB,OAAO9mB,KAAK8iM,kBAChB,EAEA97K,oBAAqB,SAAUpmB,GAK3B,OAJIZ,KAAK8iM,qBAAuBliM,IAC5BZ,KAAKqiB,UACLriB,KAAK8iM,mBAAqBliM,GAEvBA,CACX,EAEA+lB,oBAAqB,WACjB,OAAO3mB,KAAK+iM,kBAChB,EAEAl8K,oBAAqB,SAAUjmB,GAK3B,OAJIZ,KAAK+iM,qBAAuBniM,IAC5BZ,KAAKqiB,UACLriB,KAAK+iM,mBAAqBniM,GAEvBA,CACX,EAEAqpB,gBAAiB,WACb,OAAOjqB,KAAKkqB,WAChB,EAEAC,gBAAiB,SAAUvpB,GAKvB,OAJIZ,KAAKkqB,cAAgBtpB,IACrBZ,KAAKqiB,UACLriB,KAAKkqB,YAActpB,GAEhBA,CACX,EAEA+oB,mBAAoB,WAChB,OAAO3pB,KAAK4pB,cAChB,EAEAC,mBAAoB,SAAUjpB,GAK1B,OAJIZ,KAAK4pB,iBAAmBhpB,IACxBZ,KAAKqiB,UACLriB,KAAK4pB,eAAiBhpB,GAEnBA,CACX,EAEAulM,iBAAkB,SAAUlkK,EAAexgB,GACvC,OAAO,CACX,EAEAs0B,KAAM,SAAU9T,EAAexgB,EAAS8iJ,GACpC,IAAIpqH,EAASlY,EACTjiC,KAAKqiB,UAAYriB,KAAKmjM,aACtBnjM,KAAK4lI,UAEL5lI,KAAKijM,eAAiB1+B,IACtBvkK,KAAK4lI,UACL5lI,KAAKijM,aAAe1+B,GAEpBvkK,KAAKkjM,OACLljM,KAAKmmM,iBAAiBhsJ,EAAQ14B,GAElC,IAAI+/B,EAAO8oJ,EAAuDhtK,oBAAoBu9G,WAAayvD,EAAuDhtK,oBAAoBwgH,YAAY99I,KAAKq3J,UAC3LiyC,EAAgBtpM,KAAKkqB,YA0CzB,OAzCIq6I,GAAQvkK,KAAKsgB,cAAyC,IAAxBtgB,KAAKyiM,iBACnC6G,EAAiBtpM,KAAKkqB,aAAe+X,EAAc2K,WAAWlQ,KAAO,MAE9C,MAAvB18B,KAAKqmM,iBACLrmM,KAAKqmM,eAAe3gL,MAAQ1lB,KAAK0lB,MACjC1lB,KAAKqmM,eAAe3iK,IAAM1jC,KAAKqgB,mBAC/BrgB,KAAKqmM,eAAev7K,WAAa9qB,KAAK8qB,WACtC9qB,KAAKqmM,eAAe7kJ,KAAOA,EAC3BxhD,KAAKqmM,eAAetwJ,KAAK9T,EAAexgB,EAAUzhB,KAAKwhB,cAAe,IAEjD,MAArBxhB,KAAKo1C,eACLp1C,KAAKo1C,aAAa1vB,MAAQ1lB,KAAK0lB,MAC/B1lB,KAAKo1C,aAAa1R,IAAM1jC,KAAKqgB,mBAC7BrgB,KAAKo1C,aAAatqB,WAAa9qB,KAAK8qB,WACpC9qB,KAAKo1C,aAAaoM,KAAOA,EACzBxhD,KAAKo1C,aAAaW,KAAK9T,EAAexgB,EAAUzhB,KAAKwhB,cAAe,IAElD,MAAlBxhB,KAAKi1C,YACLj1C,KAAKi1C,UAAUW,eAAgB,EAC/B51C,KAAKi1C,UAAUvvB,MAAQ1lB,KAAK0lB,MAC5B1lB,KAAKi1C,UAAUvR,IAAM1jC,KAAKqgB,mBAC1BrgB,KAAKi1C,UAAUnqB,WAAa9qB,KAAK8qB,WACjC9qB,KAAKi1C,UAAUuM,KAAOA,EACtBxhD,KAAKi1C,UAAU+K,MAAiC,IAAxBhgD,KAAKyiM,eAAwB6G,GAAiBA,EACtEtpM,KAAKi1C,UAAUc,KAAK9T,EAAexgB,EAAUzhB,KAAKwhB,eAAe,IAEhD,MAAjBxhB,KAAKk1C,WACLl1C,KAAKk1C,SAASxR,IAAM1jC,KAAKqgB,mBACzBrgB,KAAKk1C,SAASxvB,MAAQ1lB,KAAK0lB,MAC3B1lB,KAAKk1C,SAASpqB,WAAa9qB,KAAK8qB,WAChC9qB,KAAKk1C,SAASsM,KAAOA,EACrBxhD,KAAKk1C,SAASc,UAAU/T,EAAexgB,EAAUzhB,KAAKwhB,gBAEnC,MAAnBxhB,KAAKomM,aACLpmM,KAAKomM,WAAW1iK,IAAM1jC,KAAKqgB,mBAC3BrgB,KAAKomM,WAAW1gL,MAAQ1lB,KAAK0lB,MAC7B1lB,KAAKomM,WAAWt7K,WAAa9qB,KAAK8qB,WAClC9qB,KAAKomM,WAAW/7K,YAAcrqB,KAAKoqB,kBACnCpqB,KAAKomM,WAAW5kJ,KAAOA,EACvBxhD,KAAKomM,WAAWpwJ,UAAU/T,EAAexgB,EAAUzhB,KAAKwhB,iBAErD,CACX,EAEAkiJ,YAAa,SAAUh4J,GACnB6+L,EAAuC5mC,MAAMrjK,UAAUojK,YAAYljK,KAAKR,KAAM0L,EAClF,EAEAk6H,QAAS,WACgB,MAAjB5lI,KAAKk1C,UACLl1C,KAAKk1C,SAASw/E,QAEK,MAAnB10H,KAAKomM,YACLpmM,KAAKomM,WAAW1xE,QAEO,MAAvB10H,KAAKqmM,gBACLrmM,KAAKqmM,eAAe3xE,QAEF,MAAlB10H,KAAKi1C,WACLj1C,KAAKi1C,UAAUy/E,QAEM,MAArB10H,KAAKo1C,cACLp1C,KAAKo1C,aAAas/E,OAE1B,EAEAqvE,cAAe,WACX,OAAO,CACX,IAGJ,EAAGp5I,EAA4CzS,cAAc,kBAAmB,CAACmyJ,EAAiBgB,EAAkBd,EAAuC5mC,OAGpJ,EAED;;;oCAIA,CAAEhlK,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCisM,WAAY,IAAM,EAClBC,SAAU,IAAM,EAChBC,MAAO,IAAM,EACblhD,QAAS,IAAM,IAEjB,IAAI9/F,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FoyC,EAA4C,uBAA0C,qBACtFgoC,EAA+C,0BAA6C,wBAC5F4mE,EAA4C,uBAA0C,qBAe3GH,EAAa,CACbI,UAAW,EACXC,MAAO,EACPC,eAAgB,EAChBC,QAAS,EACTC,MAAO,EACPC,OAAQ,EACRC,OAAQ,EACRC,cAAe,EACfC,QAAS,EACTC,SAAU,GACVC,eAAgB,GAChBC,gBAAiB,GACjBC,YAAa,IASjB,SAAShiD,IACLxqJ,KAAKysM,QAAU,CAAC,EAChBzsM,KAAKolM,OAAS,GACdplM,KAAK66F,KAAO,GACZ76F,KAAK0sM,aAAe,GACpB1sM,KAAK2sM,OAAS,GACd3sM,KAAK4sM,YAAc,KACnB5sM,KAAKgF,OAAQ,EACbhF,KAAK6sM,UAAY,EACrB,EAfA,EAAGliJ,EAA4CzS,cAAc,aAAcszJ,IAC3E,EAAG7gJ,EAA4C4jC,cAAc,aAAci9G,GAgB3EhhD,EAAQ7wD,YAAc,SAAUjvF,EAAKk4G,GACjC,IAAIr2B,EAAO,IAAIi+D,EAKf,OAJAj+D,EAAKu2B,YAAcF,EACnBr2B,EAAK6O,SAAW,IAAIuwG,EAA0CtxG,QAAQ0qC,EAA6CnrC,WAAW18D,UAAU6lF,QAAQr4G,EAAK,IACrJ6hF,EAAK6O,SAASd,cAAgB5vC,EAAoC9P,GAAGxlC,KAAK,YAAam3E,GACvFA,EAAK6O,SAAS9vF,OACPihF,CACX,EAEAi+D,EAAQ20B,eAAiB,SAAU13K,GAC/B,IAAIqlM,EAAU,IAAIC,UACd7pF,EAAM4pF,EAAQE,gBAAgBvlM,EAAM,YACpCqsK,EAAQ,IAAItpB,EAEhB,OADAspB,EAAMm5B,YAAY/pF,GACX4wD,CACX,EAEA,IAAIo5B,EAAW,CACXlqF,UAAW,WAC2B,IAA9BhjH,KAAKo7F,SAAS3O,YACd+N,MAAMx6F,KAAKo7F,SAASX,eACiB,IAA9Bz6F,KAAKo7F,SAAS3O,cACrBzsF,KAAKitM,YAAYjtM,KAAKo7F,SAAS6nB,UACP,MAApBjjH,KAAK8iH,aACL9iH,KAAK8iH,cAGjB,EAEAmqF,YAAa,SAAUE,GACnB,IAAI9sF,EAAUtjB,EAA0Cr6C,KAAKuoC,iBAAiBkiH,EAAK,WACnF,GAAe,MAAX9sF,EAAJ,CAGA,IAAIt6E,EAAQ,EACZ,IACI,IAAI+tI,EAAQ/2E,EAA0Cr6C,KAAKuoC,iBAAiB8R,EAA0Cr6C,KAAKuoC,iBAAiBo1B,EAAS,YAAa,SAClK,GAAa,MAATyzD,EAAe,CACf,IAAIx4H,EAASoP,EAAoC9P,GAAGW,UAAUu4H,EAAM3oF,YACpE,MAAO7vC,EAAOE,WAAY,CACtB,IAAI9vC,EAAO4vC,EAAOI,QAClB,GAAsB,UAAlBhwC,EAAK2/E,SAAsB,CAC3B,IAAIx0C,EAAM,IAAI40J,EAAS//L,EAAMq6B,KAC7B/lC,KAAKysM,QAAQ51J,EAAIlsC,MAAQksC,EACzB72C,KAAKolM,OAAOzgM,KAAKkyC,EACrB,CACJ,CACJ,CACJ,CACA,MAAOglD,GACH77F,KAAKgF,OAAQ,EACbhF,KAAK6sM,UAAY9vG,EAA0Cr6C,KAAKuoC,iBAAiBo1B,EAAS,eAAe9wG,IAC7G,CACA,IACI,IAAI69L,EAAYrwG,EAA0Cr6C,KAAKuoC,iBAAiB8R,EAA0Cr6C,KAAKuoC,iBAAiB8R,EAA0Cr6C,KAAKuoC,iBAAiB8R,EAA0Cr6C,KAAKuoC,iBAAiBo1B,EAAS,YAAa,SAAU,QAAS,aACzT,GAAiB,MAAb+sF,EAAmB,CACnB,IAAI/nF,EAAS36D,EAAoC9P,GAAGW,UAAU6xJ,EAAUjiH,YACxE,MAAOk6B,EAAO7pE,WAAY,CAClB9vC,EAAO25G,EAAO3pE,QAClB,GAAsB,OAAlBhwC,EAAK2/E,SAAmB,CACxB,IAAIyP,EAAM,IAAI4wG,EAAM1rM,MACpB86F,EAAIuyG,WAAa,IAAIxrM,MAAM6oD,EAAoC9P,GAAGu8H,SAASn3K,KAAKysM,UAChF1mK,EAAQ,EACR,IAAIu/E,EAAS56D,EAAoC9P,GAAGW,UAAU7vC,EAAKy/E,YACnE,MAAOm6B,EAAO9pE,WAAY,CACtB,IAAI4vC,EAAQk6B,EAAO5pE,QACI,OAAnB0vC,EAAMC,WACNyP,EAAIuyG,WAAWtnK,KAAW2kB,EAAoC9P,GAAG+gD,KAAKoB,EAA0Cr6C,KAAK4oC,aAAaF,IAE1I,CACAprF,KAAK66F,KAAKl2F,KAAKm2F,EACnB,CACJ,CACJ,CACJ,CACA,MAAOusG,GACP,CA3CA,CA4CJ,EAEAjtJ,KAAM,SAAU4/G,GACZ,OAAO,CACX,EAEAszC,eAAgB,SAAUC,GACtB,IAAIjyJ,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKysM,UAC/G,MAAOnxJ,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb7E,EAAM72C,KAAKysM,QAAQxtM,GACvB,GAAIyrD,EAAoC9P,GAAGq+C,cAAcpiD,EAAI02J,IAAK,IAAK,KAAKC,oBAAoBv0L,QAAQs0L,EAAIC,sBAAwB,EAChI,OAAO32J,CAEf,CACA,OAAO,IACX,EAEAouJ,YAAa,WACT,IAAI3pJ,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKysM,UAC/G,MAAOnxJ,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb7E,EAAM72C,KAAKysM,QAAQxtM,GACvB,GAAI43C,EAAI02J,IAAIC,oBAAoBv0L,QAAQ,cAAgB,GAAK49B,EAAI02J,IAAIC,oBAAoBv0L,QAAQ,cAAgB,EAC7G,OAAO49B,CAEf,CACA,IAAIsuE,EAASz6D,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKysM,UAC/G,MAAOtnF,EAAO3pE,WAAY,CAClBv8C,EAAMkmH,EAAOzpE,QACb7E,EAAM72C,KAAKysM,QAAQxtM,GACvB,GAAI43C,EAAIlsC,KAAK6iM,oBAAoBv0L,QAAQ,OAAS,EAC9C,OAAO49B,CAEf,CACA,OAAO,IACX,EAEAkuJ,aAAc,WACV,IAAIzpJ,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKysM,UAC/G,MAAOnxJ,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb7E,EAAM72C,KAAKysM,QAAQxtM,GACvB,GAAI43C,EAAI02J,IAAIh/L,cAAc0K,QAAQ,eAAiB,GAAK49B,EAAI02J,IAAIh/L,cAAc0K,QAAQ,eAAiB,EACnG,OAAO49B,CAEf,CACA,IAAIsuE,EAASz6D,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKysM,UAC/G,MAAOtnF,EAAO3pE,WAAY,CAClBv8C,EAAMkmH,EAAOzpE,QACb7E,EAAM72C,KAAKysM,QAAQxtM,GACvB,GAAI43C,EAAIlsC,KAAK4D,cAAc0K,QAAQ,QAAU,EACzC,OAAO49B,CAEf,CACA,OAAO,IACX,EAEAsuJ,aAAc,WACV,IAAI7pJ,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKysM,UAC/G,MAAOnxJ,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb7E,EAAM72C,KAAKysM,QAAQxtM,GACvB,GAAI43C,EAAI02J,IAAIh/L,cAAc0K,QAAQ,aAAe,GAAK49B,EAAI02J,IAAIh/L,cAAc0K,QAAQ,aAAe,EAC/F,OAAO49B,CAEf,CACA,OAAO,IACX,EAEA42J,kBAAmB,WACf,IAAInyJ,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKysM,UAC/G,MAAOnxJ,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb7E,EAAM72C,KAAKysM,QAAQxtM,GACvB,GAAI43C,EAAI02J,IAAIh/L,cAAc0K,QAAQ,iBAAmB,GAAK49B,EAAI02J,IAAIh/L,cAAc0K,QAAQ,iBAAmB,EACvG,OAAO49B,CAEf,CACA,OAAO,IACX,EAEAntC,SAAU,WACN,IAAI4pF,EAAK,IAAI5oC,EAAoC9P,GAAG24C,cAChDl4C,GAAQ,EAIRC,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKysM,UAC/G,MAAOnxJ,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb7E,EAAM72C,KAAKysM,QAAQxtM,GACnBo8C,EACAA,GAAQ,EAGRi4C,EAAGK,OAAO,MAEdL,EAAGK,OAAO98C,EAAIlsC,KAClB,CACA2oF,EAAGM,WAAW,IAId,IAAIuxB,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAK66F,MACnE,MAAOsqB,EAAO3pE,WAAY,CACtB,IAAIs/C,EAAMqqB,EAAOzpE,QACjBL,GAAQ,EACR,IAAIgqE,EAAS36D,EAAoC9P,GAAGW,UAAUu/C,EAAIuyG,YAClE,MAAOhoF,EAAO7pE,WAAY,CAClB3E,EAAMwuE,EAAO3pE,QACbL,EACAA,GAAQ,EAGRi4C,EAAGK,OAAO,MAEdL,EAAGK,OAAO98C,EAAIntC,WAClB,CACA4pF,EAAGM,WAAW,GAClB,CACA,OAAON,EAAG5pF,UACd,GAQJ,SAASgiM,EAAMgC,GACX1tM,KAAK04K,UAAW,EAChB14K,KAAK0tM,MAAQA,CACjB,EARA,EAAG/iJ,EAA4CzS,cAAc,UAAW,CAACsyG,EAAS0iD,EAAU,OAU5F,IAAIS,EAAS,CACTC,cAAe,SAAU3uM,GACrB,OAA+B,MAA3Be,KAAK0tM,MAAMjB,QAAQxtM,GACZe,KAAKqtM,WAAWrtM,KAAK0tM,MAAMjB,QAAQxtM,GAAK8mC,OAE5C,IACX,EAEA8nK,SAAU,SAAU9nK,GAChB,OAAIA,EAAQ,GAAKA,GAAS/lC,KAAKqtM,WAAW1qM,OAC/B,KAEJ3C,KAAKqtM,WAAWtnK,EAC3B,GAQJ,SAAS0lK,EAAS//L,EAAMq6B,GAiBpB,GAhBA/lC,KAAKiH,GAAK,GACVjH,KAAKsK,KAAO,EACZtK,KAAK8tM,UAAY,EACjB9tM,KAAK+tM,WAAa,EAClB/tM,KAAKguM,MAAQ,KACbhuM,KAAKutM,IAAM,GACXvtM,KAAK2oM,KAAO,GACZ3oM,KAAK2K,KAAO,GACZ3K,KAAK+lC,MAAQ,EACb/lC,KAAK+lC,MAAQA,EACmC,MAA5Cr6B,EAAK43G,WAAWC,aAAa,cAC7BvjH,KAAKsK,KAAOmhM,EAASwC,QAAQviM,EAAK43G,WAAWC,aAAa,YAAYC,YAE/B,MAAvC93G,EAAK43G,WAAWC,aAAa,SAC7BvjH,KAAKutM,IAAM7hM,EAAK43G,WAAWC,aAAa,OAAOC,WAEF,MAA7C93G,EAAK43G,WAAWC,aAAa,aAC7B,IACIvjH,KAAK8tM,UAAY5jH,SAASx+E,EAAK43G,WAAWC,aAAa,aAAaC,UACxE,CACA,MAAOjvB,GACP,CAcJ,GAZ0C,MAAtC7oF,EAAK43G,WAAWC,aAAa,QAC7BvjH,KAAKiH,GAAKyE,EAAK43G,WAAWC,aAAa,MAAMC,WAEL,MAAxC93G,EAAK43G,WAAWC,aAAa,QAC7BvjH,KAAK2K,KAAOe,EAAK43G,WAAWC,aAAa,QAAQC,UAGjDxjH,KAAK2K,KAAO3K,KAAKiH,GAEuB,MAAxCyE,EAAK43G,WAAWC,aAAa,UAC7BvjH,KAAK2oM,KAAOj9L,EAAK43G,WAAWC,aAAa,QAAQC,WAEJ,MAA7C93G,EAAK43G,WAAWC,aAAa,aAAsB,CACnD,IAAIp6B,EAAQz9E,EAAK43G,WAAWC,aAAa,aAAaC,UAAUr6B,MAAM,KACtEnpF,KAAK+tM,WAAa5kH,EAAMxmF,OACxB3C,KAAKguM,MAAQ,IAAInsM,MAAMsnF,EAAMxmF,QAC7B,IAAIurM,EAAU,EACV/oF,EAASz6D,EAAoC9P,GAAGW,UAAU4tC,GAC9D,MAAOg8B,EAAO3pE,WAAY,CACtB,IAAI2yJ,EAAMhpF,EAAOzpE,QACjB,GAAMyyJ,EAAIl1L,QAAQ,MAAQ,EAGrB,CACD,IAAIslF,EAAM,KACN6vG,EAAY1jJ,EAAoC9P,GAAGq+C,cAAck1G,EAAK,IAAK,IAC3EC,EAAUzrM,OAAS,IACnB47F,EAAMrU,SAASkkH,IAEnBpuM,KAAKguM,MAAME,KAAa3vG,CAC5B,MATIv+F,KAAKguM,MAAME,KAAahkH,SAASikH,EAUzC,CACJ,CACJ,EA9DA,EAAGxjJ,EAA4CzS,cAAc,QAAS,CAACwzJ,EAAOiC,EAAQ,OAgEtFlC,EAASwC,QAAU,SAAU3jM,GACzB,IAAI+jM,EAAO,GACX,OAAQ/jM,GACJ,IAAK,UACD+jM,EAAO,EACP,MACJ,IAAK,MACDA,EAAO,EACP,MACJ,IAAK,eACDA,EAAO,EACP,MACJ,IAAK,QACDA,EAAO,EACP,MACJ,IAAK,MACDA,EAAO,EACP,MACJ,IAAK,OACDA,EAAO,EACP,MACJ,IAAK,OACDA,EAAO,EACP,MACJ,IAAK,cACDA,EAAO,EACP,MACJ,IAAK,QACDA,EAAO,EACP,MACJ,IAAK,SACDA,EAAO,GACP,MACJ,IAAK,eACDA,EAAO,GACP,MACJ,IAAK,gBACDA,EAAO,GACP,MACJ,QACIA,EAAO,GACP,MAER,OAAOA,CACX,EAEA,IAAIC,EAAY,CACZ5kM,SAAU,WACN,OAAO1J,KAAK2K,IAChB,IAGJ,EAAGggD,EAA4CzS,cAAc,WAAY,CAACuzJ,EAAU6C,EAAW,MAIxF,EAED;;;0CAIA,CAAE3vM,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCkkK,aAAc,IAAM,IAEtB,IAAI/4G,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FnW,EAA4C,uBAA0C,qBACtFC,EAAyD,oCAAuD,kCAChH85J,EAAoD,+BAAkD,6BACtG55J,EAAyC,oBAAuC,kBAChFC,EAA+C,0BAA6C,wBAC5F45J,EAAyC,oBAAuC,kBAChFzU,EAAyD,oCAAuD,kCAChH0U,EAA+C,0BAA6C,wBAC5FC,EAA0C,mBAAsC,yBAChFC,EAA6C,sBAAyC,4BACtFC,EAAsD,+BAAkD,qCA2BjI,SAASnrC,IACLzjK,KAAK+gM,aAAc,EACnB/gM,KAAKghM,iBAAmB,EACxBhhM,KAAK0rF,OAAQ,EACb1rF,KAAKknB,WAAa,EAClBlnB,KAAKihM,UAAY,EACjBjhM,KAAK0lB,MAAQ,EACb1lB,KAAK8qB,YAAa,EAClB9qB,KAAKkhM,gBAAiB,EACtBlhM,KAAKmhM,eAAgB,EACrBnhM,KAAKohM,iBAAmB,GACxBphM,KAAKqhM,cAAgB,IAAI56L,KAAK,YAC9BzG,KAAKshM,YAAc,IAAI76L,KAAK,cAC5BzG,KAAKuhM,mBAAqB,CAAC,EAC3BvhM,KAAKwhM,kBAAoB,CAAC,EAC1BxhM,KAAKyhM,mBAAqB,EAC1BzhM,KAAKqnB,WAAa,EAClBrnB,KAAKymB,gBAAkB,EACvBzmB,KAAK0hM,gBAAkB,EACvB1hM,KAAK2hM,gBAAkB,EACvB3hM,KAAK4hM,gBAAkB,EACvB5hM,KAAK6hM,iBAAkB,EACvB7hM,KAAK8hM,iBAAkB,EACvB9hM,KAAK+hM,iBAAkB,EACvB/hM,KAAKgiM,WAAa,EAClBhiM,KAAKiiM,aAAe,EACpBjiM,KAAKkiM,WAAa,EAClBliM,KAAKmrM,YAAc,EACnBnrM,KAAKqiM,iBAAmB,EACxBriM,KAAKorM,mBAAqB,EAC1BprM,KAAKsiM,YAAc,EACnBtiM,KAAKuiM,eAAiB,EACtBviM,KAAKwiM,gBAAiB,EACtBxiM,KAAKyiM,eAAiB,EACtBziM,KAAK0iM,WAAa,EAClB1iM,KAAK2iM,kBAAoB,EACzB3iM,KAAK4iM,wBAA0B,EAC/B5iM,KAAK+jB,WAAa,EAClB/jB,KAAK2qB,iBAAmB,EACxB3qB,KAAKmmB,eAAiB,EACtBnmB,KAAKwqB,YAAc,EACnBxqB,KAAKioB,WAAa,EAClBjoB,KAAK8iM,mBAAqB,GAC1B9iM,KAAK+iM,oBAAsB,EAC3B/iM,KAAKkqB,YAAc,EACnBlqB,KAAK4pB,eAAiB,EACtB5pB,KAAKgjM,UAAY,GACjBhjM,KAAKijM,cAAe,EACpBjjM,KAAKq3J,SAAW,IAAI5wJ,KAAK,KAAM,EAAG,EAAG,GAAI,EAAG,GAC5CzG,KAAKkjM,OAAQ,EACbljM,KAAK47L,YAAc,GACnB8S,EAAwC/qC,MAAMnjK,KAAKR,MACnDA,KAAK6gM,SAAW,KAChB7gM,KAAK47L,YAAc,GACnB57L,KAAK0pB,aAAa,EACtB,CAEA+5I,EAAa2/B,iBAAmB,KAEhC3/B,EAAamgC,qBAAuB,WAChC,GAAqC,MAAjCngC,EAAa2/B,iBAA0B,CACvC,IAAI14L,EAAM+jM,EAA6C70G,WAAW18D,UAAUi9D,eAAe,cAC3FspE,EAAa2/B,iBAAmBmL,EAAkDl1E,QAAQC,QAAQ5uH,EACtG,CACA,OAAO+4J,EAAa2/B,gBACxB,EAEA3/B,EAAathK,OAAS,SAAU2xK,EAAOrqJ,GACnC,IAAIhH,EAAQ,IAAIghJ,EAOhB,OANAhhJ,EAAMo+K,SAAW/sB,EACjBrxJ,EAAMm5K,YAAc9nB,EAAM44B,aAC1BjqL,EAAM6E,cAAcwsJ,EAAMmxB,cAAcl/J,OACxCtjB,EAAM0E,cAAc2sJ,EAAMixB,eAAeh/J,OACzCtjB,EAAM+H,WAAaspJ,EAAMw5B,eAAe,YAAYvnK,MACpDtjB,EAAMiH,aAAaD,GACZhH,CACX,EAEA,IAAIosL,EAAgB,CAChB9oL,gBAAiB,WACb,OAAO/lB,KAAKkhM,cAChB,EAEAj7K,gBAAiB,SAAUrlB,GAEvB,OADAZ,KAAKkhM,eAAiBtgM,EACfA,CACX,EAEAo6B,eAAgB,WACZ,OAAOh7B,KAAKmhM,aAChB,EAEAjmK,eAAgB,SAAUt6B,GAEtB,OADAZ,KAAKmhM,cAAgBvgM,EACdA,CACX,EAEAu6B,kBAAmB,WACf,OAAOn7B,KAAKohM,gBAChB,EAEA/lK,kBAAmB,SAAUz6B,GAEzB,OADAZ,KAAKohM,iBAAmBxgM,EACjBA,CACX,EAEAiqB,eAAgB,WACZ,OAAO7qB,KAAK8qB,UAChB,EAEAC,eAAgB,SAAUnqB,GAKtB,OAJIZ,KAAK8qB,aAAelqB,IACpBZ,KAAKqiB,UACLriB,KAAK8qB,WAAalqB,GAEfA,CACX,EAEA8jB,eAAgB,WACZ,OAAO1kB,KAAKqhM,aAChB,EAEAz8K,eAAgB,SAAUhkB,GAKtB,OAJK8pD,EAAoC9P,GAAGsxH,aAAalsK,KAAKqhM,cAAezgM,KACzEZ,KAAKqiB,UACLriB,KAAKqhM,cAAgBzgM,GAElBA,CACX,EAEAylB,aAAc,WACV,OAAOrmB,KAAKshM,WAChB,EAEA/6K,aAAc,SAAU3lB,GAKpB,OAJK8pD,EAAoC9P,GAAGsxH,aAAalsK,KAAKshM,YAAa1gM,KACvEZ,KAAKqiB,UACLriB,KAAKshM,YAAc1gM,GAEhBA,CACX,EAEAslK,kBAAmB,SAAUx6J,GAczB,OAbA1L,KAAK+qB,eAAe2/B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,cAAcC,YAC9GxjH,KAAK4kB,eAAe,IAAIne,KAAKiF,EAAK43G,WAAWC,aAAa,cAAcC,YACxExjH,KAAKumB,aAAa,IAAI9f,KAAKiF,EAAK43G,WAAWC,aAAa,YAAYC,YACpExjH,KAAK2lB,UAAUwkE,WAAWz+E,EAAK43G,WAAWC,aAAa,SAASC,YAChExjH,KAAKwlB,oBAAoBmlC,EAA4C4kG,MAAM5nJ,MAAM,mBAAoB+D,EAAK43G,WAAWC,aAAa,mBAAmBC,YACjJxjH,KAAKslB,sBAAwB,GAC7BtlB,KAAKwlB,oBAAoB,GAE7BxlB,KAAKmnB,cAAc+iE,SAASx+E,EAAK43G,WAAWC,aAAa,aAAaC,YACtExjH,KAAKsnB,cAAc4iE,SAASx+E,EAAK43G,WAAWC,aAAa,aAAaC,YAChB,MAAlD93G,EAAK43G,WAAWC,aAAa,mBAC7BvjH,KAAK0mB,mBAAmBwjE,SAASx+E,EAAK43G,WAAWC,aAAa,kBAAkBC,YAE5E93G,EAAK43G,WAAWC,aAAa,WAAWC,WAC5C,IAAK,QACDxjH,KAAKmkB,YAAY,GACjB,MACJ,IAAK,WACDnkB,KAAKmkB,YAAY,GACjB,MACJ,IAAK,WACDnkB,KAAKmkB,YAAY,GACjB,MACJ,IAAK,WACDnkB,KAAKmkB,YAAY,GACjB,MACJ,IAAK,UACDnkB,KAAKmkB,YAAY,GACjB,MACJ,QACI,MAGR,OADAnkB,KAAKmpM,cAAc,GACXz9L,EAAK43G,WAAWC,aAAa,YAAYC,WAC7C,IAAK,eACDxjH,KAAKsrM,cAAc,GACnB,MACJ,IAAK,kBACDtrM,KAAKsrM,cAAc,GACnB,MACJ,IAAK,qBACDtrM,KAAKsrM,cAAc,GACnB,MACJ,QACI,MAIR,OAFAtrM,KAAKynB,iBAAiByiE,SAASx+E,EAAK43G,WAAWC,aAAa,gBAAgBC,YAC5ExjH,KAAKqlB,mBAAmB6kE,SAASx+E,EAAK43G,WAAWC,aAAa,kBAAkBC,YACxE93G,EAAK43G,WAAWC,aAAa,YAAYC,WAC7C,IAAK,WACDxjH,KAAK0pB,aAAa,GAClB,MACJ,IAAK,QACD1pB,KAAK0pB,aAAa,GAClB,MACJ,IAAK,SACD1pB,KAAK0pB,aAAa,GAClB,MACJ,IAAK,UACD1pB,KAAK0pB,aAAa,GAClB,MACJ,QACI,MAGR,OADA1pB,KAAK4nB,gBAAgBsiE,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAClE93G,EAAK43G,WAAWC,aAAa,eAAeC,WAChD,IAAK,SACDxjH,KAAK+nB,gBAAgB,GACrB,MACJ,IAAK,QACD/nB,KAAK+nB,gBAAgB,GACrB,MACJ,QACI,MAER,OAAQrc,EAAK43G,WAAWC,aAAa,WAAWC,WAC5C,IAAK,SACDxjH,KAAKskB,YAAY,GACjB,MACJ,IAAK,OACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,SACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,QACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,aACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,oBACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,aACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,UACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,cACDtkB,KAAKskB,YAAY,GACjB,MACJ,IAAK,SACDtkB,KAAKskB,YAAY,IACjB,MACJ,QACI,MASR,OAPAtkB,KAAKgkB,cAAckmE,SAASx+E,EAAK43G,WAAWC,aAAa,aAAaC,YACtExjH,KAAK4qB,oBAAoBs/D,SAASx+E,EAAK43G,WAAWC,aAAa,mBAAmBC,YAClFxjH,KAAKomB,kBAAkB8jE,SAASx+E,EAAK43G,WAAWC,aAAa,iBAAiBC,YAC9ExjH,KAAKyqB,eAAey/D,SAASx+E,EAAK43G,WAAWC,aAAa,cAAcC,YACxExjH,KAAKgnB,oBAAoBtb,EAAK43G,WAAWC,aAAa,mBAAmBC,WACzExjH,KAAK6mB,oBAAoBqjE,SAASx+E,EAAK43G,WAAWC,aAAa,mBAAmBC,YAClFxjH,KAAKmqB,gBAAgBggE,WAAWz+E,EAAK43G,WAAWC,aAAa,eAAeC,YACpE93G,EAAK43G,WAAWC,aAAa,kBAAkBC,WACnD,IAAK,SACDxjH,KAAK6pB,mBAAmB,GACxB,MACJ,IAAK,QACD7pB,KAAK6pB,mBAAmB,GACxB,MACJ,IAAK,MACD7pB,KAAK6pB,mBAAmB,GACxB,MACJ,IAAK,WACD7pB,KAAK6pB,mBAAmB,GACxB,MACJ,IAAK,mBACD7pB,KAAK6pB,mBAAmB,GACxB,MACJ,QACI,MAKR,GAHmD,MAA/Cne,EAAK43G,WAAWC,aAAa,gBAC7BvjH,KAAKsqB,gBAAgBogC,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,eAAeC,YAErE,MAA3C93G,EAAK43G,WAAWC,aAAa,WAC7B,OAAQ73G,EAAK43G,WAAWC,aAAa,WAAWC,WAC5C,IAAK,QACDxjH,KAAKgqB,YAAY,GACjB,MACJ,IAAK,UACDhqB,KAAKgqB,YAAY,GACjB,MAMZ,GAHuD,MAAnDte,EAAK43G,WAAWC,aAAa,oBAC7BvjH,KAAKkoB,eAAegiE,SAASx+E,EAAK43G,WAAWC,aAAa,mBAAmBC,YAE9B,MAA/C93G,EAAK43G,WAAWC,aAAa,eAAwB,CAOrD,OANAvjH,KAAKkrB,gBAAgBg/D,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAC1ExjH,KAAKqrB,iBAAiBq/B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,gBAAgBC,YAClHxjH,KAAKwrB,gBAAgB0+D,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAC1ExjH,KAAK2rB,iBAAiB++B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,gBAAgBC,YAClHxjH,KAAK8rB,gBAAgBo+D,SAASx+E,EAAK43G,WAAWC,aAAa,eAAeC,YAC1ExjH,KAAKisB,iBAAiBy+B,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,gBAAgBC,YAC1G93G,EAAK43G,WAAWC,aAAa,kBAAkBC,WACnD,IAAK,SACDxjH,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,OACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,SACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,QACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,aACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,oBACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,aACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,UACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,cACDllB,KAAKklB,mBAAmB,GACxB,MACJ,IAAK,SACDllB,KAAKklB,mBAAmB,IACxB,MACJ,QACI,MAERllB,KAAK+kB,yBAAyBolE,WAAWz+E,EAAK43G,WAAWC,aAAa,wBAAwBC,WAClG,CACmD,MAA/C93G,EAAK43G,WAAWC,aAAa,iBAC7BvjH,KAAKimB,gBAAgBykC,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,eAAeC,YAChHxjH,KAAKk7B,eAAewvB,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,cAAcC,YAC9GxjH,KAAKq7B,kBAAkB3vB,EAAK43G,WAAWC,aAAa,iBAAiBC,WAE7E,EAEA/9F,UAAW,WACP,OAAOzlB,KAAK0lB,KAChB,EAEAC,UAAW,SAAU/kB,GAKjB,OAJIZ,KAAK0lB,QAAU9kB,IACfZ,KAAKqiB,UACLriB,KAAK0lB,MAAQ9kB,GAEVA,CACX,EAEA0kB,oBAAqB,WACjB,OAAOtlB,KAAKyhM,kBAChB,EAEAj8K,oBAAqB,SAAU5kB,GAK3B,OAJIZ,KAAKyhM,qBAAuB7gM,IAC5BZ,KAAKqiB,UACLriB,KAAKyhM,mBAAqB7gM,GAEvBA,CACX,EAEAqmB,cAAe,WACX,OAAOjnB,KAAKknB,SAChB,EAEAC,cAAe,SAAUvmB,GAKrB,OAJIZ,KAAKknB,YAActmB,IACnBZ,KAAKqiB,UACLriB,KAAKknB,UAAYtmB,GAEdA,CACX,EAEAwmB,cAAe,WACX,OAAOpnB,KAAKqnB,SAChB,EAEAC,cAAe,SAAU1mB,GAKrB,OAJIZ,KAAKqnB,YAAczmB,IACnBZ,KAAKqiB,UACLriB,KAAKqnB,UAAYzmB,GAEdA,CACX,EAEA4lB,mBAAoB,WAChB,OAAOxmB,KAAKymB,cAChB,EAEAC,mBAAoB,SAAU9lB,GAK1B,OAJIZ,KAAKymB,iBAAmB7lB,IACxBZ,KAAKqiB,UACLriB,KAAKymB,eAAiB7lB,GAEnBA,CACX,EAEAoqB,gBAAiB,WACb,OAAOhrB,KAAK0hM,cAChB,EAEAx2K,gBAAiB,SAAUtqB,GAKvB,OAJIZ,KAAK0hM,iBAAmB9gM,IACxBZ,KAAKqiB,UACLriB,KAAK0hM,eAAiB9gM,GAEnBA,CACX,EAEA0qB,gBAAiB,WACb,OAAOtrB,KAAK2hM,cAChB,EAEAn2K,gBAAiB,SAAU5qB,GAKvB,OAJIZ,KAAK2hM,iBAAmB/gM,IACxBZ,KAAKqiB,UACLriB,KAAK2hM,eAAiB/gM,GAEnBA,CACX,EAEAgrB,gBAAiB,WACb,OAAO5rB,KAAK4hM,cAChB,EAEA91K,gBAAiB,SAAUlrB,GAKvB,OAJIZ,KAAK4hM,iBAAmBhhM,IACxBZ,KAAKqiB,UACLriB,KAAK4hM,eAAiBhhM,GAEnBA,CACX,EAEAuqB,iBAAkB,WACd,OAAOnrB,KAAK6hM,eAChB,EAEAx2K,iBAAkB,SAAUzqB,GAKxB,OAJIZ,KAAK6hM,kBAAoBjhM,IACzBZ,KAAKqiB,UACLriB,KAAK6hM,gBAAkBjhM,GAEpBA,CACX,EAEA6qB,iBAAkB,WACd,OAAOzrB,KAAK8hM,eAChB,EAEAn2K,iBAAkB,SAAU/qB,GAKxB,OAJIZ,KAAK8hM,kBAAoBlhM,IACzBZ,KAAKqiB,UACLriB,KAAK8hM,gBAAkBlhM,GAEpBA,CACX,EAEAmrB,iBAAkB,WACd,OAAO/rB,KAAK+hM,eAChB,EAEA91K,iBAAkB,SAAUrrB,GAKxB,OAJIZ,KAAK+hM,kBAAoBnhM,IACzBZ,KAAKqiB,UACLriB,KAAK+hM,gBAAkBnhM,GAEpBA,CACX,EAEAqjB,YAAa,WACT,OAAOjkB,KAAKgiM,UAChB,EAEA79K,YAAa,SAAUvjB,GAKnB,OAJIZ,KAAKgiM,aAAephM,IACpBZ,KAAKqiB,UACLriB,KAAKgiM,WAAaphM,GAEfA,CACX,EAEAsoM,cAAe,WACX,OAAOlpM,KAAKiiM,YAChB,EAEAkH,cAAe,SAAUvoM,GAKrB,OAJIZ,KAAKiiM,eAAiBrhM,IACtBZ,KAAKqiB,UACLriB,KAAKiiM,aAAerhM,GAEjBA,CACX,EAEAkpB,YAAa,WACT,OAAO9pB,KAAKkiM,UAChB,EAEAl4K,YAAa,SAAUppB,GAKnB,OAJIZ,KAAKkiM,aAAethM,IACpBZ,KAAKqiB,UACLriB,KAAKkiM,WAAathM,GAEfA,CACX,EAEA2qM,cAAe,WACX,OAAOvrM,KAAKmrM,WAChB,EAEAG,cAAe,SAAU1qM,GAKrB,OAJIZ,KAAKmrM,cAAgBvqM,IACrBZ,KAAKqiB,UACLriB,KAAKmrM,YAAcvqM,GAEhBA,CACX,EAEA2mB,iBAAkB,WACd,OAAOvnB,KAAKqiM,eAChB,EAEA56K,iBAAkB,SAAU7mB,GAKxB,OAJIZ,KAAKqiM,kBAAoBzhM,IACzBZ,KAAKqiB,UACLriB,KAAKqiM,gBAAkBzhM,GAEpBA,CACX,EAEAukB,mBAAoB,WAChB,OAAOnlB,KAAKorM,iBAChB,EAEA/lL,mBAAoB,SAAUzkB,GAK1B,OAJIZ,KAAKorM,oBAAsBxqM,IAC3BZ,KAAKqiB,UACLriB,KAAKorM,kBAAoBxqM,GAEtBA,CACX,EAEA4oB,aAAc,WACV,OAAOxpB,KAAKsiM,WAChB,EAEA54K,aAAc,SAAU9oB,GAKpB,OAJIZ,KAAKsiM,cAAgB1hM,IACrBZ,KAAKqiB,UACLriB,KAAKsiM,YAAc1hM,GAEhBA,CACX,EAEA8mB,gBAAiB,WACb,OAAO1nB,KAAKuiM,cAChB,EAEA36K,gBAAiB,SAAUhnB,GAKvB,OAJIZ,KAAKuiM,iBAAmB3hM,IACxBZ,KAAKqiB,UACLriB,KAAKuiM,eAAiB3hM,GAEnBA,CACX,EAEAwpB,gBAAiB,WACb,OAAOpqB,KAAKwiM,cAChB,EAEAl4K,gBAAiB,SAAU1pB,GAKvB,OAJIZ,KAAKwiM,iBAAmB5hM,IACxBZ,KAAKqiB,UACLriB,KAAKwiM,eAAiB5hM,GAEnBA,CACX,EAEAinB,gBAAiB,WACb,OAAO7nB,KAAKyiM,cAChB,EAEA16K,gBAAiB,SAAUnnB,GAKvB,OAJIZ,KAAKyiM,iBAAmB7hM,IACxBZ,KAAKqiB,UACLriB,KAAKyiM,eAAiB7hM,GAEnBA,CACX,EAEAwjB,YAAa,WACT,OAAOpkB,KAAK0iM,UAChB,EAEAp+K,YAAa,SAAU1jB,GAKnB,OAJIZ,KAAK0iM,aAAe9hM,IACpBZ,KAAKqiB,UACLriB,KAAK0iM,WAAa9hM,GAEfA,CACX,EAEAokB,mBAAoB,WAChB,OAAOhlB,KAAK2iM,iBAChB,EAEAz9K,mBAAoB,SAAUtkB,GAK1B,OAJIZ,KAAK2iM,oBAAsB/hM,IAC3BZ,KAAKqiB,UACLriB,KAAK2iM,kBAAoB/hM,GAEtBA,CACX,EAEAikB,yBAA0B,WACtB,OAAO7kB,KAAK4iM,uBAChB,EAEA79K,yBAA0B,SAAUnkB,GAKhC,OAJIZ,KAAK4iM,0BAA4BhiM,IACjCZ,KAAKqiB,UACLriB,KAAK4iM,wBAA0BhiM,GAE5BA,CACX,EAEAkjB,cAAe,WACX,OAAO9jB,KAAK+jB,SAChB,EAEAC,cAAe,SAAUpjB,GAKrB,OAJIZ,KAAK+jB,YAAcnjB,IACnBZ,KAAKqiB,UACLriB,KAAK+jB,UAAYnjB,GAEdA,CACX,EAEA8pB,oBAAqB,WACjB,OAAO1qB,KAAK2qB,eAChB,EAEAC,oBAAqB,SAAUhqB,GAK3B,OAJIZ,KAAK2qB,kBAAoB/pB,IACzBZ,KAAKqiB,UACLriB,KAAK2qB,gBAAkB/pB,GAEpBA,CACX,EAEAslB,kBAAmB,WACf,OAAOlmB,KAAKmmB,aAChB,EAEAC,kBAAmB,SAAUxlB,GAKzB,OAJIZ,KAAKmmB,gBAAkBvlB,IACvBZ,KAAKqiB,UACLriB,KAAKmmB,cAAgBvlB,GAElBA,CACX,EAEA2pB,eAAgB,WACZ,OAAOvqB,KAAKwqB,UAChB,EAEAC,eAAgB,SAAU7pB,GAKtB,OAJIZ,KAAKwqB,aAAe5pB,IACpBZ,KAAKqiB,UACLriB,KAAKwqB,WAAa5pB,GAEfA,CACX,EAEAonB,eAAgB,WACZ,OAAOhoB,KAAKioB,UAChB,EAEAC,eAAgB,SAAUtnB,GAKtB,OAJIZ,KAAKioB,aAAernB,IACpBZ,KAAKqiB,UACLriB,KAAKioB,WAAarnB,GAEfA,CACX,EAEAkmB,oBAAqB,WACjB,OAAO9mB,KAAK8iM,kBAChB,EAEA97K,oBAAqB,SAAUpmB,GAK3B,OAJIZ,KAAK8iM,qBAAuBliM,IAC5BZ,KAAKqiB,UACLriB,KAAK8iM,mBAAqBliM,GAEvBA,CACX,EAEA+lB,oBAAqB,WACjB,OAAO3mB,KAAK+iM,kBAChB,EAEAl8K,oBAAqB,SAAUjmB,GAK3B,OAJIZ,KAAK+iM,qBAAuBniM,IAC5BZ,KAAKqiB,UACLriB,KAAK+iM,mBAAqBniM,GAEvBA,CACX,EAEAqpB,gBAAiB,WACb,OAAOjqB,KAAKkqB,WAChB,EAEAC,gBAAiB,SAAUvpB,GAKvB,OAJIZ,KAAKkqB,cAAgBtpB,IACrBZ,KAAKqiB,UACLriB,KAAKkqB,YAActpB,GAEhBA,CACX,EAEA+oB,mBAAoB,WAChB,OAAO3pB,KAAK4pB,cAChB,EAEAC,mBAAoB,SAAUjpB,GAK1B,OAJIZ,KAAK4pB,iBAAmBhpB,IACxBZ,KAAKqiB,UACLriB,KAAK4pB,eAAiBhpB,GAEnBA,CACX,EAEAm1C,KAAM,SAAU9T,EAAexgB,EAAS8iJ,GAEhCvkK,KAAKijM,eAAiB1+B,IACtBvkK,KAAK4lI,UACL5lI,KAAKijM,aAAe1+B,GAEpBvkK,KAAKkjM,QACLljM,KAAKmmM,iBAAiBlkK,EAAexgB,GACrCzhB,KAAKkjM,OAAQ,GAEjB,IAAI1hJ,EAAOu4I,EAAuDz8J,oBAAoBu9G,WAAak/C,EAAuDz8J,oBAAoBwgH,YAAY99I,KAAKq3J,UAC3LiyC,EAAgBtpM,KAAKkqB,YAkBzB,GAjBIq6I,GAAQvkK,KAAKsgB,cAAyC,IAAxBtgB,KAAKyiM,iBACnC6G,EAAiBtpM,KAAKkqB,aAAe+X,EAAc2K,WAAWlQ,KAAO,MAE9C,MAAvB18B,KAAKqmM,iBACLrmM,KAAKqmM,eAAe3gL,MAAQ1lB,KAAK0lB,MACjC1lB,KAAKqmM,eAAe3iK,IAAM1jC,KAAKqgB,mBAC/BrgB,KAAKqmM,eAAev7K,WAAa9qB,KAAK8qB,WACtC9qB,KAAKqmM,eAAe7kJ,KAAOA,EAC3BxhD,KAAKqmM,eAAetwJ,KAAK9T,EAAexgB,EAAUzhB,KAAKwhB,cAAe,IAEjD,MAArBxhB,KAAKo1C,eACLp1C,KAAKo1C,aAAa1vB,MAAQ1lB,KAAK0lB,MAC/B1lB,KAAKo1C,aAAa1R,IAAM1jC,KAAKqgB,mBAC7BrgB,KAAKo1C,aAAatqB,WAAa9qB,KAAK8qB,WACpC9qB,KAAKo1C,aAAaoM,KAAOA,EACzBxhD,KAAKo1C,aAAaW,KAAK9T,EAAexgB,EAAUzhB,KAAKwhB,cAAe,IAElD,MAAlBxhB,KAAKi1C,UAQL,OAPAj1C,KAAKi1C,UAAUW,eAAgB,EAC/B51C,KAAKi1C,UAAU5qB,YAAcrqB,KAAKoqB,kBAClCpqB,KAAKi1C,UAAUvvB,MAAS1lB,KAAe,WAAIA,KAAK0lB,MAAQ,EACxD1lB,KAAKi1C,UAAUvR,IAAM1jC,KAAKqgB,mBAC1BrgB,KAAKi1C,UAAUnqB,WAAa9qB,KAAK8qB,WACjC9qB,KAAKi1C,UAAUuM,KAAOA,EACtBxhD,KAAKi1C,UAAU+K,MAAiC,IAAxBhgD,KAAKyiM,eAAwB6G,GAAiBA,EAC9DtpM,KAAKsiM,aACT,KAAK,EACDtiM,KAAKi1C,UAAUc,KAAK9T,EAAexgB,EAAUzhB,KAAKwhB,eAAe,GACjE,MACJ,KAAK,EACDxhB,KAAKi1C,UAAU6kF,aAAa73F,EAAewhI,EAAamgC,uBAAuBhqE,UAAWn4G,EAAUzhB,KAAKwhB,eACzG,MACJ,KAAK,EACDxhB,KAAKi1C,UAAU6kF,aAAa73F,EAAe2sK,EAAoDh9B,QAAQuuB,kBAAkB,IAAK1+K,EAAUzhB,KAAKwhB,eAC7I,MACJ,KAAK,EACDxhB,KAAKi1C,UAAU6kF,aAAa73F,EAAe2sK,EAAoDh9B,QAAQuuB,kBAAkB,IAAK1+K,EAAUzhB,KAAKwhB,eAC7I,MACJ,KAAK,EACL,KAAK,EACDxhB,KAAKi1C,UAAU6kF,aAAa73F,EAAe2sK,EAAoDh9B,QAAQuuB,kBAAkBngM,KAAKuiM,gBAAiB9gL,EAAUzhB,KAAKwhB,eAC9J,MACJ,QACI,MAkBZ,OAfqB,MAAjBxhB,KAAKk1C,WACLl1C,KAAKk1C,SAASxR,IAAM1jC,KAAKqgB,mBACzBrgB,KAAKk1C,SAASxvB,MAAQ1lB,KAAK0lB,MAC3B1lB,KAAKk1C,SAASpqB,WAAa9qB,KAAK8qB,WAChC9qB,KAAKk1C,SAASsM,KAAOA,EACrBxhD,KAAKk1C,SAASc,UAAU/T,EAAexgB,EAAUzhB,KAAKwhB,gBAEnC,MAAnBxhB,KAAKomM,aACLpmM,KAAKomM,WAAW1iK,IAAM1jC,KAAKqgB,mBAC3BrgB,KAAKomM,WAAW1gL,MAAQ1lB,KAAK0lB,MAC7B1lB,KAAKomM,WAAWt7K,WAAa9qB,KAAK8qB,WAClC9qB,KAAKomM,WAAW/7K,YAAcrqB,KAAKoqB,kBACnCpqB,KAAKomM,WAAW5kJ,KAAOA,EACvBxhD,KAAKomM,WAAWpwJ,UAAU/T,EAAexgB,EAAUzhB,KAAKwhB,iBAErD,CACX,EAEAkiJ,YAAa,SAAUh4J,GACnBgjM,EAAwC/qC,MAAMrjK,UAAUojK,YAAYljK,KAAKR,KAAM0L,EACnF,EAEAk6H,QAAS,WACL5lI,KAAKkjM,OAAQ,EACQ,MAAjBljM,KAAKk1C,UACLl1C,KAAKk1C,SAASw/E,QAEK,MAAnB10H,KAAKomM,YACLpmM,KAAKomM,WAAW1xE,QAEO,MAAvB10H,KAAKqmM,gBACLrmM,KAAKqmM,eAAe3xE,QAEF,MAAlB10H,KAAKi1C,WACLj1C,KAAKi1C,UAAUy/E,QAEM,MAArB10H,KAAKo1C,cACLp1C,KAAKo1C,aAAas/E,OAE1B,EAEAqvE,cAAe,WACX,OAAO,CACX,EAEAx8B,kBAAmB,SAAUC,GACzB,IAAIsnC,EAAQ9uM,KAAK47L,YACbl0B,EAAWF,EAAGG,cAAgBj9G,EAAoC9P,GAAGvU,OAAO,eAAgBmhI,EAAGI,gBAAiB5nK,KAAKiH,GAAGyC,YACjHolM,EAAMvlH,UAAU,EAAGulH,EAAM5vB,YAAY,MAAQ,GAC5CxX,EAASn+E,UAAU,EAAGm+E,EAASwX,YAAY,MAAQ,EACnE,EAEAzW,SAAU,SAAUC,EAAS1O,GACzB,IAAIrvC,EAAQ3qH,KAERmK,EAAOu+J,EAAQE,YAAY5O,GAC3B92C,EAAM,IAAI11G,WACd01G,EAAIx1G,UAAY,SAAU0pJ,GACtB,IAAI3vJ,EAAOijD,EAAoC9P,GAAGw7G,SAASlzC,EAAIx/G,OAAQ1B,QACvE2oH,EAAMk2E,SAAW8N,EAA2CnkD,QAAQ20B,eAAe13K,GACnFkjH,EAAMrjG,cAAcqjG,EAAMk2E,SAASoE,cAAcl/J,OACjD4kF,EAAMxjG,cAAcwjG,EAAMk2E,SAASkE,eAAeh/J,MACtD,EACAm9E,EAAIl0E,WAAW7kC,EACnB,EAEA0iK,mBAAoB,WAChB,OAAO,CACX,EAEAC,gBAAiB,WAAc,EAE/BX,YAAa,SAAUptK,EAAQu+C,EAAUyxJ,EAAczuL,GACnD,IACI68B,EADA6xJ,EAAcp6J,EAA6C4D,YAAYq3C,cAAc9wF,EAAOggG,UAAWhgG,EAAO8/F,WAElH,GAAoB,MAAhBkwG,EAAsB,CACtB,IAAI5hF,EAAYv4E,EAA6C4D,YAAYwgD,YAAY+1G,EAAa3+G,UAAW2+G,EAAa1+G,WAAY,GACtIlzC,EAAO3I,EAA0CwE,SAASsqD,gBAAgB0rG,EAAa7hF,GACvF7vE,EAAWH,EAAKx6C,QACpB,CACA,IAAIssM,GAAe,EACflpK,EAAQ,EACRuV,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKgjM,WACnE,MAAO1nJ,EAAOE,WAAY,CACtB,IAAIsiD,EAAQxiD,EAAOI,QACnByB,EAAO3I,EAA0CwE,SAASsqD,gBAAgB0rG,EAAalxG,GACnF3gD,EAAKx6C,SAAW26C,IAChBA,EAAWH,EAAKx6C,SAChBssM,EAAclpK,GAElBA,GACJ,CACA,IAAqB,IAAjBkpK,EACA,OAAOF,EAEX,IAAItzJ,EAAM7G,EAA6C4D,YAAYmoD,sBAAsB3gG,KAAKgjM,UAAUiM,IACpGtkM,EAAO3K,KAAK6gM,SAAShmG,KAAKo0G,GAAa5B,WAAWrtM,KAAKioB,YAAYve,WACnE1J,KAAKioB,aAAejoB,KAAK2qB,iBAAmB3qB,KAAKioB,aAAejoB,KAAKmmB,gBACrExb,EAAOikM,EAAoDntK,iBAAiB8hK,UAAU54L,GAAMjB,YAE5FghD,EAAoC9P,GAAGC,YAAYlwC,KACnDA,EAAO+/C,EAAoC9P,GAAGvU,OAAO,kBAAmBuO,EAA6C4D,YAAYgpD,UAAU/lD,EAAI20C,UAAWx7C,EAA6C4D,YAAYs+C,UAAUr7C,EAAI40C,aAIrO,IAFA,IAAI/wD,EAAQkvK,EAAuClrK,MAAMnhC,OAAOwI,EAAM8wC,EAAIsjD,UAAWtjD,EAAI20C,SAAU,UAAW,GAAI,GAAI,GAClHg2D,EAAU,CAAC,EACN5jJ,EAAI,EAAGA,EAAIkoD,EAAoC9P,GAAGu8H,SAASn3K,KAAK6gM,SAAS4L,SAAUjqM,IAAK,CAC7F,IAAI0sM,EAAWlvM,KAAK6gM,SAAShmG,KAAKo0G,GAAapB,SAASrrM,GAAGkH,WACvDlH,IAAMxC,KAAK2qB,iBAAmBnoB,IAAMxC,KAAKmmB,gBACzC+oL,EAAWN,EAAoDntK,iBAAiB8hK,UAAU2L,GAAUxlM,YAEnGghD,EAAoC9P,GAAGqgD,UAAUmrD,EAASpmJ,KAAK6gM,SAASuE,OAAO5iM,GAAGmI,OAAU+/C,EAAoC9P,GAAGC,YAAY76C,KAAK6gM,SAASuE,OAAO5iM,GAAGmI,MAIxKy7I,EAAQ,SAAW5jJ,EAAEkH,YAAcwlM,EAHnC9oD,EAAQpmJ,KAAK6gM,SAASuE,OAAO5iM,GAAGmI,MAAQukM,CAKhD,CAEA,OADA5vK,EAAMtS,QAAQo5H,GACP9mH,CACX,EAEA6mK,iBAAkB,SAAUlkK,EAAexgB,GACvC,IAAIo1B,EAAM72C,KAAK6gM,SAASyM,eAAe,WAC5B,MAAPz2J,IACAA,EAAM72C,KAAK6gM,SAASuE,OAAO,IAE/B,IAAI+J,EAAUnvM,KAAKovM,kBACG,MAAlBpvM,KAAKi1C,YACLj1C,KAAKi1C,UAAY,IAAIR,EAAuDc,UAAUtT,IAEnE,MAAnBjiC,KAAKomM,aACLpmM,KAAKomM,WAAa,IAAI3xJ,EAAuDe,UAEjFx1C,KAAKomM,WAAW1xE,QAChB,IAAI26E,EAAUrvM,KAAK6gM,SAASyM,eAAe,uBAC5B,MAAX+B,GAAmB3kJ,EAAoC9P,GAAGqgD,UAAUj7F,KAAK6gM,SAAS4L,QAAS,gBAC3F4C,EAAUrvM,KAAK6gM,SAAS4L,QAAQ,eAE/BzsM,KAAKwpB,eAGNxpB,KAAK+nB,gBAAgB,GAFrB/nB,KAAK+nB,gBAAgB,GAIzB,IAAIyqK,EAAW,GAEX8c,EAAW,IAAI76J,EAAuDk+E,sBAC1E3yH,KAAKgjM,UAAUrgM,OAAS,EACxB,IACIkQ,EAAQ8hC,EAAuCyD,MAAMq4C,SAAS/lC,EAAoC9P,GAAGyG,SAAU5/B,EAAUzhB,KAAKwgB,YAAYjU,GAAKvM,KAAKwgB,YAAY/f,EAAGT,KAAKwgB,YAAY1gB,EAAGE,KAAKwgB,YAAY9e,GAC5M1B,KAAK4pB,eAAiB,EACtB,IAAI0xB,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK6gM,SAAShmG,MAC5E,MAAOv/C,EAAOE,WAAY,CACtB,IAAIs/C,EAAMx/C,EAAOI,QACjB,IACI,GAAI17C,KAAKqnB,WAAa,GAAKrnB,KAAKknB,WAAa,EAAG,CAC5C,IAAI8jB,EAAKm/C,WAAW2Q,EAAI+yG,SAAS7tM,KAAKonB,iBAAiB1d,YACnDuhC,EAAMk/C,WAAW2Q,EAAI+yG,SAAS7tM,KAAKinB,iBAAiBvd,YACpDq8F,EAAWnxD,EAA6C4D,YAAYq3C,cAAc5kD,EAAKD,GAI3F,GAHAskK,EAASvpG,SAAWA,EACpB/lG,KAAKgjM,UAAUr+L,KAAK2qM,EAASvpG,UAC7BupG,EAAS7uL,UAAU5N,GACf7S,KAAKwqB,YAAc,EACnB,IACI,GAAKxqB,KAAK6nB,kBAIN,OAAQ7nB,KAAK4pB,gBACT,KAAK,EACD0lL,EAASt9E,UAAY7nC,WAAW2Q,EAAI+yG,SAAS7tM,KAAKwqB,YAAY9gB,YAC9D,MACJ,KAAK,EACD4lM,EAASt9E,UAAY1sH,KAAK6I,IAAIg8E,WAAW2Q,EAAI+yG,SAAS7tM,KAAKwqB,YAAY9gB,aACvE,MACJ,KAAK,EACD4lM,EAASt9E,UAAY1sH,KAAKo8D,IAAI,EAAGyoB,WAAW2Q,EAAI+yG,SAAS7tM,KAAKwqB,YAAY9gB,aAC1E,MACJ,KAAK,EACD,IAAIyH,EAAOg5E,WAAW2Q,EAAI+yG,SAAS7tM,KAAKwqB,YAAY9gB,YACpD4lM,EAASt9E,UAAa,GAAK1sH,KAAKo8D,IAAI,IAAKvwD,GAAS,GAClD,MACJ,KAAK,EACDm+L,EAASt9E,UAAY,EACrB,MACJ,QACI,WArBRs9E,EAASt9E,UAAY,EAwB7B,CACA,MAAOn2B,GACHyzG,EAASt9E,UAAY,GACzB,MAGKhyH,KAAK6nB,kBAINynL,EAASt9E,UAA6B,IAAjB1sH,KAAKo8D,IAAI,EAAG,GAHjC4tI,EAASt9E,UAAY,GAM7B,GAAIhyH,KAAK2qB,iBAAmB,EAAG,CAC3B,IAAIw8K,EAAWz8I,EAAoC9P,GAAGsT,KAAK4sC,EAAI+yG,SAAS7tM,KAAK2qB,iBAAiBjhB,YAC9F4lM,EAASzpG,GAAKk0F,EAAuDz8J,oBAAoBwgH,YAAYqpD,GACrGmI,EAASxpG,GAAK,CAClB,CACA0sF,EAAS7tL,KAAK2qM,GACdtvM,KAAKi1C,UAAU+F,SAASs0J,EAASvpG,SAAUupG,EAASz8L,MAAO,IAAI4hC,EAAuDsF,MAAMu1J,EAASzpG,GAAIypG,EAASxpG,IAAKwpG,EAASt9E,UAEpK,CACIm9E,GAAsB,MAAXE,GACXrvM,KAAKuvM,iBAAiBF,EAAQ1kM,KAAMmwF,EAAKA,IAAQ96F,KAAK6gM,SAAS+L,YAEvE,CACA,MAAOr4B,GACP,CACAv0K,KAAK0rF,OAAQ,CACjB,CAIA,OAHIyjH,GAAsB,MAAXE,GACXrvM,KAAKuvM,iBAAiBF,EAAQ1kM,KAAM3K,KAAK6gM,SAAS+L,aAAa,IAE5D,CACX,EACA2C,iBAAkB,SAAUC,EAAa10G,EAAK49E,GAC1C,IAAI+2B,EAAO/kJ,EAAoC9P,GAAGq+C,cAAc6B,EAAI8yG,cAAc4B,GAAa9lM,WAAY,KAAM,KAC7GmtC,EAAMlC,EAAuCyD,MAAMq4C,SAAS,IAAK,IAAK,IAAK,KAI/E,GAHIioF,IACA7hI,EAAMlC,EAAuCkD,OAAOk6C,cAEpDrnC,EAAoC9P,GAAG3lC,WAAWw6L,EAAM,iBAAkB,CAC1E,IAAIrmH,EAAQqmH,EAAKtmH,MAAM,KACnBoV,EAAMnV,EAAMzmF,OACZojC,EAAQ,EACZ,MAAOA,EAAQw4D,EACX,GAAqB,YAAjBnV,EAAMrjD,GAAsB,CAC5BA,GAAS,EAIT,IAHA,IAAI22D,EAAY,IAAIloD,EAA0CwE,SAC1D67E,EAAa,IAAIrgF,EAA0CwE,SAC3DtS,GAAQ,EACHlkC,EAAIujC,EAAOvjC,EAAI+7F,EAAK/7F,GAAK,EAAG,CACjC,GAAiB,YAAb4mF,EAAM5mF,GAAkB,CACxBkkC,GAAQ,EACR,KACJ,CAEI,IAAIigK,EAA4F,GAAnF/xJ,EAA6C4D,YAAYipD,QAAQrY,EAAM5mF,IAAI,GAAa,IACjGokM,EAAShyJ,EAA6C4D,YAAYkpD,SAAStY,EAAM5mF,EAAI,IACrFi5C,EAAM7G,EAA6C4D,YAAYq3C,cAAc+2G,EAAQD,GACpFjgK,GAIDmuF,EAAap5E,EACb/U,GAAQ,GAJR1mC,KAAKomM,WAAWtsJ,QAAQ4iD,EAAWjhD,EAAK5E,EAAK,IAAIpC,EAAuDsF,MAAM,EAAG,IAMrH2iD,EAAYjhD,EAEhB1V,GAAS,CACb,CACIw4D,EAAM,GACNv+F,KAAKomM,WAAWtsJ,QAAQ+6E,EAAYn4B,EAAW7lD,EAAK,IAAIpC,EAAuDsF,MAAM,EAAG,GAEhI,CAER,CACJ,EAEAq1J,gBAAiB,WACb,OAA0D,MAAnDpvM,KAAK6gM,SAASyM,eAAe,oBAA2F,MAA7DttM,KAAK6gM,SAASyM,eAAe,4BACnG,EAEAxJ,WAAY,WACR,IAAIpqC,EAAS,IAAI73J,MAAM6oD,EAAoC9P,GAAGu8H,SAASn3K,KAAK6gM,SAAS4L,UACjF1mK,EAAQ,EACRuV,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK6gM,SAASuE,QAC5E,MAAO9pJ,EAAOE,WAAY,CACtB,IAAI3E,EAAMyE,EAAOI,QACjBg+G,EAAO3zH,KAAW8Q,EAAIlsC,IAC1B,CACA,OAAO+uJ,CACX,EAEAg2C,UAAW,WACP,OAAO1vM,KAAK6gM,QAChB,EAEA8O,UAAW,SAAU/uM,GAEjB,OADAZ,KAAK6gM,SAAWjgM,EACTA,CACX,IAGJ,EAAG+pD,EAA4CzS,cAAc,eAAgB,CAACurH,EAAcorC,EAAeH,EAAwC/qC,OAG5I,EAED;;;qCAIA,CAAEhlK,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCs6J,SAAU,IAAM,IAElB,IAAIvlH,EAA8C,yBAA4C,uBAWnH,SAASulH,IACL75J,KAAK4vM,UAAY,GACjB5vM,KAAKowJ,WAAa,GAClBpwJ,KAAK6vM,WAAY,EACjB7vM,KAAK8vM,SAAW,GAChB9vM,KAAKwnC,YAAc,GACnBxnC,KAAKoxG,OAAS,EACdpxG,KAAKqxG,OAAS,EACdrxG,KAAK2wJ,QAAU,EACf3wJ,KAAK4wJ,QAAU,EACf5wJ,KAAK6sC,SAAW,EAChB7sC,KAAKs8J,WAAa,EAClBt8J,KAAKu8J,WAAa,EAClBv8J,KAAKm7J,MAAQ,EACbn7J,KAAKo7J,MAAQ,EACbp7J,KAAK28J,MAAQ,EACb38J,KAAK48J,MAAQ,EACb58J,KAAK68J,MAAQ,EACb78J,KAAK88J,MAAQ,EACb98J,KAAKo8J,aAAc,EACnBp8J,KAAKy8J,SAAU,EACfz8J,KAAKq8J,UAAW,EAChBr8J,KAAK08J,aAAc,EACnB18J,KAAKw8J,UAAW,EAChBx8J,KAAKg6J,SAAW,GAChBh6J,KAAK+vM,eAAgB,CACzB,CAEA,IAAIC,EAAY,CACZC,cAAe,WACX,OAAOjwM,KAAK4vM,SAChB,EAEAM,cAAe,SAAUtvM,GAErB,OADAZ,KAAK4vM,UAAYhvM,EACVA,CACX,EAEAu0J,eAAgB,WACZ,OAAOn1J,KAAKowJ,UAChB,EAEAiF,eAAgB,SAAUz0J,GAEtB,OADAZ,KAAKowJ,WAAaxvJ,EACXA,CACX,EAEAuvM,aAAc,WACV,OAAOnwM,KAAK6vM,SAChB,EAEA5yC,aAAc,SAAUr8J,GAEpB,OADAZ,KAAK6vM,UAAYjvM,EACVA,CACX,EAEAwvM,aAAc,WAIV,OAHKpwM,KAAK8vM,SAASntM,QACf3C,KAAK8vM,SAASnrM,KAAK,cAEhB3E,KAAK8vM,QAChB,EAEAO,aAAc,SAAUzvM,GAEpB,OADAZ,KAAK8vM,SAAWlvM,EACTA,CACX,EAEA0vM,gBAAiB,WACb,OAAOtwM,KAAKwnC,WAChB,EAEA+oK,gBAAiB,SAAU3vM,GAEvB,OADAZ,KAAKwnC,YAAc5mC,EACZA,CACX,EAEA4vM,WAAY,WACR,OAAOxwM,KAAKoxG,MAChB,EAEAq/F,WAAY,SAAU7vM,GAElB,OADAZ,KAAKoxG,OAASxwG,EACPA,CACX,EAEA21J,WAAY,WACR,OAAOv2J,KAAKqxG,MAChB,EAEAq/F,WAAY,SAAU9vM,GAElB,OADAZ,KAAKqxG,OAASzwG,EACPA,CACX,EAEAgjC,YAAa,WACT,OAAO5jC,KAAK2wJ,OAChB,EAEAkD,YAAa,SAAUjzJ,GAEnB,OADAZ,KAAK2wJ,QAAU/vJ,EACRA,CACX,EAEAk1J,gBAAiB,WACb,OAAO91J,KAAK2wJ,SAAW3wJ,KAAKw/J,YAAc,EAAIx/J,KAAK2wM,kBAAoB3wM,KAAKwwM,YAChF,EAEA1sK,YAAa,WACT,OAAO9jC,KAAK4wJ,OAChB,EAEAmD,YAAa,SAAUnzJ,GAEnB,OADAZ,KAAK4wJ,QAAUhwJ,EACRA,CACX,EAEAm1J,gBAAiB,WACb,OAAO/1J,KAAK4wJ,SAAW5wJ,KAAKs2J,YAAc,EAAIt2J,KAAK4wM,kBAAoB5wM,KAAKu2J,YAChF,EAEA/E,aAAc,WACV,OAAOxxJ,KAAK6sC,QAChB,EAEAmnH,aAAc,SAAUpzJ,GAEpB,OADAZ,KAAK6sC,SAAWjsC,EACTA,CACX,EAEA+vM,eAAgB,WACZ,OAAO3wM,KAAKs8J,UAChB,EAEAu0C,eAAgB,SAAUjwM,GAEtB,OADAZ,KAAKs8J,WAAa17J,EACXA,CACX,EAEAgwM,eAAgB,WACZ,OAAO5wM,KAAKu8J,UAChB,EAEAu0C,eAAgB,SAAUlwM,GAEtB,OADAZ,KAAKu8J,WAAa37J,EACXA,CACX,EAEA4+J,UAAW,WACP,OAAOx/J,KAAKm7J,KAChB,EAEA41C,UAAW,SAAUnwM,GAEjB,OADAZ,KAAKm7J,MAAQv6J,EACNA,CACX,EAEA01J,UAAW,WACP,OAAOt2J,KAAKo7J,KAChB,EAEA41C,UAAW,SAAUpwM,GAEjB,OADAZ,KAAKo7J,MAAQx6J,EACNA,CACX,EAEAqwM,UAAW,WACP,OAAOjxM,KAAK28J,KAChB,EAEAu0C,UAAW,SAAUtwM,GAEjB,OADAZ,KAAK28J,MAAQ/7J,EACNA,CACX,EAEAuwM,UAAW,WACP,OAAOnxM,KAAK48J,KAChB,EAEAw0C,UAAW,SAAUxwM,GAEjB,OADAZ,KAAK48J,MAAQh8J,EACNA,CACX,EAEAywM,UAAW,WACP,OAAOrxM,KAAK68J,KAChB,EAEAy0C,UAAW,SAAU1wM,GAEjB,OADAZ,KAAK68J,MAAQj8J,EACNA,CACX,EAEA2wM,UAAW,WACP,OAAOvxM,KAAK88J,KAChB,EAEA00C,UAAW,SAAU5wM,GAEjB,OADAZ,KAAK88J,MAAQl8J,EACNA,CACX,EAEA6wM,YAAa,SAAUtrK,EAAOC,GAEtBD,IAAUnmC,KAAKm7J,QACfn7J,KAAKoxG,QAAWpxG,KAAKm7J,MAAQh1H,EAC7BnmC,KAAKs8J,YAAet8J,KAAKm7J,MAAQh1H,EACjCnmC,KAAKm7J,MAAQh1H,GAEbC,IAAWpmC,KAAKo7J,QAChBp7J,KAAKqxG,QAAWrxG,KAAKo7J,MAAQh1H,EAC7BpmC,KAAKu8J,YAAev8J,KAAKo7J,MAAQh1H,EACjCpmC,KAAKo7J,MAAQh1H,EAErB,EAEA42H,qBAAsB,WAClBh9J,KAAKoxG,OAAU9rG,KAAKqxC,KAAK32C,KAAK28J,MAAQ38J,KAAK28J,MAAQ38J,KAAK68J,MAAQ78J,KAAK68J,QAAU78J,KAAK28J,MAAQ38J,KAAK88J,MAAQ98J,KAAK48J,MAAQ58J,KAAK68J,OAAS,GAAM,EAAI,EAC9I78J,KAAKqxG,OAAS/rG,KAAKqxC,KAAK32C,KAAK48J,MAAQ58J,KAAK48J,MAAQ58J,KAAK88J,MAAQ98J,KAAK88J,MACxE,EAEAC,wBAAyB,WACrB,IAAIp6G,EAAS3iD,KAAK28J,MAAQ38J,KAAK88J,MAAQ98J,KAAK48J,MAAQ58J,KAAK68J,MAAS,GAAM,EAAI,EACxE60C,EAAOpsM,KAAKoxC,OAAQiM,EAAO3iD,KAAK48J,MAAQ58J,KAAK88J,OACjD98J,KAAK6sC,SAAW6kK,EAAOpsM,KAAK8Z,GAAK,GACrC,EAEAqoJ,aAAc,WACV,OAAOznK,KAAKg6J,QAChB,EAEA23C,aAAc,SAAU/wM,GAEpB,OADAZ,KAAKg6J,SAAWp5J,EACTA,CACX,EAEAgxM,iBAAkB,WACd,OAAO5xM,KAAK+vM,aAChB,EAEA8B,iBAAkB,SAAUjxM,GAExB,OADAZ,KAAK+vM,cAAgBnvM,EACdA,CACX,EAEA6/J,UAAW,WACP,OAAO,IACX,IAGJ,EAAGnsH,EAA4C4D,cAAc,WAAY,CAAC2hH,EAAUm2C,EAAW,MAGxF,EAED;;;kCAIA,CAAErxM,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCyvJ,aAAc,IAAM,IAEtB,IAAItkG,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzF0uD,EAAkD,4BAA+C,2BACjGrc,EAA4C,sBAAyC,qBACrFsc,EAA4D,sCAAyD,qCACrHC,EAAmD,6BAAgD,4BACnGC,EAAwC,kBAAqC,iBAiBtG,SAASw1C,IACLhvJ,KAAKy5G,eAAiB,EACtBz5G,KAAK8xM,UAAY,EACjB9xM,KAAK+xM,UAAY,EACjB/xM,KAAKgyM,UAAY,EACjBhyM,KAAKiyM,UAAY,EACjBjyM,KAAK25G,oBAAsB,GAC3BH,EAAsCI,KAAKp5G,KAAKR,KACpD,CAEAgvJ,EAAa7sJ,OAAS,SAAU03G,EAAOtxC,EAAGvc,EAAG8tD,EAAS5uB,GAClD,IAAIqB,EAAO,IAAIyiE,EAOf,OANAziE,EAAKrB,OAASA,EACdqB,EAAKstB,MAAQA,EACbttB,EAAKwtB,MAAQxxC,EACbgkB,EAAKytB,MAAQhuD,EACbugC,EAAKutB,QAAUA,EACfvtB,EAAK2tB,wBACE3tB,CACX,EAEAyiE,EAAakjD,gCAAkC,SAAUnzJ,EAAKozJ,EAAKz1K,GAC/D,IAAI01K,EAAUpjD,EAAaqjD,0BAA0BF,EAAKz1K,GACtD41K,EAAqBF,EAAU,IAAO9sM,KAAKwkD,MAAMsoJ,EAAU,KAC3DG,EAAUvjD,EAAawjD,0BAA0BzzJ,EAAKriB,GACtD+1K,EAAqBF,EAAU,IAAOjtM,KAAKwkD,MAAMyoJ,EAAU,KAC/D,OAAOv1G,EAA0C6C,SAAS19F,OAAOmwM,EAAmBG,EACxF,EAEAzjD,EAAa0jD,0BAA4B,SAAU1mJ,EAAGtvB,GAClD,IAAIi2K,EAAiB3jD,EAAa4jD,gBAAgBl2K,GAC9C61K,EAAUvmJ,EAAI2mJ,EAClB,OAAO3jD,EAAa6jD,YAAYvtM,KAAK8Z,GAAK,EAAI,EAAI9Z,KAAK26C,KAAK36C,KAAKm8D,IAAI,EAAI8wI,EAAU,UACvF,EAEAvjD,EAAa8jD,0BAA4B,SAAUvqI,EAAG7rC,GAClD,IAAIi2K,EAAiB3jD,EAAa4jD,gBAAgBl2K,GAC9C01K,EAAU7pI,EAAIoqI,EAClB,OAAO3jD,EAAa6jD,YAAYT,EAAU,QAC9C,EAEApjD,EAAawjD,0BAA4B,SAAU3xG,EAAUnkE,GACzD,IAAIq2K,EAASztM,KAAKixC,IAAIy4G,EAAagkD,YAAYnyG,IAC3C0xG,EAAU,UAAcjtM,KAAK6I,KAAK,EAAI4kM,IAAW,EAAIA,IACrDJ,EAAiB3jD,EAAa4jD,gBAAgBl2K,GAClD,OAAOguB,EAAoC9P,GAAGyG,SAAU/7C,KAAKu0C,MAAM,SAAW04J,GAAWI,EAC7F,EAEA3jD,EAAaikD,0BAA4B,SAAUjnJ,EAAGtvB,GAClD,IAAIi2K,EAAiB3jD,EAAa4jD,gBAAgBl2K,GAC9C61K,EAAU,SAAWvmJ,EAAI2mJ,EAC7B,OAAO3jD,EAAa6jD,YAAYvtM,KAAK8Z,GAAK,EAAI,EAAI9Z,KAAK26C,KAAK36C,KAAKm8D,IAAI,EAAI8wI,EAAU,UACvF,EAEAvjD,EAAaqjD,0BAA4B,SAAUzxG,EAAWlkE,GAC1D,IAAI01K,EAAU,QAAUpjD,EAAagkD,YAAYpyG,GAC7C+xG,EAAiB3jD,EAAa4jD,gBAAgBl2K,GAClD,OAAOguB,EAAoC9P,GAAGyG,UAAW+wJ,EAAU,UAAYO,EACnF,EAEA3jD,EAAakkD,0BAA4B,SAAU3qI,EAAG7rC,GAClD,IAAIi2K,EAAiB3jD,EAAa4jD,gBAAgBl2K,GAC9C01K,EAAU7pI,EAAIoqI,EAAiB,SACnC,OAAO3jD,EAAa6jD,YAAYT,EAAU,QAC9C,EAEApjD,EAAamkD,8BAAgC,SAAUvyG,EAAWlkE,EAAMq9E,GACpE,IAAIq4F,EAAU,QAAUpjD,EAAagkD,YAAYpyG,GAC7C+xG,EAAiB3jD,EAAa4jD,gBAAgBl2K,GAClD,OAAOguB,EAAoC9P,GAAGyG,UAAW+wJ,EAAU,UAAYO,EACnF,EAEA3jD,EAAaokD,8BAAgC,SAAUvyG,EAAUnkE,EAAMq9E,GACnE,IAAIg5F,EAASztM,KAAKixC,IAAIy4G,EAAagkD,YAAYnyG,IAC3C0xG,EAAU,UAAcjtM,KAAK6I,KAAK,EAAI4kM,IAAW,EAAIA,IACrDJ,EAAiB3jD,EAAa4jD,gBAAgBl2K,GAClD,OAAOguB,EAAoC9P,GAAGyG,SAAU/7C,KAAKu0C,MAAM,SAAW04J,GAAWI,EAC7F,EAEA3jD,EAAaqkD,iCAAmC,SAAU9qI,EAAG7rC,EAAMs9E,GAC/D,IAAI24F,EAAiB3jD,EAAa4jD,gBAAgBl2K,GAC9C01K,EAAU7pI,EAAIoqI,EAAiB,SACnC,OAAO3jD,EAAa6jD,YAAYT,EAAU,QAC9C,EAEApjD,EAAagkD,YAAc,SAAUM,GACjC,OAAQA,EAAMhuM,KAAK8Z,GAAK,GAC5B,EAEA4vI,EAAa4jD,gBAAkB,SAAUl2K,GACrC,OAAQ,QAAU,GAAKA,EAC3B,EAEAsyH,EAAa6jD,YAAc,SAAUl6J,GACjC,OAAc,IAANA,EAAYrzC,KAAK8Z,EAC7B,EAEA,IAAIm0L,EAAgB,CAChBr5F,sBAAuB,WACnBl6G,KAAKy5G,eAAiB,IAAMn0G,KAAKo8D,IAAI,EAAG1hE,KAAK65G,OAC7C75G,KAAK8xM,UAAY9iD,EAAaikD,0BAAuC,IAAbjzM,KAAKg6G,MAAah6G,KAAK65G,OAC/E75G,KAAK+xM,UAAY/iD,EAAaikD,0BAA6C,KAAlBjzM,KAAKg6G,MAAQ,GAAUh6G,KAAK65G,OACrF75G,KAAKgyM,UAAchyM,KAAK+5G,MAAQ/5G,KAAKy5G,eAAkB,IACvDz5G,KAAKiyM,WAAgBjyM,KAAK+5G,MAAQ,GAAM/5G,KAAKy5G,eAAkB,IAC/D,IAAIe,GAAax6G,KAAK8xM,UAAY9xM,KAAK+xM,WAAa,EAChDt3F,GAAaz6G,KAAKgyM,UAAYhyM,KAAKiyM,WAAa,EACpDjyM,KAAK06G,aAAe16G,KAAKu9F,QAAQid,EAAWC,GAAW,GACvDz6G,KAAK26G,QAAU36G,KAAKu9F,QAAQv9F,KAAK8xM,UAAW9xM,KAAKgyM,WAAW,GAC5DhyM,KAAK46G,YAAc56G,KAAKu9F,QAAQv9F,KAAK+xM,UAAW/xM,KAAKiyM,WAAW,GAChEjyM,KAAK66G,SAAW76G,KAAKu9F,QAAQv9F,KAAK8xM,UAAW9xM,KAAKiyM,WAAW,GAC7DjyM,KAAK86G,WAAa96G,KAAKu9F,QAAQv9F,KAAK+xM,UAAW/xM,KAAKgyM,WAAW,GAC1DhyM,KAAKg6G,QACNh6G,KAAK26G,QAAU3d,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GAC/EnC,KAAK66G,SAAW7d,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,IAEhFnC,KAAKg6G,QAAU10G,KAAKo8D,IAAI,EAAG1hE,KAAK65G,OAAS,IACzC75G,KAAK46G,YAAc5d,EAA0ChkD,SAAS72C,OAAO,GAAI,EAAG,GACpFnC,KAAK86G,WAAa9d,EAA0ChkD,SAAS72C,OAAO,GAAI,EAAG,IAEvF,IAAI44G,EAAW/6G,KAAK26G,QACpBI,EAAShS,SAAS/oG,KAAK06G,cACvB16G,KAAKg7G,aAAeD,EAASp4G,SAC7Bo4G,EAAW/6G,KAAK46G,YAChBG,EAAShS,SAAS/oG,KAAK06G,cACvB,IAAInc,EAAMwc,EAASp4G,SACf3C,KAAKg7G,aAAezc,IACpBv+F,KAAKg7G,aAAezc,GAExBv+F,KAAKy5G,eAAiBn0G,KAAKkjD,IAAIxoD,KAAK+xM,UAAY/xM,KAAK8xM,UACzD,EAEA3qD,cAAe,SAAUpoG,EAAKG,GAC1B,SAAKl/C,KAAKwzM,UAA4B,MAAhBxzM,KAAKyzM,SAAmB10J,EAAMz5C,KAAKilF,IAAIvqF,KAAK8xM,UAAW9xM,KAAK+xM,YAAchzJ,EAAMz5C,KAAKC,IAAIvF,KAAK+xM,UAAW/xM,KAAK8xM,YAAc5yJ,EAAM55C,KAAKilF,IAAIvqF,KAAKgyM,UAAWhyM,KAAKiyM,YAAc/yJ,EAAM55C,KAAKC,IAAIvF,KAAKgyM,UAAWhyM,KAAKiyM,WAI5O,EAEA5qD,wBAAyB,SAAUtoG,EAAKG,EAAKnP,GACzC,GAAI/vC,KAAK65G,MAAQL,EAAsCI,KAAK0tC,iBAAkB,CAC1E,IAAIhsG,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKmlJ,UACnE,MAAO7pG,EAAOE,WAAY,CACtB,IAAI4vC,EAAQ9vC,EAAOI,QACnB,GAAa,MAAT0vC,GACIA,EAAM+7D,cAAcpoG,EAAKG,GAAM,CAC/B,IAAIqoG,EAASn8D,EAAMi8D,wBAAwBtoG,EAAKG,EAAKnP,GACrD,GAAMw3G,EACF,OAAOA,EAGP,KAER,CAER,CACJ,CACA,IAAIhlG,EAAMviD,KAAK0zM,uBAAuB30J,EAAKG,EAAK,EAAW,EAAIl/C,KAAKqoJ,uBACpE,OAAO9lG,CACX,EAEAmxJ,uBAAwB,SAAU30J,EAAKG,EAAKh1B,GACxC,IAAIkc,EAAS9gC,KAAKkjD,IAAIxoD,KAAK+xM,UAAY/xM,KAAK8xM,WACxC3rK,EAAQ7gC,KAAKkjD,IAAIxoD,KAAKiyM,UAAYjyM,KAAKgyM,WACvC3uI,GAAOtkB,EAAMz5C,KAAKilF,IAAIvqF,KAAK+xM,UAAW/xM,KAAK8xM,YAAc1rK,EAAS,GAClE68B,GAAO/jB,EAAM55C,KAAKilF,IAAIvqF,KAAKiyM,UAAWjyM,KAAKgyM,YAAc7rK,EAAQ,GACjEu7H,EAASp8J,KAAKilF,IAAI,GAAI7/B,EAAoC9P,GAAGyG,SAASgiB,IACtEswI,EAASruM,KAAKilF,IAAI,GAAI7/B,EAAoC9P,GAAGyG,SAAS4hB,IACtE67B,EAAK77B,EAAK0wI,EACV5rD,EAAK1kF,EAAKq+F,EACVzZ,EAAKjoJ,KAAKyzM,QAAiB,GAAT/xC,EAAciyC,GAChCzrD,EAAKloJ,KAAKyzM,QAAiB,GAAT/xC,GAAeiyC,EAAS,IAC1CxrD,EAAKnoJ,KAAKyzM,QAAuB,IAAd/xC,EAAS,GAAUiyC,GACtCvrD,EAAKpoJ,KAAKyzM,QAAuB,IAAd/xC,EAAS,IAAWiyC,EAAS,IAChD/tG,EAAMqiD,GAAM,EAAInpD,GAAMA,EAAKopD,EAC3Bt3C,EAASu3C,GAAM,EAAIrpD,GAAMA,EAAKspD,EAC9BlpJ,EAAM0mG,GAAO,EAAImiD,GAAMA,EAAKn3C,EAChC,OAAO1xG,EAAMgrB,CACjB,EAEAixF,eAAgB,SAAUl5E,GAEtB,GADAu3E,EAAsCI,KAAKt5G,UAAU66G,eAAe36G,KAAKR,KAAMiiC,GAC3EjiC,KAAK4zM,gBACL,OAAO,EAEX5zM,KAAK4zM,iBAAkB,EAC+C,KAAlEv6F,EAAgDpT,iBAC3CjmG,KAAK85G,QAAQ72E,mBAAwD,IAAnCjjC,KAAK85G,QAAQ72E,oBAChDjjC,KAAK25G,oBAAsBr0G,KAAKC,IAAI,EAAsB,GAAlB,EAAIvF,KAAK65G,UAGzD,IAAK,IAAIr3G,EAAI,EAAGA,EAAI,EAAGA,IACnBxC,KAAKo7G,qBAAqB54G,GAAK,GAEnC,IAAIu8C,EAAKG,EACLnZ,EAAQ,EACRm1E,EAAc,IAAM51G,KAAKo8D,IAAI,EAAG1hE,KAAK65G,OACzC75G,KAAK8xM,UAAY9iD,EAAaikD,0BAAuC,IAAbjzM,KAAKg6G,MAAah6G,KAAK65G,OAC/E75G,KAAK+xM,UAAY/iD,EAAaikD,0BAA6C,KAAlBjzM,KAAKg6G,MAAQ,GAAUh6G,KAAK65G,OACrF75G,KAAKgyM,UAAchyM,KAAK+5G,MAAQmB,EAAe,IAC/Cl7G,KAAKiyM,WAAgBjyM,KAAK+5G,MAAQ,GAAMmB,EAAe,IACvD,IAAIV,EAAYw0C,EAAaikD,0BAAmD,KAAV,EAAbjzM,KAAKg6G,MAAa,GAAUh6G,KAAK65G,MAAQ,GAClG75G,KAAK26G,QAAU36G,KAAKu9F,QAAQv9F,KAAK8xM,UAAW9xM,KAAKgyM,WAAW,GAC5DhyM,KAAK46G,YAAc56G,KAAKu9F,QAAQv9F,KAAK+xM,UAAW/xM,KAAKiyM,WAAW,GAChEjyM,KAAK66G,SAAW76G,KAAKu9F,QAAQv9F,KAAK8xM,UAAW9xM,KAAKiyM,WAAW,GAC7DjyM,KAAK86G,WAAa96G,KAAKu9F,QAAQv9F,KAAK+xM,UAAW/xM,KAAKgyM,WAAW,GAC/D,IAAIx2F,EAAQ,IAAI35G,OAAO7B,KAAK25G,oBAAsB,IAAM35G,KAAK25G,oBAAsB,IACnFuB,EAAcl7G,KAAKiyM,UAAYjyM,KAAKgyM,UACThyM,KAAK25G,oBAAhC,IACI1W,EAAID,EACJyY,EAAc,EAAIz7G,KAAK25G,oBACvB+gC,EAAa16I,KAAK+xM,UAAYv3F,EAClC,IAAKxX,EAAK,EAAGA,EAAKhjG,KAAK25G,oBAAsB,EAAG3W,IAO5C,IALIjkD,EADAikD,IAAOhjG,KAAK25G,oBAAsB,EAC5B35G,KAAK+xM,UAAa,EAAIt2F,EAAci/B,EAAa13C,EAGjDwX,EAELvX,EAAK,EAAGA,GAAMjjG,KAAK25G,oBAAqB1W,IAErC/jD,EADA+jD,IAAOjjG,KAAK25G,oBACN35G,KAAKgyM,UAAav2F,EAAcP,EAAcjY,EAG9CjjG,KAAKiyM,UAEflsK,EAAQi9D,GAAMhjG,KAAK25G,oBAAsB,GAAK1W,EAC9CuY,EAAMz1E,GAAS,IAAIi3D,EAA0CoI,gBAC7DoW,EAAMz1E,GAAOggE,SAAW/lG,KAAK6zM,eAAe90J,EAAKG,GAAK,GAAO,GAC7Ds8D,EAAMz1E,GAAO8/D,GAAM5C,EAAKwY,EAAepC,EAAgDpT,eACvFuV,EAAMz1E,GAAO+/D,IAAOkpD,EAAawjD,0BAA0BzzJ,EAAK/+C,KAAK65G,OAAuB,IAAb75G,KAAKg6G,OAAgB,IAAOX,EAAgDpT,eAC3JjmG,KAAK8zM,WAIb,IADAp5D,EAAa16I,KAAK8xM,UAAYt3F,EACzBxX,EAAKhjG,KAAK25G,oBAAsB,EAAG3W,GAAMhjG,KAAK25G,oBAAqB3W,IAOpE,IALIjkD,EADAikD,IAAOhjG,KAAK25G,oBACNa,EAAa,EAAIiB,EAAci/B,GAAc13C,EAAMhjG,KAAK25G,oBAAsB,GAG9E35G,KAAK8xM,UAEV7uG,EAAK,EAAGA,GAAMjjG,KAAK25G,oBAAqB1W,IAErC/jD,EADA+jD,IAAOjjG,KAAK25G,oBACN35G,KAAKgyM,UAAav2F,EAAcP,EAAcjY,EAG9CjjG,KAAKiyM,UAEflsK,EAAQi9D,GAAMhjG,KAAK25G,oBAAsB,GAAK1W,EAC9CuY,EAAMz1E,GAAS,IAAIi3D,EAA0CoI,gBAC7DoW,EAAMz1E,GAAOggE,SAAW/lG,KAAK6zM,eAAe90J,EAAKG,GAAK,GAAO,GAC7Ds8D,EAAMz1E,GAAO8/D,GAAM5C,EAAKwY,EAAepC,EAAgDpT,eACvFuV,EAAMz1E,GAAO+/D,IAAOkpD,EAAawjD,0BAA0BzzJ,EAAK/+C,KAAK65G,OAAuB,IAAb75G,KAAKg6G,OAAgB,IAAOX,EAAgDpT,eAC3JjmG,KAAK8zM,WAGb,IAAK9zM,KAAKg6G,MAGN,IADAhX,EAAKhjG,KAAK25G,oBACL1W,EAAK,EAAGA,GAAMjjG,KAAK25G,oBAAqB1W,IACzCl9D,EAAQi9D,GAAMhjG,KAAK25G,oBAAsB,GAAK1W,EAC9CuY,EAAMz1E,GAAOggE,SAAW/I,EAA0ChkD,SAAS72C,OAAO,EAAG,EAAG,GAGhG,GAAInC,KAAKg6G,QAAU10G,KAAKo8D,IAAI,EAAG1hE,KAAK65G,OAAS,EAGzC,IADA7W,EAAK,EACAC,EAAK,EAAGA,GAAMjjG,KAAK25G,oBAAqB1W,IACzCl9D,EAAQi9D,GAAMhjG,KAAK25G,oBAAsB,GAAK1W,EAC9CuY,EAAMz1E,GAAOggE,SAAW/I,EAA0ChkD,SAAS72C,OAAO,GAAI,EAAG,GAGjGnC,KAAK07G,cAAgB17G,KAAK25G,oBAAsB35G,KAAK25G,oBAAsB,EAC3E,IAAIgC,EAAmB37G,KAAK25G,oBAAsB,EAC9CiC,EAAO,EACX,GAAwB,MAApB35E,EAAc6T,GACd,IAAK,IAAI6oB,EAAK,EAAGA,EAAK,EAAGA,IACrB,IAAK,IAAID,EAAK,EAAGA,EAAK,EAAGA,IAAM,CAE3B,IADA34B,EAAQ,EACHi9D,EAAM2Y,EAAmBh9C,EAAKqkC,EAAM2Y,GAAoBh9C,EAAK,GAAKqkC,IACnE,IAAKC,EAAM0Y,EAAmBj9C,EAAKukC,EAAM0Y,GAAoBj9C,EAAK,GAAKukC,IAAM,CACzE,IAAI4Y,EACAC,EACAC,EAGJF,EAAKL,EAAOxY,GAAMhjG,KAAK25G,oBAAsB,GAAK1W,GAClD6Y,EAAKN,GAAQxY,EAAK,IAAMhjG,KAAK25G,oBAAsB,GAAK1W,GACxD8Y,EAAKP,EAAOxY,GAAMhjG,KAAK25G,oBAAsB,IAAM1W,EAAK,IACxD,IAAI8wG,EAAMx6F,EAAiDyC,eAAe75G,OAAO05G,EAAIC,EAAIC,EAAI/7G,KAAKi8G,QAASj8G,KAAK65G,OAChH75G,KAAKo7G,qBAAqBQ,GAAMj3G,KAAKovM,GAGrCl4F,EAAKL,EAAOxY,GAAMhjG,KAAK25G,oBAAsB,IAAM1W,EAAK,IACxD6Y,EAAKN,GAAQxY,EAAK,IAAMhjG,KAAK25G,oBAAsB,GAAK1W,GACxD8Y,EAAKP,GAAQxY,EAAK,IAAMhjG,KAAK25G,oBAAsB,IAAM1W,EAAK,IAC9D8wG,EAAMx6F,EAAiDyC,eAAe75G,OAAO05G,EAAIC,EAAIC,EAAI/7G,KAAKi8G,QAASj8G,KAAK65G,OAC5G75G,KAAKo7G,qBAAqBQ,GAAMj3G,KAAKovM,EACzC,CAEJn4F,GACJ,KAED,CACH57G,KAAKk8G,cAAgB7C,EAAgD8C,eAAeC,eACpF/C,EAAgD8C,eAAeE,WAAW/C,EAA0DgD,MAAMC,aAAcv8G,KAAKk8G,eAC7J,IAAIM,EAAW,IAAIC,aAA4B,EAAfjB,EAAM74G,QAClC+5G,EAASF,EACbz2E,EAAQ,EACR,IAAIuV,EAASoP,EAAoC9P,GAAGW,UAAUigE,GAC9D,MAAOlgE,EAAOE,WAAY,CACtB,IAAI5Q,EAAK0Q,EAAOI,QAChB3V,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAO6E,EAC1C,CACAyuE,EAAgD8C,eAAeS,WAAWtD,EAA0DgD,MAAMC,aAAcC,EAAUlD,EAA0DgD,MAAMO,aAClO,IAASl+C,EAAK,EAAGA,EAAK,EAAGA,IACrB,IAASD,EAAK,EAAGA,EAAK,EAAGA,IAAM,CAC3B,IAAIo+C,EAAY,IAAIC,YAAiC,EAArB/8G,KAAK07G,eACjCsB,EAAaF,EAEjB,IADA/2E,EAAQ,EACHi9D,EAAM2Y,EAAmBh9C,EAAKqkC,EAAM2Y,GAAoBh9C,EAAK,GAAKqkC,IACnE,IAAKC,EAAM0Y,EAAmBj9C,EAAKukC,EAAM0Y,GAAoBj9C,EAAK,GAAKukC,IAEnE+Z,EAAWj3E,KAAYi9D,GAAMhjG,KAAK25G,oBAAsB,GAAK1W,EAC7D+Z,EAAWj3E,MAAai9D,EAAK,IAAMhjG,KAAK25G,oBAAsB,GAAK1W,EACnE+Z,EAAWj3E,KAAYi9D,GAAMhjG,KAAK25G,oBAAsB,IAAM1W,EAAK,GAGnE+Z,EAAWj3E,KAAYi9D,GAAMhjG,KAAK25G,oBAAsB,IAAM1W,EAAK,GACnE+Z,EAAWj3E,MAAai9D,EAAK,IAAMhjG,KAAK25G,oBAAsB,GAAK1W,EACnE+Z,EAAWj3E,MAAai9D,EAAK,IAAMhjG,KAAK25G,oBAAsB,IAAM1W,EAAK,GAGjFjjG,KAAKi9G,cAAcrB,GAAQvC,EAAgD8C,eAAeC,eAC1F/C,EAAgD8C,eAAeE,WAAW/C,EAA0DgD,MAAMY,qBAAsBl9G,KAAKi9G,cAAcrB,IACnLvC,EAAgD8C,eAAeS,WAAWtD,EAA0DgD,MAAMY,qBAAsBJ,EAAWxD,EAA0DgD,MAAMO,aAC3OjB,GACJ,CAER,CACA,OAAO,CACX,EAEAo4F,gBAAiB,SAAUjpK,EAAG/mC,GAC1B,OAAOhE,KAAKyzM,QAAmB,IAAV,GAAKzvM,GAAU+mC,EACxC,EAEAkpK,oBAAqB,WACjB,IAAI/oH,EAASxgC,EAAoC9P,GAAGw7G,SAASp2J,KAAKkrF,OAAQ8jE,GAC1E,GAAc,MAAV9jE,GAAoC,MAAlBA,EAAOuoH,QACzB,OAAO,EAEX,IAAInnG,EAAatsG,KAAK+5G,MAAQ,IAAO,EAAK,GAAK,EAC3CxN,EAAavsG,KAAKg6G,MAAQ,IAAO,EAAK,GAAK,EAC/Ch6G,KAAKyzM,QAAU,IAAI5xM,MAAM7B,KAAKk0M,SAG9B,IAAK,IAAIlwM,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAEzB,IADA,IAAIilF,GAAO,EACFl+C,EAAI,EAAGA,EAAI,GAAIA,IAEhB/qC,KAAKyzM,QAAmB,IAAV,GAAKzvM,GAAU+mC,GAD7Bk+C,EACkCiC,EAAO8oH,gBAAiBjpK,EAAI,EAAKuhE,EAAUtoG,EAAI,EAAKuoG,IAGlDrhB,EAAO8oH,gBAAiBjpK,EAAI,EAAKuhE,EAAUtoG,EAAI,EAAKuoG,GAAWrhB,EAAO8oH,gBAAkBjpK,EAAI,EAAKuhE,EAAW,EAAItoG,EAAI,EAAKuoG,IAAY,EAE7KtjB,GAAQA,EAKhB,IAASjlF,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACzB,IAAS+mC,EAAI,EAAGA,EAAI,GAAIA,IACpB/qC,KAAKyzM,QAAmB,IAAV,GAAKzvM,GAAU+mC,IAAO/qC,KAAKg0M,gBAAgBjpK,EAAG/mC,EAAI,GAAKhE,KAAKg0M,gBAAgBjpK,EAAG/mC,EAAI,IAAM,EAG/G,IAAIs3C,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKyzM,SACnE,MAAOn4J,EAAOE,WAAY,CACtB,IAAI24J,EAAS74J,EAAOI,QACpB17C,KAAKsoJ,YAAc6rD,CACvB,CAGA,OAFAn0M,KAAKsoJ,YAActoJ,KAAKyzM,QAAQ9wM,OAChC3C,KAAKwzM,UAAW,GACT,CACX,IAGJ,EAAG7oJ,EAA4CzS,cAAc,eAAgB,CAAC82G,EAAcukD,EAAe/5F,EAAsCI,MAG1I,EAED;;;kCAIA,CAAEj7G,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC60M,aAAc,IAAM,IAEtB,IAAI1pJ,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFnW,EAA4C,sBAAyC,qBACrF6/J,EAAwD,kCAAqD,iCAC7G9F,EAAoD,8BAAiD,6BACrGltD,EAA4D,sCAAyD,qCACrHizD,EAAuD,iCAAoD,gCAC3GC,EAAoD,8BAAiD,6BACrGC,EAA+C,yBAA4C,wBAC3FC,EAAyC,mBAAsC,kBAC/EC,EAAiD,0BAA6C,yBAC9FC,EAAkD,2BAA8C,0BAChGxV,EAA0D,mCAAsD,kCAChHyV,EAAgD,yBAA4C,wBAC5Fh8D,EAA4D,qCAAwD,oCACpHi8D,EAA6C,sBAAyC,qBA0B/G,SAAST,IAAiB,CAE1BA,EAAaU,QAAU,GACvBV,EAAa9Z,YAAa,EAC1B8Z,EAAaW,gBAAkB,IAAIlzM,MAAM,GACzCuyM,EAAav7E,YAAc,KAC3Bu7E,EAAaY,iBAAmB,KAChCZ,EAAaa,UAAY,EAEzBb,EAAac,WAAa,SAAUxqM,GAChC0pM,EAAae,YAAc,IAAIN,EAA2Cx6G,QAAQ3vF,GAClF0pM,EAAae,YAAYnqM,aAAe,OACxCopM,EAAae,YAAY76G,cAAgB85G,EAAat4D,oBACtDs4D,EAAae,YAAY7pM,MAC7B,EAEA8oM,EAAat4D,oBAAsB,WAC/B,GAA6C,IAAzCs4D,EAAae,YAAY1oH,YACzB+N,MAAM45G,EAAae,YAAY16G,oBAE9B,GAA6C,IAAzC25G,EAAae,YAAY1oH,YAAmB,CACjD,IAAIyvD,EAAWk4D,EAAae,YAAYh5D,UACpCC,EAAS,IAAI5uI,WACjB4uI,EAAO1uI,UAAY,SAAUxN,GACzBk0M,EAAagB,aAAa,IAAIx8D,EAA0DyD,aAAa,IAAI9W,WAAW6W,EAAO14I,UAC3H0wM,EAAaiB,qBACjB,EACAj5D,EAAOG,kBAAkBL,EAC7B,CACJ,EAEAk4D,EAAagB,aAAe,SAAUj6I,GAClCi5I,EAAaU,QAAU,GACvB,IACI19C,EADA74D,EAAMpjC,EAAGqvC,aAEb,IACI,MAAOrvC,EAAGosC,eAAiBhJ,EACvB64D,EAAKi9C,EAAsDv6I,IAAIoB,QAAQC,GACvEi5I,EAAaU,QAAQnwM,KAAKyyJ,EAElC,CACA,MAAO7iE,GAAO,CACdp5B,EAAGn0B,OACP,EAEAotK,EAAakB,UAAY,SAAUrzK,EAAexgB,EAASg5K,GACvD,IAAI/9J,EAAOuF,EAAc2K,WAAWlQ,KAChCu+G,EAAmE,IAArD31I,KAAK6I,IAAI7I,KAAKC,IAAI,EAAGm3B,IAASp3B,KAAK6I,IAAI,GAAM,MAC3Di/C,EAAQ9nD,KAAKilF,IAAI,IAAKjlF,KAAKC,IAAI,EAAGmlD,EAAoC9P,GAAGyG,SAAS45F,KACtF,KAAI7tF,EAAQ,KAGZ,GAAqC,MAAjCgnJ,EAAaY,iBAAjB,CAaA,IAAI1iG,EAAS99D,EAA0CqwD,SAASmM,YAAYx8D,EAA0CwE,SAASgvD,OAAOyyF,IAClI/5D,EAAQlsF,EAA0CqwD,SAAS+H,eAAe3qE,EAAcw3F,YAAannB,GACrGijG,EAAW/gK,EAA0CqwD,SAAS+H,eAAe8zB,EAAOz+F,EAAcy3F,YAC5FllF,EAA0CwE,SAAS4kD,qBAAqB37D,EAAcgrE,eAAgBz4D,EAA0CqwD,SAASgM,aAAa5uE,EAAcw3F,cAC9L,GAAqC,MAAjC26E,EAAaY,iBACb,IAASxyM,EAAI,EAAGA,EAAI,EAAGA,IACnB4xM,EAAaW,gBAAgBvyM,GAAGqqF,iBAAgB,GAC5CunH,EAAaW,gBAAgBvyM,GAAGiqF,cAChC8nH,EAAkDl6E,wBAAwB9hH,IAAI0pB,EAAeszK,EAAUnB,EAAaY,iBAAiBxyM,GAAG4uH,aAAcgjF,EAAav7E,YAAYe,UAAW66E,EAAuC58J,OAAOC,YAAar2B,EAAU2yL,EAAaW,gBAAgBvyM,GAAGgf,eAAe,EAAQ29K,EAAwD7hK,oBAAoBu9G,WAAa85D,EAAgD59C,aAAaM,SAAW,EAAGp1H,EAAcgrE,eAAgB,IAAK,IAC7fhrE,EAAc6T,GAAGo/E,WAAWmsB,EAA0D/kC,MAAMud,OAAQ,EAAGu6E,EAAaY,iBAAiBxyM,GAAG45F,OAVpJ,KAZA,CACoC,MAA5Bg4G,EAAav7E,cACbu7E,EAAav7E,YAAc01E,EAAkDl1E,QAAQC,QAAQs7E,EAA8Ch7G,WAAW18D,UAAUi9D,eAAe,0BAEnL,IAAK,IAAI33F,EAAI,EAAGA,EAAI,EAAGA,IACnB4xM,EAAaW,gBAAgBvyM,GAAKgyM,EAA6CtoH,WAAW/pF,QAAO,EAAO,KAEvGiyM,EAAa9Z,aACd8Z,EAAaoB,aACbpB,EAAa9Z,YAAa,EAGlC,CAcJ,EAEA8Z,EAAaoB,WAAa,WACjBd,EAA+Cn4K,kBAChD63K,EAAac,WAAWN,EAA8Ch7G,WAAW18D,UAAU28D,cAAc,gCAEjH,EAEAu6G,EAAaiB,oBAAsB,WAC/B,IACI,GAAqC,MAAjCjB,EAAaY,iBAA0B,CACvC,IAAIS,EAAsB,IAAI5zM,MAAM,GACpCuyM,EAAaa,UAAYb,EAAaU,QAAQnyM,OAE9C,IADA,IAAI+yM,EAAQ,IAAI7zM,MAAM,GACbW,EAAI,EAAGA,EAAI,EAAGA,IACnBkzM,EAAMlzM,GAAK,GAEf,IAAI84C,EAASoP,EAAoC9P,GAAGW,UAAU64J,EAAaU,SAC3E,MAAOx5J,EAAOE,WAAY,CACtB,IAAI47G,EAAK97G,EAAOI,QACZi6J,EAAS,EAETA,EADAv+C,EAAG7qJ,EAAI,IACE,EAEJ6qJ,EAAG7qJ,EAAI,KACH,EAEJ6qJ,EAAG7qJ,EAAI,KACH,EAEJ6qJ,EAAG7qJ,EAAI,IACH,EAEJ6qJ,EAAG7qJ,EAAI,EACH,EAEJ6qJ,EAAG7qJ,EAAI,GACH,EAGA,EAEb,IAAI82I,EAAO,IAAIsxD,EAAgD59C,aAC/D1T,EAAK91H,KAAK6pI,GACVs+C,EAAMC,GAAQhxM,KAAK0+I,EACvB,CACA,IAAS7gJ,EAAI,EAAGA,EAAI,EAAGA,IACnBizM,EAAoBjzM,GAAK8xM,EAAqDpkF,mBAAmB/tH,OAAOuzM,EAAMlzM,IAC9GizM,EAAoBjzM,GAAGgvH,SAE3B4iF,EAAaY,iBAAmBS,CACpC,CACJ,CACA,QAAU,CACd,EAEA,IAAIG,EAAgB,CAAC,GAErB,EAAGjrJ,EAA4CzS,cAAc,eAAgB,CAACk8J,EAAcwB,EAAe,MAGpG,EAED;;;0BAIA,CAAEj3M,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC4e,eAAgB,IAAM,EACtBmlB,MAAO,IAAM,IAEf,IAAIonB,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFnW,EAA4C,sBAAyC,qBACrFqhD,EAAgD,0BAA6C,yBAC7Fy1D,EAA4C,sBAAyC,qBACrFuqD,EAAqD,+BAAkD,8BACvGC,EAA8C,wBAA2C,uBACzFC,EAA4C,sBAAyC,qBACrFC,EAA+C,yBAA4C,wBAC3FC,EAA+C,yBAA4C,wBAC3FC,EAA6C,sBAAyC,qBACtFC,EAA4C,qBAAwC,oBAwBzGh4L,EAAiB,CACjBm9H,KAAM,EACN86D,UAAW,EACXC,UAAW,EACXC,YAAa,EACbC,WAAY,GACZC,cAAe,GACfC,SAAU,GACVz2F,cAAe,IACf02F,YAAa,IACbC,gBAAiB,IACjBC,gBAAiB,KACjBC,OAAQ,KACRC,eAAgB,KAChBC,gBAAiB,KACjBC,iBAAkB,MAClBC,WAAY,MACZC,oBAAqB,MACrBC,iBAAkB,OAClBC,iBAAkB,OAClBC,OAAQ,OACRr6D,OAAQ,QACRs6D,aAAc,QACdC,gBAAiB,QACjBC,iBAAkB,QAClBC,KAAM,SACNC,YAAa,SACbC,kBAAmB,SACnBC,SAAU,UACVC,aAAc,UACdnrD,YAAa,UACborD,WAAY,WACZC,QAAS,GACTC,iBAAkB,KAClBC,QAAS,OACTp2J,SAAU,UACVq2J,MAAO,WASX,SAAS50K,IACLtjC,KAAKm4M,WAAatC,EAAmD7oH,iBAAiB7qF,OAAO,EAAG,GAAI,EAAG,EAAG,EAAG,KAC7GnC,KAAKo4M,YAAc5jK,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG,GACnFnC,KAAKq4M,gBAAkB,GACvBr4M,KAAKs4M,eAAiB,GACtBt4M,KAAKu4M,gBAAkB,QACvBv4M,KAAK8gL,MAAQ,EACb9gL,KAAKw4M,WAAa,EAClBx4M,KAAKy4M,UAAY,EACjBz4M,KAAK04M,YAAc,GACnB14M,KAAK24M,WAAa,GAClB34M,KAAK44M,WAAa,KAClB54M,KAAK64M,eAAiB,KACtB74M,KAAK84M,oBAAsB,KAC3B94M,KAAK+4M,gBAAkB,EACvB/4M,KAAKg5M,WAAa,EACtB,EAtBA,EAAGruJ,EAA4CzS,cAAc,iBAAkB/5B,IAC/E,EAAGwsC,EAA4C4jC,cAAc,iBAAkBpwE,GAuB/EmlB,EAAMnhC,OAAS,SAAUwI,EAAMo0C,EAAKG,EAAK+5J,EAAgBj5F,EAAe11G,EAAM4uM,GAC1E,IAAI3sH,EAAO,IAAIjpD,EAaf,OAZAipD,EAAKxoD,cAAcm1K,GACnB3sH,EAAK+rH,eAAiBt4F,EACtBzzB,EAAKkK,MAAQ9rF,EACA,IAATL,GAAuB,IAATA,EACdiiF,EAAK4rH,WAAWx0K,OAAOub,GAGvBqtC,EAAKroD,QAAQgb,GAEjBqtC,EAAKpoD,QAAQ4a,GACbwtC,EAAK4sH,mBAAmBF,GACxB1sH,EAAKhpD,SAASj5B,GACPiiF,CACX,EAEAjpD,EAAM81K,mBAAqB,SAAUzuM,EAAM0uM,EAAWJ,EAAgBj5F,EAAe11G,EAAMvL,GACvF,IAAIwtF,EAAO,IAAIjpD,EAOf,OANAipD,EAAK+rH,eAAiBt4F,EACtBzzB,EAAKkK,MAAQ9rF,EACb4hF,EAAK4sH,mBAAmBF,GACxB1sH,EAAK4rH,WAAakB,EAClB9sH,EAAKhpD,SAASj5B,GACdiiF,EAAK+sH,WAAWv6M,GACTwtF,CACX,EAEAjpD,EAAMqgF,SAAW,SAAUrkF,GACvB,IAAIi6K,EAAW,IAAIj2K,EAEnB,GADAi2K,EAAS9iH,MAAQn3D,EAAMgkF,WAAWC,aAAa,QAAQC,UACA,MAAnDlkF,EAAMgkF,WAAWC,aAAa,mBAA4E,MAA/CjkF,EAAMgkF,WAAWC,aAAa,eAAiE,MAAxCjkF,EAAMgkF,WAAWC,aAAa,OAIhJ,OAFAg2F,EAASlzF,QAAQ/mF,EAAMgkF,WAAWC,aAAa,OAAOC,WACtD+1F,EAAShzF,iBAAiBjnF,EAAMgkF,WAAWC,aAAa,aAAaC,WAC9D+1F,EAEyC,MAAhDj6K,EAAMgkF,WAAWC,aAAa,iBAC9Bg2F,EAASz4B,MAAQn2H,EAA4C4kG,MAAM5nJ,MAAM,eAAgB23B,EAAMgkF,WAAWC,aAAa,eAAeC,YAE9G,IAAxB+1F,EAASpyF,YACToyF,EAASpB,WAAWx0K,OAAOwmD,WAAW7qD,EAAMgkF,WAAWC,aAAa,MAAMC,YAC1E+1F,EAASpB,WAAWt0K,QAAQsmD,WAAW7qD,EAAMgkF,WAAWC,aAAa,OAAOC,cAG5E+1F,EAASp1K,QAAQgmD,WAAW7qD,EAAMgkF,WAAWC,aAAa,OAAOC,YACjE+1F,EAASr1K,QAAQimD,WAAW7qD,EAAMgkF,WAAWC,aAAa,OAAOC,aAEf,MAAlDlkF,EAAMgkF,WAAWC,aAAa,mBAC9Bg2F,EAASjB,eAAiBh5K,EAAMgkF,WAAWC,aAAa,iBAAiBC,WAEtB,MAAnDlkF,EAAMgkF,WAAWC,aAAa,oBAC9Bg2F,EAAShB,gBAAkB5tJ,EAA4C4kG,MAAM5nJ,MAAM,iBAAkB23B,EAAMgkF,WAAWC,aAAa,kBAAkBC,YAEvG,MAA9ClkF,EAAMgkF,WAAWC,aAAa,eAC9Bg2F,EAASf,WAAaruH,WAAW7qD,EAAMgkF,WAAWC,aAAa,aAAaC,YAE5B,MAAhDlkF,EAAMgkF,WAAWC,aAAa,iBAC9Bg2F,EAASb,YAAcvuH,WAAW7qD,EAAMgkF,WAAWC,aAAa,eAAeC,YAEjC,MAA9ClkF,EAAMgkF,WAAWC,aAAa,cAC9Bg2F,EAASx1K,cAAcomD,WAAW7qD,EAAMgkF,WAAWC,aAAa,aAAaC,YAEhC,MAA7ClkF,EAAMgkF,WAAWC,aAAa,cAC9Bg2F,EAASpB,WAAWtrK,SAAWs9C,WAAW7qD,EAAMgkF,WAAWC,aAAa,YAAYC,YAErC,MAA/ClkF,EAAMgkF,WAAWC,aAAa,gBAC9Bg2F,EAASZ,WAAar5K,EAAMgkF,WAAWC,aAAa,cAAcC,WAExB,MAA1ClkF,EAAMgkF,WAAWC,aAAa,WAC9Bg2F,EAASpB,WAAWrpH,MAAQ3E,WAAW7qD,EAAMgkF,WAAWC,aAAa,SAASC,YAElC,MAA5ClkF,EAAMgkF,WAAWC,aAAa,WAC9Bg2F,EAASpB,WAAW12L,QAAU0oE,WAAW7qD,EAAMgkF,WAAWC,aAAa,WAAWC,WAGlF+1F,EAASpB,WAAW12L,QAAU,IAElC83L,EAASD,WAAW,OAC2B,MAA3Ch6K,EAAMgkF,WAAWC,aAAa,WAC9Bg2F,EAASD,WAAW3uJ,EAA4C4kG,MAAM5nJ,MAAM,qBAAsB23B,EAAMgkF,WAAWC,aAAa,UAAUC,YAE3F,MAA/ClkF,EAAMgkF,WAAWC,aAAa,gBAC9Bg2F,EAASpB,WAAWnpH,WAAax6C,EAA0CwE,SAASrxC,MAAM23B,EAAMgkF,WAAWC,aAAa,cAAcC,YAE7E,MAAzDlkF,EAAMgkF,WAAWC,aAAa,0BAC9Bg2F,EAASpB,WAAWjpH,qBAAuB5vD,EAAMgkF,WAAWC,aAAa,wBAAwBC,WAErG,IAAIg2F,EAAkBluD,EAA0C5oG,KAAKuoC,iBAAiB3rD,EAAO,eACtE,MAAnBk6K,IACAD,EAASlB,gBAAkB/sD,EAA0C5oG,KAAK4oC,aAAakuH,IAE3F,IAAIC,EAAqBnuD,EAA0C5oG,KAAKuoC,iBAAiB3rD,EAAO,sBAChG,GAA0B,MAAtBm6K,EAA4B,CAC5B,IAAIC,EAAWpuD,EAA0C5oG,KAAKuoC,iBAAiBwuH,EAAoB,YACnGF,EAAST,oBAAsB5C,EAA2CtyF,SAASC,YAAY61F,EACnG,CACA,IAAIC,EAAQruD,EAA0C5oG,KAAKuoC,iBAAiB3rD,EAAO,sBACnF,GAAa,MAATq6K,EAAe,CACXD,EAAWpuD,EAA0C5oG,KAAKuoC,iBAAiB0uH,EAAO,YACtFJ,EAASV,eAAiB3C,EAA2CtyF,SAASC,YAAY61F,EAC9F,CAKA,OAJAC,EAAQruD,EAA0C5oG,KAAKuoC,iBAAiB3rD,EAAO,YAClE,MAATq6K,IACAJ,EAASV,eAAiB3C,EAA2CtyF,SAASC,YAAY81F,IAEvFJ,CACX,EAEAj2K,EAAMs2K,YAAc,SAAUjvM,GAC1B,IAAIxB,EAAOwB,EAAKw+E,MAAM,KAClB0wH,EAAa,GACbv+J,EAASoP,EAAoC9P,GAAGW,UAAUpyC,GAC9D,MAAOmyC,EAAOE,WAAY,CACtB,IAAIogE,EAAOtgE,EAAOI,QAClBm+J,EAAaA,EAAaj+F,EAAK/vB,OAAO,EAAG,GAAGE,eAAkB6vB,EAAKj5G,OAAS,EAAKi5G,EAAK/vB,OAAO,GAAGt9E,cAAgB,IAAM,GAC1H,CACA,OAAOm8C,EAAoC9P,GAAG+gD,KAAKk+G,EACvD,EAEA,IAAIC,EAAS,CACThtL,QAAS,WACL,OAAO9sB,KAAKi3C,IAChB,EAEAjqB,QAAS,SAAUpsB,GAEf,OADAZ,KAAKi3C,KAAOr2C,EACLA,CACX,EAEA+mC,QAAS,WACL,OAAO3nC,KAAK+3F,IAChB,EAEAsuB,QAAS,SAAUzlH,GAEf,OADAZ,KAAK+3F,KAAOn3F,EACLA,CACX,EAEAwjH,cAAe,WACX,OAAOpkH,KAAK+gH,UAChB,EAEAsD,cAAe,SAAUzjH,GAErB,OADAZ,KAAK+gH,WAAangH,EACXA,CACX,EAEA0gB,SAAU,WACN,OAAOthB,KAAK+5M,YAAY,EAC5B,EAEAA,UAAW,WACP,OAAIrvJ,EAAoC9P,GAAGC,YAAY76C,KAAKy2F,OACjD,GAAGtN,MAAM,KAEbnpF,KAAKy2F,MAAMtN,MAAM,IAC5B,EAEA6wH,UAAW,SAAUp5M,GAEjB,OADAZ,KAAKy2F,MAAQs/G,EAA0C1vD,QAAQ4zD,wBAAwBr5M,GAChFA,CACX,EAEAs5M,cAAe,WACX,GAAkC,YAA9Bl6M,KAAKm6M,sBAAiE,KAA3Bn6M,KAAKm4M,WAAWp5M,OAAe,CAC1E,IAAIgwF,EAAQonH,EAA0Cl4D,QAAQm8D,kBAAkBp6M,KAAKshB,YACrFthB,KAAKm4M,WAAWx0K,OAAOorD,EAAM33C,IAC7Bp3C,KAAKm4M,WAAWt0K,QAAQkrD,EAAM9jD,KAC9BjrC,KAAKy4M,UAAY1pH,EAAMzxC,QAC3B,CACA,OAAOt9C,KAAKm4M,UAChB,EAEAkC,cAAe,SAAUz5M,GAErB,OADAZ,KAAKm4M,WAAav3M,EACXA,CACX,EAEA05M,qBAAsB,SAAU94J,GAC5BxhD,KAAKm4M,WAAWnpH,WAAamnH,EAA0Cl4D,QAAQs8D,sBAAsBv6M,KAAKw6M,aAAch5J,GAC9F,QAAtBxhD,KAAKw6M,cAAgD,KAAtBx6M,KAAKw6M,eACpCx6M,KAAKm4M,WAAWnpH,WAAamnH,EAA0Cl4D,QAAQw8D,qBAAqBz6M,KAAKw6M,aAAcx6M,KAAK++F,UAAW/+F,KAAK6+F,UAAWr9C,GAE/J,EAEAk5J,eAAgB,WAIZ,OAHkC,YAA9B16M,KAAKm6M,uBAAwCn6M,KAAKo4M,YAAYrtK,GAAM/qC,KAAKo4M,YAAYp0M,GAAMhE,KAAKo4M,YAAY5hK,KAC5Gx2C,KAAKo4M,YAAcnC,EAA6Cz9J,YAAYC,UAAUz4C,KAAKowF,SAAUpwF,KAAKqwF,YAEvGrwF,KAAKo4M,WAChB,EAEAr5G,QAAS,WACL,OAAO/+F,KAAKk6M,gBAAgBn7J,GAChC,EAEA5a,QAAS,SAAUvjC,GAEf,OADAZ,KAAKm4M,WAAWp5J,IAAMn+C,EACfA,CACX,EAEAi+F,QAAS,WACL,OAAO7+F,KAAKk6M,gBAAgBh7J,GAChC,EAEAhb,QAAS,SAAUtjC,GAEf,OADAZ,KAAKm4M,WAAWj5J,IAAMt+C,EACfA,CACX,EAEA4gB,YAAa,WACT,OAAOxhB,KAAKk6M,gBAAgBz4L,OAChC,EAEAC,YAAa,SAAU9gB,GAEnB,OADAZ,KAAKm4M,WAAW12L,QAAU7gB,EACnBA,CACX,EAEA04F,kBAAmB,WACf,OAAOt5F,KAAKs4M,cAChB,EAEAqC,kBAAmB,SAAU/5M,GAEzB,OADAZ,KAAKs4M,eAAiB13M,EACfA,CACX,EAEAu5M,mBAAoB,WAChB,OAAOn6M,KAAKu4M,eAChB,EAEAY,mBAAoB,SAAUv4M,GAE1B,OADAZ,KAAKu4M,gBAAkB33M,EAChBA,CACX,EAEAumH,SAAU,WACN,OAAOnnH,KAAK8gL,KAChB,EAEAv9I,SAAU,SAAU3iC,GAEhB,OADAZ,KAAK8gL,MAAQlgL,EACNA,CACX,EAEAg6M,cAAe,WACX,OAAO56M,KAAKw4M,UAChB,EAEAqC,cAAe,SAAUj6M,GAErB,OADAZ,KAAKw4M,WAAa53M,EACXA,CACX,EAEAk6M,aAAc,WACV,OAAO96M,KAAKy4M,SAChB,EAEAsC,aAAc,SAAUn6M,GAEpB,OADAZ,KAAKy4M,UAAY73M,EACVA,CACX,EAEAo6M,cAAe,WACX,OAAOh7M,KAAKk6M,gBAAgBx9K,IAChC,EAEAqH,cAAe,SAAUnjC,GAErB,OADAZ,KAAKm4M,WAAWz7K,KAAO97B,EAChBA,CACX,EAEAq6M,eAAgB,WACZ,OAAOj7M,KAAK24M,UAChB,EAEAuC,eAAgB,SAAUt6M,GAEtB,OADAZ,KAAK24M,WAAa/3M,EACXA,CACX,EAEA64F,kBAAmB,WACf,OAAOz5F,KAAK64M,cAChB,EAEAp1K,kBAAmB,SAAU7iC,GAEzB,OADAZ,KAAK64M,eAAiBj4M,EACfA,CACX,EAEAmsC,uBAAwB,WACpB,OAAO/sC,KAAK84M,mBAChB,EAEAt1K,uBAAwB,SAAU5iC,GAK9B,OAJa,MAATA,GACAZ,KAAKujC,SAAS3iC,EAAMqiC,mBAExBjjC,KAAK84M,oBAAsBl4M,EACpBA,CACX,EAEAu6M,mBAAoB,WAChB,OAAOn7M,KAAK+4M,eAChB,EAEAqC,mBAAoB,SAAUx6M,GAE1B,OADAZ,KAAK+4M,gBAAkBn4M,EAChBA,CACX,EAEAy6M,cAAe,WACX,OAAOr7M,KAAKg5M,UAChB,EAEAsC,cAAe,SAAU16M,GAErB,OADAZ,KAAKg5M,WAAap4M,EACXA,CACX,EAEA0lH,iBAAkB,WACd,GAAI57D,EAAoC9P,GAAGC,YAAY76C,KAAKu7M,iBAAkB,CAC1E,GAA2B,MAAvBv7M,KAAK64M,iBAA2BnuJ,EAAoC9P,GAAGC,YAAY76C,KAAK64M,eAAevyF,oBACvG,OAAOtmH,KAAK64M,eAAevyF,mBAE/B,GAAgC,MAA5BtmH,KAAK84M,sBAAgCpuJ,EAAoC9P,GAAGC,YAAY76C,KAAK84M,oBAAoBxyF,oBACjH,OAAOtmH,KAAK84M,oBAAoBxyF,mBAEpC,IAAI37G,EAAO3K,KAAKshB,WAIhB,OAHI3W,EAAKsO,QAAQ,MAAQ,IACrBtO,EAAOA,EAAKkhF,OAAO,EAAGlhF,EAAKsO,QAAQ,OAEL,IAA9BjZ,KAAKm6M,sBAA8BtkH,EAA8Ct5D,iBAC1Ey5K,EAA6Cp8G,WAAW18D,UAAUi9D,eAAe,kBAErF67G,EAA6Cp8G,WAAW18D,UAAU28D,cAAc,8BAAgClvF,EAAK4D,cAChI,CACA,OAAOvO,KAAKu7M,eAChB,EAEAh1F,iBAAkB,SAAU3lH,GAExB,OADAZ,KAAKu7M,gBAAkB36M,EAChBA,CACX,EAEAwvF,OAAQ,WACJ,OAAOpwF,KAAKk6M,gBAAgB9pH,QAChC,EAEAzsD,OAAQ,SAAU/iC,GAEd,OADAZ,KAAKm4M,WAAWx0K,OAAO/iC,GAChBA,CACX,EAEAyvF,QAAS,WACL,OAAOrwF,KAAKk6M,gBAAgB7pH,SAChC,EAEAxsD,QAAS,SAAUjjC,GAEf,OADAZ,KAAKm4M,WAAWt0K,QAAQjjC,GACjBA,CACX,EAEA8I,SAAU,WACN,OAAO1J,KAAKy2F,KAChB,EAEA+kH,WAAY,SAAUzqD,EAAW0qD,GAC7B1qD,EAAUE,mBAAmBwqD,GAC7B1qD,EAAUG,sBAAsB,OAAQlxJ,KAAKy2F,OAC7Cs6D,EAAUG,sBAAsB,cAAevmG,EAA4C4kG,MAAM6B,MAAM,eAAgBpxJ,KAAK8gL,QACpG,IAApB9gL,KAAKmnH,YACL4pC,EAAUG,sBAAsB,KAAMlxJ,KAAKm4M,WAAW/nH,SAAS1mF,YAC/DqnJ,EAAUG,sBAAsB,MAAOlxJ,KAAKm4M,WAAW9nH,UAAU3mF,cAEjEqnJ,EAAUG,sBAAsB,MAAOlxJ,KAAK++F,UAAUr1F,YACtDqnJ,EAAUG,sBAAsB,MAAOlxJ,KAAK6+F,UAAUn1F,aAE1DqnJ,EAAUG,sBAAsB,gBAAiBlxJ,KAAKs4M,gBACtDvnD,EAAUG,sBAAsB,iBAAkBvmG,EAA4C4kG,MAAM6B,MAAM,iBAAkBpxJ,KAAKu4M,kBACjIxnD,EAAUG,sBAAsB,YAAalxJ,KAAKw4M,WAAW9uM,YAC7DqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAKy4M,UAAU/uM,YAC3DqnJ,EAAUG,sBAAsB,cAAelxJ,KAAK04M,YAAYhvM,YAChEqnJ,EAAUG,sBAAsB,YAAalxJ,KAAKg7M,gBAAgBtxM,YAClEqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAKm4M,WAAWtrK,SAASnjC,YACrEqnJ,EAAUG,sBAAsB,QAASlxJ,KAAKm4M,WAAWrpH,MAAMplF,YAC/DqnJ,EAAUG,sBAAsB,UAAWlxJ,KAAKm4M,WAAW12L,QAAQ/X,YACnEqnJ,EAAUG,sBAAsB,SAAUvmG,EAA4C4kG,MAAM6B,MAAM,qBAAsBpxJ,KAAKw6M,eAC7HzpD,EAAUG,sBAAsB,aAAclxJ,KAAKm4M,WAAWnpH,WAAWtlF,YACzEqnJ,EAAUG,sBAAsB,uBAAwBlxJ,KAAKm4M,WAAWjpH,sBACxE6hE,EAAUE,mBAAmB,eAC7BF,EAAU2qD,YAAY17M,KAAKq4M,iBAC3BtnD,EAAUgB,mBACsB,MAA5B/xJ,KAAK84M,sBACL/nD,EAAUE,mBAAmB,sBAC7BilD,EAA2CtyF,SAASktC,UAAUC,EAAW/wJ,KAAK84M,oBAAqB,IACnG/nD,EAAUgB,oBAEa,MAAvB/xJ,KAAK64M,gBACL3C,EAA2CtyF,SAASktC,UAAUC,EAAW/wJ,KAAK64M,eAAgB,IAElG9nD,EAAUgB,kBACd,EAEAztC,WAAY,WACR,OAAOtkH,KAAKukH,OAChB,EAEAC,WAAY,SAAU5jH,GAElB,OADAZ,KAAKukH,QAAU3jH,EACRA,CACX,EAEA6jH,YAAa,WACT,OAA8B,MAAvBzkH,KAAK64M,gBAAsD,MAA5B74M,KAAK84M,mBAC/C,EAEAp0F,WAAY,WACR,OAAO,CACX,EAEAC,aAAc,WACV,OAAO,CACX,EAEAI,aAAc,WACV,MAAO,EACX,EAEAxC,aAAc,WACV,OAAO,CACX,EAEAi4F,WAAY,WACR,OAAOx6M,KAAKm4M,WAAWp5M,MAC3B,EAEAu6M,WAAY,SAAU14M,GAElB,OADAZ,KAAKm4M,WAAWp5M,OAAS6B,EAClBA,CACX,EAEAgkH,yBAA0B,WACtB,OAAO,CACX,IAGJ,EAAGj6D,EAA4CzS,cAAc,QAAS,CAAC5U,EAAOw2K,EAAQ,KAAMhE,EAA4CvuF,WAAYuuF,EAA4Cr/C,UAEhM,EAAG5gE,EAA8CiO,iBAAiBxgE,EAAMnhC,OAGjE,EAED;;;4BAIA,CAAExD,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCo8M,WAAY,IAAM,EAClBC,kBAAmB,IAAM,EACzB39D,QAAS,IAAM,IAEjB,IAAIvzF,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFnW,EAA4C,sBAAyC,qBACrFqnK,EAAmD,6BAAgD,4BACnGC,EAAqD,+BAAkD,8BACvGC,EAAmD,6BAAgD,4BACnGC,EAAkD,4BAA+C,2BACjGC,EAAqD,+BAAkD,8BACvGC,EAAoD,8BAAiD,6BACrGC,EAAoD,8BAAiD,6BACrGC,EAAsD,+BAAkD,8BACxGC,EAAoD,6BAAgD,4BACpGC,EAA6D,sCAAyD,qCACtHC,EAAmD,4BAA+C,2BAClGC,EAA8C,uBAA0C,sBACxFC,EAAqD,8BAAiD,6BACtGC,EAAsD,+BAAkD,8BACxGC,EAAgD,yBAA4C,wBAC5FC,EAAsD,+BAAkD,8BACxGC,EAA0C,mBAAsC,kBAChFC,EAAgD,yBAA4C,wBAC5FC,EAA6C,sBAAyC,qBACtFC,EAA0D,mCAAsD,kCAChHC,EAAgD,yBAA4C,wBAuCrH,SAASrB,IACL57M,KAAKuM,EAAI,EACTvM,KAAKE,EAAI,EACTF,KAAKk9M,GAAK,CACd,CAEA,IAAIC,EAAqB,CAAC,EAO1B,SAASxB,EAAWyB,EAAQC,EAASC,EAAeC,GAChDv9M,KAAKq9M,QAAU,EACfr9M,KAAKo9M,OAAS,EACdp9M,KAAKs9M,cAAgB,EACrBt9M,KAAKu9M,aAAe,EACpBv9M,KAAKq9M,QAAUA,EACfr9M,KAAKo9M,OAASA,EACdp9M,KAAKs9M,cAAgBA,EACrBt9M,KAAKu9M,aAAeA,CACxB,EAdA,EAAG5yJ,EAA4CzS,cAAc,oBAAqB,CAAC0jK,EAAmBuB,EAAoB,OAgB1H,IAAIK,EAAc,CAAC,EAOnB,SAASv/D,IAAY,EALrB,EAAGtzF,EAA4CzS,cAAc,aAAc,CAACyjK,EAAY6B,EAAa,OAOrGv/D,EAAQ5mD,GAAM/xF,KAAK8Z,GAAK,IACxB6+H,EAAQw/D,MAAQ,EAQhBx/D,EAAQy/D,cAAgB,CACpB,IAAI/B,EAAW,OAAQ,MAAO,OAAQ,SACtC,IAAIA,EAAW,SAAU,QAAS,QAAS,WAC3C,IAAIA,EAAW,OAAQ,MAAO,OAAQ,WACtC,IAAIA,EAAW,UAAW,QAAS,OAAQ,cAC3C,IAAIA,EAAW,WAAY,UAAW,OAAQ,SAC9C,IAAIA,EAAW,OAAQ,OAAQ,KAAM,aACrC,IAAIA,EAAW,SAAU,OAAQ,OAAQ,aACzC,IAAIA,EAAW,OAAQ,MAAO,OAAQ,aACtC,IAAIA,EAAW,SAAU,MAAO,QAAS,YACzC,IAAIA,EAAW,SAAU,QAAS,QAAS,aAC3C,IAAIA,EAAW,OAAQ,KAAM,OAAQ,aACrC,IAAIA,EAAW,OAAQ,MAAO,OAAQ,aACtC,IAAIA,EAAW,MAAO,MAAO,OAAQ,YACrC,IAAIA,EAAW,OAAQ,MAAO,OAAQ,YACtC,IAAIA,EAAW,EAAG,EAAG,EAAG,GACxB,IAAIA,EAAW,EAAG,EAAG,EAAG,GACxB,IAAIA,EAAW,EAAG,EAAG,EAAG,GACxB,IAAIA,EAAW,EAAG,EAAG,EAAG,GACxB,IAAIA,EAAW,EAAG,EAAG,EAAG,GACxB,IAAIA,EAAW,EAAG,GAAI,QAAS,cAEnC19D,EAAQ0/D,qBAAuB,EAC/B1/D,EAAQ2/D,mBAAqB,IAC7B3/D,EAAQ4/D,WAAa,KAAO5/D,EAAQ5mD,GACpC4mD,EAAQ6/D,WAAa,CAAC,EACtB7/D,EAAQ8/D,YAAc,IAAIvpK,EAA0CqwD,SACpEo5C,EAAQ+/D,eAAiB,IAAIxpK,EAA0CqwD,SACvEo5C,EAAQh9B,YAAc,IAAIx6G,KAC1Bw3I,EAAQggE,cAAgB,IAAIvB,EAAoDn5E,SAChF0a,EAAQigE,cAAgB,KACxBjgE,EAAQkgE,mBAAqB,KAK7BlgE,EAAQmgE,kBAAoB,SAAU1zM,GAClC,IAAIuxG,EAAU,IAAIwgG,EAAmDpjF,QAErE,OADApd,EAAQ5jE,KAAK3tC,GACNuxG,CACX,EAEAgiC,EAAQogE,oBAAsB,SAAUt/M,GACpC,IACI,GAAIA,EAAS,GACT,OAAOk/I,EAAQkgE,mBAAmBp/M,GAAQkqF,MAElD,CACA,MAAOsL,GAAO,CACd,OAAO//C,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG,EAC3E,EAEA87I,EAAQqgE,0BAA4B,SAAUv/M,GAC1C,IACI,GAAIA,EAAS,GACT,OAAOk/I,EAAQsgE,wBAAwBx/M,EAE/C,CACA,MAAOw1F,GAAO,CACd,OAAO,CACX,EAEA0pD,EAAQw8D,qBAAuB,SAAU17M,EAAQggD,EAAKG,EAAKsC,GACvD,IAAI+qC,EAQJ,OAHIA,EAJC/qC,EAIMy8F,EAAQs8D,sBAAsBx7M,EAAQyiD,GAHtCy8F,EAAQogE,oBAAoBt/M,GAKvCwtF,EAAK5yE,IAAImjM,EAA8CtkK,YAAYwgD,YAAa95C,EAAM,GAAM,EAAGH,EAAKk/F,EAAQqgE,0BAA0Bv/M,KAC/HwtF,CACX,EAEA0xD,EAAQs8D,sBAAwB,SAAUx7M,EAAQyiD,GAC9C,IACI,IAAI99C,EAAS,IAAI8wC,EAA0CwE,SACvDwlK,EAAchC,EAA4CzgK,UAAUiC,UAAUwD,EAAM,EAAG,EAAG,GAAI,SAC9FlK,EAASwlK,EAA8CtkK,YAAYwgD,YAAYwlH,EAAYpnK,GAAIonK,EAAYvzK,IAAKuzK,EAAYlhK,UAChI,GAAIv+C,IAAW69M,EAAoDz9L,mBAAmB6kB,MAClFtgC,EAAS8wC,EAA0CwE,SAAS72C,QAAQm1C,EAAOvM,GAAIuM,EAAOtzC,GAAIszC,EAAOd,OAC9F,CACH,IAAIvS,EAASu4K,EAA4CzgK,UAAUiC,UAAUwD,EAAMziD,EAAQ,EAAG,GAAI,SAClG2E,EAASo5M,EAA8CtkK,YAAYwgD,YAAY/0D,EAAOmT,GAAInT,EAAOgH,IAAKhH,EAAOqZ,UAC7G55C,EAAOqlG,SAASzxD,EACpB,CAEA,GADA5zC,EAAO0lG,QAAQ0zG,EAA8CtkK,YAAY6nB,wBAAwB7e,GAAQy8F,EAAQ5mD,IACjB,IAA5F0lH,EAA2CnkH,SAASC,aAAar/D,uBACjE,OAAQz6B,GACJ,KAAK69M,EAAoDz9L,mBAAmByuE,KACxE,IAAI1C,EAAS+yD,EAAQs8D,sBAAsBqC,EAAoDz9L,mBAAmB6kB,MAAOwd,GACzH99C,EAAOqlG,SAAS7d,GAChBxnF,EAAO2kG,SAAS00G,EAA2CnkH,SAASC,aAAar/D,uBAAyB,GAC1G91B,EAAOiW,IAAIuxE,GACX,MACJ,KAAK0xH,EAAoDz9L,mBAAmB0uE,GAC5E,KAAK+uH,EAAoDz9L,mBAAmB2uE,OAC5E,KAAK8uH,EAAoDz9L,mBAAmB4uE,SAC5E,KAAK6uH,EAAoDz9L,mBAAmB6uE,SACpE9C,EAAS+yD,EAAQs8D,sBAAsBqC,EAAoDz9L,mBAAmBouE,QAAS/rC,GAC3H99C,EAAOqlG,SAAS7d,GAChBxnF,EAAO2kG,SAAS00G,EAA2CnkH,SAASC,aAAar/D,wBACjF91B,EAAOiW,IAAIuxE,GACX,MACJ,QACI,MAGZ,OAAOxnF,CACX,CACA,MAAO6wF,GACH,OAAO//C,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG,EAC3E,CACJ,EAEA87I,EAAQm8D,kBAAoB,SAAUzvM,GAClC,IAAI1D,EAAKg3I,EAAQwgE,oBAAoB9zM,GACrC,OAAgC,MAA5BszI,EAAQygE,iBACDzgE,EAAQygE,iBAAiBz3M,GAGzBu1M,EAA4CzgK,UAAUiC,UAAUg/J,EAAwD1/K,oBAAoBu9G,WAAY5zI,EAAI+1M,EAAwD1/K,oBAAoByhH,eAAehgD,UAAWi+G,EAAwD1/K,oBAAoByhH,eAAelgD,UAAWm+G,EAAwD1/K,oBAAoBihK,eAEnc,EAEAtgD,EAAQC,oBAAsB,SAAUvzI,EAAM62C,GAC1C,IAAIv6C,EAAKg3I,EAAQwgE,oBAAoB9zM,GACrC,OAAO6xM,EAA4CzgK,UAAUiC,UAAUwD,EAAMv6C,EAAI+1M,EAAwD1/K,oBAAoByhH,eAAehgD,UAAWi+G,EAAwD1/K,oBAAoByhH,eAAelgD,UAAWm+G,EAAwD1/K,oBAAoBihK,eAC7W,EAEAtgD,EAAQwgE,oBAAsB,SAAUE,GACpC,OAAQA,GACJ,IAAK,MACD,OAAO/B,EAAoDz9L,mBAAmBguE,IAClF,IAAK,UACD,OAAOyvH,EAAoDz9L,mBAAmBiuE,QAClF,IAAK,QACD,OAAOwvH,EAAoDz9L,mBAAmBkuE,MAClF,IAAK,OACD,OAAOuvH,EAAoDz9L,mBAAmBmuE,KAClF,IAAK,UACD,OAAOsvH,EAAoDz9L,mBAAmBouE,QAClF,IAAK,SACD,OAAOqvH,EAAoDz9L,mBAAmBquE,OAClF,IAAK,SACD,OAAOovH,EAAoDz9L,mBAAmBsuE,OAClF,IAAK,UACD,OAAOmvH,EAAoDz9L,mBAAmBuuE,QAClF,IAAK,QACD,OAAOkvH,EAAoDz9L,mBAAmBwuE,MAClF,IAAK,OACD,OAAOivH,EAAoDz9L,mBAAmByuE,KAClF,IAAK,KACD,OAAOgvH,EAAoDz9L,mBAAmB0uE,GAClF,IAAK,SACD,OAAO+uH,EAAoDz9L,mBAAmB2uE,OAClF,IAAK,WACD,OAAO8uH,EAAoDz9L,mBAAmB4uE,SAClF,IAAK,WACD,OAAO6uH,EAAoDz9L,mBAAmB6uE,SAClF,IAAK,QACD,OAAO4uH,EAAoDz9L,mBAAmB6kB,MAClF,IAAK,WACD,OAAO44K,EAAoDz9L,mBAAmB8uE,SAClF,IAAK,eACD,OAAO2uH,EAAoDz9L,mBAAmB+uE,aAClF,IAAK,iBACD,OAAO0uH,EAAoDz9L,mBAAmBgvE,eAClF,IAAK,iBACD,OAAOyuH,EAAoDz9L,mBAAmBivE,eAClF,IAAK,cACD,OAAOwuH,EAAoDz9L,mBAAmBkvE,YAClF,IAAK,SACD,OAAOuuH,EAAoDz9L,mBAAmBmvE,OAClF,IAAK,YACD,OAAOsuH,EAAoDz9L,mBAAmB7f,UAClF,QACI,OAAQ,EAEpB,EAEA2+I,EAAQ2gE,gBAAkB,SAAU33M,GAChC,OAAQA,GACJ,KAAK21M,EAAoDz9L,mBAAmBguE,IACxE,MAAO,MACX,KAAKyvH,EAAoDz9L,mBAAmBiuE,QACxE,MAAO,UACX,KAAKwvH,EAAoDz9L,mBAAmBkuE,MACxE,MAAO,QACX,KAAKuvH,EAAoDz9L,mBAAmBmuE,KACxE,MAAO,OACX,KAAKsvH,EAAoDz9L,mBAAmBouE,QACxE,MAAO,UACX,KAAKqvH,EAAoDz9L,mBAAmBquE,OACxE,MAAO,SACX,KAAKovH,EAAoDz9L,mBAAmBsuE,OACxE,MAAO,SACX,KAAKmvH,EAAoDz9L,mBAAmBuuE,QACxE,MAAO,UACX,KAAKkvH,EAAoDz9L,mBAAmBwuE,MACxE,MAAO,QACX,KAAKivH,EAAoDz9L,mBAAmByuE,KACxE,MAAO,OACX,KAAKgvH,EAAoDz9L,mBAAmB0uE,GACxE,MAAO,KACX,KAAK+uH,EAAoDz9L,mBAAmB2uE,OACxE,MAAO,SACX,KAAK8uH,EAAoDz9L,mBAAmB4uE,SACxE,MAAO,WACX,KAAK6uH,EAAoDz9L,mBAAmB6uE,SACxE,MAAO,WACX,KAAK4uH,EAAoDz9L,mBAAmB6kB,MACxE,MAAO,QACX,QACI,MAAO,GAEnB,EAEAi6G,EAAQ4gE,sBAAwB,SAAUC,GA4BtC,GA3BA7gE,EAAQw/D,MAAQT,EAAwD1/K,oBAAoBu9G,WACxFikE,GACA7gE,EAAQ8gE,aAAa,GAEO,MAA5B9gE,EAAQ+gE,mBACR/gE,EAAQ+gE,iBAAmB,IAAIn9M,MAAM,IACrCo8I,EAAQ+gE,iBAAiB,GAAK,WAC9B/gE,EAAQ+gE,iBAAiB,GAAK,oBAC9B/gE,EAAQ+gE,iBAAiB,GAAK,oBAC9B/gE,EAAQ+gE,iBAAiB,GAAK,oBAC9B/gE,EAAQ+gE,iBAAiB,GAAK,UAC9B/gE,EAAQ+gE,iBAAiB,GAAK,UAC9B/gE,EAAQ+gE,iBAAiB,GAAK,UAC9B/gE,EAAQ+gE,iBAAiB,GAAK,UAC9B/gE,EAAQ+gE,iBAAiB,GAAK,oBAC9B/gE,EAAQ+gE,iBAAiB,GAAK,oBAC9B/gE,EAAQ+gE,iBAAiB,IAAM,oBAC/B/gE,EAAQ+gE,iBAAiB,IAAM,oBAC/B/gE,EAAQ+gE,iBAAiB,IAAM,oBAC/B/gE,EAAQ+gE,iBAAiB,IAAM,oBAC/B/gE,EAAQ+gE,iBAAiB,IAAM,oBAC/B/gE,EAAQ+gE,iBAAiB,IAAM,oBAC/B/gE,EAAQ+gE,iBAAiB,IAAM,oBAC/B/gE,EAAQ+gE,iBAAiB,IAAM,oBAC/B/gE,EAAQ+gE,iBAAiB,IAAM,WAC/B/gE,EAAQ+gE,iBAAiBpC,EAAoDz9L,mBAAmB6kB,OAAS,qBAEjF,MAAxBi6G,EAAQghE,aAAsB,CAC9B,IAAIC,EAAcrC,EAAwCzkK,MAAMq4C,SAAS,IAAK,IAAK,IAAK,KACpF0uH,EAAYtC,EAAwCzkK,MAAMq4C,SAAS,IAAK,IAAK,GAAI,GACrFwtD,EAAQghE,aAAe,IAAIp9M,MAAM,IACjCo8I,EAAQghE,aAAa,GAAKpC,EAAwChlK,OAAOk6C,aACzEksD,EAAQghE,aAAa,GAAKpC,EAAwChlK,OAAOC,YACzEmmG,EAAQghE,aAAa,GAAKC,EAC1BjhE,EAAQghE,aAAa,GAAKE,EAC1BlhE,EAAQghE,aAAa,GAAKpC,EAAwCzkK,MAAMq4C,SAAS,IAAK,IAAK,IAAK,GAChGwtD,EAAQghE,aAAa,GAAKpC,EAAwCzkK,MAAMq4C,SAAS,IAAK,IAAK,IAAK,IAChGwtD,EAAQghE,aAAa,GAAKpC,EAAwCzkK,MAAMq4C,SAAS,IAAK,IAAK,IAAK,KAChGwtD,EAAQghE,aAAa,GAAKpC,EAAwChlK,OAAOs5C,WACzE8sD,EAAQghE,aAAa,GAAKpC,EAAwChlK,OAAOC,YACzEmmG,EAAQghE,aAAa,GAAKpC,EAAwChlK,OAAOC,YACzEmmG,EAAQghE,aAAa,IAAMpC,EAAwChlK,OAAOC,YAC1EmmG,EAAQghE,aAAa,IAAMpC,EAAwChlK,OAAOC,YAC1EmmG,EAAQghE,aAAa,IAAMpC,EAAwChlK,OAAOC,YAC1EmmG,EAAQghE,aAAa,IAAMpC,EAAwChlK,OAAOC,YAC1EmmG,EAAQghE,aAAa,IAAMpC,EAAwChlK,OAAOq5C,YAC1E+sD,EAAQghE,aAAa,IAAMpC,EAAwChlK,OAAOq5C,YAC1E+sD,EAAQghE,aAAa,IAAMpC,EAAwChlK,OAAOq5C,YAC1E+sD,EAAQghE,aAAa,IAAMpC,EAAwChlK,OAAOq5C,YAC1E+sD,EAAQghE,aAAa,IAAMpC,EAAwChlK,OAAOC,YAC1EmmG,EAAQghE,aAAarC,EAAoDz9L,mBAAmB6kB,OAAS64K,EAAwCzkK,MAAMq4C,SAAS,IAAK,IAAK,IAAK,IAC/K,CAsDA,GArD4B,MAAxBwtD,EAAQmhE,eACRnhE,EAAQmhE,aAAe,IAAIv9M,MAAM,IACjCo8I,EAAQmhE,aAAa,GAAK,EAC1BnhE,EAAQmhE,aAAa,GAAK,IAC1BnhE,EAAQmhE,aAAa,GAAK,MAC1BnhE,EAAQmhE,aAAa,GAAK,MAC1BnhE,EAAQmhE,aAAa,GAAK,KAC1BnhE,EAAQmhE,aAAa,GAAK,MAC1BnhE,EAAQmhE,aAAa,GAAK,MAC1BnhE,EAAQmhE,aAAa,GAAK,MAC1BnhE,EAAQmhE,aAAa,GAAK,OAC1BnhE,EAAQmhE,aAAa,GAAK,OAC1BnhE,EAAQmhE,aAAa,IAAM,KAC3BnhE,EAAQmhE,aAAa,IAAM,EAC3BnhE,EAAQmhE,aAAa,KAAO,IAC5BnhE,EAAQmhE,aAAa,IAAM,EAC3BnhE,EAAQmhE,aAAa,IAAM,EAC3BnhE,EAAQmhE,aAAa,IAAM,EAC3BnhE,EAAQmhE,aAAa,IAAM,EAC3BnhE,EAAQmhE,aAAa,IAAM,EAC3BnhE,EAAQmhE,aAAa,IAAM,EAC3BnhE,EAAQmhE,aAAaxC,EAAoDz9L,mBAAmB6kB,OAAS,MAEzGi6G,EAAQmhE,aAAaxC,EAAoDz9L,mBAAmB6kB,OAASi6G,EAAQ4/D,WAAa5/D,EAAQ5mD,GAC9F,MAAhC4mD,EAAQohE,uBACRphE,EAAQohE,qBAAuB,IAAIx9M,MAAM,IACzCo8I,EAAQohE,qBAAqB,GAAK,SAClCphE,EAAQohE,qBAAqB,GAAK,QAClCphE,EAAQohE,qBAAqB,IAAM,SACnCphE,EAAQohE,qBAAqB,GAAK,WAClCphE,EAAQohE,qBAAqB,GAAK,OAClCphE,EAAQohE,qBAAqB,GAAK,KAClCphE,EAAQohE,qBAAqB,IAAM,OACnCphE,EAAQohE,qBAAqB,GAAK,OAClCphE,EAAQohE,qBAAqB,IAAM,QACnCphE,EAAQohE,qBAAqB,GAAK,KAClCphE,EAAQohE,qBAAqB,IAAM,YACnCphE,EAAQohE,qBAAqB,IAAM,MACnCphE,EAAQohE,qBAAqB,IAAM,MACnCphE,EAAQohE,qBAAqB,IAAM,MACnCphE,EAAQohE,qBAAqB,IAAM,EACnCphE,EAAQohE,qBAAqB,IAAM,EACnCphE,EAAQohE,qBAAqB,IAAM,EACnCphE,EAAQohE,qBAAqB,IAAM,EACnCphE,EAAQohE,qBAAqB,IAAM,EACnCphE,EAAQohE,qBAAqBzC,EAAoDz9L,mBAAmB6kB,OAAS,WAEpF,MAAzBi6G,EAAQqhE,gBACRrhE,EAAQqhE,cAAgB,IAAIz9M,MAAM,KAEJ,MAA9Bo8I,EAAQkgE,qBACRlgE,EAAQkgE,mBAAqB,IAAIt8M,MAAM,KAEvCk7M,EAA2CnkH,SAASC,aAAahqE,wBACjEovH,EAAQqhE,cAAc,GAAK,GAC3BrhE,EAAQqhE,cAAc,GAAK,IAC3BrhE,EAAQqhE,cAAc,GAAK,IAC3BrhE,EAAQqhE,cAAc,GAAK,IAC3BrhE,EAAQqhE,cAAc,GAAK,IAC3BrhE,EAAQqhE,cAAc,GAAK,GAC3BrhE,EAAQqhE,cAAc,GAAK,IAC3BrhE,EAAQqhE,cAAc,GAAK,IAC3BrhE,EAAQqhE,cAAc,GAAK,IAC3BrhE,EAAQqhE,cAAc,GAAK,IAC3BrhE,EAAQqhE,cAAc,IAAM,IAC5BrhE,EAAQqhE,cAAc,IAAM,IAC5BrhE,EAAQqhE,cAAc,IAAM,IAC5BrhE,EAAQqhE,cAAc,IAAM,IAC5BrhE,EAAQqhE,cAAc,IAAM,IAC5BrhE,EAAQqhE,cAAc,IAAM,IAC5BrhE,EAAQqhE,cAAc,IAAM,IAC5BrhE,EAAQqhE,cAAc,IAAM,IAC5BrhE,EAAQqhE,cAAc,IAAM,GAC5BrhE,EAAQqhE,cAAc1C,EAAoDz9L,mBAAmB6kB,OAAS,QAErG,CACD,IAAK,IAAIxhC,EAAI,EAAGA,EAAI,GAAIA,IAEhBy7I,EAAQqhE,cAAc98M,GADtBA,EAAI,GACuB,IAGA,GAKnCy7I,EAAQqhE,cAAc1C,EAAoDz9L,mBAAmBguE,KAAO,GACpG8wD,EAAQqhE,cAAc1C,EAAoDz9L,mBAAmBquE,QAAU,GACvGywD,EAAQqhE,cAAc1C,EAAoDz9L,mBAAmBkvE,aAAe,EAChH,CACA4vD,EAAQshE,iBAAmB,CAAC,EAC5BthE,EAAQygE,iBAAmB,IAAI78M,MAAM,IACrC,IAAIy1C,EAAS,IAAI9C,EAA0CwE,SACvDwmK,EAAe,EACnB,GAAIA,GAAgB,EAAG,CACnB,IAAIhB,EAAchC,EAA4CzgK,UAAUiC,UAAUigG,EAAQw/D,MAAO+B,EAAc,EAAa,EAAIxC,EAAwD1/K,oBAAoByhH,eAAehgD,UAAW,EAAa,EAAIi+G,EAAwD1/K,oBAAoByhH,eAAelgD,UAAW,GAAc,QAAUm+G,EAAwD1/K,oBAAoBihK,gBACjcjnJ,EAASwlK,EAA8CtkK,YAAYwgD,YAAYwlH,EAAYpnK,GAAIonK,EAAYvzK,IAAKuzK,EAAYlhK,SAChI,CACA2gG,EAAQkgE,mBAAmBvB,EAAoDz9L,mBAAmB6kB,OAASwQ,EAA0CwE,SAAS72C,QAAQm1C,EAAOvM,GAAIuM,EAAOtzC,GAAIszC,EAAOd,GACnMynG,EAAQkgE,mBAAmBvB,EAAoDz9L,mBAAmB6kB,OAAOolE,QAAQ60C,EAAQ4/D,YACzH,IAASr7M,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAQzB,GAPAy7I,EAAQygE,iBAAiBl8M,GAAKg6M,EAA4CzgK,UAAUiC,UAAUigG,EAAQw/D,MAAOj7M,EAAG,EAAa,EAAIw6M,EAAwD1/K,oBAAoByhH,eAAehgD,UAAW,EAAa,EAAIi+G,EAAwD1/K,oBAAoByhH,eAAelgD,UAAW,GAAc,QAAUm+G,EAAwD1/K,oBAAoBihK,gBAClctgD,EAAQkgE,mBAAmB37M,GAAKs6M,EAA8CtkK,YAAYwgD,YAAYilD,EAAQygE,iBAAiBl8M,GAAG40C,GAAI6mG,EAAQygE,iBAAiBl8M,GAAGyoC,IAAKgzG,EAAQygE,iBAAiBl8M,GAAG86C,UACnM2gG,EAAQkgE,mBAAmB37M,GAAGumG,SAASzxD,GACvC2mG,EAAQkgE,mBAAmB37M,GAAG4mG,QAAQ60C,EAAQ4/D,YAC1Cd,EAA2CnkH,SAASC,aAAahqE,0BACjEovH,EAAQqhE,cAAc98M,GAAM,EAAI8C,KAAK26C,KAAYg+F,EAAQ+gE,iBAAiBx8M,GAAKy7I,EAAQygE,iBAAiBl8M,GAAG86C,SAAjE,IAA+Eh4C,KAAK8Z,GAAK,KAEvC,IAA5F29L,EAA2CnkH,SAASC,aAAar/D,uBAA8B,CAC/F,IAAIvyB,EAAKzE,EACT,OAAQyE,GACJ,KAAK21M,EAAoDz9L,mBAAmByuE,KACxE,IAAI1C,EAAS+yD,EAAQkgE,mBAAmBvB,EAAoDz9L,mBAAmB6kB,OAC/Gi6G,EAAQkgE,mBAAmB37M,GAAGumG,SAAS7d,GACvC+yD,EAAQkgE,mBAAmB37M,GAAG6lG,SAAS00G,EAA2CnkH,SAASC,aAAar/D,uBAAyB,GACjIykH,EAAQkgE,mBAAmB37M,GAAGmX,IAAIuxE,GAClC,MACJ,KAAK0xH,EAAoDz9L,mBAAmB0uE,GAC5E,KAAK+uH,EAAoDz9L,mBAAmB2uE,OAC5E,KAAK8uH,EAAoDz9L,mBAAmB4uE,SAC5E,KAAK6uH,EAAoDz9L,mBAAmB6uE,SACpE9C,EAAS+yD,EAAQkgE,mBAAmBvB,EAAoDz9L,mBAAmBouE,SAC/G0wD,EAAQkgE,mBAAmB37M,GAAGumG,SAAS7d,GACvC+yD,EAAQkgE,mBAAmB37M,GAAG6lG,SAAS00G,EAA2CnkH,SAASC,aAAar/D,wBACxGykH,EAAQkgE,mBAAmB37M,GAAGmX,IAAIuxE,GAClC,MACJ,QACI,MAEZ,CACA,IAAIu0H,GAAiBxhE,EAAQygE,iBAAiBl8M,GAAG86C,SACjD,MAAOoN,EAAoC9P,GAAGqgD,UAAUgjD,EAAQshE,iBAAkBE,GAC9EA,GAAiB,MAErBxhE,EAAQshE,iBAAiBE,GAAiBj9M,CAC9C,CACAy7I,EAAQygE,iBAAiB9B,EAAoDz9L,mBAAmBkvE,aAAe4vD,EAAQygE,iBAAiB9B,EAAoDz9L,mBAAmBguE,KAC/M8wD,EAAQqhE,cAAc1C,EAAoDz9L,mBAAmBguE,MAAQ,EACrG8wD,EAAQqhE,cAAc1C,EAAoDz9L,mBAAmBkvE,aAAe4vD,EAAQqhE,cAAc1C,EAAoDz9L,mBAAmBguE,KACzM8wD,EAAQqhE,cAAc1C,EAAoDz9L,mBAAmBquE,QAAiH,EAAvGywD,EAAQqhE,cAAc1C,EAAoDz9L,mBAAmBquE,QACpMywD,EAAQh9B,YAAc+7F,EAAwD1/K,oBAAoB0P,SACtG,EAEAixG,EAAQyhE,aAAe,WAAc,EAErCzhE,EAAQ8gE,aAAe,SAAUS,GAC7B,IAMI,GALAvhE,EAAQ4/D,WAAaf,EAA8CtkK,YAAY6nB,wBAAwB28I,EAAwD1/K,oBAAoBu9G,YAAcoD,EAAQ5mD,GACrMmoH,IAAiBvhE,EAAQ0/D,sBACzB1/D,EAAQ0hE,QAAU,MAEtB1hE,EAAQ0/D,oBAAsB6B,EACP,MAAnBvhE,EAAQ0hE,UACJH,EAAe,EACfvhE,EAAQ2hE,cAAgBprK,EAA0CqwD,SAAS6H,gBAG3EuxC,EAAQ2hE,cAAgBprK,EAA0CqwD,SAAS6H,eAC3EuxC,EAAQ2hE,cAAgBprK,EAA0CqwD,SAAS6K,WAAWuuC,EAAQ4/D,aAEhE,MAA9B5/D,EAAQ4hE,qBACR5hE,EAAQ4hE,mBAAqB,IAAIh+M,MAAM,IACvCo8I,EAAQ4hE,mBAAmB,GAAK,EAChC5hE,EAAQ4hE,mBAAmB,GAAK,KAChC5hE,EAAQ4hE,mBAAmB,GAAK,KAChC5hE,EAAQ4hE,mBAAmB,GAAK,MAChC5hE,EAAQ4hE,mBAAmB,GAAK,MAChC5hE,EAAQ4hE,mBAAmB,GAAK,MAChC5hE,EAAQ4hE,mBAAmB,GAAK,MAChC5hE,EAAQ4hE,mBAAmB,GAAK,MAChC5hE,EAAQ4hE,mBAAmB,GAAK,MAChC5hE,EAAQ4hE,mBAAmB,GAAK,KAAO,OACvC5hE,EAAQ4hE,mBAAmB,IAAM,WAAa,OAC9C5hE,EAAQ4hE,mBAAmB,IAAM,SAAW,OAC5C5hE,EAAQ4hE,mBAAmB,IAAM,WAAa,OAC9C5hE,EAAQ4hE,mBAAmB,IAAM,WAAa,OAC9C5hE,EAAQ4hE,mBAAmBjD,EAAoDz9L,mBAAmB6kB,OAAS,IAE1Gi6G,EAAQ6hE,cAAc,CACvB7hE,EAAQ0hE,QAAU,IAAI99M,MAAM,IAC5B,IAAK,IAAIW,EAAI,EAAGA,EAAI,GAAIA,IAEpB,GADAy7I,EAAQ0hE,QAAQn9M,GAAK,IAAIX,MAAMo8I,EAAQ2/D,oBACnCp7M,EAAI,GAAKA,IAAMo6M,EAAoDz9L,mBAAmB6kB,MAAO,CAC7F,IAAK,IAAI0V,EAAI,EAAGA,EAAIukG,EAAQ2/D,mBAAoBlkK,IAAK,CACjD,IAAIqmK,EAAWP,EACXh5M,EAAMy3I,EAAQw/D,MAA0C,OAAhCx/D,EAAQ4hE,mBAAmBr9M,GAAcy7I,EAAQ2/D,oBAAuBlkK,EAAKukG,EAAQ2/D,mBAAqB,GAClItmK,EAAS,IAAI9C,EAA0CwE,SAO3D,GANIx2C,IAAMo6M,EAAoDz9L,mBAAmB6gM,MAC7ED,GAAY,EAEPv9M,EAAI,GAAKA,EAAI,KAClBu9M,EAAW,GAEXA,GAAY,EAAG,CACf,IAAIvB,EAAchC,EAA4CzgK,UAAUiC,UAAUx3C,EAAKu5M,EAAU,EAAG,GAAI,SACxGzoK,EAASwlK,EAA8CtkK,YAAYwgD,YAAYwlH,EAAYpnK,GAAIonK,EAAYvzK,IAAKuzK,EAAYlhK,SAChI,CACA,GAAI96C,IAAMo6M,EAAoDz9L,mBAAmB6kB,MAAO,CACpF,IAAIi8K,EAAczD,EAA4CzgK,UAAUiC,UAAUx3C,EAAKhE,EAAG,EAAG,GAAI,SACjGy7I,EAAQ0hE,QAAQn9M,GAAGk3C,GAAKojK,EAA8CtkK,YAAYwgD,YAAYinH,EAAY7oK,GAAI6oK,EAAYh1K,IAAKg1K,EAAY3iK,UAC3I2gG,EAAQ0hE,QAAQn9M,GAAGk3C,GAAGqvD,SAASzxD,EACnC,MAEI2mG,EAAQ0hE,QAAQn9M,GAAGk3C,GAAKlF,EAA0CwE,SAAS72C,QAAQm1C,EAAOvM,GAAIuM,EAAOtzC,GAAIszC,EAAOd,GAEpHynG,EAAQ0hE,QAAQn9M,GAAGk3C,GAAG0vD,QAAQ60C,EAAQ4/D,WAC1C,CACA5/D,EAAQ0hE,QAAQn9M,GAAGy7I,EAAQ2/D,mBAAqB,GAAK3/D,EAAQ0hE,QAAQn9M,GAAG,EAC5E,CAEJy7I,EAAQiiE,gBACZ,CAER,CACA,QAAU,CACd,EAEAjiE,EAAQ6hE,WAAa,WAGjB,OAAO,CACX,EAEA7hE,EAAQiiE,eAAiB,WAAc,EAEvCjiE,EAAQkiE,YAAc,SAAUl+K,EAAexgB,GACZ,MAA3Bw8H,EAAQmiE,iBACRniE,EAAQoiE,sBAKZ,IAAIC,EAAQriE,EAAQsiE,sBAAsBtiE,EAAQygE,iBAAiB,GAAGtnK,GAAI6mG,EAAQygE,iBAAiB,GAAGzzK,IAAKgzG,EAAQygE,iBAAiB,GAAGtnK,GAAI6mG,EAAQygE,iBAAiB,GAAGzzK,KACnKu1K,EAAQviE,EAAQygE,iBAAiB,GAAGtnK,GAAK6mG,EAAQygE,iBAAiB,GAAGtnK,GACrE6mG,EAAQygE,iBAAiB,GAAGtnK,GAAK6mG,EAAQygE,iBAAiB,GAAGtnK,KAC7DopK,GAAS,IAEIviE,EAAQwiE,YAAYH,EAAOriE,EAAQygE,iBAAiB,GAAGphK,SAAU2gG,EAAQygE,iBAAiB,GAAGphK,UAC9F2gG,EAAQyiE,eAAeziE,EAAQygE,iBAAiB,GAAGtnK,GAAI6mG,EAAQygE,iBAAiB,GAAGzzK,IAAKgzG,EAAQygE,iBAAiB,GAAGtnK,GAAI6mG,EAAQygE,iBAAiB,GAAGzzK,KAOpK,IAAI01K,EAAqF,GAA5Er7M,KAAKkjD,IAAIy1F,EAAQygE,iBAAiB,GAAGtnK,GAAK6mG,EAAQygE,iBAAiB,GAAGtnK,IAAY9xC,KAAKgxC,IAAIwmK,EAA8CtkK,YAAYqpD,iBAAiBo8C,EAAQygE,iBAAiB,GAAGzzK,MAC3M21K,EAAQt7M,KAAKkjD,IAAIy1F,EAAQygE,iBAAiB,GAAGzzK,IAAMgzG,EAAQygE,iBAAiB,GAAGzzK,KAC/E41K,EAAcv7M,KAAKqxC,KAAKgqK,EAAQA,EAAQC,EAAQA,GAEhDE,EAAgB,EAChBC,EAAc9iE,EAAQqhE,cAAc,GAAK,EAAIuB,EAClCv7M,KAAKilF,IAAI,GAAI7/B,EAAoC9P,GAAGyG,SAAwB,GAAdw/J,IACzEE,EAAc9iE,EAAQqhE,cAAc,GAAK,KAC/B,EACVwB,EAAgBx7M,KAAKilF,IAAI,GAAIw2H,EAAc9iE,EAAQqhE,cAAc,GAAK,GAAM,MAC5ErhE,EAAQ+iE,YAAY/+K,EAAe,GAAI6+K,IAE3C,IAAIxlK,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKy1I,EAAQshE,mBAClH,MAAOjkK,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbulK,EAAWhjE,EAAQshE,iBAAiBtgN,GACxCg/I,EAAQ+iE,YAAY/+K,EAAeg/K,EAAU,EACjD,CACA,OAAO,CACX,EAEAhjE,EAAQoiE,oBAAsB,WAQ1B,IAAIa,EAAUjE,EAA8CrjH,WAAW18D,UAAUi9D,eAAe,IAEhG8jD,EAAQmiE,gBAAkB,IAAIv+M,MAAM,IACpCo8I,EAAQmiE,gBAAgB,GAAK3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,WAC1GjjE,EAAQmiE,gBAAgB,GAAK3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,eAC1GjjE,EAAQmiE,gBAAgB,GAAK3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,aAC1GjjE,EAAQmiE,gBAAgB,GAAK3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,YAC1GjjE,EAAQmiE,gBAAgB,GAAK3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,eAC1GjjE,EAAQmiE,gBAAgB,GAAK3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,cAC1GjjE,EAAQmiE,gBAAgB,GAAK3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,cAC1GjjE,EAAQmiE,gBAAgB,GAAK3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,eAC1GjjE,EAAQmiE,gBAAgB,GAAK3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,aAC1GjjE,EAAQmiE,gBAAgB,GAAK3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,YAC1GjjE,EAAQmiE,gBAAgB,IAAM3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,UAC3GjjE,EAAQmiE,gBAAgB,IAAM3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,cAC3GjjE,EAAQmiE,gBAAgB,IAAM3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,gBAC3GjjE,EAAQmiE,gBAAgB,IAAM3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,gBAC3GjjE,EAAQmiE,gBAAgB,IAAM3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,kBAC3GjjE,EAAQmiE,gBAAgB,IAAM3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,kBAC3GjjE,EAAQmiE,gBAAgB,IAAM3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,kBAC3GjjE,EAAQmiE,gBAAgB,IAAM3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,kBAC3GjjE,EAAQmiE,gBAAgB,IAAM3D,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,iBAC3GjjE,EAAQmiE,gBAAgBxD,EAAoDz9L,mBAAmB6kB,OAASy4K,EAAmDpjF,QAAQC,QAAQ4nF,EAAU,YACzL,EAMAjjE,EAAQkjE,4BAA8B,SAAUC,GAC5C,IAAIv8M,EAAI2vC,EAA0CqwD,SAAS6H,eAmBvD20G,EAAsB,WAoB1B,OAlBID,IAAaxE,EAAoDz9L,mBAAmB6kB,MAKpFn/B,EAAEgtG,UAAUr9D,EAA0CqwD,SAAS6K,WAAW2xG,EAAsBpjE,EAAQ5mD,MAGxGxyF,EAAEgtG,UAAUr9D,EAA0CqwD,SAAS6K,YAAY,GAAKuuC,EAAQ5mD,KAExFxyF,EAAEgtG,UAAUr9D,EAA0CqwD,SAASiL,YAAY,IAAMmuC,EAAQy/D,cAAc0D,GAAU9D,eAAiBr/D,EAAQ5mD,KAC1IxyF,EAAEgtG,UAAUr9D,EAA0CqwD,SAAS6K,YAAY,GAAKuuC,EAAQy/D,cAAc0D,GAAU/D,SAAWp/D,EAAQ5mD,KACnIxyF,EAAEgtG,UAAUr9D,EAA0CqwD,SAASiL,YAAYmuC,EAAQy/D,cAAc0D,GAAUhE,OAAS,IAAMn/D,EAAQ5mD,KAClIxyF,EAAEgtG,UAAUr9D,EAA0CqwD,SAAS6K,WAAW2xG,EAAsBpjE,EAAQ5mD,KAGxGxyF,EAAEgtG,UAAUr9D,EAA0CqwD,SAAS6K,WAAW,GAAKuuC,EAAQ5mD,MAEpFxyF,CACX,EAEAo5I,EAAQ+3B,kBAAoB,SAAU/zI,EAAem/K,EAAU3mB,EAAaj7C,GACxE,IAAI8hE,EAAiBr/K,EAAcw3F,YAAYpkC,QAG/C,GAFA4oD,EAAQsjE,8BAA8Bt/K,EAAem/K,EAAU3mB,EAAaj7C,GAExE4hE,IAAaxE,EAAoDz9L,mBAAmBguE,IAAK,CAGzF,IAAIh/D,EAAS8vH,EAAQsgE,wBAAwB6C,GAC7CE,EAAethK,MAAMxL,EAA0CwE,SAAS72C,OAAOgsB,EAAQA,EAAQA,IAC/F,IAAI6iF,EAAcx8D,EAA0CwE,SAASsqD,gBAAgB26C,EAAQkgE,mBAAmBiD,GAAW3mB,GAC3H6mB,EAAezvG,UAAUr9D,EAA0CqwD,SAASmM,YAAYA,IACxF/uE,EAAcm0I,yBAAyBkrC,EAC3C,CACJ,EAEArjE,EAAQsjE,8BAAgC,SAAUt/K,EAAem/K,EAAU3mB,EAAaj7C,GACpF,IAAIrxH,EAAS8vH,EAAQsgE,wBAAwB6C,GACzC3iB,EAAkB,EAElBA,EADA2iB,IAAaxE,EAAoDz9L,mBAAmB6kB,MAClE1+B,KAAK8Z,GAAK09L,EAA8CtkK,YAAYomD,YAAYo+G,EAAwD1/K,oBAAoB0P,UAAW,GAAK,IAAM1nC,KAAK8Z,GAGvL9Z,KAAK8Z,IAAQ6+H,EAAQw/D,MAAQ,SAAWx/D,EAAQohE,qBAAqB+B,GAAa97M,KAAK8Z,GAAK,GAAgB,EAAV9Z,KAAK8Z,IAE5G,IAAbgiM,IACA3iB,GAAmBn5L,KAAK8Z,GAAK,GAEjC,IAAIoiM,EAAWv/K,EAAcw3F,YAAYpkC,QACrCisH,EAAiBr/K,EAAcw3F,YAAYpkC,QAC3C2b,EAAcx8D,EAA0CwE,SAASsqD,gBAAgB26C,EAAQkgE,mBAAmBiD,GAAW3mB,GACvHgnB,EAAqBxjE,EAAQkjE,4BAA4BC,GAsB7D,OArBAI,EAASxhK,MAAMxL,EAA0CwE,SAAS72C,OAAOgsB,EAAQA,EAAQA,IACzFqzL,EAAS3vG,UAAUr9D,EAA0CqwD,SAAS+K,YAAY6uF,IAClF+iB,EAAS3vG,UAAU4vG,GACfL,IAAan/K,EAAc2K,WAAW7tC,SACtCk/I,EAAQ8/D,YAAcvpK,EAA0CqwD,SAAS6H,eACzEuxC,EAAQ8/D,YAAYlsG,UAAUr9D,EAA0CqwD,SAAS+K,YAAY6uF,IAC7FxgD,EAAQ8/D,YAAYlsG,UAAU4vG,GAC9BxjE,EAAQ+/D,eAAiB//D,EAAQ8/D,YAAY1oH,QAC7C4oD,EAAQ+/D,eAAejtG,UAE3BywG,EAAS3vG,UAAUr9D,EAA0CqwD,SAASmM,YAAYA,IAClF/uE,EAAcs9G,UAAUiiE,GACxBv/K,EAAcq9G,cAAcr9G,EAAcw3F,YAAYpkC,SACtDpzD,EAAco0I,kBAAkBp4B,EAAQyjE,wBAAwBN,IAC5D5hE,GACAv9G,EAAcu9G,cAElB8hE,EAAethK,MAAMxL,EAA0CwE,SAAS72C,OAAOgsB,EAAQA,EAAQA,IAC/FmzL,EAAezvG,UAAU4vG,GACzBH,EAAezvG,UAAUr9D,EAA0CqwD,SAASmM,YAAYA,IACxF/uE,EAAcm0I,yBAAyBkrC,GAChC7iB,CACX,EASAxgD,EAAQ0jE,wBAA0B,SAAU16M,EAAI+6C,GAC5C,IAAIkS,EAAI,EACJ7L,EAAI,EACJsV,EAAI,EACR,OAAQ12D,GACJ,KAAK,EACDitD,EAAI4nJ,EAAmD59I,WAAW/e,kBAAkB6C,GACpFqG,EAAIyzJ,EAAmD59I,WAAWjf,iBAAiB+C,GACnF2b,EAAIm+I,EAAmD59I,WAAW7e,aAAa2C,GAC/E,MACJ,KAAK,EACDkS,EAAI6nJ,EAAiD59I,SAAShf,kBAAkB6C,GAChFqG,EAAI0zJ,EAAiD59I,SAASlf,iBAAiB+C,GAC/E2b,EAAIo+I,EAAiD59I,SAAS9e,aAAa2C,GAC3E,MACJ,KAAK46J,EAAoDz9L,mBAAmB6kB,MACxEkwB,EAAI2nJ,EAAiDvtJ,SAASnP,kBAAkB6C,GAChFqG,EAAIwzJ,EAAiDvtJ,SAASrP,iBAAiB+C,GAC/E2b,EAAIk+I,EAAiDvtJ,SAASjP,aAAa2C,GAC3E,MACJ,KAAK,EACDkS,EAAI8nJ,EAAgD59I,QAAQjf,kBAAkB6C,GAC9EqG,EAAI2zJ,EAAgD59I,QAAQnf,iBAAiB+C,GAC7E2b,EAAIq+I,EAAgD59I,QAAQ/e,aAAa2C,GACzE,MACJ,KAAK,EACDkS,EAAI+nJ,EAAmD59I,WAAWlf,kBAAkB6C,GACpFqG,EAAI4zJ,EAAmD59I,WAAWpf,iBAAiB+C,GACnF2b,EAAIs+I,EAAmD59I,WAAWhf,aAAa2C,GAC/E,MACJ,KAAK,EACDkS,EAAIgoJ,EAAkD59I,UAAUnf,kBAAkB6C,GAClFqG,EAAI6zJ,EAAkD59I,UAAUrf,iBAAiB+C,GACjF2b,EAAIu+I,EAAkD59I,UAAUjf,aAAa2C,GAC7E,MACJ,KAAK,EACDkS,EAAIioJ,EAAkD59I,UAAUpf,kBAAkB6C,GAClFqG,EAAI8zJ,EAAkD59I,UAAUtf,iBAAiB+C,GACjF2b,EAAIw+I,EAAkD59I,UAAUlf,aAAa2C,GAC7E,MACJ,KAAK,EACDkS,EAAIkoJ,EAAoD59I,WAAWrf,kBAAkB6C,GACrFqG,EAAI+zJ,EAAoD59I,WAAWvf,iBAAiB+C,GACpF2b,EAAIy+I,EAAoD59I,WAAWnf,aAAa2C,GAChF,MACJ,KAAK,EACDkS,EAAImoJ,EAAkD59I,SAAStf,kBAAkB6C,GACjFqG,EAAIg0J,EAAkD59I,SAASxf,iBAAiB+C,GAChF2b,EAAI0+I,EAAkD59I,SAASpf,aAAa2C,GAC5E,MACJ,KAAK,EACDkS,EAAIqoJ,EAAiDv9J,QAAQG,kBAAkB6C,GAC/EqG,EAAIk0J,EAAiDv9J,QAAQC,iBAAiB+C,GAC9E2b,EAAI4+I,EAAiDv9J,QAAQK,aAAa2C,GAAM,SAChF,MACJ,KAAK,GACD,IAAI4/J,EAAetF,EAA2D18J,GAAGpB,UAAUwD,GACvF+jD,EAAW67G,EAAathK,WAAW6jB,+BACvC,OAAO3vB,EAA0CwE,SAAS72C,OAAO4jG,EAASh7D,EAAGg7D,EAASvvD,EAAGuvD,EAAS/hG,GACtG,KAAK,GACG49M,EAAetF,EAA2D18J,GAAGpB,UAAUwD,GACvF+jD,EAAW67G,EAAalhK,WAAWyjB,+BACvC,OAAO3vB,EAA0CwE,SAAS72C,OAAO4jG,EAASh7D,EAAGg7D,EAASvvD,EAAGuvD,EAAS/hG,GACtG,KAAK,GACG49M,EAAetF,EAA2D18J,GAAGpB,UAAUwD,GACvF+jD,EAAW67G,EAAajhK,WAAWwjB,+BACvC,OAAO3vB,EAA0CwE,SAAS72C,OAAO4jG,EAASh7D,EAAGg7D,EAASvvD,EAAGuvD,EAAS/hG,GACtG,KAAK,GACG49M,EAAetF,EAA2D18J,GAAGpB,UAAUwD,GACvF+jD,EAAW67G,EAAahhK,WAAWujB,+BACvC,OAAO3vB,EAA0CwE,SAAS72C,OAAO4jG,EAASh7D,EAAGg7D,EAASvvD,EAAGuvD,EAAS/hG,GAW1GkwD,EAAI4oJ,EAA8CtkK,YAAYqpD,iBAAiB3tC,GAC/E7L,EAAIy0J,EAA8CtkK,YAAYqpD,iBAAiBx5C,GAC/E,IAAIw5J,EAASrtK,EAA0CwE,SAAS72C,OAAOmD,KAAKgxC,IAAI4d,GAAK5uD,KAAKgxC,IAAI+R,GAAKsV,EAAGr4D,KAAKixC,IAAI2d,GAAK5uD,KAAKgxC,IAAI+R,GAAKsV,EAAGr4D,KAAKixC,IAAI8R,GAAKsV,GAK/ImkJ,GAA0BhF,EAA8CtkK,YAAY6nB,wBAAwBre,GAAM86J,EAA8CtkK,YAAY6nB,wBAAwB,UAAY49E,EAAQ5mD,GAE5N,OADAwqH,EAAOz4G,QAAQ04G,GACRttK,EAA0CwE,SAAS72C,OAAO0/M,EAAO92K,EAAG82K,EAAOrrK,EAAGqrK,EAAO79M,EAChG,EAEAi6I,EAAQ8jE,wBAA0B,SAAUh8G,EAAUzgD,EAAU08J,GAE5D,IAAIvhN,EAAI+zC,EAA0CwE,SAASgH,MAAM+lD,EAAU,UACvEvhG,EAAIgwC,EAA0CwE,SAASgH,MAAMxL,EAA0CwE,SAASgH,MAAMsF,EAAU,EAAI,OAAQ,UAC5I28J,EAAOxhN,EAAEkC,SACTu/M,EAAO19M,EAAE7B,SACTw/M,EAAM,GAAK,EAAIF,EAAOC,EAAOA,EAAOF,GAGpCtxG,EAAIl8D,EAA0CwE,SAASK,MAAM54C,EAAG+D,GAIhE49M,EAAM5tK,EAA0CwE,SAASsqD,gBAAgB9uD,EAA0CwE,SAASgH,MAAMxL,EAA0CwE,SAASK,MAAM70C,EAAGksG,GAAI,EAAIsxG,GAAKxtK,EAA0CwE,SAASgH,MAAMv/C,EAAG,EAAIwhN,IAC3Q/hN,EAAIkiN,EAAIz/M,SAEZ+tG,EAAEtI,YACFg6G,EAAIh6G,YAIJ,IAAI7lG,EAAIiyC,EAA0CwE,SAASK,MAAMq3D,EAAG0xG,GAGpE3hN,EAAE2nG,YACF,IAAIi6G,EAAQ7tK,EAA0CwE,SAASC,IAAImpK,EAAK3hN,GACpE6hN,EAAQ9tK,EAA0CwE,SAASC,IAAI12C,EAAG9B,GAGlE4sD,EAAI/nD,KAAKoxC,MAAMpxC,KAAKqxC,KAAK,EAAIz2C,EAAIA,GAAKoiN,EAAOpiN,EAAImiN,GACjD7iJ,EAAW,IAAIo8I,EAUnB,OAJAp8I,EAAS+iJ,YAAc/tK,EAA0CqwD,SAAS1iG,OAAOigN,EAAIr3K,EAAGq3K,EAAIp+M,EAAGo+M,EAAI5rK,EAAG,EAAGj0C,EAAEwoC,EAAGxoC,EAAEyB,EAAGzB,EAAEi0C,EAAG,EAAGk6D,EAAE3lE,EAAG2lE,EAAE1sG,EAAG0sG,EAAEl6D,EAAG,EAAG,EAAG,EAAG,EAAG,GACtJgpB,EAASjzD,EAAI41M,EACb3iJ,EAASt/D,EAAIA,EACbs/D,EAAS09I,GAAK7vJ,EACPmS,CACX,EAEAy+E,EAAQsgE,wBAA0B,SAAU6C,GACpCA,EAAWnjE,EAAQ+gE,iBAAiBr8M,OAAS,IAC7Cy+M,EAAWxE,EAAoDz9L,mBAAmB6kB,OAEtF,IAAIw+K,EAAWvkE,EAAQ+gE,iBAAiBoC,GACpCjzL,EAAUq0L,EAAW,EAOzB,OALIr0L,GADEizL,EACiB,EAAK,GAAKrE,EAA2CnkH,SAASC,aAAar/D,uBAAyB,GAGpG,EAAK,IAAOujL,EAA2CnkH,SAASC,aAAar/D,uBAAyB,GAEtHrL,CACX,EAEA8vH,EAAQyjE,wBAA0B,SAAUN,GACpCA,EAAWnjE,EAAQ+gE,iBAAiBr8M,OAAS,IAC7Cy+M,EAAWxE,EAAoDz9L,mBAAmB6kB,OAEtF,IAAIw+K,EAAWvkE,EAAQ+gE,iBAAiBoC,GACxC,OAAQoB,EAAW,EAAK,SAAY,GACxC,EAEAvkE,EAAQ+iE,YAAc,SAAU/+K,EAAem/K,EAAU3/L,GACrD,IAAIghM,EAAiBxkE,EAAQygE,iBAAiB0C,GAC9C,GAAMA,EAAW,IAAOnjE,EAAQqhE,cAAc8B,GAAan/K,EAAc2K,WAAWlQ,KAAO,EAAK,KAC5F,GAAI0kL,EAAW,IAAQA,EAAW,IAAOnjE,EAAQqhE,cAAc8B,GAAan/K,EAAc2K,WAAWlQ,KAAO,EAAK,KAAO,CACpH,IAAIohE,EAAQg/G,EAA8CtkK,YAAYC,UAAUgqK,EAAerrK,GAAIqrK,EAAex3K,KAClH0xK,EAA8Cj0H,YAAYG,gBAAgB5mD,EAAe67D,EAAO,EAAGmgD,EAAQghE,aAAamC,IAAW,EACvI,MAJJ,CAOA,IAAIsB,EAAQ,KACZ,GAAItB,EAAW,IAAmB,KAAbA,EACjBsB,EAAQzkE,EAAQmiE,gBAAgBgB,QAE/B,GAAIA,EAAW,GAEZsB,EADAzkE,EAAQygE,iBAAiB0C,GAAU/jK,SAC3B4gG,EAAQmiE,gBAAgB,IAE5BrD,EAA2CnkH,SAASC,aAAa8pH,6BACzD1kE,EAAQmiE,gBAAgB,IAGxBniE,EAAQmiE,gBAAgBgB,OAIvC,CACD,IAAKnjE,EAAQygE,iBAAiB0C,GAAUhkK,OACpC,OAIJslK,EAAQzkE,EAAQmiE,gBAAgB,GACpC,CACA,GAAwB,MAApBn+K,EAAc6T,GAAY,CAC1B,GAA6B,MAAzBmoG,EAAQigE,cAAuB,CAC/BjgE,EAAQigE,cAAgB,IAAIr8M,MAAM,GAClC,IAAK,IAAIW,EAAI,EAAGA,EAAI,EAAGA,IACnBy7I,EAAQigE,cAAc17M,GAAK,IAAIgyC,EAA0CwwD,uBAEjF,CACA,IAAI72E,EAAU8vH,EAAQqhE,cAAc8B,GAAY,EAC5CwB,EAAYz0L,EAAS7oB,KAAKgxC,IAAImsK,EAAex3K,IAAM,IAAM3lC,KAAK8Z,IAClE6+H,EAAQigE,cAAc,GAAGn4G,SAAW+2G,EAA8CtkK,YAAYwgD,YAAaypH,EAAerrK,GAAMwrK,EAAW,GAAMH,EAAex3K,IAAM9c,EAAQ,GAC9K8vH,EAAQigE,cAAc,GAAGr4G,GAAK,EAC9Bo4C,EAAQigE,cAAc,GAAGp4G,GAAK,EAC9Bm4C,EAAQigE,cAAc,GAAGrrM,MAAQgqM,EAAwChlK,OAAOC,YAChFmmG,EAAQigE,cAAc,GAAGn4G,SAAW+2G,EAA8CtkK,YAAYwgD,YAAaypH,EAAerrK,GAAMwrK,EAAW,GAAMH,EAAex3K,IAAM9c,EAAQ,GAC9K8vH,EAAQigE,cAAc,GAAGr4G,GAAK,EAC9Bo4C,EAAQigE,cAAc,GAAGp4G,GAAK,EAC9Bm4C,EAAQigE,cAAc,GAAGrrM,MAAQgqM,EAAwChlK,OAAOC,YAChFmmG,EAAQigE,cAAc,GAAGn4G,SAAW+2G,EAA8CtkK,YAAYwgD,YAAaypH,EAAerrK,GAAMwrK,EAAW,GAAMH,EAAex3K,IAAM9c,EAAQ,GAC9K8vH,EAAQigE,cAAc,GAAGr4G,GAAK,EAC9Bo4C,EAAQigE,cAAc,GAAGp4G,GAAK,EAC9Bm4C,EAAQigE,cAAc,GAAGrrM,MAAQgqM,EAAwChlK,OAAOC,YAChFmmG,EAAQigE,cAAc,GAAGn4G,SAAW+2G,EAA8CtkK,YAAYwgD,YAAaypH,EAAerrK,GAAMwrK,EAAW,GAAMH,EAAex3K,IAAM9c,EAAQ,GAC9K8vH,EAAQigE,cAAc,GAAGr4G,GAAK,EAC9Bo4C,EAAQigE,cAAc,GAAGp4G,GAAK,EAC9Bm4C,EAAQigE,cAAc,GAAGrrM,MAAQgqM,EAAwChlK,OAAOC,YAChFmmG,EAAQggE,cAAcloK,KAAK9T,EAAeg8G,EAAQigE,cAAe,EAAGwE,GAAO,EAAM,EACrF,KACK,CACD,IAAIprK,EAASwlK,EAA8CtkK,YAAYC,UAAUgqK,EAAerrK,GAAIqrK,EAAex3K,KAC/G0N,EAAMslG,EAAQqhE,cAAc8B,IAAan/K,EAAc2W,eAAiB,MAAQ,EAChFC,EAAiB5W,EAAc6W,IAAIC,UAAUzB,GACjD,GAAIuB,EAAerC,EAAI,EACnB,OAEJ,GAAIhC,EAA0CwE,SAASC,IAAIhX,EAAciX,gBAAiB5B,GAAU,IAChG,OAEJ,IAAI3jC,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0mC,YAAc54B,EAClB9N,EAAI2mC,YACJ3mC,EAAI4mC,IAAI1B,EAAe9N,EAAG8N,EAAe70C,EAAG20C,EAAK,EAAa,EAAVrzC,KAAK8Z,IAAQ,GACjEzL,EAAIqa,UAAY,EAChBra,EAAIkoC,YACJloC,EAAIkvM,OACJlvM,EAAIi5G,UAAU81F,EAAM19E,aAAcnsF,EAAe9N,EAAI4N,EAAKE,EAAe70C,EAAI20C,EAAW,EAANA,EAAe,EAANA,GAC3FhlC,EAAI0mC,YAAc,EAClB1mC,EAAIgnC,SACR,CAzEA,CA0EJ,EAEAsjG,EAAQ6kE,iBAAmB,SAAU7gL,EAAem/K,EAAU2B,EAAOj0H,EAAOy5F,GAAQ,EAEpFtqC,EAAQsiE,sBAAwB,SAAUzsI,EAAaC,EAAaC,EAAUC,GAQ1E,OANAH,EAAcgpI,EAA8CtkK,YAAYqpD,iBAA+B,GAAd/tB,GACzFE,EAAW8oI,EAA8CtkK,YAAYqpD,iBAA4B,GAAX7tB,GAGtFD,EAAc+oI,EAA8CtkK,YAAYqpD,iBAAiB9tB,GACzFE,EAAW6oI,EAA8CtkK,YAAYqpD,iBAAiB5tB,GAC/E6oI,EAA8CtkK,YAAYspD,iBAAiBx8F,KAAKy7D,KAAKz7D,KAAKixC,IAAI09B,GAAY3uE,KAAKixC,IAAIw9B,GAAezuE,KAAKgxC,IAAI29B,GAAY3uE,KAAKgxC,IAAIy9B,GAAezuE,KAAKgxC,IAAI09B,EAAWF,IAC9M,EAEAmqE,EAAQwiE,YAAc,SAAUvsI,EAAsBC,EAAqBC,GAIvE,OAFAF,EAAuB4oI,EAA8CtkK,YAAYqpD,iBAAiB3tB,GAE3F4oI,EAA8CtkK,YAAY2pD,iBAAiB26G,EAA8CtkK,YAAYspD,iBAAiBx8F,KAAKoxC,MAAM09B,EAAmB9uE,KAAKixC,IAAI29B,GAAuBC,EAAsBC,EAAmB9uE,KAAKgxC,IAAI49B,KACjR,EAEA+pE,EAAQyiE,eAAiB,SAAUrsI,EAAQC,EAAQ/tB,EAAOC,GAKtD,OAJA6tB,EAASyoI,EAA8CtkK,YAAYwpD,eAAe3tB,GAClF9tB,EAAQu2J,EAA8CtkK,YAAYwpD,eAAez7C,GACjF+tB,EAASwoI,EAA8CtkK,YAAYqpD,iBAAiBvtB,GACpF9tB,EAAQs2J,EAA8CtkK,YAAYqpD,iBAAiBr7C,GAC5Es2J,EAA8CtkK,YAAY2pD,iBAAiB26G,EAA8CtkK,YAAYspD,iBAAiBx8F,KAAKoxC,MAAMpxC,KAAKgxC,IAAIg+B,GAAUhvE,KAAKixC,IAAI89B,EAAS9tB,GAAQjhD,KAAKixC,IAAI+9B,GAAUhvE,KAAKgxC,IAAIkQ,GAASlhD,KAAKgxC,IAAIg+B,GAAUhvE,KAAKixC,IAAIiQ,GAASlhD,KAAKgxC,IAAI+9B,EAAS9tB,KACrT,EAEA,IAAIy8J,EAAW,CAAC,GAEhB,EAAGr4J,EAA4CzS,cAAc,UAAW,CAAC+lG,EAAS+kE,EAAU,MAGrF,EAED;;;+BAIA,CAAErkN,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC0jN,UAAW,IAAM,IAEnB,IAAIv4J,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFnW,EAA4C,sBAAyC,qBACrF+iH,EAA4D,sCAAyD,qCACrH2rD,EAAuD,iCAAoD,gCAC3GC,EAAyD,mCAAsD,kCAC/GC,EAAoD,8BAAiD,6BACrG7O,EAAoD,8BAAiD,6BACrG8O,EAA4C,sBAAyC,qBACrFC,EAA+C,yBAA4C,wBAC3F5O,EAAiD,0BAA6C,yBAC9Fj8D,EAA0C,mBAAsC,kBAChF8qE,EAA4C,qBAAwC,oBACpFC,EAAoD,6BAAgD,4BACpGj1C,EAA6C,sBAAyC,qBACtFk1C,EAA6C,sBAAyC,qBACtFC,EAA6C,sBAAyC,qBACtFC,EAAgD,yBAA4C,wBAC5FC,EAAiD,0BAA6C,yBAC9FC,EAAyD,kCAAqD,iCAiCvI,SAASZ,IAAc,CAEvBA,EAAUa,oBAAsB,IAAIjiN,MAAM,GAC1CohN,EAAUc,WAAa,KACvBd,EAAUe,oBAAsB,IAChCf,EAAUgB,mBAAqB,KAE/BhB,EAAUiB,4BAA8B,SAAUj9M,GAC9C,OAAQA,GACJ,KAAK,EACD,MAAO,MACX,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,QACX,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,SACX,KAAK,EACD,MAAO,SACX,KAAK,EACD,MAAO,UACX,KAAK,EACD,MAAO,QACX,KAAK,EACD,MAAO,OACX,KAAK,GACD,MAAO,eACX,KAAK,GACD,MAAO,mBACX,KAAK,GACD,MAAO,qBACX,KAAK,GACD,MAAO,qBACX,KAAK,GACD,MAAO,mBACX,QACI,MAAO,GAEnB,EAEAg8M,EAAUkB,oBAAsB,SAAUliL,GAAiB,EAE3DghL,EAAUmB,cAAgB,SAAUniL,EAAexgB,EAASg5K,GACxDwoB,EAAUkB,oBAAoBliL,GAC9B,IAAIoiL,EAASX,EAA2Cr9D,QAAQi+D,oBAAoBriL,EAAcsiL,iCAE9FC,GADWl/M,KAAKilF,IAAI,EAAGjlF,KAAKC,IAAI89M,EAA0C3gK,KAAK2e,MAAMgjJ,GAAU,IAAK,IAC7F/+M,KAAKilF,IAAI,EAAGjlF,KAAKC,IAAI89M,EAA0C3gK,KAAK2e,MAAMgjJ,GAAU,IAAK,KACpG,GAAI91C,EAA2C31E,SAASC,aAAa9/D,yBAA2ByrL,EAAO,EAAG,CACtG,IAAK,IAAIC,EAAK,EAAGA,EAAK,GAAIA,IAAM,CAC5B,IAAIx9M,EAAKw9M,EACE,IAAPA,IACAx9M,EAAK,IAET,IAAI6nF,EAAQxpF,KAAKoxC,MAAM6sK,EAA0CtlE,QAAQkgE,mBAAmBl3M,GAAIuvC,EAAG+sK,EAA0CtlE,QAAQkgE,mBAAmBl3M,GAAI8jC,GAC5Kk4K,EAAUyB,iBAAiBziL,EAAeshL,EAA0CtlE,QAAQghE,aAAah4M,GAAKA,EAAIwzL,EAAa3rG,EAAOy0H,EAA0CtlE,QAAQkgE,mBAAmBl3M,GAAKu9M,EACpN,CACA,IAAIz0H,EAAM,EACVkzH,EAAUyB,iBAAiBziL,EAAeshL,EAA0CtlE,QAAQghE,aAAalvH,GAAMA,EAAK0qG,EAAa,EAAG8oB,EAA0CtlE,QAAQkgE,mBAAmBpuH,GAAMy0H,EACnN,CACA95J,EAAoC9P,GAAG24H,UAAUgwC,EAA0CtlE,QAAQ6/D,YAEnG,IADA,IAAIl/E,EAAS38F,EAAcgrE,eAAehkB,OACjCg4H,EAAW,EAAGA,EAAW,GAAIA,IAOlC,IAAM1yC,EAA2C31E,SAASC,aAAa1gE,4BAA6BorL,EAA0CtlE,QAAQygE,iBAAiBuC,GAAU5jK,SAAW,CACxL,IAAIsnK,EAAanwK,EAA0CwE,SAASsqD,gBAAgBs7B,EAAQpqF,EAA0CwE,SAASsqD,gBAAgBigH,EAA0CtlE,QAAQkgE,mBAAmB8C,GAAWxmB,IAC1O/vI,EAAoC9P,GAAGqgD,UAAUsoH,EAA0CtlE,QAAQ6/D,WAAY6G,EAAWhiN,YAC3H4gN,EAA0CtlE,QAAQ6/D,WAAW6G,EAAWhiN,UAAYs+M,EAE5F,CAEJ,IAAI2D,EAAkBpwK,EAA0CwE,SAASsqD,gBAAgBs7B,EAAQpqF,EAA0CwE,SAASsqD,gBAAgBigH,EAA0CtlE,QAAQkgE,mBAAmB,IAAK1jB,IACzO/vI,EAAoC9P,GAAGqgD,UAAUsoH,EAA0CtlE,QAAQ6/D,WAAY8G,EAAgBjiN,YAChI4gN,EAA0CtlE,QAAQ6/D,WAAW8G,EAAgBjiN,UAAY,IAE7F,IAAI24C,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAK+6M,EAA0CtlE,QAAQ6/D,aAC5J,MAAOxiK,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbulK,EAAWsC,EAA0CtlE,QAAQ6/D,WAAW7+M,GAC5EgkN,EAAU4B,cAAc5iL,EAAeg/K,EAAUxmB,EACrD,CACA,OAAO,CACX,EAEAwoB,EAAUyB,iBAAmB,SAAUziL,EAAe6iL,EAAe79M,EAAIwzL,EAAasqB,EAAYC,EAAWvjM,GAIzG,MAAMwjM,EAAQ,eACRC,EAAU,aACVC,EAAS,UACTC,EAAY,UAElB,KAAI3jM,EAAU,KAGd,GAAwB,MAApBwgB,EAAc6T,GAAY,CAC1B,IAAIsmD,EAAQmnH,EAA0CtlE,QAAQ2/D,mBAC1DyH,GAAgB,EAEhB1xM,GADYsuB,EAAciX,gBACpBjX,EAAckY,QACxBxmC,EAAIymC,OACJzmC,EAAI8mC,YAAcqqK,EAAcp7M,WAChCiK,EAAIqa,UAAY,EAChBra,EAAI0mC,YAAc,EAQlB,IAPA,IAAIyjD,EAAQ,IAAItpD,EAA0CwE,SACtDssK,EAAY,IAAI9wK,EAA0CwE,SAC1D0jD,EAAY,IAAIloD,EAA0CwE,SAC1D67E,GAAa,EACbxiB,EAAY79D,EAA0CqwD,SAASmM,YAAYx8D,EAA0CwE,SAASgvD,OAAOyyF,IACrI98F,EAAMnpD,EAA0CqwD,SAAS+H,eAAeyF,EAAWpwE,EAAc6W,KACjGysK,EAAQ/wK,EAA0CqwD,SAAS+H,eAAeyF,EAAWpwE,EAAcujL,IAC9FhjN,EAAI,EAAGA,EAAI45F,EAAO55F,IAAK,CAC5B,IAAIi5C,EAAM8nK,EAA0CtlE,QAAQ0hE,QAAQ14M,GAAIzE,GACpEssF,GAASxpF,KAAKoxC,MAAM6sK,EAA0CtlE,QAAQ0hE,QAAQ14M,GAAIzE,GAAGg0C,EAAG+sK,EAA0CtlE,QAAQ0hE,QAAQ14M,GAAIzE,GAAGuoC,GAAe,EAAVzlC,KAAK8Z,GAAS2lM,IAAyB,EAAVz/M,KAAK8Z,IAChMguC,EAAQ1C,EAAoC9P,GAAGyG,SAAUytC,GAAmB,EAAVxpF,KAAK8Z,IAAU,KACjFqmM,EAASr4J,EAAQ,IACjBA,EAAQ,IAAMi4J,IACd5pK,EAAMupK,EACNS,EAAS,GAEbH,EAAYC,EAAMxsK,UAAU0C,GAC5BqiD,EAAQH,EAAI5kD,UAAU0C,GAClB6pK,EAAU9uK,EAAI,IACVq+E,EACAA,GAAa,GAGblhH,EAAI2mC,YACJ3mC,EAAI0mC,YAAcorK,EAAShkM,EAC3B9N,EAAIgoC,OAAO+gD,EAAU3xD,EAAG2xD,EAAU14F,GAClC2P,EAAIioC,OAAOkiD,EAAM/yD,EAAG+yD,EAAM95F,GAC1B2P,EAAI+mC,WAGZgiD,EAAYoB,CAChB,CACAnqF,EAAIgnC,SACR,MAEI,GAAW,IAAP1zC,EAAU,CACNm1F,EAAQmnH,EAA0CtlE,QAAQ2/D,mBAC1DyH,GAAgB,EACJpjL,EAAciX,gBAC1B4kD,EAAQ,IAAItpD,EAA0CwE,SACtDssK,EAAY,IAAI9wK,EAA0CwE,SAC1D0jD,EAAY,IAAIloD,EAA0CwE,SAL9D,IAMI0sK,EAAY,IAAIjtE,EAAwCrgG,MAExDjvC,GADA0rH,GAAa,EACN,IAAIsuF,EAAuD1wF,eACtE,IAASjwH,EAAI,EAAGA,EAAI45F,EAAO55F,IAAK,CACxBi5C,EAAM8nK,EAA0CtlE,QAAQ0hE,QAAQ14M,GAAIzE,GAAGymF,OACvE6F,GAASxpF,KAAKoxC,MAAM+E,EAAIjF,EAAGiF,EAAI1Q,GAAe,EAAVzlC,KAAK8Z,GAAS2lM,IAAyB,EAAVz/M,KAAK8Z,IACtEguC,EAAQ1C,EAAoC9P,GAAGyG,SAAUytC,GAAmB,EAAVxpF,KAAK8Z,IAAU,KACjFqmM,EAASr4J,EAAQ,IAHrB,IAIIv6C,EAAQ4lI,EAAwCrgG,MAAMq4C,SAASrjC,EAAO03J,EAAcrkN,EAAGqkN,EAAchlN,EAAGglN,EAAcpjN,GACtH0rD,EAAQ,IAAMi4J,IAAkBxwF,IAChCp5E,EAAMjH,EAA0CwE,SAASsqD,gBAAgB0hH,EAAWvqB,GACpFgrB,EAAS,EACTr4J,EAAQ,IACRv6C,EAAMtG,EAAI,IACVm5M,EAAUn5M,EAAI,IACdpD,EAAK2wC,QAAQ4iD,EAAWjhD,EAAIwtC,OAAQy8H,EAAU9rK,SAAU/mC,EAAM+mC,UAC9D8rK,EAAUn5M,EAAI,EACdsG,EAAMtG,EAAI,EACVkvC,EAAM8nK,EAA0CtlE,QAAQ0hE,QAAQ14M,GAAIzE,GAAGymF,OACvEo8H,GAAgB,GAEpB5pK,EAAMjH,EAA0CwE,SAASsqD,gBAAgB7nD,EAAKg/I,GAC1E5lE,EACAA,GAAa,EAGb1rH,EAAK2wC,QAAQ4iD,EAAWjhD,EAAKiqK,EAAW7yM,GAE5C6pF,EAAYjhD,EACZiqK,EAAY7yM,EAAM+mC,QACtB,CACAzwC,EAAK6sC,UAAU/T,EAAe,EAAGw2G,EAAwC5gG,OAAOC,aAChF3uC,EAAKurH,OACT,KAAO,CACH,IAAIstF,EAAK,EACT,OAAQ/6M,GACJ,KAAK,EACD+6M,EAAKkD,EAAUC,EACf,MACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACDnD,EAAKoD,EACL,MACJ,QACIpD,EAAKiD,EACL,MAER,IAAIh3J,EAAS,EAAI,KAAO,GACpB03J,EAAKpC,EAA0CtlE,QAAQ0jE,wBAAwB16M,EAAIs8M,EAA0CtlE,QAAQw/D,OACrImI,EAAKrC,EAA0CtlE,QAAQ0jE,wBAAwB16M,EAAIs8M,EAA0CtlE,QAAQw/D,MAAQxvJ,GAC7IzpD,EAAIgwC,EAA0CwE,SAASgH,MAAMxL,EAA0CwE,SAASsqD,gBAAgBqiH,EAAIC,GAAK,EAAI33J,GAC7IuR,EAAW+jJ,EAA0CtlE,QAAQ8jE,wBAAwB4D,EAAInhN,EAAGw9M,GAChGiB,EAAU4C,yBAAyB5jL,EAAe6iL,EAAe79M,EAAIwzL,EAAasqB,EAAYC,EAAWxlJ,EAC7G,CAER,EAEAyjJ,EAAU4C,yBAA2B,SAAU5jL,EAAe6iL,EAAe79M,EAAIwzL,EAAaqrB,EAAad,EAAWe,GAClH,IAAI77L,EACJ,OAAQjjB,GACJ,KAAK,EAEGijB,EADAqkJ,EAA2C31E,SAASC,aAAar/D,uBAAyB,EAC5E+0I,EAA2C31E,SAASC,aAAar/D,uBAAyB,EAG1F,EAElB,MACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACDtP,EAAcqkJ,EAA2C31E,SAASC,aAAar/D,uBAC/E,MACJ,QACItP,EAAc,EACd,MAER,IAAI8mF,EAAcx8D,EAA0CwE,SAASgvD,OAAOyyF,GACjE,IAAPxzL,EACA+pG,EAAYr3F,IAAI4pM,EAA0CtlE,QAAQkgE,mBAAmB,KAEzE,KAAPl3M,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,KAAPA,GAC5C+pG,EAAYr3F,IAAI4pM,EAA0CtlE,QAAQkgE,mBAAmB,IAEzF,IAAI6H,EAAkBxxK,EAA0CwE,SAASsqD,gBAAgB0hH,EAAWvqB,GAChGtkB,EAAc3hI,EAA0CqwD,SAAS+H,eAAep4D,EAA0CqwD,SAAS+H,eAAem5G,EAAGxD,YAAa/tK,EAA0CqwD,SAASmM,YAAYA,IAAe/uE,EAAcw3F,aAClQmqF,EAA+ChqB,gBAAgBgB,wBAAwB34J,EAAe8jL,EAAGx5M,EAAI,SAAY2d,EAAa67L,EAAG7lN,EAAG6lN,EAAG7I,GAAI4H,EAAe3uC,EAAa6vC,EACnL,EAEA/C,EAAUgD,kBAAoB,SAAUhkL,EAAe0W,GAInD,IAHA,IAAIqtJ,EAAU/jK,EAAcqjH,cAExB2gD,GADSzxJ,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG,GAC9D,IAAIqyC,EAA0C8wD,SAAS,EAAG,EAAG,EAAG,IACtE9iG,EAAI,EAAGA,EAAI,EAAGA,IACnB,GAAIwjM,EAAQxjM,GAAGy2C,IAAIgtJ,GAAYttJ,EAAM,EACjC,OAAO,EAGf,OAAO,CACX,EAEAsqK,EAAU4B,cAAgB,SAAU5iL,EAAem/K,EAAU3mB,GACxC,IAAb2mB,EACA7M,EAAkD55E,WAAWsG,sBAAwB,GAGrFszE,EAAkD55E,WAAWsG,sBAAwB,KAEjFszE,EAAkD55E,WAAWuG,gBADhD,KAAbkgF,EAC+E3oE,EAAwCrgG,MAAMq4C,SAAS,IAAK,GAAI,IAAK,KAErEgoD,EAAwCrgG,MAAMq4C,SAAS,EAAG,EAAG,EAAG,IAGvJ,IAAIilF,EAASzzI,EAAcw3F,YACvBo8C,EAAa5zI,EAAco9G,gBAC3Bs2B,EAAoB1zI,EAAc2zI,2BAClCznJ,EAASo1L,EAA0CtlE,QAAQsgE,wBAAwB6C,GACvFmC,EAA0CtlE,QAAQ+3B,kBAAkB/zI,EAAem/K,EAAU3mB,GAAa,GAC1G,IAAIyrB,EAAc,EAIlB,GAHiB,IAAb9E,IACA8E,EAAc,GAEdjD,EAAUgD,kBAAkBhkL,EAAeikL,GAAc,CAE3CjkL,EAAcw3F,YACVx3F,EAAco9G,gBACPp9G,EAAc2zI,2BAFvC,IAGIzoF,EAAMo2H,EAA0CtlE,QAAQkgE,mBAAmB,GAAGl1H,OAC9EhlD,EAASs/K,EAA0CtlE,QAAQkgE,mBAAmBiD,GAAUn4H,OAC5FkE,EAAMuoF,EAAO38H,UAAUo0C,GACvBlpD,EAASyxI,EAAO38H,UAAU9U,GAC1BhC,EAAcs9G,UAAUm2B,GACxBzzI,EAAcq9G,cAAcu2B,GAC5B5zI,EAAcm0I,yBAAyBT,GACvC4tC,EAA0CtlE,QAAQsjE,8BAA8Bt/K,EAAem/K,EAAU3mB,GAAa,GACtH,IAAIz5D,EAAcxsF,EAA0CwE,SAASsqD,gBAAgBnW,EAAKlpD,GAC1F+8F,EAAY54B,YACZnmE,EAAckkL,gBAAgBnlF,GAC9BuzE,EAAkD55E,WAAWqG,YAAcxsF,EAA0CwE,SAASsqD,gBAAgBigH,EAA0CtlE,QAAQkgE,mBAAmB,GAAIl6K,GACvN,IAAIwqF,EAAMj6E,EAA0CwE,SAASsqD,gBAAgBigH,EAA0CtlE,QAAQkgE,mBAAmBiD,GAAW3mB,GAC7JhsE,EAAI1lB,SAAS9mE,EAAcgrE,gBAC3B,IAAI9vD,EAAOsxE,EAAI9rH,SACXyjN,EAAkB,EAAI9gN,KAAK26C,KAAY9xB,EAASgvB,EAAhB,IAA0B73C,KAAK8Z,GAAK,IACpEinM,EAAY,EAYhB,GAVIA,EADAD,EAAiB,KACL,EACLA,EAAiB,IACZ,EACLA,EAAiB,IACZ,EACLA,EAAiB,IACZ,EAEA,EAEC,KAAbhF,GAAmBiF,EAAY,EACnB93C,EAA2C31E,SAASC,aAAar/D,uBAEjF,GAAI6sL,EAAY,EAAG,CACf,IAAIC,EAAcrkL,EAAc2/F,SACf,IAAbw/E,GACwB,MAApBn/K,EAAc6T,KACd7T,EAAc2/F,UAAW,EAEzBqhF,EAAUsD,iBAAiBtkL,GAAe,EAAOkb,GACjDlb,EAAc2/F,SAAW0kF,GAG5BlF,IACDn/K,EAAc2/F,UAAW,GAE7BqhF,EAAUuD,YAAYvkL,EAAem/K,GACpB,IAAbA,IACwB,MAApBn/K,EAAc6T,IACd7T,EAAc2/F,UAAW,EAEzBqhF,EAAUsD,iBAAiBtkL,GAAe,EAAMkb,KAGhDlb,EAAc2/F,UAAW,EACzBqhF,EAAUwD,WAAWxkL,GACrBA,EAAc2/F,SAAW0kF,IAGjCrkL,EAAc2/F,SAAW0kF,CAC7B,MACI,GAAKlF,GAGA,GAAIA,EAAW,GAAkB,KAAbA,EAAiB,CACtC,IAAIjwM,EAAQ,IAAMoyM,EAA0CtlE,QAAQ+gE,iBAAiBoC,GACrFkC,EAA6C56H,YAAYG,gBAAgB5mD,EAAe,IAAIuS,EAA0CwE,SAAY1zC,KAAKC,IAAI,IAAMD,KAAKilF,IAAI,GAAKp5E,IAAQoyM,EAA0CtlE,QAAQghE,aAAamC,IAAW,EACrQ,MACK,GAAIgF,EAAiB,KAAO,CACzBj1M,EAAQ,IAAMoyM,EAA0CtlE,QAAQ+gE,iBAAiBoC,GACrFkC,EAA6C56H,YAAYG,gBAAgB5mD,EAAe,IAAIuS,EAA0CwE,SAAY1zC,KAAKC,IAAI,IAAMD,KAAKilF,IAAI,GAAKp5E,IAAQoyM,EAA0CtlE,QAAQghE,aAAamC,IAAW,EACrQ,OATIkC,EAA6C56H,YAAYG,gBAAgB5mD,EAAe,IAAIuS,EAA0CwE,SAAa,GAAKuqK,EAA0CtlE,QAAQ+gE,iBAAiBoC,GAAYmC,EAA0CtlE,QAAQghE,aAAamC,IAAW,EAW7T,CACAyC,EAAuDzmL,aAAa25I,MAAM90I,EAAe,GAAG,EAAOshL,EAA0CtlE,QAAQ2gE,gBAAgBwC,IAAW,GAAM,GACtLn/K,EAAcs9G,UAAUm2B,GACxBzzI,EAAcq9G,cAAcu2B,GAC5B5zI,EAAcm0I,yBAAyBT,EAC3C,EAEAstC,EAAUsD,iBAAmB,SAAUtkL,EAAeykL,EAAOppK,GACzD,GAAwC,MAApC2lK,EAAUa,oBAAoB,GAAY,CAC1Cb,EAAUc,WAAaziN,SAASkL,cAAc,OAC9C,IAAIs5H,EAAUm9E,EAAUc,WACxBj+E,EAAQM,YAAc,YACtB68E,EAAUc,WAAWxiN,IAAMoiN,EAA8C/pH,WAAW18D,UAAUi9D,eAAe,yBAC7G8oH,EAAUa,oBAAoB,GAAK,GACnCb,EAAUa,oBAAoB,GAAK,GACnC,IAWIrqK,EAXAktK,EAAW,KACXC,EAAUpyK,EAA0CwE,SAAS72C,QAAQwkN,EAAU,GAAIA,GACnFE,EAAWryK,EAA0CwE,SAAS72C,OAAOwkN,EAAU,GAAIA,GACnFG,EAAatyK,EAA0CwE,SAAS72C,QAAQwkN,EAAU,EAAGA,GACrFI,EAAcvyK,EAA0CwE,SAAS72C,OAAOwkN,EAAU,EAAGA,GAMrF9sG,GALSrlE,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG,GAC5DqyC,EAA0CwE,SAAS72C,QAAQwkN,EAAU,EAAG,GACzEnyK,EAA0CwE,SAAS72C,OAAO,EAAG,GAAIwkN,GAC9DnyK,EAA0CwE,SAAS72C,OAAO,EAAG,EAAGwkN,GACjEnyK,EAA0CwE,SAAS72C,OAAOwkN,EAAU,EAAG,GAC7E,GAEZltK,EAAa,GACb,IAAIutK,EAAQ,KACRt9I,EAAS,KACbjwB,EAAW90C,KAAK6vC,EAA0C4wD,gBAAgBe,cAAcygH,EAAS,EAAG,EAAGI,EAAOt9I,IAC9GjwB,EAAW90C,KAAK6vC,EAA0C4wD,gBAAgBe,cAAc0gH,EAAU,EAAG,EAAGG,EAAOt9I,IAC/GjwB,EAAW90C,KAAK6vC,EAA0C4wD,gBAAgBe,cAAc2gH,EAAY,EAAG,EAAGE,EAAOt9I,IACjHjwB,EAAW90C,KAAK6vC,EAA0C4wD,gBAAgBe,cAAc4gH,EAAa,EAAG,EAAGC,EAAOt9I,IAClH,IAAIu9I,EAAoB,GACxBA,EAAkBtiN,KAAK8+M,EAA2CyD,SAAS/kN,OAAO,EAAG,EAAG,IACxF8kN,EAAkBtiN,KAAK8+M,EAA2CyD,SAAS/kN,OAAO,EAAG,EAAG,IACxF,IAAIi6F,EAAQ,EACZ,MAAOA,KAAU,EAAG,CAChB,IAAI+qH,EAAU,GACV7rK,EAASoP,EAAoC9P,GAAGW,UAAU0rK,GAC9D,MAAO3rK,EAAOE,WAAY,CACtB,IAAIu4J,EAAMz4J,EAAOI,QACjBq4J,EAAIqT,qBAAqBD,EAAS1tK,EACtC,CACAwtK,EAAoBE,CACxB,CACA,IAAIE,EAAQ,IAAOL,EAAQ,KACvB7hG,EAASz6D,EAAoC9P,GAAGW,UAAU0rK,GAC9D,MAAO9hG,EAAO3pE,WAAY,CAClBu4J,EAAM5uF,EAAOzpE,QAAjB,IACImgE,EAAKpiE,EAAWs6J,EAAIxnM,GACpBuvG,EAAKriE,EAAWs6J,EAAIryM,GACpBq6G,EAAKtiE,EAAWs6J,EAAIn1M,GACxBqkN,EAAUa,oBAAoB,GAAGn/M,KAAK6+M,EAAkDxnG,eAAesrG,gBAAgBzrG,EAAIC,EAAIC,EAAIknG,EAAUc,WAAYlqG,EAAOwtG,GACpK,CACJ,CACA,GAAwB,MAApBplL,EAAc6T,GAAY,CAChB7T,EAAcgrE,eAAxB,IACI5iG,EAAO,IAAImqC,EAA0CwE,SACrDuuK,EAAa/yK,EAA0CqwD,SAAS+H,eAAep4D,EAA0CqwD,SAAS+K,WAAWtqG,KAAKoxC,MAAMzU,EAAcg1J,kBAAkBlsJ,EAAG9I,EAAcg1J,kBAAkBzgJ,IAAKvU,EAAc2zI,4BAC9O4xC,EAAKhzK,EAA0CqwD,SAAS+H,eAAe26G,EAAYtlL,EAAcy3F,YACjG0I,EAAM5tF,EAA0CqwD,SAAS+H,eAAe46G,EAAIvlL,EAAcg7F,kBAC1F+pF,EAAQ/kL,EAAckE,MACtBujC,EAASznC,EAAcmE,OAC3Bg8F,EAAIpiF,MAAMxL,EAA0CwE,SAAS72C,OAAO6kN,EAAQ,GAAIt9I,EAAS,EAAG,IAC5F04D,EAAI/vB,UAAU79D,EAA0CwE,SAAS72C,OAAO6kN,EAAQ,EAAGt9I,EAAS,EAAG,IAE/F,IADA,IAAI+9I,EAAK,EACAjlN,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAI6iH,EAAS36D,EAAoC9P,GAAGW,UAAU0nK,EAAUa,oBAAoB,IAC5F,MAAOz+F,EAAO7pE,WAAY,CAClBu4J,EAAM1uF,EAAO3pE,QACjBrxC,EAAOm9M,EAAGzuK,UAAUg7J,EAAIxnM,EAAEw5F,UAC1B0hH,EAAKp9M,EAAK1H,SACV,IAAIozC,EAAO0xK,EAAKnqK,EACZopK,IACA3wK,GAAQA,GAERA,IACAg+J,EAAItyL,QAAU,EACdsyL,EAAIh+J,KAAK9T,EAAckY,OAAQioF,GAEvC,CACAohF,EAAkDxnG,eAAe0rG,YAAclE,EAAkDxnG,eAAe0rG,UACpJ,CACJ,CAEJ,EAKAzE,EAAUwD,WAAa,SAAUxkL,GAC7BghL,EAAU0E,aACVpT,EAAkD55E,WAAWpiH,IAAI0pB,EAAeghL,EAAUgB,mBAAmB7yF,aAAc,KAAMmyF,EAA0CtlE,QAAQ2pE,cAAchuF,UAAW,GAAG,EAAOplF,EAA0CwE,SAASs0B,MACzQrrC,EAAc6T,GAAGo/E,WAAWqiC,EAA0Dj7C,MAAMunB,eAAgB,EAAGo/E,EAAUe,oBAC7H,EAEAf,EAAU0E,WAAa,WACnB,GAAoC,MAAhC1E,EAAUgB,mBAAd,CAGAV,EAA0CtlE,QAAQ2pE,cAAgBxE,EAAkD/pF,QAAQC,QAAQqqF,EAA8C/pH,WAAW18D,UAAUi9D,eAAe,yBACtN,IAAI0tH,EAAQ,MACRC,EAAQ,KACZ7E,EAAUgB,mBAAqB,IAAIf,EAAqD3yF,4BAA4B,KACpH0yF,EAAUe,oBAAsB,IAIhC,IAHA,IAAIxoG,EAAQynG,EAAUgB,mBAAmB1yF,OACrCw2F,EAAoB,EAAVziN,KAAK8Z,GAAS,IACxB2mB,EAAQ,EACHgF,EAAI,EAAGA,GAAK,IAAKA,GAAK,EAAG,CAC9B,IAAIi9K,EAAQj9K,EAAIg9K,EACZE,GAASl9K,EAAI,GAAKg9K,EACtBvsG,EAAMz1E,GAAS,IAAIyO,EAA0C4wD,gBAC7DoW,EAAMz1E,GAAOggE,SAAWvxD,EAA0CwE,SAAS72C,OAAQmD,KAAKgxC,IAAI0xK,GAASH,EAAQ,EAAIviN,KAAKixC,IAAIyxK,GAASH,GACnIrsG,EAAMz1E,GAAO8/D,GAAK,EAClB2V,EAAMz1E,GAAO+/D,GAAK,EAClB//D,IACAy1E,EAAMz1E,GAAS,IAAIyO,EAA0C4wD,gBAC7DoW,EAAMz1E,GAAOggE,SAAWvxD,EAA0CwE,SAAS72C,OAAQmD,KAAKgxC,IAAI0xK,GAASF,EAAQ,EAAIxiN,KAAKixC,IAAIyxK,GAASF,GACnItsG,EAAMz1E,GAAO8/D,GAAK,EAClB2V,EAAMz1E,GAAO+/D,GAAK,EAClB//D,IACAy1E,EAAMz1E,GAAS,IAAIyO,EAA0C4wD,gBAC7DoW,EAAMz1E,GAAOggE,SAAWvxD,EAA0CwE,SAAS72C,OAAQmD,KAAKgxC,IAAI2xK,GAASJ,EAAQ,EAAIviN,KAAKixC,IAAI0xK,GAASJ,GACnIrsG,EAAMz1E,GAAO8/D,GAAK,EAClB2V,EAAMz1E,GAAO+/D,GAAK,EAClB//D,IACAy1E,EAAMz1E,GAAS,IAAIyO,EAA0C4wD,gBAC7DoW,EAAMz1E,GAAOggE,SAAWvxD,EAA0CwE,SAAS72C,OAAQmD,KAAKgxC,IAAI2xK,GAASH,EAAQ,EAAIxiN,KAAKixC,IAAI0xK,GAASH,GACnItsG,EAAMz1E,GAAO8/D,GAAK,EAClB2V,EAAMz1E,GAAO+/D,GAAK,EAClB//D,GACJ,CACAk9K,EAAUgB,mBAAmBzyF,QAjC7B,CAkCJ,EAEAyxF,EAAUuD,YAAc,SAAUvkL,EAAem/K,GAC7C,IAAIzC,EAAasE,EAAUiB,4BAA4B9C,GACnDn9K,EAASywK,EAA+CjxG,iBAAiBzhE,kBAAkB28K,GACjF,MAAV16K,IACAA,EAASywK,EAA+CjxG,iBAAiBzhE,kBAAkB,qBAEjF,MAAViC,GACAhC,EAAcu3D,aAAav1D,EAAQ,IAK3C,GAEA,EAAG0mB,EAA4CzS,cAAc,YAAa,CAAC+qK,EAAW,CAAC,EAAG,MAGnF,EAED;;;8BAIA,CAAEtkN,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC4vJ,SAAU,IAAM,IAElB,IAAIzkG,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzF0uD,EAAkD,4BAA+C,2BACjGrc,EAA4C,sBAAyC,qBACrFkrH,EAA+C,yBAA4C,wBAC3FC,EAA+C,yBAA4C,wBAC3FC,EAAwC,kBAAqC,iBAC7EC,EAA+C,yBAA4C,wBAC3F9mE,EAA4C,sBAAyC,qBACrF+mE,EAAwC,kBAAqC,iBAsBtG,SAASn5D,IACLnvJ,KAAK05G,YAAa,EAClB15G,KAAK2lG,WAAY,EACjB3lG,KAAK+hJ,cAAgB,KACrB/hJ,KAAKuoN,qBAAuB,KAC5BvoN,KAAKwoN,SAAW,GAChBxoN,KAAK25G,oBAAsB,EAC3B35G,KAAKsiJ,eAAgB,EACrBgmE,EAAsC1uG,KAAKp5G,KAAKR,KACpD,CAEAmvJ,EAAShtJ,OAAS,SAAU03G,EAAOqqC,EAAIC,EAAIrqC,EAAS5uB,GAChD,IAAIqB,EAAO,IAAI4iE,EAqBf,OApBA5iE,EAAKrB,OAASA,EACdqB,EAAKstB,MAAQA,EACbttB,EAAKwtB,MAAQmqC,EACb33D,EAAKytB,MAAQmqC,EACb53D,EAAKutB,QAAUA,EACfvtB,EAAKmtB,YAAcI,EAAQG,gBACvB1tB,EAAKwtB,QAAUmqC,GACf1pD,MAAM,OAEJsf,EAAQ+3C,iBACVtlE,EAAKk8H,oBAAoB3uG,EAAQ+3C,kBAG5B/3C,EAAQ72E,kBAGTspD,EAAKk8H,oBAAoB,SAFzBl8H,EAAKk8H,oBAAoB,QAKjCl8H,EAAK2tB,wBACE3tB,CACX,EAEA,IAAIm8H,EAAY,CACZxuG,sBAAuB,WACnBl6G,KAAK2oN,qBACL3oN,KAAK26G,QAAU36G,KAAK4oN,OAAO,GAAW7iH,SAAS9c,OAC/CjpF,KAAK46G,YAAc56G,KAAK4oN,OAAO,GAAW7iH,SAAS9c,OACnDjpF,KAAK66G,SAAW76G,KAAK4oN,OAAO,GAAW7iH,SAAS9c,OAChDjpF,KAAK86G,WAAa96G,KAAK4oN,OAAO,GAAW7iH,SAAS9c,OAClDjpF,KAAK6oN,YACT,EAEAnjE,WAAY,SAAUzjH,EAAe25E,EAAMn6F,EAAS8zE,GAChD,GAAwB,MAApBtzD,EAAc6T,SAGd,IAAK8lE,EAAM,CACP,IAAItgE,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwoN,UACnE,MAAOltK,EAAOE,WAAY,CACtB,IAAI8/F,EAAOhgG,EAAOI,QACd6/F,EAAS,GAAKj2I,KAAKo8D,IAAI,IAAK45E,EAAKK,WACrCusE,EAA6Cx/H,YAAYG,gBAAgB5mD,EAAeq5G,EAAKv1C,SAAUw1C,EAAQD,EAAKzkG,KAAK,EAC7H,CACJ,CAER,EAEA6vG,aAAc,WACL1mJ,KAAK4mJ,aAAgB5mJ,KAAK2kJ,gBAC3B3kJ,KAAK4mJ,aAAc,EACnB5mJ,KAAKo6J,WAAa,IAAI7Y,EAA0ClnD,QAAQguH,EAA6CzuH,WAAW18D,UAAU6lF,QAAQ/iH,KAAK8iJ,UAAW,IAClK9iJ,KAAKo6J,WAAW9/D,cAAgB5vC,EAAoC9P,GAAGxlC,KAAK,kBAAmBpV,MAC/FA,KAAKo6J,WAAW9uJ,OAExB,EAEA+vF,gBAAiB,WACuB,IAAhCr7F,KAAKo6J,WAAW3tE,aAChBzsF,KAAK4mJ,aAAc,EACnB5mJ,KAAK2kJ,eAAgB,EACrB3kJ,KAAK4kJ,SAAU,EACf5kJ,KAAK8mJ,gBAAiB,GACtB,EAAGztC,EAAgD0tC,0BAA0B/mJ,KAAK+lJ,WAAW,IACtD,IAAhC/lJ,KAAKo6J,WAAW3tE,cACvBzsF,KAAKgnJ,UAAW,EAChBhnJ,KAAK4mJ,aAAc,EACnB5mJ,KAAK4kJ,SAAU,EACf5kJ,KAAK2kJ,cAAgB3kJ,KAAKgnJ,WAAahnJ,KAAKwzM,WAAaxzM,KAAK8oN,SAC9D9oN,KAAK8mJ,gBAAiB,GACtB,EAAGztC,EAAgD0tC,0BAA0B/mJ,KAAK+lJ,WAAW,GAC7F/lJ,KAAK+oN,YAAY/oN,KAAKo6J,WAAWz/D,WAEzC,EAEAouH,YAAa,SAAUthN,GACnB,IAAIozF,EAAOnwC,EAAoC9P,GAAGq+C,cAAcxxF,EAAM,OAAQ,MAAM0hF,MAAM,MACtF6/H,GAAW,EAEX1tE,EAAO,KACPhgG,EAASoP,EAAoC9P,GAAGW,UAAUs/C,GAC9D,MAAOv/C,EAAOE,WAAY,CACtB,IAAIs/C,EAAMx/C,EAAOI,QACbstK,EACAA,GAAW,EAGXt+J,EAAoC9P,GAAG+gD,KAAKb,GAAKn4F,OAAS,IAC1D24I,EAAO,IAAI8sE,EAAsC1sE,KAAK5gD,GACtDwgD,EAAKv1C,SAAWoiH,EAA6C3vK,YAAYwgD,YAAYsiD,EAAKlkG,GAAIkkG,EAAKrwG,IAAK,GACxGjrC,KAAKwoN,SAAS7jN,KAAK22I,GAE3B,CACJ,EAEA6L,cAAe,SAAUpoG,EAAKG,GAC1B,IAAKl/C,KAAK65G,MACN,OAAO,EAEX,GAAmB,IAAf75G,KAAK65G,MACL,OAAK36D,GAAO,GAAKA,GAAO,KAASl/C,KAAK+5G,OAAwB,IAAf/5G,KAAKg6G,QAG/C96D,EAAM,IAAMA,GAAO,KAAwB,IAAfl/C,KAAK+5G,OAA8B,IAAf/5G,KAAKg6G,QAGrD96D,EAAM,GAAKA,IAAQ,KAASl/C,KAAK+5G,QAAU/5G,KAAKg6G,OAGhD96D,GAAO,IAAMA,IAAQ,KAAwB,IAAfl/C,KAAK+5G,QAAgB/5G,KAAKg6G,QAKjE,IAAKh6G,KAAKwzM,UAA4B,MAAhBxzM,KAAKyzM,QACvB,OAAO,EAEX,IAAItmF,EAAYg7F,EAA6C3vK,YAAYq3C,eAAe9wC,EAAKG,GACzF0mD,EAAM5lG,KAAKonJ,qBAAqBpnJ,KAAK26G,QAAQ1xB,OAAQjpF,KAAK66G,SAAS5xB,OAAQkkC,GAC3Er9B,EAAQ9vF,KAAKonJ,qBAAqBpnJ,KAAK66G,SAAS5xB,OAAQjpF,KAAK46G,YAAY3xB,OAAQkkC,GACjFvc,EAAS5wG,KAAKonJ,qBAAqBpnJ,KAAK46G,YAAY3xB,OAAQjpF,KAAK86G,WAAW7xB,OAAQkkC,GACpFv9B,EAAO5vF,KAAKonJ,qBAAqBpnJ,KAAK86G,WAAW7xB,OAAQjpF,KAAK26G,QAAQ1xB,OAAQkkC,GAClF,SAAIvnB,GAAO9V,GAAS8gB,GAAUhhB,EAIlC,EAEAw3D,qBAAsB,SAAU9iB,EAAMC,EAAMC,GACxCF,EAAKl8B,YACLm8B,EAAKn8B,YACL,IAAI/uD,EAAQ2jD,EAA0ChkD,SAASK,MAAMirF,EAAMC,GACvEtrF,EAAM+jD,EAA0ChkD,SAASC,IAAII,EAAOmrF,GACxE,OAAOvrF,EAAM,CACjB,EAEA0vK,mBAAoB,WAQhB,GAPA3oN,KAAK+hJ,cAAgB,GACrB/hJ,KAAKuoN,qBAAuB,IAAI1mN,MAAM,GACtC7B,KAAKuoN,qBAAqB,GAAK,GAC/BvoN,KAAKuoN,qBAAqB,GAAK,GAC/BvoN,KAAKuoN,qBAAqB,GAAK,GAC/BvoN,KAAKuoN,qBAAqB,GAAK,GAC/BvoN,KAAK4oN,OAAS,IAAI/mN,MAAM,GACpB7B,KAAK65G,MAAQ,EAAG,CACG,MAAf75G,KAAKkrF,SACLlrF,KAAKkrF,QAAS,EAAGmuB,EAAgD+rC,kBAAkBplJ,KAAK65G,MAAQ,EAAG75G,KAAK+5G,MAAQ,EAAG/5G,KAAKg6G,MAAQ,EAAGh6G,KAAK85G,QAAS,OAErJ,IAAI5uB,EAASlrF,KAAKkrF,OACd+9H,EAASjpN,KAAK+5G,MAAQ,EACtBmvG,EAASlpN,KAAKg6G,MAAQ,EACtBh6G,KAAK65G,MAAQ,EACb75G,KAAK2lG,UAAYza,EAAOya,UAGxB3lG,KAAK2lG,UAA8C,KAAtB,IAAXsjH,EAA0B,IAAXC,GAErClpN,KAAK4oN,OAAO,GAAa19H,EAAO09H,OAAOK,EAAS,EAAIC,GAAQjgI,OAC5DjpF,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,EAAIC,GAASh+H,EAAO09H,OAAOK,EAAS,EAAI,EAAIC,IAC7GlpN,KAAK4oN,OAAO,GAAa19H,EAAO09H,OAAOK,EAAS,EAAI,EAAIC,GAAQjgI,OAChEjpF,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,EAAIC,GAASh+H,EAAO09H,OAAOK,EAAS,GAAKC,EAAS,KAC/GlpN,KAAK2lG,UACL3lG,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,EAAIC,GAASh+H,EAAO09H,OAAOK,EAAS,EAAI,GAAKC,EAAS,KAGvHlpN,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,EAAI,EAAIC,GAASh+H,EAAO09H,OAAOK,EAAS,GAAKC,EAAS,KAE3HlpN,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,EAAI,EAAIC,GAASh+H,EAAO09H,OAAOK,EAAS,EAAI,GAAKC,EAAS,KAC3HlpN,KAAK4oN,OAAO,GAAa19H,EAAO09H,OAAOK,EAAS,GAAKC,EAAS,IAAIjgI,OAClEjpF,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,GAAKC,EAAS,IAAKh+H,EAAO09H,OAAOK,EAAS,EAAI,GAAKC,EAAS,KAC7HlpN,KAAK4oN,OAAO,GAAa19H,EAAO09H,OAAOK,EAAS,EAAI,GAAKC,EAAS,IAAIjgI,OACtEjpF,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,GAAMwT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,GAAMuT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,GAAMwT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,GAAMuT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,GAAMuT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,GAAMwT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,cACpF,MACIjmG,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,GAAI,EAAG,EAAG,EAAG,GACvGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,EAAG,EAAG,EAAG,GAAK,GACxGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,GAAI,EAAG,EAAG,EAAG,GACvGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,QAAQ,EAAG,EAAG,EAAG,EAAG,IACvGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,EAAG,EAAG,EAAG,GAAK,IACxGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,EAAG,EAAG,EAAG,EAAG,IACtGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,GAAI,EAAG,EAAG,EAAG,GACvGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,EAAG,GAAI,EAAG,GAAK,GACzGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,GAAI,EAAG,EAAG,EAAG,EAE/G,EAEAgnN,YAAa,SAAUC,EAAwBC,GAC3C,IAAIC,EAAKtsH,EAA0ChkD,SAAS02C,KAAK05H,EAAuBrjH,SAAUsjH,EAAyBtjH,SAAU,IACjIwjH,EAAOvsH,EAA0C6C,SAASnQ,KAAKsN,EAA0C6C,SAAS19F,OAAOinN,EAAuBvjH,GAAIujH,EAAuBtjH,IAAK9I,EAA0C6C,SAAS19F,OAAOknN,EAAyBxjH,GAAIwjH,EAAyBvjH,IAAK,IAEzS,OADAwjH,EAAGlhH,YACIpL,EAA0CoI,gBAAgBY,UAAUsjH,EAAIC,EAAKx+K,EAAGw+K,EAAKvlN,EAChG,EAEAm3G,eAAgB,SAAUl5E,GACtB,OAAIjiC,KAAK4zM,kBAGT5zM,KAAK4zM,iBAAkB,EACvB0U,EAAsC1uG,KAAKt5G,UAAU66G,eAAe36G,KAAKR,KAAMiiC,KAHpE,CAKf,EAEA2jG,QAAS,SAAU2iB,GACf+/D,EAAsC1uG,KAAKt5G,UAAUslI,QAAQplI,KAAKR,KAAMuoJ,GAC9C,MAAtBvoJ,KAAK+hJ,gBACL/hJ,KAAK+hJ,cAAgB,MAEQ,MAA7B/hJ,KAAKuoN,uBACLvoN,KAAKuoN,qBAAuB,MAEhCvoN,KAAKsiJ,eAAgB,EACrBtiJ,KAAKgoJ,SAAW,IACpB,IAGJ,EAAGr9F,EAA4CzS,cAAc,WAAY,CAACi3G,EAAUu5D,EAAWJ,EAAsC1uG,MAG9H,EAED;;;6BAIA,CAAEj7G,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCiqN,SAAU,IAAM,IAElB,IAAI9+J,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzF8+J,EAAiD,2BAA8C,0BAcxH,SAASD,IAELxpN,KAAKs6E,MAAQ,EAGbt6E,KAAK+zD,IAAM,CACf,CAEAy1J,EAASrnN,OAAS,SAAUm4E,EAAOvmB,GAC/B,IAAIw4B,EAAO,IAAIi9H,EAGf,OAFAj9H,EAAKjS,MAAQA,EACbiS,EAAKx4B,IAAMA,EACJw4B,CACX,EAEA,IAAIm9H,EAAY,CACZC,eAAgB,WACZ3pN,KAAKs6E,MAAQmvI,EAA+C76F,aAAaC,QAAQ7uH,KAAKs6E,MAAO,EAAIh1E,KAAK8Z,IAClGpf,KAAKs6E,MAAQh1E,KAAK8Z,KAClBpf,KAAK+zD,KAAOzuD,KAAK8Z,GACjBpf,KAAKs6E,MAAQ,EAAIh1E,KAAK8Z,GAAKpf,KAAKs6E,MAExC,EAEA8tB,UAAW,WACPpoG,KAAK2pN,iBACL3pN,KAAK+zD,IAAM01J,EAA+C76F,aAAaC,QAAQ7uH,KAAK+zD,IAAK,EAAIzuD,KAAK8Z,GACtG,EAEA1V,SAAU,WACN,IAAInH,EAAI,IAAImoD,EAAoC9P,GAAG24C,cAMnD,OALAhxF,EAAEoxF,OAAO,QACTpxF,EAAEoxF,OAAO3zF,KAAKs6E,OACd/3E,EAAEoxF,OAAO,KACTpxF,EAAEoxF,OAAO3zF,KAAK+zD,KACdxxD,EAAEoxF,OAAO,KACFpxF,EAAEmH,UACb,IAGJ,EAAGihD,EAA4CzS,cAAc,WAAY,CAACsxK,EAAUE,EAAW,MAGxF,EAED;;;mCAIA,CAAE/qN,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCqqN,oBAAqB,IAAM,EAC3BC,cAAe,IAAM,IAEvB,IAAIn/J,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFnW,EAA4C,sBAAyC,qBACrFqhD,EAAgD,0BAA6C,yBAC7FuvF,EAAkD,4BAA+C,2BACjG0kC,EAA4C,sBAAyC,qBACrF1xE,EAA4D,sCAAyD,qCACrHm8D,EAAoD,8BAAiD,6BACrGwV,EAAqD,+BAAkD,8BACvGtV,EAAyC,mBAAsC,kBAC/EuV,EAAgD,yBAA4C,wBAC5FC,EAA6C,sBAAyC,qBACtF1G,EAA4C,qBAAwC,oBACpFC,EAAoD,6BAAgD,4BACpGj1C,EAA6C,sBAAyC,qBACtFC,EAA0D,mCAAsD,kCAChH07C,EAA6D,sCAAyD,qCACtHC,EAAyD,kCAAqD,iCA4BvI,SAASP,IACL5pN,KAAKoqN,SAAU,CACnB,CAEA,IAAIC,EAAuB,CAAC,EAO5B,SAASR,IACL7pN,KAAKomC,OAAS,EACdpmC,KAAKmmC,MAAQ,EACbnmC,KAAK4hI,UAAW,EAChB5hI,KAAKsqN,WAAa,IAAI91K,EAA0CwE,SAChEh5C,KAAKm9H,OAAQ,EACbn9H,KAAKuqN,UAAY,EACjBvqN,KAAKwqN,UAAY,EACjBxqN,KAAKyqN,eAAiB,QACtBzqN,KAAK0qN,aAAe,KACpB1qN,KAAK2qN,UAAY,KACjB3qN,KAAK4sC,WAAa,IAAIm9K,EAAmD/8H,iBACzEhtF,KAAK+9K,aAAe,IAAIgsC,EAAmD/8H,iBAC3EhtF,KAAKuiD,IAAM,EACXviD,KAAK4qN,GAAK,EACV5qN,KAAK6qN,UAAY,EACjB7qN,KAAK8qN,SAAW,EAChB9qN,KAAK+qN,oBAAsB,KAC3B/qN,KAAKgrN,oBAAsB,KAC3BhrN,KAAKirN,4BAA8B,GACnCjrN,KAAKkrN,cAAgB,EACrBlrN,KAAKmrN,eAAiB,EACtBnrN,KAAKorN,WAAY,EACjBprN,KAAKqrN,gBAAkB72K,EAA0CqwD,SAAS1iG,QAAQ,aAAe,aAAe,YAAc,EAAG,YAAc,aAAe,UAAY,EAAG,aAAe,YAAc,YAAc,EAAG,EAAG,EAAG,EAAG,GACpOnC,KAAKsrN,gBAAiB,EACtBtrN,KAAKurN,qBAAsB,EAC3BvrN,KAAKwrN,qBAAuB,IAAIzB,EAAmD/8H,iBACnFhtF,KAAKyrN,cAAgB,IAAIj3K,EAA0CwE,SACnEh5C,KAAK0rN,UAAapmN,KAAK8Z,GAAK,EAC5Bpf,KAAK2rN,eAAiBrmN,KAAK8Z,GAAK,EAChCpf,KAAK4rN,UAAY,EACjB5rN,KAAK6rN,eAAgB,EACrB7rN,KAAK8rN,SAAW,IAAIjqN,MAAM,GAC1B7B,KAAK+rN,mBAAqBtX,EAAuC58J,OAAOq5C,YACxElxF,KAAKgsN,gBAAkBvX,EAAuC58J,OAAOq5C,YACrElxF,KAAKisN,aAAe,IAAIz3K,EAA0CwE,SAClEh5C,KAAKksN,eAAiBzX,EAAuC58J,OAAOC,YACpE93C,KAAKmsN,aAAe,IAAI33K,EAA0CwE,SAClEh5C,KAAKosN,qBAAuB3X,EAAuC58J,OAAOq5C,YAC1ElxF,KAAKqsN,wBAA0B,IAAI73K,EAA0CwE,SAC7Eh5C,KAAKssN,uBAAyB,EAC9BtsN,KAAKusN,yBAA2B,IAAI/3K,EAA0CwE,SAC9Eh5C,KAAKwsN,qBAAsB,EAC3BxsN,KAAKysN,mBAAoB,EACzBzsN,KAAKitG,eAAiB,IAAIz4D,EAA0CwE,SACpEh5C,KAAK0sN,UAAY,OACjB,IAAK,IAAIlqN,EAAI,EAAGA,EAAI,EAAGA,IACnBxC,KAAK8rN,SAAStpN,GAAK,IAAIgyC,EAA0CswD,OAAO,EAAG,EAAG,EAAG,EAEzF,EAtDA,EAAGn6C,EAA4CzS,cAAc,sBAAuB,CAAC0xK,EAAqBS,EAAsB,OAwDhIR,EAAc8C,KAAO,EAErB9C,EAAc1nN,OAAS,SAAUg4C,GAC7B,IAAIoyC,EAAO,IAAIs9H,EAIf,OAHAt9H,EAAKpyC,OAASA,EACdoyC,EAAK3/C,WAAWlQ,KAAO,IACvB6vD,EAAK3/C,WAAW7tC,OAAS,MAClBwtF,CACX,EAEAs9H,EAAc+C,kBAAoB,SAAUnqM,EAAOo3F,GAC/C,IAAIgzG,EAAO,EACX,OAAQpqM,EAAMw6G,kBACV,KAAKgtF,EAA2CnrM,eAAeqtI,SAC3D0gE,EAAOvnN,KAAKo8D,IAAI,EAAGm4C,GACnB,MACJ,KAAKowG,EAA2CnrM,eAAestI,gBAC3DygE,EAAQvnN,KAAKo8D,IAAI,EAAGm4C,IAAU,IAAMp3F,EAAM2gB,uBAC1C,MACJ,KAAK6mL,EAA2CnrM,eAAe+nF,QAC3DgmH,EAAOvnN,KAAKo8D,IAAI,EAAGm4C,GACnB,MACJ,KAAKowG,EAA2CnrM,eAAewtI,UAC3DugE,EAAO,EACP,MACJ,KAAK5C,EAA2CnrM,eAAe2tI,QAC3DogE,EAAO,EAAIvnN,KAAKo8D,IAAI,EAAGm4C,GACvB,MACJ,QACIgzG,EAAOvnN,KAAKo8D,IAAI,EAAGm4C,GACnB,MAKR,OAHIgzG,IAASjvG,OAAOC,oBAChBgvG,EAAO,GAEJA,CACX,EAEAhD,EAAciD,kBAAoB,SAAUrqM,EAAOo3F,GAC/C,IAAIkzG,EAAO,EACX,OAAQtqM,EAAMw6G,kBACV,KAAKgtF,EAA2CnrM,eAAe0tI,QAC/D,KAAKy9D,EAA2CnrM,eAAeutI,MAC3D0gE,EAAOznN,KAAKo8D,IAAI,EAAGm4C,GACnB,MACJ,KAAKowG,EAA2CnrM,eAAeqtI,SAC3D4gE,EAAOznN,KAAKo8D,IAAI,EAAGm4C,GAASnvD,EAAoC9P,GAAGyG,SAAU5+B,EAAM2gB,sBAAwB,KAC3G,MACJ,KAAK6mL,EAA2CnrM,eAAestI,gBAC3D2gE,EAAOznN,KAAKo8D,IAAI,EAAGm4C,GAASnvD,EAAoC9P,GAAGyG,SAAU,IAAM5+B,EAAM2gB,uBACzF,MACJ,KAAK6mL,EAA2CnrM,eAAe+nF,QAEvDkmH,EAD4B,IAA5BtqM,EAAMmvI,kBACsB,EAArBtsJ,KAAKo8D,IAAI,EAAGm4C,GAGZv0G,KAAKo8D,IAAI,EAAGm4C,GAEvB,MACJ,KAAKowG,EAA2CnrM,eAAeytI,SAC3DwgE,EAAO,EACP,MACJ,KAAK9C,EAA2CnrM,eAAewtI,UAC3DygE,EAAO,EACP,MACJ,KAAK9C,EAA2CnrM,eAAe2tI,QAC3DsgE,EAA4B,EAArBznN,KAAKo8D,IAAI,EAAGm4C,GACnB,MACJ,QACIkzG,EAA4B,EAArBznN,KAAKo8D,IAAI,EAAGm4C,GACnB,MAER,OAAOkzG,CACX,EAEA,IAAIC,EAAiB,CACjB5yK,KAAM,WACa,MAAXp6C,KAAK81C,IAEL91C,KAAKm6C,OAAOC,MAEpB,EAEAO,QAAS,WACU,MAAX36C,KAAK81C,IAEL91C,KAAKm6C,OAAOQ,SAEpB,EAEA+5E,MAAO,WACY,MAAX10H,KAAK81C,IACL91C,KAAK81C,GAAGm3K,SAAS,EAAG,EAAGviK,EAAoC9P,GAAGyG,SAASrhD,KAAKmmC,OAAQukB,EAAoC9P,GAAGyG,SAASrhD,KAAKomC,SACzIpmC,KAAK81C,GAAG4+E,MAAM0jB,EAA0D97B,MAAMqsB,iBAAmByP,EAA0D97B,MAAMqtB,oBAEjK3pI,KAAKm6C,OAAOC,OACZp6C,KAAKm6C,OAAOK,UAAY,QACxBx6C,KAAKm6C,OAAOoyE,SAAS,EAAG,EAAGvsH,KAAKmmC,MAAOnmC,KAAKomC,QAC5CpmC,KAAKm6C,OAAOQ,UAEpB,EAEAzB,cAAe,WACX,OAAOl5C,KAAKsqN,UAChB,EAEAl6H,OAAQ,WACJ,QAAW,KAAOpwF,KAAK4sC,WAAWsS,IAAM,MAAQ,GAAM,GAAM,IAAM,EACtE,EAEAguK,YAAa,SAAUliL,GACnB,OAAO,IAAOA,EAAK,GAAK,IAAO,GACnC,EAEAqlD,QAAS,WACL,OAAOrwF,KAAK4sC,WAAWmS,GAC3B,EAEAq6C,aAAc,WACV,OAAOp5F,KAAKuqN,SAChB,EAEA3xK,aAAc,WACV,OAAO54C,KAAKwqN,SAChB,EAEA2C,aAAc,SAAUvsN,GAEpB,OADAZ,KAAKwqN,UAAY5pN,EACVA,CACX,EAEA84H,SAAU,WACN,OAAO15H,KAAKotN,KAChB,EAEAC,SAAU,SAAUzsN,GAGhB,OAFAZ,KAAKotN,MAAQxsN,EACbZ,KAAK6rN,eAAgB,EACdjrN,CACX,EAEA0sN,aAAc,WACV,OAAOttN,KAAKutN,SAChB,EAEAjmD,aAAc,SAAU1mK,GAEpB,OADAZ,KAAKutN,UAAY3sN,EACVA,CACX,EAEAq8H,eAAgB,WACZ,OAAOj9H,KAAKqtJ,WAChB,EAEA0F,eAAgB,SAAUnyJ,GAGtB,OAFAZ,KAAKqtJ,YAAczsJ,EACnBZ,KAAK6rN,eAAgB,EACdjrN,CACX,EAEA64H,UAAW,WACP,OAAOz5H,KAAKwtN,MAChB,EAEAjuE,UAAW,SAAU3+I,GAGjB,OAFAZ,KAAKwtN,OAAS5sN,EACdZ,KAAK6rN,eAAgB,EACdjrN,CACX,EAEA6sN,kBAAmB,WAEf,IAAIjoF,EAAM,KACV,OAAOA,CACX,EAEA6Z,cAAe,WACX,OAAOr/I,KAAK0tN,UAChB,EAEApuE,cAAe,SAAU1+I,GAErB,OADAZ,KAAK0tN,WAAa9sN,EACXA,CACX,EAEAg1K,yBAA0B,WACtB,OAAO51K,KAAK2tN,qBAChB,EAEAv3C,yBAA0B,SAAUx1K,GAEhC,OADAZ,KAAK2tN,sBAAwB/sN,EACtBA,CACX,EAEAm1K,kBAAmB,WACf,OAAO/1K,KAAKyqN,cAChB,EAEAp0C,kBAAmB,SAAUz1K,GAEzB,OADAZ,KAAKyqN,eAAiB7pN,EACfA,CACX,EAEAgtN,gBAAiB,WACb,OAAO5tN,KAAK0qN,YAChB,EAEAxxB,gBAAiB,SAAUt4L,GAKvB,OAJa,MAATA,IACAZ,KAAK0qN,aAAe9pN,EACpBZ,KAAK81C,GAAGopF,YAAYkZ,EAA0D97B,MAAM6iB,WAAYn/H,KAAK0qN,aAAa9wF,YAE/Gh5H,CACX,EAEAitN,SAAU,SAAUvuL,GAChB,OAASh6B,KAAKkjD,IAAIxoD,KAAK4sC,WAAWmS,IAAM/+C,KAAK+9K,aAAah/H,KAAO,OAASz5C,KAAKkjD,IAAIxoD,KAAK4sC,WAAWsS,IAAMl/C,KAAK+9K,aAAa7+H,KAAO,OAAS55C,KAAKkjD,IAAIxoD,KAAK4sC,WAAWlQ,KAAO18B,KAAK+9K,aAAarhJ,MAAQ,OAA4B,MAAlB18B,KAAK2qN,SACxN,EAEAmD,WAAY,SAAU7xG,GAAW,EAEjClvE,uBAAwB,WACpB,OAAO/sC,KAAK+qN,mBAChB,EAEAvnL,uBAAwB,SAAU5iC,GAC9B,IAAImtN,EAA8C,MAA5B/tN,KAAK+qN,qBAAwC,MAATnqN,GAAkBZ,KAAK+qN,oBAAoB9nL,oBAAsBriC,EAAMqiC,kBAQjI,OAPAjjC,KAAK+qN,oBAAsBnqN,EAEvBmtN,IAEAl4H,EAA8C4N,iBAAiBuqH,cAC/Dn4H,EAA8C4N,iBAAiBwqH,WAAWjuN,OAEvEY,CACX,EAEAssC,uBAAwB,WACpB,OAAOltC,KAAKgrN,mBAChB,EAEAkD,uBAAwB,SAAUttN,GAE9B,OADAZ,KAAKgrN,oBAAsBpqN,EACpBA,CACX,EAEAutN,yBAA0B,WACtB,OAAOnuN,KAAKirN,2BAChB,EAEA9oL,yBAA0B,SAAUC,EAAUC,EAAO+rL,GACjD,IAAIzjG,EAAQ3qH,KAERyiB,EAAQ,IAAIynM,EAA2DrgE,wBACvEwkE,EAAmB,WACnB5rM,EAAMooI,sBAAsBzoH,EAAS0F,qBAAqBqiH,yBAC1Dx/B,EAAM2jG,qBAAqBlsL,EAAUC,EAAO5f,EAAO2rM,EAAY,EACnE,EACqC,MAAjChsL,EAAS0F,sBACT1F,EAASgtH,oBAAmB,EAAGv5D,EAA8C+N,uBAAuBxhE,IACpGA,EAAS0F,qBAAqBijH,4BAA4BsjE,IAClB,MAAjCjsL,EAAS0F,sBAAgC1F,EAAS0F,qBAAqBuiH,uBAC9EgkE,IAEAjsL,EAAS0F,qBAAqBijH,4BAA4BsjE,EAElE,EAEAC,qBAAsB,SAAUlsL,EAAUC,EAAOokH,EAAyB2nE,EAAY5rN,GAMlF,IALA,IAAImoH,EAAQ3qH,KAER+sN,EAAOlD,EAAciD,kBAAkB1qL,EAAUA,EAASkvH,iBAC1Du7D,EAAOhD,EAAc+C,kBAAkBxqL,EAAUA,EAASkvH,iBAC1Di9D,GAA0B,EACrBxjL,EAAI,EAAGA,EAAIgiL,EAAMhiL,IACtB,IAAK,IAAI/mC,EAAI,EAAGA,EAAI6oN,EAAM7oN,IAAK,CAC3B,IAAIwqN,GAAO,EAAGppC,EAAgDhgC,kBAAkBhjH,EAASkvH,gBAAiBvmH,EAAG/mC,EAAGo+B,EAAU,MAC1H,GAAY,MAARosL,EAAc,CACd,IAAIC,EAAuB,EAAOjoE,cAAcxmJ,KAAMqiC,EAAOokH,GAC7D8nE,EAA0BA,IAA4BE,CAC1D,MAEIF,GAA0B,CAElC,CAEJ,GAAIA,EAAyB,CACzB,IAAInyH,EAAQqqD,EAAwBH,aAAazrD,KAAKl4F,OACtD,IAAKy5F,EAAQ,KAAS55F,EAAI,MAAiB6/B,EAAO,CAC9Ch3B,QAAQ8C,IAAI,+BACZ9C,QAAQ8C,IAAIiuF,GACZ,IAAIsyH,EAAgB,IAAI9E,EACxB8E,EAActE,SAAU,EACxBsE,EAAc56C,MAAQrtB,EAAwBy/C,qBAC9CkoB,EAAWM,GACXjoE,EAAwB7gB,SAC5B,MAEI74H,YAAW,WACP49G,EAAM2jG,qBAAqBlsL,EAAUC,EAAOokH,EAAyB2nE,EAAY5rN,EACrF,GAAG,IACGA,EAAI,MACN6I,QAAQ8C,IAAI,kCACZ9C,QAAQ8C,IAAIiuF,IAEhB55F,GAER,KAAO,CACC45F,EAAQqqD,EAAwBH,aAAazrD,KAAKl4F,OACtD0I,QAAQ8C,IAAI,SACZ9C,QAAQ8C,IAAIiuF,GACRsyH,EAAgB,IAAI9E,EACxB8E,EAActE,SAAU,EACxBsE,EAAc56C,MAAQrtB,EAAwBy/C,qBAC9CkoB,EAAWM,GACXjoE,EAAwB7gB,SAC5B,CACJ,EAEA1jG,eAAgB,SAAUE,EAAUusL,GAC1B3uN,KAAKirN,4BAA4BhyM,QAAQmpB,IAAa,GACxDpiC,KAAKirN,4BAA4BtmN,KAAKy9B,GAEL,MAAjCA,EAAS0F,sBACT1F,EAASgtH,oBAAmB,EAAGv5D,EAA8C+N,uBAAuBxhE,IACpGA,EAAS0F,qBAAqBijH,4BAA4B4jE,IAClB,MAAjCvsL,EAAS0F,sBAAgC1F,EAAS0F,qBAAqBuiH,yBAC9E8/D,EAAuD/sL,aAAa0tH,oBAAoB1oH,EAAS0F,qBAAqBC,8BAA+B,OACvI,MAAV4mL,GACAA,IAGZ,EAEAC,kBAAmB,SAAUxsL,GACzBsoB,EAAoC9P,GAAG46C,OAAOx1F,KAAKirN,4BAA6B7oL,GAC3C,MAAjCA,EAAS0F,sBACTqiL,EAAuD/sL,aAAaoS,gBAAgBpN,EAAS0F,qBAAqBC,8BAA8B9gC,IAAI,GAAM,EAElK,EAEA4nN,qBAAsB,SAAUlkN,GAC5B,IAAI2wC,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKirN,6BACnE,MAAO3vK,EAAOE,WAAY,CACtB,IAAIpZ,EAAWkZ,EAAOI,QACtB,GAAItZ,EAAS9gB,aAAe3W,EACxB,OAAOy3B,CAEf,CACA,OAAO,IACX,EAEA0sL,+BAAgC,SAAU1N,EAAU2N,EAASC,GACzD,IAAIvsM,EAAQozE,EAA8C4N,iBAAiBzhE,kBAAkBuhL,EAA0CtlE,QAAQ2gE,gBAAgBwC,IAC/J,GAAa,MAAT3+L,EACA,OAAO,EAIX,IAFA,IAAIsqM,EAAOlD,EAAciD,kBAAkBrqM,EAAOA,EAAM6uI,iBACpDu7D,EAAOhD,EAAc+C,kBAAkBnqM,EAAOA,EAAM6uI,iBAC/CvmH,EAAI,EAAGA,EAAIgiL,EAAMhiL,IACtB,IAAK,IAAI/mC,EAAI,EAAGA,EAAI6oN,EAAM7oN,IAAK,CAC3B,IAAIwqN,GAAO,EAAGppC,EAAgDhgC,kBAAkB3iI,EAAM6uI,gBAAiBvmH,EAAG/mC,EAAGye,EAAO,MACpH,GAAY,MAAR+rM,GACIA,EAAKrnE,cAAc4nE,EAASC,GAC5B,OAAOR,EAAKnnE,wBAAwB0nE,EAASC,GAAU,EAGnE,CAEJ,OAAO,CACX,EAEAC,iBAAkB,SAAUC,EAASC,EAAUp/K,GAC3C,GAAI8lD,EAA8C4N,iBAAiB85E,sBAAuB,CACtF,IAAI9hI,EAAMuuK,EAA8CxxK,YAAYq3C,cAAcq/H,EAASC,EAAW,IAClGC,EAAW7L,EAA0CtlE,QAAQ+/D,eACjEviK,EAAMjH,EAA0CwE,SAAS4kD,qBAAqBniD,EAAK2zK,GACnF3zK,EAAI2sD,YACJ,IAAItK,EAAQksH,EAA8CxxK,YAAY03C,kBAAkBz0C,GACxF,OAAOz7C,KAAK8uN,+BAA+B9uN,KAAK4sC,WAAW7tC,OAAQ++F,EAAM95F,EAAG85F,EAAM/yD,EACtF,CAAO,OAAI/qC,KAAK+sC,yBAAyB9J,mBAAqBgnL,EAA2CvrM,aAAaslB,MAC3G,EAAWhkC,KAAKqvN,4BAA4BH,EAASC,GAAYnvN,KAAKsvN,4BAA4BJ,EAASC,GAE3G,CAEf,EAEA31H,aAAc,SAAUp3D,EAAU3gB,GAG9B,IAFA,IAAIsrM,EAAOlD,EAAciD,kBAAkB1qL,EAAUA,EAASkvH,iBAC1Du7D,EAAOhD,EAAc+C,kBAAkBxqL,EAAUA,EAASkvH,iBACrDvmH,EAAI,EAAGA,EAAIgiL,EAAMhiL,IACtB,IAAK,IAAI/mC,EAAI,EAAGA,EAAI6oN,EAAM7oN,IAAK,CAC3B,IAAIwqN,GAAO,EAAGppC,EAAgDhgC,kBAAkBhjH,EAASkvH,gBAAiBvmH,EAAG/mC,EAAGo+B,EAAU,MAC9G,MAARosL,GACAA,EAAKpqE,OAAOpkJ,KAAMyhB,EAE1B,CAER,EAEA8tM,kBAAmB,SAAUR,EAASC,GAClC,IAAIvsM,EAAQziB,KAAK+sC,yBACjB,GAAa,MAATtqB,EACA,OAAO,KAIX,IAFA,IAAIsqM,EAAOlD,EAAciD,kBAAkBrqM,EAAOA,EAAM6uI,iBACpDu7D,EAAOhD,EAAc+C,kBAAkBnqM,EAAOA,EAAM6uI,iBAC/CvmH,EAAI,EAAGA,EAAIgiL,EAAMhiL,IACtB,IAAK,IAAI/mC,EAAI,EAAGA,EAAI6oN,EAAM7oN,IAAK,CAC3B,IAAIwqN,GAAO,EAAGppC,EAAgDhgC,kBAAkB3iI,EAAM6uI,gBAAiBvmH,EAAG/mC,EAAGye,EAAO,MACpH,GAAY,MAAR+rM,GACIA,EAAKrnE,cAAc4nE,EAASC,GAC5B,OAAOR,CAGnB,CAEJ,OAAO,IACX,EAEAc,4BAA6B,SAAUP,EAASC,GAC5C,IAAIR,EAAOxuN,KAAKuvN,kBAAkBR,EAASC,GAC3C,OAAY,MAARR,EACOA,EAAKnnE,wBAAwB0nE,EAASC,GAAU,GAEpD,CACX,EAEAK,4BAA6B,SAAUN,EAASC,GAC5C,IAAIR,EAAOxuN,KAAKuvN,kBAAkBR,EAASC,GAC3C,OAAY,MAARR,EACOA,EAAKnnE,wBAAwB0nE,EAASC,GAAU,GAEpD,CACX,EAEAQ,qBAAsB,WAClBxvN,KAAK4hI,UAAW,EAChB5hI,KAAKm9H,OAAQ,EACbqmF,EAAkDxnG,eAAe0rG,YAAa,EAG9E,IAAI+H,EAAcj7K,EAA0CqwD,SAAS+K,YAAa5vG,KAAK4sC,WAAWsS,IAAM,IAAM,IAAM55C,KAAK8Z,IACzHqwM,EAAY59G,UAAUr9D,EAA0CqwD,SAAS6K,YAAc1vG,KAAK4sC,WAAWmS,IAAO,IAAMz5C,KAAK8Z,KACzHpf,KAAKu/I,UAAUkwE,GACfzvN,KAAKs/I,cAAcmwE,EAAYp6H,SAC/Br1F,KAAKsqN,WAAaN,EAA8CxxK,YAAY+kD,QAAQv9F,KAAK4sC,WAAWmS,IAAK/+C,KAAK4sC,WAAWsS,KACzH,IAAI5B,EAAW,EAQf,GANIA,EADAt9C,KAAK+qN,oBAAoBz1D,mBACRt1J,KAAK4sC,WAAWlQ,KAAO,IAA5B,EAAoC,MAE/B18B,KAAK4sC,WAAWlQ,KAAO,IAA5B,EAAoC,KAEpD18B,KAAKuqN,UAAavqN,KAAK4sC,WAAWlQ,KAAO,QAAWp3B,KAAK8Z,GAAK,IAC9Dpf,KAAKwqN,UAAaxqN,KAAKuqN,UAAYvqN,KAAKomC,OAAU,KACnC,MAAXpmC,KAAK81C,GAAY,CACjB91C,KAAKmrN,eAAiBnrN,KAAKsvN,4BAA4BtvN,KAAK4sC,WAAWmS,IAAK/+C,KAAK4sC,WAAWsS,KAC5F,IAAIwwK,EAAY,EAAI1vN,KAAKmrN,eACzBnrN,KAAKmrN,gBAAkBnrN,KAAK+1K,oBACxB/1K,KAAKkrN,cAAgBwE,EACrB1vN,KAAKkrN,eAAwC,EAArBlrN,KAAKkrN,cAAqBwE,GAAa,EAG/D1vN,KAAKkrN,eAAwC,EAArBlrN,KAAKkrN,cAAqBwE,GAAa,EAEvE,MACI1vN,KAAKmrN,eAAiB,EACtBnrN,KAAKkrN,cAAgB,EAEzB,IAAIyE,EAAW3vN,KAAK4sC,WAAWC,SAC/B7sC,KAAKitG,eAAiBz4D,EAA0CwE,SAAS72C,OAAQmD,KAAKixC,IAAIo5K,GAAYrqN,KAAKixC,IAAIv2C,KAAK4sC,WAAWkiD,OAASxxC,EAAYh4C,KAAKgxC,IAAIq5K,GAAYrqN,KAAKixC,IAAIv2C,KAAK4sC,WAAWkiD,OAASxxC,GAAat9C,KAAKkrN,cAAiB5lN,KAAKgxC,IAAIt2C,KAAK4sC,WAAWkiD,OAASxxC,GAChR,IAAI4vD,EAAe14D,EAA0CwE,SAAS72C,OAAO,EAAG,GAAInC,KAAKkrN,eAErF30C,GADYv2K,KAAKitG,eAAetqG,SACvB6xC,EAA0CwE,SAAS72C,OAAOmD,KAAKixC,IAAIo5K,GAAYrqN,KAAKgxC,IAAIt2C,KAAK4sC,WAAWkiD,OAAQxpF,KAAKgxC,IAAIq5K,GAAYrqN,KAAKgxC,IAAIt2C,KAAK4sC,WAAWkiD,OAAQxpF,KAAKixC,IAAIv2C,KAAK4sC,WAAWkiD,SAC5M9uF,KAAKqtN,SAAS74K,EAA0CqwD,SAASmI,SAAShtG,KAAKitG,eAAgBC,EAAcqpE,IAC7Gv2K,KAAKsnK,aAAatnK,KAAK05H,YACvB,IAAIizF,EAAOrnN,KAAKqxC,MAAM2G,EAAW,IAAMA,EAAW,GAAK,GACvDqvK,EAAOrnN,KAAKC,IAAI,GAAKonN,GACrB,IAAIiD,EAAyB,IAAXtyK,EAClBsyK,EAAyB,IAAXtyK,EACdt9C,KAAK+yJ,eAAev+G,EAA0CqwD,SAASwL,iBAAkB/qG,KAAK8Z,GAAK,EAAIpf,KAAKmmC,MAAQnmC,KAAKomC,OAAQwpL,EAAajD,IAC9I3sN,KAAK6vN,eACL7vN,KAAKw/I,aACT,EAEAswE,qBAAsB,SAAUC,EAAaC,GACzChwN,KAAK4hI,UAAW,EACX5hI,KAAKsrN,iBACNtrN,KAAKqrN,gBAAkB72K,EAA0CqwD,SAAS6H,eAC1E1sG,KAAKqrN,gBAAgBx5G,UAAUr9D,EAA0CqwD,SAAS+K,YAAW,oBAAyCtqG,KAAK8Z,KAC3Ipf,KAAKqrN,gBAAgBx5G,UAAUr9D,EAA0CqwD,SAAS6K,WAAW,kBAA6BpqG,KAAK8Z,KAC/Hpf,KAAKqrN,gBAAgBx5G,UAAUr9D,EAA0CqwD,SAASiL,YAAW,eAAiCxqG,KAAK8Z,KACnIpf,KAAKsrN,gBAAiB,GAE1BtrN,KAAKm9H,OAAQ,EACbqmF,EAAkDxnG,eAAe0rG,YAAa,EAC9E,IAAI+H,EAAcj7K,EAA0CqwD,SAAS6H,eACrE,GAAI6hE,EAA2C31E,SAASC,aAAa5nE,mBAAoB,CACrFw+L,EAAY59G,UAAU7xG,KAAKqrN,iBAC3BoE,EAAY59G,UAAUr9D,EAA0CqwD,SAAS+K,WAAW5vG,KAAK4qN,GAAK,IAAMtlN,KAAK8Z,KACzGqwM,EAAY59G,UAAUr9D,EAA0CqwD,SAAS6K,YAAY1vG,KAAKuiD,IAAM,IAAMj9C,KAAK8Z,KAC3G,IAAI6wM,EAASjG,EAA8CxxK,YAAYqqD,gBAAgB7iG,KAAK4qN,GAAI5qN,KAAKuiD,KACrGviD,KAAKsqN,WAAaN,EAA8CxxK,YAAYwgD,YAAYi3H,EAAO,GAAK,GAAIA,EAAO,GAAI,GACnHjwN,KAAK+9K,aAAa7+H,IAAMl/C,KAAKktN,YAAY+C,EAAO,GAAK,IACrDjwN,KAAK+9K,aAAah/H,IAAMkxK,EAAO,GAC/BjwN,KAAK4sC,WAAWmS,IAAM/+C,KAAK+9K,aAAah/H,IACxC/+C,KAAK4sC,WAAWsS,IAAMl/C,KAAK+9K,aAAa7+H,GAC5C,MACIuwK,EAAY59G,UAAUr9D,EAA0CqwD,SAAS+K,aAAa5vG,KAAK4sC,WAAWsS,IAAM,IAAM,IAAM55C,KAAK8Z,KAC7HqwM,EAAY59G,UAAUr9D,EAA0CqwD,SAAS6K,YAAY1vG,KAAK4sC,WAAWmS,IAAM,IAAMz5C,KAAK8Z,KACtHpf,KAAKsqN,WAAaN,EAA8CxxK,YAAYwgD,YAAYh5F,KAAKowF,SAAUpwF,KAAKqwF,UAAW,GAE3H,IAAI6/H,EAAWlwN,KAAK4sC,WAAWC,SAK/B,GAJA7sC,KAAKuqN,UAAavqN,KAAK4sC,WAAWlQ,KAAO,QAAWp3B,KAAK8Z,GAAK,IAC9Dpf,KAAKwqN,UAAaxqN,KAAKuqN,UAAYyF,EAAgB,KAG/CzhD,EAA2C31E,SAASC,aAAaznE,wBAA0BpxB,KAAK+qN,oBAAoB9nL,mBAAqBgnL,EAA2CvrM,aAAaglB,IAAK,CACtM,IAAIm7G,EAAc,IAAImrE,EAA8CxxK,YAAY,EAAG,GACnFqmG,EAAYx/C,OAAO,GACnBw/C,EAAYt7C,QAAQ,GACpB,IAAIu7C,EAASkrE,EAA8CxxK,YAAY+mD,oBAAoBs/C,EAAa2vB,EAAwDlxI,oBAAoByhH,eAAgByvB,EAAwDlxI,oBAAoB0P,WAC5QgyG,IAAYF,EAAO1uD,SAAW,GAAK,IAAgB,EAAV9qF,KAAK8Z,IAC9C6/H,GAAYH,EAAOzuD,UAAY,KAAiB,EAAV/qF,KAAK8Z,IAClC4qM,EAA8CxxK,YAAYs+C,UAAUgoD,EAAO1uD,UACxFq/H,EAAcj7K,EAA0CqwD,SAAS+K,YAAYovC,EAAS15I,KAAK8Z,IAC3FqwM,EAAY59G,UAAUr9D,EAA0CqwD,SAAS6K,WAAWuvC,IAChFuvB,EAAwDlxI,oBAAoByhH,eAAehgD,UAAY,GACvG0wH,EAAY59G,UAAUr9D,EAA0CqwD,SAAS+K,WAAY5vG,KAAK4qN,GAAK,IAAMtlN,KAAK8Z,KAC1GqwM,EAAY59G,UAAUr9D,EAA0CqwD,SAAS6K,WAAY1vG,KAAKuiD,IAAM,IAAMj9C,KAAK8Z,KAC3G8wM,GAAY5qN,KAAK8Z,KAGjBqwM,EAAY59G,UAAUr9D,EAA0CqwD,SAAS+K,YAAc5vG,KAAK4qN,GAAM,IAAMtlN,KAAK8Z,KAC7GqwM,EAAY59G,UAAUr9D,EAA0CqwD,SAAS6K,YAAc1vG,KAAKuiD,IAAO,IAAMj9C,KAAK8Z,MAElH,IAAI+wM,EAAenG,EAA8CxxK,YAAY+mD,oBAAoByqH,EAA8CxxK,YAAYmpD,WAAW3hG,KAAKuiD,IAAKviD,KAAK4qN,IAAKp8C,EAAwDlxI,oBAAoByhH,eAAgByvB,EAAwDlxI,oBAAoB0P,WAClWhtC,KAAK4sC,WAAWmS,IAAM/+C,KAAK+9K,aAAah/H,IAAMoxK,EAAa9/H,UAC3DrwF,KAAK4sC,WAAWsS,IAAMl/C,KAAK+9K,aAAa7+H,IAAMl/C,KAAKktN,YAAYiD,EAAa//H,SAChF,CACApwF,KAAKu/I,UAAUkwE,GACfzvN,KAAKs/I,cAAcmwE,EAAYp6H,SAC/B,IAAI+6H,EAAkBpwN,KAAK4sC,WAAWlQ,KACOp3B,KAAK8Z,GAClDpf,KAAKitG,eAAiBz4D,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG,GAGtFnC,KAAKqtN,SAAS74K,EAA0CqwD,SAASmI,SAAShtG,KAAKitG,eAAgBz4D,EAA0CwE,SAAS72C,OAAO,EAAG,GAAI,GAAIqyC,EAA0CwE,SAAS72C,OAAOmD,KAAKixC,IAAI25K,GAAW5qN,KAAKgxC,IAAI45K,GAAW,KACtQlwN,KAAKsnK,aAAatnK,KAAK05H,WAAWrkC,SAElCr1F,KAAK4rN,UAAY,GACjB5rN,KAAK+yJ,eAAev+G,EAA0CqwD,SAASwL,iBAAiB+/G,EAAkB,QAASL,EAAcC,EAAc,IAAM,IACrJhwN,KAAK6vN,eACL7vN,KAAKw/I,aACT,EAEA6wE,qBAAsB,WAClB,OAAOrwN,KAAK4sC,WAAW7tC,MAC3B,EAEAowC,qBAAsB,SAAUvuC,GAE5B,OADAZ,KAAK4sC,WAAW7tC,OAAS6B,EAClBA,CACX,EAEA2jN,8BAA+B,WAC3B,OAAavkN,KAAK4sC,WAAWlQ,KAAO,EAA5B,EAAkC,IAC9C,EAEA4zL,gBAAiB,WACb,OAAgC,MAA5BtwN,KAAK+qN,qBAGF/qN,KAAK+qN,oBAAoB9nL,oBAAsBgnL,EAA2CvrM,aAAaiuI,OAClH,EAEA4jE,kBAAmB,WACf,OAAOvwN,KAAK4sC,WAAWsiD,oBAC3B,EAEA4uF,kBAAmB,SAAUl9K,GAEzB,OADAZ,KAAK4sC,WAAWsiD,qBAAuBtuF,EAChCA,CACX,EAEA4vN,aAAc,WACV,OAAOxwN,KAAK0rN,SAChB,EAEA+E,aAAc,SAAU7vN,GAEpB,OADAZ,KAAK0rN,UAAY9qN,EACVA,CACX,EAEA8vN,sBAAuB,WACnB1wN,KAAKu/I,UAAU/qG,EAA0CqwD,SAAS6H,gBAC/Cl4D,EAA0CqwD,SAAS6H,eAAtE,IAIIuT,EAHA0wG,EAAWn8K,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG,GAC3Em0K,EAAS9hI,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG,GACzEo0K,EAAS/hI,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG,GAE7E89G,EAAOzrE,EAA0CqwD,SAASmI,SAAS2jH,EAAUr6C,EAAQC,GACrFt2D,EAAKpO,UAAUr9D,EAA0CqwD,SAASmL,SAAS,GAAI,EAAG,IAClFhwG,KAAKqtN,SAASptG,GACd,IAAI0sG,EAAO,IACX3sN,KAAK4rN,UAAY,GACjB5rN,KAAK+yJ,eAAev+G,EAA0CqwD,SAASwL,iBAAiBrwG,KAAK0rN,UAAW1rN,KAAKmmC,MAAQnmC,KAAKomC,OAAQpmC,KAAK4rN,UAAWe,GACtJ,EAEAiE,yBAA0B,SAAUC,GAChC7wN,KAAK4hI,SAAW2sC,EAA2C31E,SAASC,aAAa1gE,0BACjFn4B,KAAKm9H,OAAQ,EACuB,KAAhCn9H,KAAKqwN,wBAAiE,QAAhCrwN,KAAKqwN,yBAC3CrwN,KAAK4sC,WAAWoiD,WAAau0H,EAA0CtlE,QAAQw8D,qBAAqBz6M,KAAKqwN,uBAAwBrwN,KAAK4sC,WAAWmS,IAAK/+C,KAAK4sC,WAAWsS,IAAK,IAE/KskK,EAAkDxnG,eAAe0rG,YAAa,EAC9E,IAAIoJ,EAAiB9wN,KAAKukN,gCACtBwM,EAAiBv8K,EAA0CqwD,SAAS6H,eACxEokH,GAAkB,KAElB,GAAoC,KAAhC9wN,KAAKqwN,wBAAkC3lK,EAAoC9P,GAAGC,YAAY76C,KAAKuwN,qBAKvF7lK,EAAoC9P,GAAGC,YAAY76C,KAAKuwN,sBAChEvwN,KAAK89K,kBAAkB,QAN8F,EAC/F,EACtB,IAAI/+K,EAASorN,EAAuD/sL,aAAai4I,gBAAgBr1K,KAAMA,KAAKuwN,qBAC5GvwN,KAAK4sC,WAAWoiD,WAAajwF,EAAOA,OACpCgyN,EAAiBhyN,EAAO6yG,MAC5B,CAGa5xG,KAAK4sC,WAAWoiD,WACbhvF,KAAK4sC,WAAWlQ,KADhC,IAEI45I,EAAS,IAAI9hI,EAA0CwE,SACvDg4K,EAAax8K,EAA0CqwD,SAAS6H,eACpEskH,EAAWn/G,UAAUr9D,EAA0CqwD,SAAS6K,YAAc1vG,KAAK4sC,WAAWmS,IAAO,IAAMz5C,KAAK8Z,KACxH4xM,EAAWn/G,UAAUr9D,EAA0CqwD,SAAS+K,YAAc5vG,KAAK4sC,WAAWsS,IAAO,IAAM55C,KAAK8Z,KACxH,IAEIm3J,EAFArsE,EAAe11D,EAA0CqwD,SAAS6H,eAGtE,GAAI1sG,KAAKurN,sBAAwBvrN,KAAKswN,kBAAmB,CACrD,IAAIxhI,EAAQ9uF,KAAK4sC,WAAWkiD,MAC5B,GAAIgiI,EAAiB,KACjBhiI,EAAQ,OAEP,GAAIgiI,EAAiB,KAAO,CAC7B,IAAI5xN,EAAMoG,KAAKilF,IAAI,YAAau/H,EAA0CpnK,KAAK2e,MAAMyvJ,GAAkB,GAAK,YAC5GhiI,GAAgBxpF,KAAKC,IAAI,EAAG,EAAIrG,EACpC,CACAc,KAAKitG,eAAiBz4D,EAA0CwE,SAAS72C,OAAQmD,KAAKixC,KAAKv2C,KAAK4sC,WAAWC,UAAYvnC,KAAKixC,IAAIu4C,GAASgiI,EAAkBxrN,KAAKgxC,KAAKt2C,KAAK4sC,WAAWC,UAAYvnC,KAAKixC,IAAIu4C,GAASgiI,EAAkBxrN,KAAKgxC,IAAIw4C,GAASgiI,GACvPv6C,EAAS/hI,EAA0CwE,SAAS72C,OAAOmD,KAAKixC,KAAKv2C,KAAK4sC,WAAWC,UAAWvnC,KAAKgxC,KAAKt2C,KAAK4sC,WAAWC,UAAW,KACjJ,MACI7sC,KAAKitG,eAAiBz4D,EAA0CwE,SAAS72C,OAAO,EAAG,EAAG2uN,GACtFv6C,EAAS/hI,EAA0CwE,SAAS72C,OAAOmD,KAAKixC,KAAKv2C,KAAK4sC,WAAWC,UAAWvnC,KAAKgxC,KAAKt2C,KAAK4sC,WAAWC,UAAW,MAEjJ7sC,KAAKitG,eAAiB+jH,EAAWj4K,UAAU/4C,KAAKitG,gBAChDjtG,KAAKyrN,cAAgBzrN,KAAKitG,eAAehkB,OACzC,IAAI7tB,EAAM21J,EAAe17H,QACzBj6B,EAAI21C,SACJ/wG,KAAKyrN,cAAgBj3K,EAA0CwE,SAAS4kD,qBAAqB59F,KAAKyrN,cAAerwJ,GACjHm7G,EAASy6C,EAAWj4K,UAAUw9H,GAC9Bv2K,KAAKu/I,UAAU/qG,EAA0CqwD,SAAS6H,gBAClE1sG,KAAKs/I,cAAc9qG,EAA0CqwD,SAAS6H,gBACtE1sG,KAAKo2K,yBAAyB5hI,EAA0CqwD,SAAS6H,gBACjF1sG,KAAKqtN,SAAS74K,EAA0CqwD,SAAS+H,eAAep4D,EAA0CqwD,SAAS+H,eAAemkH,EAAgBv8K,EAA0CqwD,SAASmI,SAAShtG,KAAKitG,eAAgBqpE,EAAQC,IAAUrsE,IACrQlqG,KAAKsnK,aAAatnK,KAAK05H,WAAWrkC,SAClC,IAAI9I,EAAO/3C,EAA0CwE,SAASsqD,gBAAgBgzE,EAAQt2K,KAAKitG,gBAC3F1gB,EAAK6b,YACL7b,EAAO/3C,EAA0CwE,SAAS4kD,qBAAqBrR,EAAMwkI,GACrFxkI,EAAK6b,YACLpoG,KAAKsqN,WAAa/9H,EAClB,IAAIp+D,EAASo1L,EAA0CtlE,QAAQsgE,wBAAwBv+M,KAAKqwN,wBACxFS,EAA0B,EAAT3iM,IAAe0iM,GAChC7wN,KAAK4rN,UAA6B,IAAjBkF,EACjB9wN,KAAK4rN,UAAYtmN,KAAKC,IAAIvF,KAAK4rN,UAAW,OAC1C/B,EAAc8C,KAAO,MAEjBkE,GACAhH,EAAc8C,KAAO,OACrB9C,EAAc8C,KAAQmE,EAAiB,OAA2B,EAAjBA,EAAqB,OACtE9wN,KAAK4rN,UAAY,OAGjB/B,EAAc8C,KAAQmE,EAAiB,KAAQA,EAAiB,IAAM,KAClEviD,EAA2C31E,SAASC,aAAar/D,uBAAyB,GAC1Fx5B,KAAK4rN,UAAYtmN,KAAKilF,IAAqB,IAAjBumI,EAAuB,KAGjD9wN,KAAK4rN,UAAY,MAI7B5rN,KAAK+yJ,eAAev+G,EAA0CqwD,SAASwL,iBAAiBrwG,KAAK0rN,UAAW1rN,KAAKmmC,MAAQnmC,KAAKomC,OAAQpmC,KAAK4rN,UAAW/B,EAAc8C,OAChK3sN,KAAK2rN,eAAiB3rN,KAAK0rN,UAC3B1rN,KAAKuqN,UAAavqN,KAAK4sC,WAAWlQ,KAAO,QAAWp3B,KAAK8Z,GAAK,IAC9Dpf,KAAKwqN,UAAaxqN,KAAKuqN,UAAYvqN,KAAKomC,OAAU,KAClDpmC,KAAK6vN,eACL7vN,KAAKw/I,aACT,EAEAqwE,aAAc,WAAc,EAE5BvqE,YAAa,WACT,OAAOtlJ,KAAK8rN,QAChB,EAEAmF,sBAAuB,WACnB,OAAOjxN,KAAK+rN,kBAChB,EAEA/yB,sBAAuB,SAAUp4L,GAG7B,OAFAZ,KAAK+rN,mBAAqBnrN,EAC1BZ,KAAKwsN,qBAAsB,EACpB5rN,CACX,EAEA63L,yBAA0B,WACtB,OAAOz4L,KAAKgsN,eAChB,EAEAxzB,yBAA0B,SAAU53L,GAGhC,OAFAZ,KAAKgsN,gBAAkBprN,EACvBZ,KAAKwsN,qBAAsB,EACpB5rN,CACX,EAEAswN,sBAAuB,WACnB,OAAOlxN,KAAKisN,YAChB,EAEAr0B,sBAAuB,SAAUh3L,GAG7B,OAFAZ,KAAKisN,aAAerrN,EACpBZ,KAAKwsN,qBAAsB,EACpB5rN,CACX,EAEAg4L,kBAAmB,WACf,OAAO54L,KAAKksN,cAChB,EAEA7zB,kBAAmB,SAAUz3L,GAGzB,OAFAZ,KAAKksN,eAAiBtrN,EACtBZ,KAAKwsN,qBAAsB,EACpB5rN,CACX,EAEAq2L,gBAAiB,WACb,OAAOj3L,KAAKmsN,YAChB,EAEAhG,gBAAiB,SAAUvlN,GAGvB,OAFAZ,KAAKmsN,aAAevrN,EACpBZ,KAAKwsN,qBAAsB,EACpB5rN,CACX,EAEA23L,wBAAyB,WACrB,OAAOv4L,KAAKosN,oBAChB,EAEA9zB,wBAAyB,SAAU13L,GAK/B,OAJIZ,KAAKosN,uBAAyBxrN,IAC9BZ,KAAKosN,qBAAuBxrN,EAC5BZ,KAAKwsN,qBAAsB,GAExB5rN,CACX,EAEAo2L,2BAA4B,WACxB,OAAOh3L,KAAKqsN,uBAChB,EAEA8E,2BAA4B,SAAUvwN,GAGlC,OAFAZ,KAAKqsN,wBAA0BzrN,EAC/BZ,KAAKwsN,qBAAsB,EACpB5rN,CACX,EAGA02L,0BAA2B,WACvB,OAAOt3L,KAAKssN,sBAChB,EAEA8E,0BAA2B,SAAUxwN,GAEjC,OADAZ,KAAKssN,uBAAyB1rN,EACvBA,CACX,EAEA42L,4BAA6B,WACzB,OAAOx3L,KAAKusN,wBAChB,EAEA8E,4BAA6B,SAAUzwN,GAEnC,OADAZ,KAAKusN,yBAA2B3rN,EACzBA,CACX,EAEA0wN,qBAAsB,WAClB,OAAOtxN,KAAKysN,iBAChB,EAEAjiC,qBAAsB,SAAU5pL,GAK5B,OAJIA,IAAUZ,KAAKysN,oBACfzsN,KAAKysN,kBAAoB7rN,EACzBZ,KAAKwsN,qBAAsB,GAExB5rN,CACX,EAEA4+I,YAAa,WACTx/I,KAAKwlN,GAAKhxK,EAA0CqwD,SAAS+H,eAAe5sG,KAAKy5H,YAAaz5H,KAAK05H,YACnG,IAAI63F,EAAiB/8K,EAA0CqwD,SAAS+H,eAAe5sG,KAAKwlN,GAAIxlN,KAAKi9H,kBACrGj9H,KAAK84C,IAAMy4K,EAAel8H,QAC1B,IAAIm8H,EAAexxN,KAAKy5H,YAAYpkC,QACpCm8H,EAAazgH,SAGb/wG,KAAK8rN,SAAS,GAAGv/M,EAAIglN,EAAezjH,UAAYyjH,EAAe5jH,UAC/D3tG,KAAK8rN,SAAS,GAAGpqN,EAAI6vN,EAAerjH,UAAYqjH,EAAexjH,UAC/D/tG,KAAK8rN,SAAS,GAAGltN,EAAI2yN,EAAejjH,UAAYijH,EAAepjH,UAC/DnuG,KAAK8rN,SAAS,GAAGvsN,EAAIgyN,EAAe9iH,UAAY8iH,EAAep9G,UAG/Dn0G,KAAK8rN,SAAS,GAAGv/M,EAAIglN,EAAezjH,UAAYyjH,EAAe5jH,UAC/D3tG,KAAK8rN,SAAS,GAAGpqN,EAAI6vN,EAAerjH,UAAYqjH,EAAexjH,UAC/D/tG,KAAK8rN,SAAS,GAAGltN,EAAI2yN,EAAejjH,UAAYijH,EAAepjH,UAC/DnuG,KAAK8rN,SAAS,GAAGvsN,EAAIgyN,EAAe9iH,UAAY8iH,EAAep9G,UAG/Dn0G,KAAK8rN,SAAS,GAAGv/M,EAAIglN,EAAezjH,UAAYyjH,EAAe3jH,UAC/D5tG,KAAK8rN,SAAS,GAAGpqN,EAAI6vN,EAAerjH,UAAYqjH,EAAevjH,UAC/DhuG,KAAK8rN,SAAS,GAAGltN,EAAI2yN,EAAejjH,UAAYijH,EAAenjH,UAC/DpuG,KAAK8rN,SAAS,GAAGvsN,EAAIgyN,EAAe9iH,UAAY8iH,EAAel9G,UAG/Dr0G,KAAK8rN,SAAS,GAAGv/M,EAAIglN,EAAezjH,UAAYyjH,EAAe3jH,UAC/D5tG,KAAK8rN,SAAS,GAAGpqN,EAAI6vN,EAAerjH,UAAYqjH,EAAevjH,UAC/DhuG,KAAK8rN,SAAS,GAAGltN,EAAI2yN,EAAejjH,UAAYijH,EAAenjH,UAC/DpuG,KAAK8rN,SAAS,GAAGvsN,EAAIgyN,EAAe9iH,UAAY8iH,EAAel9G,UAG/Dr0G,KAAK8rN,SAAS,GAAGv/M,EAAIglN,EAAe1jH,UACpC7tG,KAAK8rN,SAAS,GAAGpqN,EAAI6vN,EAAetjH,UACpCjuG,KAAK8rN,SAAS,GAAGltN,EAAI2yN,EAAeljH,UACpCruG,KAAK8rN,SAAS,GAAGvsN,EAAIgyN,EAAeh9G,UAGpCv0G,KAAK8rN,SAAS,GAAGv/M,EAAIglN,EAAezjH,UAAYyjH,EAAe1jH,UAC/D7tG,KAAK8rN,SAAS,GAAGpqN,EAAI6vN,EAAerjH,UAAYqjH,EAAetjH,UAC/DjuG,KAAK8rN,SAAS,GAAGltN,EAAI2yN,EAAejjH,UAAYijH,EAAeljH,UAC/DruG,KAAK8rN,SAAS,GAAGvsN,EAAIgyN,EAAe9iH,UAAY8iH,EAAeh9G,UAG/D,IAAK,IAAI/xG,EAAI,EAAGA,EAAI,EAAGA,IACnBxC,KAAK8rN,SAAStpN,GAAG4lG,YAErBpoG,KAAK6rN,eAAgB,EACrB7rN,KAAK84C,IAAIkH,MAAMxL,EAA0CwE,SAAS72C,OAAOnC,KAAKmmC,MAAQ,GAAInmC,KAAKomC,OAAS,EAAG,IAC3GpmC,KAAK84C,IAAIu5D,UAAU79D,EAA0CwE,SAAS72C,OAAOnC,KAAKmmC,MAAQ,EAAGnmC,KAAKomC,OAAS,EAAG,IAC9GpmC,KAAK6vN,cACT,EAEA4B,QAAS,WACL,GAAe,MAAXzxN,KAAK81C,GAAT,CAGwB91C,KAAK81C,GAAG47K,aAAa,2BAC7C,EAAGtsC,EAAgD5jD,oBAAoB,IACvE,EAAG4jD,EAAgD3jD,qBAAoB,GACvE8yE,EAAkD55E,WAAWM,KAAKj7H,KAJlE,CAKJ,EAEA2xN,WAAY,WACR3xN,KAAK6qN,UAAY7qN,KAAKuiD,IACtBviD,KAAK8qN,SAAW9qN,KAAK4qN,GACrB5qN,KAAK+9K,aAAe/9K,KAAK4sC,WAAWq8C,MACxC,EAEAikG,iBAAkB,SAAU97D,GAAgB,EAE5C+7D,gBAAiB,SAAUrrC,GAAe,EAI1Cm3C,YAAa,SAAUhK,EAAU2iC,EAAYC,EAAaC,EAAWrwM,GACjEzhB,KAAKk5L,gBAAgB04B,EACzB,EAEAplD,QAAS,WAAc,IAG3B,EAAG7hH,EAA4CzS,cAAc,gBAAiB,CAAC2xK,EAAemD,EAAgB,MAGvG,EAED;;;mCAIA,CAAEruN,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCqrH,oBAAqB,IAAM,EAC3BmnG,sBAAuB,IAAM,EAC7BC,wBAAyB,IAAM,EAC/BC,4BAA6B,IAAM,EACnCC,2BAA4B,IAAM,EAClCC,qBAAsB,IAAM,EAC5BC,6BAA8B,IAAM,EACpC3wF,mBAAoB,IAAM,EAC1B4wF,mBAAoB,IAAM,EAC1B7wF,mBAAoB,IAAM,EAC1B8wF,UAAW,IAAM,EACjBC,kBAAmB,IAAM,EACzB1tE,wBAAyB,IAAM,EAC/B2tE,uBAAwB,IAAM,EAC9BptE,iBAAkB,IAAM,EACxB2B,yBAA0B,IAAM,EAChC0rE,eAAgB,IAAM,EACtBt2G,eAAgB,IAAM,EACtBlW,eAAgB,IAAM,EACtBysH,MAAO,IAAM,EACbpqD,cAAe,IAAM,IAc5C,IAAInsD,EAAiB,KAErB,SAASk2G,EAAmBzxN,GACxBu7G,EAAiBv7G,CACrB,CAGA,IAAIqlG,EAAiB,IAErB,SAASu7B,EAAmB5gI,GACxBqlG,EAAiBrlG,CACrB,CAIA,IAAI6xN,GAAiB,EAErB,SAAShxF,EAAmB7gI,GACxB6xN,IAAmB7xN,CACvB,CAMA,IAAI8xN,GAAQ,EAEZ,SAASJ,EAAU1xN,GACf8xN,IAAU9xN,CACd,CAIA,IAAI0nK,GAAgB,EAEpB,SAASiqD,EAAkB3xN,GACvB0nK,IAAkB1nK,CACtB,CAIA,IAAIikJ,EAA0B,KAE9B,SAASotE,EAA4BrxN,GACjCikJ,EAA0BjkJ,CAC9B,CAIA,IAAImmJ,EAA2B,KAE/B,SAASqrE,EAA6BxxN,GAClCmmJ,EAA2BnmJ,CAC/B,CAGA,IAAI+xN,EAAoB,EAExB,SAASZ,IACL,OAAOY,GACX,CAGA,IAAIvtE,EAAmB,KAEvB,SAAS+sE,EAAqBvxN,GAC1BwkJ,EAAmBxkJ,CACvB,CAGA,IAAI4xN,EAAyB,KAE7B,SAASN,EAA2BtxN,GAChC4xN,EAAyB5xN,CAC7B,CAIA,IAAIgqH,EAAsB,KAE1B,SAASonG,EAAwBpxN,GAC7BgqH,EAAsBhqH,CAC1B,CAGO,EAED;;;oCAIA,CAAEjC,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCy8G,eAAgB,IAAM,IAExB,IAAI1nE,EAA8C,wBAA2C,uBACzFq0C,EAA4C,sBAAyC,qBAY9G,SAASqzB,IACLh8G,KAAKuM,EAAI,IAAIo8E,EAA0Cyc,gBACvDplG,KAAK0B,EAAI,IAAIinF,EAA0Cyc,gBACvDplG,KAAKpB,EAAI,IAAI+pF,EAA0Cyc,gBACvDplG,KAAK2mG,OAAS,IAAIhe,EAA0C3vC,SAC5Dh5C,KAAKyhB,QAAU,EACfzhB,KAAK4yN,kBAAoB,GACzB5yN,KAAK6yN,UAAY,EACjB7yN,KAAK8yN,IAAM,IAAInqI,EAA0C3vC,SACzDh5C,KAAK+yN,IAAM,IAAIpqI,EAA0C3vC,SACzDh5C,KAAKgzN,IAAM,IAAIrqI,EAA0C3vC,SACzDh5C,KAAKizN,YAAc,IAAItqI,EAA0CkX,SACjE7/F,KAAKkzN,YAAc,IAAIvqI,EAA0CkX,SACjE7/F,KAAKmzN,YAAc,IAAIxqI,EAA0CkX,SACjE7/F,KAAK4hI,SAAW,CACpB,CAEA5lB,EAAe71E,MAAQ,KACvB61E,EAAe51E,OAAS,IACxB41E,EAAeo3G,sBAAwB,GACvCp3G,EAAe+oC,kBAAoB,EACnC/oC,EAAeq3G,gBAAkB,EACjCr3G,EAAe+O,aAAc,EAC7B/O,EAAes3G,QAAU,EACzBt3G,EAAe0rG,YAAa,EAC5B1rG,EAAeu3G,IAAM,EACrBv3G,EAAew3G,IAAM,EACrBx3G,EAAey3G,IAAM,EACrBz3G,EAAe03G,IAAM,EAErB13G,EAAe75G,OAAS,SAAUoK,EAAG7K,EAAG9C,EAAG+0N,EAAK95G,GAC5C,IAAIttB,EAAO,IAAIyvB,EAOf,OANAzvB,EAAKhgF,EAAIA,EAAE08E,OACXsD,EAAK7qF,EAAIA,EAAEunF,OACXsD,EAAK3tF,EAAIA,EAAEqqF,OACXsD,EAAKqnI,SAAWD,EAChBpnI,EAAKsmI,UAAYh5G,EACjBttB,EAAKsnI,aACEtnI,CACX,EAEAyvB,EAAesrG,gBAAkB,SAAU/6M,EAAG7K,EAAG9C,EAAG+0N,EAAK95G,EAAOi6G,GAC5D,IAAIvnI,EAAO,IAAIyvB,EAQf,OAPAzvB,EAAKqmI,kBAAoBkB,EACzBvnI,EAAKhgF,EAAIA,EAAE08E,OACXsD,EAAK7qF,EAAIA,EAAEunF,OACXsD,EAAK3tF,EAAIA,EAAEqqF,OACXsD,EAAKqnI,SAAWD,EAChBpnI,EAAKsmI,UAAYh5G,EACjBttB,EAAKsnI,aACEtnI,CACX,EAEAyvB,EAAe+3G,eAAiB,SAAUl4G,EAAIC,EAAIC,EAAIi4G,GAClD,IAAI3jC,EAAQ1nG,EAA0CkX,SAASkJ,SAAS+S,EAAID,GACxEo4G,EAAQtrI,EAA0CkX,SAASkJ,SAASgT,EAAIF,GAC5Ew0E,EAAMjoF,YACN6rH,EAAM7rH,YACN,IAAIs8D,EAAM/7E,EAA0CkX,SAAS19F,OAAOkuL,EAAMtlJ,EAAIkpL,EAAMlpL,EAAGslJ,EAAMrsL,EAAIiwN,EAAMjwN,GACvG0gK,EAAIt8D,YACJ,IAAI5iE,EAAQmjD,EAA0CkX,SAAS19F,OAAOkuL,EAAMtlJ,EAAIkpL,EAAMlpL,EAAGslJ,EAAMrsL,EAAIiwN,EAAMjwN,GACrGkwN,EAAgB1uL,EAAMglE,aAAe,EACrC2pH,EAAM7uN,KAAKilF,IAAI,EAAGypI,EAAaE,GAEnC,OADAxvD,EAAIj6D,OAAO0pH,GACJxrI,EAA0CkX,SAAS19F,OAAO05G,EAAG9wE,EAAI25H,EAAI35H,EAAG8wE,EAAG73G,EAAI0gK,EAAI1gK,EAC9F,EAEAg4G,EAAeo4G,YAAc,SAAUC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GACjE,IAAIC,EAAML,EAAMF,EACZQ,EAAML,EAAMF,EACZQ,EAAML,EAAMJ,EACZU,EAAML,EAAMJ,EACZ3xN,EAAS2C,KAAKqxC,KAAKi+K,EAAMA,EAAMC,EAAMA,GACnClyN,IACFiyN,GAAOjyN,EACPkyN,GAAOlyN,GAEXA,EAAS2C,KAAKqxC,KAAKm+K,EAAMA,EAAMC,EAAMA,GAC/BpyN,IACFmyN,GAAOnyN,EACPoyN,GAAOpyN,GAEX,IAAIq1G,EAAK48G,EAAME,EACX78G,EAAK48G,EAAME,EACfpyN,EAAS2C,KAAKqxC,KAAKqhE,EAAKA,EAAKC,EAAKA,GAC5Bt1G,IACFq1G,GAAMr1G,EACNs1G,GAAMt1G,GAEV,IAAIqyN,EAASJ,EAAME,EACfG,EAASJ,EAAME,EACnBpyN,EAAS2C,KAAKqxC,KAAKq+K,EAASA,EAASC,EAASA,GAC9C,IAAIf,EAAgBvxN,EAAS,EACzBwxN,EAAM7uN,KAAKilF,IAAI,EAAGoqI,EAAoBT,GAG1C,OAFAl8G,GAAMm8G,EACNl8G,GAAMk8G,EACCxrI,EAA0CkX,SAAS19F,OAAOkyN,EAAMr8G,EAAIs8G,EAAMr8G,EACrF,EAEA+D,EAAek5G,eAAiB,SAAU5qH,EAAQ+pH,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAC5E,IAAIC,EAAML,EAAMF,EACZQ,EAAML,EAAMF,EACZQ,EAAML,EAAMJ,EACZU,EAAML,EAAMJ,EACZ3xN,EAAS2C,KAAKqxC,KAAKi+K,EAAMA,EAAMC,EAAMA,GACnClyN,IACFiyN,GAAOjyN,EACPkyN,GAAOlyN,GAEXA,EAAS2C,KAAKqxC,KAAKm+K,EAAMA,EAAMC,EAAMA,GAC/BpyN,IACFmyN,GAAOnyN,EACPoyN,GAAOpyN,GAEX,IAAIq1G,EAAK48G,EAAME,EACX78G,EAAK48G,EAAME,EACfpyN,EAAS2C,KAAKqxC,KAAKqhE,EAAKA,EAAKC,EAAKA,GAC5Bt1G,IACFq1G,GAAMr1G,EACNs1G,GAAMt1G,GAEV,IAAIqyN,EAASJ,EAAME,EACfG,EAASJ,EAAME,EACnBpyN,EAAS2C,KAAKqxC,KAAKq+K,EAASA,EAASC,EAASA,GAC9C,IAAIf,EAAgBvxN,EAAS,EACzBwxN,EAAM7uN,KAAKilF,IAAI,EAAGoqI,EAAoBT,GAC1Cl8G,GAAMm8G,EACNl8G,GAAMk8G,EACN7pH,EAAOv/D,EAAIspL,EAAMr8G,EACjB1N,EAAOtmG,EAAIswN,EAAMr8G,CACrB,EAEA,IAAIk9G,EAAkB,CAClBtB,WAAY,WACR,IAAItnN,EAAIvM,KAAKuM,EAAEw5F,SAAS9c,OACpBvnF,EAAI1B,KAAK0B,EAAEqkG,SAAS9c,OACpBrqF,EAAIoB,KAAKpB,EAAEmnG,SAAS9c,OACxB18E,EAAE67F,YACF1mG,EAAE0mG,YACFxpG,EAAEwpG,YACF,IAAIr9D,EAAIx+B,EAAEw+B,EAAIrpC,EAAEqpC,EAAInsC,EAAEmsC,EAClB/mC,EAAIuI,EAAEvI,EAAItC,EAAEsC,EAAIpF,EAAEoF,EAClBwyC,EAAIjqC,EAAEiqC,EAAI90C,EAAE80C,EAAI53C,EAAE43C,EACtBx2C,KAAK2mG,OAAShe,EAA0C3vC,SAAS72C,OAAO4oC,EAAI,EAAG/mC,EAAI,EAAGwyC,EAAI,GAC1Fx2C,KAAK2mG,OAAOyB,WAChB,EAEAgtH,eAAgB,WACZ,IAAIC,EAAK1sI,EAA0C3vC,SAASsqD,gBAAgBtjG,KAAK8yN,IAAK9yN,KAAK+yN,KACvFuC,EAAK3sI,EAA0C3vC,SAASsqD,gBAAgBtjG,KAAK8yN,IAAK9yN,KAAKgzN,KACvFuC,EAAK5sI,EAA0C3vC,SAASK,MAAMg8K,EAAIC,GAEtE,OADAC,EAAGntH,YACImtH,EAAG/+K,GAAK,CACnB,EAEAT,KAAM,SAAUpiC,EAAKyuH,GACN,MAAPzuH,IAGJyuH,EAAIzvB,aAAa3yG,KAAKuM,EAAEw5F,SAAU/lG,KAAK8yN,KACvC1wF,EAAIzvB,aAAa3yG,KAAK0B,EAAEqkG,SAAU/lG,KAAK+yN,KACvC3wF,EAAIzvB,aAAa3yG,KAAKpB,EAAEmnG,SAAU/lG,KAAKgzN,KACnChzN,KAAKo1N,mBAAqBp5G,EAAe0rG,WAI7C1nN,KAAKw1N,cAAc7hN,EAAK3T,KAAK4zN,SAAU5zN,KAAK8yN,IAAI/nL,EAAG/qC,KAAK8yN,IAAI9uN,EAAGhE,KAAK+yN,IAAIhoL,EAAG/qC,KAAK+yN,IAAI/uN,EAAGhE,KAAKgzN,IAAIjoL,EAAG/qC,KAAKgzN,IAAIhvN,EAAGhE,KAAKuM,EAAEs5F,GAAI7lG,KAAKuM,EAAEu5F,GAAI9lG,KAAK0B,EAAEmkG,GAAI7lG,KAAK0B,EAAEokG,GAAI9lG,KAAKpB,EAAEinG,GAAI7lG,KAAKpB,EAAEknG,IAHzKkW,EAAeq3G,kBAIvB,EAEAmC,cAAe,SAAU7hN,EAAK8hN,EAAIC,EAAIC,EAAI1yH,EAAID,EAAItkC,EAAIC,EAAIi3J,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GAC/E,IAAKj2N,KAAKk2N,WAAW,EAAGl6G,EAAe71E,MAAO,EAAG61E,EAAe51E,OAAQsvL,EAAIC,EAAI1yH,EAAID,EAAItkC,EAAIC,GACxF,OAAO,EAEXq9C,EAAek5G,eAAel1N,KAAKizN,YAAayC,EAAIC,EAAI1yH,EAAID,EAAItkC,EAAIC,EAAI3+D,KAAK4yN,mBAC7E52G,EAAek5G,eAAel1N,KAAKkzN,YAAajwH,EAAID,EAAI0yH,EAAIC,EAAIj3J,EAAIC,EAAI3+D,KAAK4yN,mBAC7E52G,EAAek5G,eAAel1N,KAAKmzN,YAAaz0J,EAAIC,EAAIskC,EAAID,EAAI0yH,EAAIC,EAAI31N,KAAK4yN,mBAC7E8C,EAAK11N,KAAKizN,YAAYloL,EACtB4qL,EAAK31N,KAAKizN,YAAYjvN,EACtBi/F,EAAKjjG,KAAKkzN,YAAYnoL,EACtBi4D,EAAKhjG,KAAKkzN,YAAYlvN,EACtB06D,EAAK1+D,KAAKmzN,YAAYpoL,EACtB4zB,EAAK3+D,KAAKmzN,YAAYnvN,EACtB2P,EAAIymC,OACA4hE,EAAe+O,cACfp3G,EAAI2mC,YACJ3mC,EAAIgoC,OAAO+5K,EAAIC,GACfhiN,EAAIioC,OAAOqnD,EAAID,GACfrvF,EAAIioC,OAAO8iB,EAAIC,GACfhrD,EAAIkoC,YACJloC,EAAIkvM,QAER,IAAIsT,EAAQP,GAAOK,EAAMF,GAAOD,EAAMG,EAAMD,EAAMD,GAAOD,EAAME,GAAOH,EAOlElqH,IAAQkqH,GAAOn3J,EAAKukC,GAAM8yH,EAAMr3J,EAAKu3J,EAAMhzH,GAAM8yH,EAAME,GAAOP,GAAMS,EACpEvqH,GAAOmqH,EAAMp3J,EAAKk3J,GAAO7yH,EAAKrkC,GAAMs3J,EAAMjzH,GAAMizH,EAAMF,GAAOJ,GAAMQ,EACnEpqH,GAAO6pH,GAAOl3J,EAAKukC,GAAM6yH,EAAMp3J,EAAKs3J,EAAM/yH,GAAM6yH,EAAME,GAAON,GAAMS,EACnEnqH,IAAQ8pH,EAAMn3J,EAAKi3J,GAAO5yH,EAAKrkC,GAAMq3J,EAAMhzH,GAAMgzH,EAAMF,GAAOH,GAAMQ,EACpEn+G,GAAM49G,GAAOK,EAAMhzH,EAAK8yH,EAAMr3J,GAAMm3J,GAAOC,EAAMp3J,EAAKs3J,EAAM/yH,IAAO+yH,EAAMD,EAAMD,EAAMG,GAAOP,GAAMS,EAClGl+G,GAAM29G,GAAOK,EAAMjzH,EAAK+yH,EAAMp3J,GAAMk3J,GAAOC,EAAMn3J,EAAKq3J,EAAMhzH,IAAOgzH,EAAMD,EAAMD,EAAMG,GAAON,GAAMQ,EAatG,OAZAxiN,EAAIolC,UAAU4yD,EAAKC,EAAKG,EAAKC,EAAKgM,EAAIC,GAClC+D,EAAe+O,cACfp3G,EAAI0mC,YAAcr6C,KAAKyhB,QACnBzhB,KAAK4hI,SAAW,IAChBjuH,EAAI0mC,YAAc,EAClB1mC,EAAI6mC,UAAY,QAChB7mC,EAAI44G,SAAS,EAAG,EAAGvQ,EAAe71E,MAAO61E,EAAe51E,QACxDzyB,EAAI0mC,YAAcr6C,KAAK4hI,SAAW5hI,KAAKyhB,SAE3C9N,EAAIi5G,UAAU6oG,EAAI,EAAG,IAEzB9hN,EAAIgnC,WACG,CACX,EAEAu7K,WAAY,SAAU30K,EAAG9gD,EAAG6B,EAAGZ,EAAGg0N,EAAIC,EAAI1yH,EAAID,EAAItkC,EAAIC,GAClD,GAAI+2J,EAAKn0K,GAAKm0K,EAAKj1N,GAAKk1N,EAAKrzN,GAAKqzN,EAAKj0N,EACnC,OAAO,EAEX,GAAIuhG,EAAK1hD,GAAK0hD,EAAKxiG,GAAKuiG,EAAK1gG,GAAK0gG,EAAKthG,EACnC,OAAO,EAEX,GAAIg9D,EAAKnd,GAAKmd,EAAKj+D,GAAKk+D,EAAKr8D,GAAKq8D,EAAKj9D,EACnC,OAAO,EAEX,IAAI00N,EAA6B,EAAxBp6G,EAAe51E,OACxB,QAAIpmC,KAAK6yN,UAAY,IAAOvtN,KAAKkjD,IAAIktK,EAAKzyH,GAAMmzH,GAAQ9wN,KAAKkjD,IAAImtK,EAAK3yH,GAAMozH,GAAQ9wN,KAAKkjD,IAAIkW,EAAKukC,GAAMmzH,GAAQ9wN,KAAKkjD,IAAImW,EAAKqkC,GAAMozH,GAAQ9wN,KAAKkjD,IAAIktK,EAAKh3J,GAAM03J,GAAQ9wN,KAAKkjD,IAAImtK,EAAKh3J,GAAMy3J,MAGrLp2N,KAAKq2N,uBAAuB90K,EAAG9gD,EAAG6B,EAAGZ,EAAGg0N,EAAIC,EAAI1yH,EAAID,IAAOhjG,KAAKq2N,uBAAuB90K,EAAG9gD,EAAG6B,EAAGZ,EAAGuhG,EAAID,EAAItkC,EAAIC,IAAO3+D,KAAKq2N,uBAAuB90K,EAAG9gD,EAAG6B,EAAGZ,EAAGg9D,EAAIC,EAAI+2J,EAAIC,GACrL,EAEAU,uBAAwB,SAAU90K,EAAG9gD,EAAG6B,EAAGZ,EAAGg0N,EAAIC,EAAI1yH,EAAID,GACtD,IAAIszH,EACAC,EACAC,EACAC,EACA5xN,EACAjG,EA0BA83N,EACAC,EAWJ,OAnCA9xN,GAAKm+F,EAAK2yH,IAAO1yH,EAAKyyH,GACtB92N,EAAI+2N,EAAM9wN,EAAI6wN,EAGV7wN,EAAI,GACJyxN,EAAoBzxN,EAAI08C,EAAI3iD,EAC5B23N,EAAuB1xN,EAAIpE,EAAI7B,IAG/B03N,EAAoBzxN,EAAIpE,EAAI7B,EAC5B23N,EAAuB1xN,EAAI08C,EAAI3iD,GAI/B+2N,EAAK3yH,GACLwzH,EAAmBb,EACnBc,EAAsBzzH,IAEtBwzH,EAAmBxzH,EACnByzH,EAAsBd,GAM1Be,EAAcJ,EAAmBE,EAAoBF,EAAmBE,EACxEG,EAAcJ,EAAsBE,EAAuBF,EAAsBE,EASzEC,EAAaC,KAAmBA,EAAar0N,GAAOo0N,EAAah1N,EAC7E,IAGJ,EAAG4yC,EAA4C4D,cAAc,iBAAkB,CAAC8jE,EAAgBm5G,EAAiB,MAG1G,EAED;;;qCAIA,CAAEx2N,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCq3N,yBAA0B,IAAM,EAChCC,iBAAkB,IAAM,EACxBC,0BAA2B,IAAM,EACjCC,gBAAiB,IAAM,EACvBC,sBAAuB,IAAM,IAE/B,IAAItsK,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFzO,EAAwC,kBAAqC,iBAC7EspD,EAAkD,4BAA+C,2BACjGwjE,EAAgD,0BAA6C,yBAC7FiuD,EAA8C,wBAA2C,uBACzFC,EAAqD,+BAAkD,8BACvGC,EAAwD,kCAAqD,iCAC7GzwD,EAA4C,sBAAyC,qBACrF0wD,EAAyD,mCAAsD,kCAC/GC,EAAyD,kCAAqD,iCAC9GC,EAA2C,oBAAuC,mBA4B3G,SAASN,EAAsBO,GAC3B7sK,EAAoC9P,GAAG8jI,UAAUl+K,KAAKR,MACtDA,KAAKw3N,YAAYD,EACrB,CAEA,IAAIE,EAAyB,CACzBC,YAAa,WACT,OAAO13N,KAAK23N,UAChB,EAEAH,YAAa,SAAU52N,GAEnB,OADAZ,KAAK23N,WAAa/2N,EACXA,CACX,GAQJ,SAASi2N,EAAiB7rL,EAAIC,EAAKvO,GAC/B18B,KAAK43N,MAAQ,EACb53N,KAAK63N,OAAS,EACd73N,KAAK83N,QAAU,EACfptK,EAAoC9P,GAAG8jI,UAAUl+K,KAAKR,MACtDA,KAAK2jC,OAAY,GAALqH,GACZhrC,KAAK6jC,QAAQoH,GACbjrC,KAAK+3N,SAASr7L,EAAO,EACzB,EAbA,EAAGiuB,EAA4CzS,cAAc,wBAAyB,CAAC8+K,EAAuBS,EAAwB/sK,EAAoC9P,GAAG8jI,YAe7K,IAAIs5C,EAAoB,CACpB5nI,OAAQ,WACJ,OAAOpwF,KAAK43N,KAChB,EAEAj0L,OAAQ,SAAU/iC,GAEd,OADAZ,KAAK43N,MAAQh3N,EACNA,CACX,EAEAyvF,QAAS,WACL,OAAOrwF,KAAK63N,MAChB,EAEAh0L,QAAS,SAAUjjC,GAEf,OADAZ,KAAK63N,OAASj3N,EACPA,CACX,EAEAq3N,SAAU,WACN,OAAOj4N,KAAK83N,OAChB,EAEAC,SAAU,SAAUn3N,GAEhB,OADAZ,KAAK83N,QAAUl3N,EACRA,CACX,GAQJ,SAASg2N,EAAyB5rL,EAAIC,EAAKhkC,GACvCjH,KAAK43N,MAAQ,EACb53N,KAAK63N,OAAS,EACdntK,EAAoC9P,GAAG8jI,UAAUl+K,KAAKR,MACtDA,KAAK2jC,OAAY,GAALqH,GACZhrC,KAAK6jC,QAAQoH,GACbjrC,KAAKwsB,OAAOvlB,EAChB,EAZA,EAAG0jD,EAA4CzS,cAAc,mBAAoB,CAAC2+K,EAAkBmB,EAAmBttK,EAAoC9P,GAAG8jI,YAc9J,IAAIw5C,EAA4B,CAC5B9nI,OAAQ,WACJ,OAAOpwF,KAAK43N,KAChB,EAEAj0L,OAAQ,SAAU/iC,GAEd,OADAZ,KAAK43N,MAAQh3N,EACNA,CACX,EAEAyvF,QAAS,WACL,OAAOrwF,KAAK63N,MAChB,EAEAh0L,QAAS,SAAUjjC,GAEf,OADAZ,KAAK63N,OAASj3N,EACPA,CACX,EAEA2rB,OAAQ,WACJ,OAAOvsB,KAAKm4N,KAChB,EAEA3rM,OAAQ,SAAU5rB,GAEd,OADAZ,KAAKm4N,MAAQv3N,EACNA,CACX,GAQJ,SAASk2N,EAA0BpsN,GAC/BggD,EAAoC9P,GAAG8jI,UAAUl+K,KAAKR,MACtDA,KAAKo4N,OAAS1tN,CAClB,EARA,EAAGigD,EAA4CzS,cAAc,2BAA4B,CAAC0+K,EAA0BsB,EAA2BxtK,EAAoC9P,GAAG8jI,YAUtL,IAAI25C,EAA6B,CAC7B1wL,QAAS,WACL,OAAO3nC,KAAKo4N,MAChB,EAEA/xG,QAAS,SAAUzlH,GAEf,OADAZ,KAAKo4N,OAASx3N,EACPA,CACX,GAQJ,SAASm2N,IACL/2N,KAAKs4N,cAAe,EACpBt4N,KAAKu4N,kBAAmB,EACxBv4N,KAAKw4N,kBAAmB,EACxBx4N,KAAKy4N,eAAgB,CACzB,EAVA,EAAG9tK,EAA4CzS,cAAc,4BAA6B,CAAC4+K,EAA2BuB,EAA4B3tK,EAAoC9P,GAAG8jI,YAYzLq4C,EAAgB2B,4BAA8B,SAAUhuN,GACpD,IAAIiuN,EAAejuN,EAAI6D,cACvB,OAAQm8C,EAAoC9P,GAAG6vI,SAASkuC,EAAc,SAAWjuK,EAAoC9P,GAAG6vI,SAASkuC,EAAc,QAAUjuK,EAAoC9P,GAAG6vI,SAASkuC,EAAc,QAAUjuK,EAAoC9P,GAAG6vI,SAASkuC,EAAc,MACnS,EAEA5B,EAAgB6B,aAAe,SAAUjuN,EAAM00B,EAAYw5L,EAAQz2L,GAC3DsoB,EAAoC9P,GAAGqwG,WAAWtgJ,KAClDA,EAAO0sN,EAAuDj6L,aAAai3I,uBAE/E,IAAIykD,EAAgBzB,EAAuDj6L,aAAa62I,yBAAyB7xI,EAAUz3B,EAAMkuN,GACjI,GAAIx5L,EAAY,CACZ,IAAI3C,EAAO0F,EAAS4zH,kBAAkBxwD,EAAgDolB,oBAAoBh+E,WAAWlQ,MACrHssI,EAA8CvlE,iBAAiB3kE,cAAcsD,EAAS0zH,kBAAoB,GAAI1zH,EAAS2zH,kBAAmBr5H,GAAM,EAAO,KAC3J,CACA,OAAOo8L,CACX,EAEA/B,EAAgBgC,cAAgB,SAAUruN,EAAKC,EAAM00B,EAAYw5L,GACzDnuK,EAAoC9P,GAAGqwG,WAAWtgJ,KAClDA,EAAO0sN,EAAuDj6L,aAAa+2I,mBAE/E,IAAI2kD,EAAgB,IAAI1B,EAAuD12L,cAC3E0B,EAAW,IAAIskI,EAA0C9iD,SACzDo1G,EAAY,SAAUlwD,GACtB,IAAI,EAAWlkB,QAAf,CAGYl6F,EAAoC9P,GAAGyG,SAASynH,EAAStJ,aACxD90G,EAAoC9P,GAAGyG,SAASynH,EAASxS,aAKtE,GAJAl0H,EAASswH,qBAAqBoW,EAASwnC,kBAAmBxnC,EAASrB,eAAgB,EAAG,EAAG,EAAGvrH,EAAsCwG,KAAKgnC,YAAYo/E,EAASrB,gBAAiB,EAAG,EAAGqB,EAASvS,aAAc,QAASuS,EAAS0nC,aAAe,EAAG,GAAI1nC,EAASllI,cAAeklI,EAAShlI,cAAeglI,EAAStX,gBAAgB,EAAO,IAAI,GAAO,EAAO,EAAGsX,EAAS6nC,iBAAkB7nC,EAAS8nC,iBAAkB9nC,EAASmnC,gBAAiBnnC,EAAS3T,iBAAkB,GAAI,GAAI,EAAG,IAC7c/yH,EAAS0wH,aAAagW,GACtBgwD,EAAc5xD,aAAa9kI,GAC3Bi1L,EAAuDj6L,aAAa42I,qBAAqB8kD,EAAenuN,GACpG00B,EAAY,CACZ,IAAI3C,EAAO0F,EAAS4zH,kBAAkBxwD,EAAgDolB,oBAAoBh+E,WAAWlQ,MACrHssI,EAA8CvlE,iBAAiB3kE,cAAcgqI,EAAShT,kBAAoB,GAAIgT,EAAS/S,kBAAmBr5H,GAAM,EAAO,KAC3J,CACc,MAAVm8L,GACAA,EAAOC,EAZX,CAcJ,EAUA,OATIpuK,EAAoC9P,GAAGqwG,WAAWtgJ,KAClDA,EAAO0sN,EAAuDj6L,aAAa+2I,mBAE3E3uE,EAAgD8iE,cAChD,IAAI4uD,EAAmD7gE,UAAUj0H,EAAU13B,EAAK,KAAMsuN,GAGtF,IAAI7B,EAAsD15D,YAAYr7H,EAAU13B,EAAK,KAAMsuN,GAExFF,CACX,EAEA,IAAIG,EAAmB,CACnBz7L,UAAW,SAAU58B,GACjBZ,KAAKk5N,QAAUxuK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKk5N,QAASt4N,EAChF,EAEAu4N,aAAc,SAAUv4N,GACpBZ,KAAKk5N,QAAUxuK,EAAoC9P,GAAGknI,QAAQ9hL,KAAKk5N,QAASt4N,EAChF,EAEAw4N,WAAY,WACY,MAAhBp5N,KAAKk5N,QACLl5N,KAAKk5N,QAAQl5N,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,WAE9D1+K,KAAKs4N,cAAe,CAE5B,EAEAe,qBAAsB,SAAUz4N,GAC5BZ,KAAKs5N,mBAAqB5uK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKs5N,mBAAoB14N,EACtG,EAEA24N,wBAAyB,SAAU34N,GAC/BZ,KAAKs5N,mBAAqB5uK,EAAoC9P,GAAGknI,QAAQ9hL,KAAKs5N,mBAAoB14N,EACtG,EAEA44N,sBAAuB,SAAU9uN,GACE,MAA3B1K,KAAKs5N,oBACLt5N,KAAKs5N,mBAAmBt5N,KAAM,IAAI82N,EAA0BpsN,GAEpE,EAEA+uN,uBAAwB,SAAU74N,GAC9BZ,KAAK05N,qBAAuBhvK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAK05N,qBAAsB94N,EAC1G,EAEA+4N,0BAA2B,SAAU/4N,GACjCZ,KAAK05N,qBAAuBhvK,EAAoC9P,GAAGknI,QAAQ9hL,KAAK05N,qBAAsB94N,EAC1G,EAEAg5N,mBAAoB,SAAUh5N,GAC1BZ,KAAK65N,iBAAmBnvK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAK65N,iBAAkBj5N,EAClG,EAEAk5N,sBAAuB,SAAUl5N,GAC7BZ,KAAK65N,iBAAmBnvK,EAAoC9P,GAAGknI,QAAQ9hL,KAAK65N,iBAAkBj5N,EAClG,EAEAm5N,wBAAyB,SAAUn5N,GAC/BZ,KAAKg6N,sBAAwBtvK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKg6N,sBAAuBp5N,EAC5G,EAEAq5N,2BAA4B,SAAUr5N,GAClCZ,KAAKg6N,sBAAwBtvK,EAAoC9P,GAAGknI,QAAQ9hL,KAAKg6N,sBAAuBp5N,EAC5G,EAEAk9B,YAAa,SAAUl9B,GACnBZ,KAAKk6N,UAAYxvK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKk6N,UAAWt5N,EACpF,EAEAu5N,eAAgB,SAAUv5N,GACtBZ,KAAKk6N,UAAYxvK,EAAoC9P,GAAGknI,QAAQ9hL,KAAKk6N,UAAWt5N,EACpF,EAEAw5N,YAAa,SAAUx5N,GACnBZ,KAAKq6N,UAAY3vK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKq6N,UAAWz5N,EACpF,EAEA05N,eAAgB,SAAU15N,GACtBZ,KAAKq6N,UAAY3vK,EAAoC9P,GAAGknI,QAAQ9hL,KAAKq6N,UAAWz5N,EACpF,EAEA25N,sBAAuB,SAAU35N,GAC7BZ,KAAKw6N,oBAAsB9vK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKw6N,oBAAqB55N,EACxG,EAEA65N,yBAA0B,SAAU75N,GAChCZ,KAAKw6N,oBAAsB9vK,EAAoC9P,GAAGknI,QAAQ9hL,KAAKw6N,oBAAqB55N,EACxG,EAEA85N,kBAAmB,SAAU95N,GACzBZ,KAAK26N,gBAAkBjwK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAK26N,gBAAiB/5N,EAChG,EAEAg6N,qBAAsB,SAAUh6N,GAC5BZ,KAAK26N,gBAAkBjwK,EAAoC9P,GAAGknI,QAAQ9hL,KAAK26N,gBAAiB/5N,EAChG,EAEAo9B,cAAe,SAAUp9B,GACrBZ,KAAK66N,YAAcnwK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAK66N,YAAaj6N,EACxF,EAEAk6N,iBAAkB,SAAUl6N,GACxBZ,KAAK66N,YAAcnwK,EAAoC9P,GAAGknI,QAAQ9hL,KAAK66N,YAAaj6N,EACxF,EAEAm6N,cAAe,SAAUn6N,GACrBZ,KAAKg7N,YAActwK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKg7N,YAAap6N,EACxF,EAEAq6N,iBAAkB,SAAUr6N,GACxBZ,KAAKg7N,YAActwK,EAAoC9P,GAAGknI,QAAQ9hL,KAAKg7N,YAAap6N,EACxF,EAEAs6N,eAAgB,SAAUt6N,GACtBZ,KAAKm7N,aAAezwK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKm7N,aAAcv6N,EAC1F,EAEAw6N,kBAAmB,SAAUx6N,GACzBZ,KAAKm7N,aAAezwK,EAAoC9P,GAAGknI,QAAQ9hL,KAAKm7N,aAAcv6N,EAC1F,EAEAy6N,gBAAiB,SAAUz6N,GACvBZ,KAAKs7N,cAAgB5wK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKs7N,cAAe16N,EAC5F,EAEA26N,mBAAoB,SAAU36N,GAC1BZ,KAAKs7N,cAAgB5wK,EAAoC9P,GAAGknI,QAAQ9hL,KAAKs7N,cAAe16N,EAC5F,EAEAw9B,cAAe,SAAUx9B,GACrBZ,KAAKw7N,YAAc9wK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAKw7N,YAAa56N,EACxF,EAEA66N,iBAAkB,SAAU76N,GACxBZ,KAAKw7N,YAAc9wK,EAAoC9P,GAAGknI,QAAQ9hL,KAAKw7N,YAAa56N,EACxF,EAEA86N,iBAAkB,SAAU96N,GACxBZ,KAAK27N,eAAiBjxK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAK27N,eAAgB/6N,EAC9F,EAEAg7N,oBAAqB,SAAUh7N,GAC3BZ,KAAK27N,eAAiBjxK,EAAoC9P,GAAGknI,QAAQ9hL,KAAK27N,eAAgB/6N,EAC9F,EAMAi7N,qBAAsB,SAAUj7N,GAC5BZ,KAAK87N,mBAAqBpxK,EAAoC9P,GAAGgnI,QAAQ5hL,KAAK87N,mBAAoBl7N,EACtG,EAEAm7N,wBAAyB,SAAUn7N,GAC/BZ,KAAK87N,mBAAqBpxK,EAAoC9P,GAAGknI,QAAQ9hL,KAAK87N,mBAAoBl7N,EACtG,EAEAo7N,wBAAyB,SAAUC,GAC/B5E,EAAuDj6L,aAAaw7I,mBAAmBqjD,EAC3F,EAEAtjD,cAAe,SAAUhuK,EAAM/J,GAC3BZ,KAAK87N,mBAAmBnxN,EAAM/J,EAClC,EAEAs7N,gBAAiB,SAAUC,EAAgBj8N,GACN,MAA7BF,KAAK05N,sBACL15N,KAAK05N,qBAAqByC,EAAgBj8N,EAElD,EAEA++K,oBAAqB,SAAUx8J,GACE,MAAzBziB,KAAK65N,kBACL75N,KAAK65N,iBAAiBp3M,EAAO,IAAIioC,EAAoC9P,GAAG8jI,UAEhF,EAEAxN,uBAAwB,WACc,MAA9BlxK,KAAKg6N,uBACLh6N,KAAKg6N,sBAAsB,KAAM,IAAItvK,EAAoC9P,GAAG8jI,UAEpF,EAEA09C,eAAgB,WACY,MAApBp8N,KAAK66N,aACL76N,KAAK66N,YAAY76N,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,UAE1E,EAEA29C,eAAgB,SAAUC,GACE,MAApBt8N,KAAKg7N,aACLh7N,KAAKg7N,YAAYsB,EAAI,IAAI5xK,EAAoC9P,GAAG8jI,UAExE,EAEA69C,gBAAiB,WACY,MAArBv8N,KAAKm7N,cACLn7N,KAAKm7N,aAAan7N,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,UAE3E,EAEA89C,gBAAiB,WACa,MAAtBx8N,KAAKs7N,eACLt7N,KAAKs7N,cAAct7N,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,UAE5E,EAEA+9C,eAAgB,WACY,MAApBz8N,KAAKw7N,aACLx7N,KAAKw7N,YAAYx7N,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,UAE1E,EAEAg+C,mBAAoB,WACY,MAAxB18N,KAAK26N,iBACL36N,KAAK26N,gBAAgB36N,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,UAE9E,EAEAi+C,WAAY,SAAU3xL,EAAIC,GACA,MAAlBjrC,KAAKq6N,WACLr6N,KAAKq6N,UAAUr6N,KAAM,IAAI62N,EAAiB7rL,EAAIC,EAAKu6D,EAAgDolB,oBAAoBh+E,WAAWlQ,MAE1I,EAEAkgM,aAAc,SAAU5xL,EAAIC,EAAKvO,GACP,MAAlB18B,KAAKk6N,WACLl6N,KAAKk6N,UAAUl6N,KAAM,IAAI62N,EAAiB7rL,EAAIC,EAAKvO,GAE3D,EAEAmgM,uBAAwB,SAAUzlL,EAAI0lL,EAAK71N,GACvC,IACoC,MAA5BjH,KAAKw6N,qBACLx6N,KAAKw6N,oBAAoBx6N,KAAM,IAAI42N,EAAyBx/K,EAAI0lL,EAAK71N,GAE7E,CACA,MAAOstF,GACP,CACJ,EAEAwoI,kBAAmB,SAAUxF,GACzB,IAC+B,MAAvBv3N,KAAK27N,gBACL37N,KAAK27N,eAAe37N,KAAM,IAAIg3N,EAAsBO,GAE5D,CACA,MAAOhjI,GACP,CACJ,EAEAyoI,QAAS,WACDh9N,KAAKs4N,cACLt4N,KAAKo5N,YAEb,EAEA6D,cAAe,SAAUjyL,EAAIC,EAAKvO,EAAMwC,EAASswE,GACyB,MAAlEw5D,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiB3kE,cAAckM,EAAK,GAAIC,EAAY,EAAPvO,EAAUwC,EAASswE,EAEtH,EAEAjtE,yBAA0B,SAAU53B,GACsC,MAAlEq+J,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiBlhE,yBAAyB53B,EAEhG,EAGAkpK,gBAAiB,SAAUC,GACvB,OAAOujD,EAAuDj6L,aAAay2I,gBAAgBC,EAAO,WACtG,EAEAopD,UAAW,WACP,OAAO7F,EAAuDj6L,aAAaqD,eAC/E,EAEAgC,yBAA0B,SAAU93B,GACsC,MAAlEq+J,EAA8CvlE,mBAC9CulE,EAA8CvlE,iBAAiBhhE,yBAAyB93B,GACxF66F,EAAgDolB,oBAAoBh+E,WAAWnrB,QAAU,IAEjG,EAEAihB,qBAAsB,SAAUjhB,GAC0C,MAAlEunJ,EAA8CvlE,mBAC9C+B,EAAgDolB,oBAAoBh+E,WAAWnrB,QAAUA,EAEjG,EAEAsgB,qBAAsB,SAAUp3B,GAC0C,MAAlEq+J,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiB1hE,qBAAqBp3B,EAE5F,EAEAwyN,iCAAkC,SAAUxyN,EAAMgkN,GACwB,MAAlE3lD,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiB05H,iCAAiCxyN,EAAMgkN,EAE9G,EAEAz+K,wBAAyB,SAAUvlC,GACuC,MAAlEq+J,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiBvzD,wBAAwBvlC,EAE/F,EAEAw3B,yBAA0B,SAAUx3B,EAAM03B,EAAO+rL,GACyB,MAAlEplD,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiBthE,yBAAyBx3B,EAAM03B,EAAO+rL,EAE7G,EAEAgP,eAAgB,SAAU56L,EAAc+nD,EAAKhlF,GAC6B,MAAlEyjK,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiB25H,eAAe56L,EAAc+nD,EAAKhlF,EAEzG,EAEA83N,mBAAoB,SAAU76L,EAAc8F,GAC8B,MAAlE0gI,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiB45H,mBAAmB76L,EAAc8F,EAExG,EAEAg1L,oBAAqB,SAAU96L,EAAc0F,GAC6B,MAAlE8gI,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiB65H,oBAAoB96L,EAAc0F,EAEzG,EAEAq1L,OAAQ,SAAUC,GAAQ,EAE1Bh5L,SAAU,SAAU95B,GACsD,MAAlEs+J,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiB3+D,SAASp6B,EAEhF,EAEA+yN,SAAU,SAAU/yN,GAChB,OAAO1K,KAAK0vC,cAAchlC,EAAK,IAAI,EAAM,KAC7C,EAEAglC,cAAe,SAAUhlC,EAAKC,EAAM00B,EAAYw5L,GAC5C,OAAO74N,KAAKkgC,iBAAiBx1B,EAAK,OAAQC,EAAM00B,EAAYw5L,EAChE,EAEA34L,iBAAkB,SAAUx1B,EAAK01B,EAAMz1B,EAAM00B,EAAYw5L,GACrD,GAAY,MAARz4L,GAAuC,SAAvBA,EAAK7xB,cACrB,OAAOwoN,EAAgBgC,cAAcruN,EAAKC,EAAM00B,EAAYw5L,GACzD,GAAY,MAARz4L,GAAuC,cAAvBA,EAAK7xB,cAA+B,CAC3D,IAAI6zB,EAAW4mI,EAA8CvlE,iBAAiBi6H,iBAAiBhzN,GAC/F,GAAgB,MAAZ03B,EACA,OAAO20L,EAAgB6B,aAAajuN,EAAM00B,EAAYw5L,EAAQz2L,EAEtE,KAAO,CACCA,EAAW4mI,EAA8CvlE,iBAAiBi6H,iBAAiBhzN,GAC/F,GAAgB,MAAZ03B,EACA,OAAO20L,EAAgB6B,aAAajuN,EAAM00B,EAAYw5L,EAAQz2L,GAE7D,GAAI20L,EAAgB2B,4BAA4BhuN,GACjD,OAAOqsN,EAAgBgC,cAAcruN,EAAKC,EAAM00B,EAAYw5L,EAEpE,CACA,OAAO,IACX,EAEAv4L,sBAAuB,SAAUr5B,EAAIs5B,GACjC,IAAI9d,EAAQ40M,EAAuDj6L,aAAaqD,gBAAgBx5B,GAC5FyjD,EAAoC9P,GAAG21C,QAAQ9tE,EAAO20M,EAAuD12L,gBAAkBH,GAAS,IACxImqB,EAAoC9P,GAAG46C,QAAO,EAAGwzE,EAA8CtlE,0BAA0BjhF,EAAMX,sBAAsB4mB,OAAQjmB,IAG7J,EAAGumJ,EAA8CtlE,0BAA0BjhF,EAAMX,sBAAsB4mB,OAAOljC,OAAO+6B,EAAO,EAAG9d,GAEvI,EAEA0qB,cAAe,WACX,OAAOq4D,EAAgD8iE,aAC3D,EAEAq1D,qBAAsB,WAClB,OAAO39N,KAAKu4N,gBAChB,EAEAqF,qBAAsB,SAAUh9N,GAE5B,OADAZ,KAAKu4N,iBAAmB33N,EACjBA,CACX,EAEAkkC,SAAU,WACgE,MAAlEkkI,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiBo6H,iBAEvE,EAEAC,SAAU,WACgE,MAAlE90D,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiBs6H,iBAEvE,EAEAn+L,oBAAqB,SAAUl1B,EAAKm1B,GAChC,IAAI8qF,EAAQ3qH,KAEZA,KAAKg+N,UAAYtzN,GACjB,EAAGs+J,EAA8CrlE,cAAcj5F,GAAK,WAChEigH,EAAM6uG,sBAAsB9uN,EAChC,GAAGm1B,EACP,EAEAo+L,iBAAkB,WACdj+N,KAAKw5N,sBAAsBx5N,KAAKg+N,UACpC,EAEAthM,KAAM,SAAU2Q,GAC0D,MAAlE27H,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiB/mE,KAAK2Q,EAG5E,EAEAX,MAAO,WACH,OAAsE,MAAlEs8H,EAA8CvlE,iBACvC+B,EAAgDolB,oBAAoBx6B,SAExE,CACX,EAEAzjD,OAAQ,WACJ,OAAsE,MAAlEq8H,EAA8CvlE,iBACvC+B,EAAgDolB,oBAAoBv6B,UAExE,CACX,EAEA6tI,aAAc,WACV,IAAI57G,EAAS,IAAIg1G,EAAyCl4G,OAC1D,OAAOkD,CACX,EAEA67G,cAAe,SAAU5wM,GACrB,IAAI1sB,EAAI,IAAIo2N,EAA4C7iL,KAExD,OADAvzC,EAAE2sB,SAASD,GACJ1sB,CACX,EAEAu9N,eAAgB,SAAU7wM,GACtB,OAAO,IAAI0pM,EAA4C5iL,QAC3D,EAEAgqL,aAAc,SAAU9wM,GACpB,IAAI3uB,EAAI,IAAIq4N,EAA4C9iL,OAExD,OADAv1C,EAAE4uB,SAASD,GACJ3uB,CACX,EAEAuxC,cAAe,SAAUwoK,GACH,MAAdA,GAAsBjuJ,EAAoC9P,GAAG21C,QAAQooH,EAAYse,EAA4C/iL,aACvD,MAAlE80H,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiB66H,eAAe3lB,EAG1F,EAEAtoK,iBAAkB,SAAUsoK,GACN,MAAdA,GACsE,MAAlE3vC,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiB86H,kBAAkB5lB,EAG7F,EAEAroK,iBAAkB,WACwD,MAAlE04H,EAA8CvlE,kBAC9CulE,EAA8CvlE,iBAAiB+6H,mBAEvE,EAEAC,oBAAqB,WACjB,OAAOz+N,KAAKw4N,gBAChB,EAEAkG,oBAAqB,SAAU99N,GAE3B,OADAZ,KAAKw4N,iBAAmB53N,EACjBA,CACX,EAEA+9N,iBAAkB,WACd,OAAO3+N,KAAKy4N,aAChB,EAEAmG,iBAAkB,SAAUh+N,GAExB,OADAZ,KAAKy4N,cAAgB73N,EACdA,CACX,EAEAi+N,YAAa,SAAUn0N,EAAKo0N,GAAkB,EAE9CC,QAAS,WACL,OAAsE,MAAlE/1D,EAA8CvlE,iBACvC+B,EAAgDolB,oBAAoBh+E,WAAWlQ,KAAO,EAE1F,EACX,IAGJ,EAAGiuB,EAA4CzS,cAAc,kBAAmB,CAAC6+K,EAAiBkC,EAAkB,MAG7G,EAED;;;6BAIA,CAAEt6N,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCy/N,iBAAkB,IAAM,EACxBpmI,SAAU,IAAM,EAChBqmI,qBAAsB,IAAM,IAE9B,IAAI3qL,EAA8C,wBAA2C,uBACzF4qL,EAAyC,mBAAsC,kBAC/EC,EAAwD,kCAAqD,iCAC7GC,EAA8C,wBAA2C,uBAgB9GH,EAAuB,CACvBtrG,MAAO,EACP0rG,eAAgB,EAChBC,mBAAoB,EACpBC,aAAc,EACdC,iBAAkB,EAClBC,aAAc,EACdC,iBAAkB,EAClBC,iBAAkB,EAClBC,qBAAsB,EACtBC,gBAAiB,EACjBC,UAAW,GACXC,cAAe,GACfC,qBAAsB,GACtBC,wBAAyB,GACzBC,yBAA0B,GAC1BC,mBAAoB,GACpBC,sBAAuB,GACvBC,YAAa,GACbC,WAAY,GACZC,eAAgB,GAChBC,gBAAiB,GACjBC,eAAgB,GAChBC,SAAU,GACVvwM,eAAgB,GAChByJ,iBAAkB,GAClBrB,oBAAqB,GACrBN,kBAAmB,GACnBe,kBAAmB,GACnBM,mBAAoB,GACpBqnM,qBAAsB,GACtBvoM,oBAAqB,GACrB2B,uBAAwB,GACxB6mM,oBAAqB,GACrBxrM,mBAAoB,GACpByrM,eAAgB,GAChBC,0BAA2B,GAC3BC,eAAgB,GAChBC,aAAc,GACdxpM,gBAAiB,GACjBypM,SAAU,GACVC,YAAa,GACb5qM,aAAc,GACdwB,eAAgB,GAChBqpM,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,SAAU,GACVC,aAAc,IAWlB,SAAS1C,EAAiB2C,EAAalgN,EAASmgN,EAAa/wN,GACzD7Q,KAAK4hO,aAAc,EACnB5hO,KAAK2hO,aAAc,EACnB3hO,KAAKyhB,QAAU,EACfzhB,KAAK2hO,YAAcA,EACnB3hO,KAAKyhB,QAAUA,EACfzhB,KAAK4hO,YAAcA,EACnB5hO,KAAK6Q,OAASA,CAClB,EAhBA,EAAGyjC,EAA4C4D,cAAc,uBAAwB+mL,IACrF,EAAG3qL,EAA4Ci6C,cAAc,uBAAwB0wI,GAiBrF,IAAI4C,EAAoB,CAAC,EAOzB,SAASjpI,IACL54F,KAAK8hO,gBAAiB,EACtB9hO,KAAK+hO,mBAAoB,EACzB/hO,KAAKgiO,eAAgB,EACrBhiO,KAAKiiO,2BAA6B,OAClCjiO,KAAKkiO,6BAA+B,SACpCliO,KAAKmiO,0BAA4B,MACjCniO,KAAKoiO,2BAA4B,EACjCpiO,KAAKqiO,6BAA8B,EACnCriO,KAAKsiO,6BAA8B,EACnCtiO,KAAKuiO,iBAAkB,EACvBviO,KAAKwiO,iBAAmB,QACxBxiO,KAAKyiO,eAAgB,EACrBziO,KAAK0iO,aAAe,OACpB1iO,KAAK2iO,cAAgB,SACrB3iO,KAAK4iO,kBAAoB,IACzB5iO,KAAK6iO,kBAAmB,EACxB7iO,KAAK8iO,oBAAqB,EAC1B9iO,KAAK+iO,WAAa,EAClB/iO,KAAKgjO,aAAe,EACpBhjO,KAAKijO,cAAgB,EACrBjjO,KAAKkjO,aAAc,EACnBljO,KAAKmjO,WAAY,EACjBnjO,KAAKojO,cAAe,EACpBpjO,KAAKqjO,sBAAuB,EAC5BrjO,KAAKsjO,yBAA0B,EAC/BtjO,KAAKujO,kBAAmB,EACxBvjO,KAAKwjO,mBAAoB,EACzBxjO,KAAKyjO,sBAAuB,EAC5BzjO,KAAK0jO,oBAAqB,EAC1B1jO,KAAK2jO,oBAAqB,EAC1B3jO,KAAK4jO,sBAAuB,EAC5B5jO,KAAK6jO,sBAAuB,EAC5B7jO,KAAK8jO,sBAAuB,EAC5B9jO,KAAK+jO,kBAAoB,EACzB/jO,KAAKgkO,YAAa,EAClBhkO,KAAKikO,qBAAsB,EAC3BjkO,KAAKkkO,yBAA0B,EAC/BlkO,KAAKmkO,mBAAoB,EACzBnkO,KAAKokO,uBAAwB,EAC7BpkO,KAAKqkO,mBAAoB,EACzBrkO,KAAKskO,uBAAwB,EAC7BtkO,KAAKukO,2BAA4B,EACjCvkO,KAAKwkO,gBAAiB,EACtBxkO,KAAKykO,mBAAqBvF,EAAuCrnL,OAAO25C,YACxExxF,KAAK0kO,mBAAqBxF,EAAuCrnL,OAAOw5C,WACxErxF,KAAK2kO,gBAAkBzF,EAAuCrnL,OAAO65C,cACrE1xF,KAAK4kO,sBAAwB1F,EAAuCrnL,OAAO85C,aAC3E3xF,KAAK6kO,eAAiB3F,EAAuCrnL,OAAOs5C,WACpEnxF,KAAK8kO,qBAAuB5F,EAAuCrnL,OAAOC,YAC1E93C,KAAK+kO,oBAAqB,EAC1B/kO,KAAKglO,sBAAuB,EAC5BhlO,KAAKilO,4BAA6B,EAClCjlO,KAAKklO,0BAA2B,EAChCllO,KAAKmlO,2BAA6B,GAClCnlO,KAAKolO,iBAAkB,EACvBplO,KAAKqlO,0BAA2B,EAChCrlO,KAAKslO,qBAAsB,EAC3BtlO,KAAKulO,eAAgB,EACrBvlO,KAAKwlO,yBAA0B,EAC/BxlO,KAAKylO,uBAAyB,GAC9BzlO,KAAK0lO,4BAA8B,IAAIvG,EAAsDltI,oBAC7FjyF,KAAK2lO,+BAAiC,IAAIxG,EAAsDltI,oBAChGjyF,KAAK4lO,0BAA4B,IAAIzG,EAAsDltI,oBAC3FjyF,KAAK6lO,wBAA0B,IAAI1G,EAAsDltI,oBACzFjyF,KAAK8lO,kBAAmB,EACxB9lO,KAAK+lO,qBAAsB,EAC3B/lO,KAAKgmO,cAAe,EACpBhmO,KAAKimO,eAAgB,EACrBjmO,KAAKkmO,sBAAuB,EAC5BlmO,KAAKmmO,mBAAoB,EACzBnmO,KAAKomO,eAAgB,EACrBpmO,KAAKqmO,gBAAiB,EACtBrmO,KAAKsmO,oBAAsB,IAC3BtmO,KAAKumO,oBAAsB,WAC3BvmO,KAAKwmO,iBAAkB,CAC3B,EAjFA,EAAGlyL,EAA4C4D,cAAc,mBAAoB,CAAC8mL,EAAkB6C,EAAmB,OAmFvHjpI,EAAS6tI,QAAU,KACnB7tI,EAAS8tI,aAAe,KAExB9tI,EAASmgG,YAAc,WAInB,OAHwB,MAApBngG,EAAS6tI,UACT7tI,EAAS6tI,QAAU,IAAI7tI,GAEpBA,EAAS6tI,OACpB,EAEA7tI,EAAS4D,mBAAqB,WAI1B,OAHwB,MAApB5D,EAAS6tI,UACT7tI,EAAS6tI,QAAU,IAAI7tI,GAEpBA,EAAS6tI,OACpB,EAEA7tI,EAASC,WAAa,WAIlB,OAHwB,MAApBD,EAAS6tI,UACT7tI,EAAS6tI,QAAU,IAAI7tI,GAEE,MAAzBA,EAAS8tI,aACF9tI,EAAS8tI,aAEb9tI,EAAS6tI,OACpB,EAEA,IAAIE,EAAY,CACZr3M,6BAA8B,WAC1B,OAAOtvB,KAAKmiO,yBAChB,EAEA3yM,6BAA8B,SAAU5uB,GAEpC,OADAZ,KAAKmiO,0BAA4BvhO,EAC1BA,CACX,EAEAgvB,8BAA+B,WAC3B,OAAO5vB,KAAKiiO,0BAChB,EAEAnyM,8BAA+B,SAAUlvB,GAErC,OADAZ,KAAKiiO,2BAA6BrhO,EAC3BA,CACX,EAEAyvB,gCAAiC,WAC7B,OAAOrwB,KAAKkiO,4BAChB,EAEA3xM,gCAAiC,SAAU3vB,GAEvC,OADAZ,KAAKkiO,6BAA+BthO,EAC7BA,CACX,EAEAqzB,mBAAoB,WAChB,OAAOj0B,KAAKuiO,eAChB,EAEApuM,mBAAoB,SAAUvzB,GAE1B,OADAZ,KAAKuiO,gBAAkB3hO,EAChBA,CACX,EAEA82B,cAAe,WACX,OAAO13B,KAAKgkO,UAChB,EAEApsM,cAAe,SAAUh3B,GAErB,OADAZ,KAAKgkO,WAAapjO,EACXA,CACX,EAEA+vB,oBAAqB,WACjB,OAAO3wB,KAAKwiO,gBAChB,EAEA3xM,oBAAqB,SAAUjwB,GAE3B,OADAZ,KAAKwiO,iBAAmB5hO,EACjBA,CACX,EAEAiuB,sBAAuB,WACnB,OAAO7uB,KAAK8iO,kBAChB,EAEA/zM,sBAAuB,SAAUnuB,GAE7B,OADAZ,KAAK8iO,mBAAqBliO,EACnBA,CACX,EAEAgmO,cAAe,WACX,OAAO5mO,KAAK+iO,UAChB,EAEA8D,gBAAiB,WACb,OAAO7mO,KAAKgjO,YAChB,EAEA8D,iBAAkB,WACd,OAAO9mO,KAAKijO,aAChB,EAEA1xM,qBAAsB,WAClB,OAAOvxB,KAAK4iO,iBAChB,EAEAnxM,qBAAsB,SAAU7wB,GAE5B,OADAZ,KAAK4iO,kBAAoBhiO,EAClBA,CACX,EAEA8wB,gBAAiB,WACb,OAAO1xB,KAAK0iO,YAChB,EAEA9wM,gBAAiB,SAAUhxB,GAEvB,OADAZ,KAAK0iO,aAAe9hO,EACbA,CACX,EAEAixB,gBAAiB,WACb,OAAO7xB,KAAK2iO,YAChB,EAEA5wM,gBAAiB,SAAUnxB,GAEvB,OADAZ,KAAK2iO,aAAe/hO,EACbA,CACX,EAEAmmO,eAAgB,WACZ,OAAO/mO,KAAKkjO,WAChB,EAEAnwM,+BAAgC,WAC5B,OAAO/yB,KAAKqiO,2BAChB,EAEApvM,+BAAgC,SAAUryB,GAEtC,OADAZ,KAAKqiO,4BAA8BzhO,EAC5BA,CACX,EAEAsyB,6BAA8B,WAC1B,OAAOlzB,KAAKoiO,yBAChB,EAEAhvM,6BAA8B,SAAUxyB,GAEpC,OADAZ,KAAKoiO,0BAA4BxhO,EAC1BA,CACX,EAEAkzB,+BAAgC,WAC5B,OAAO9zB,KAAKsiO,2BAChB,EAEAtuM,+BAAgC,SAAUpzB,GAEtC,OADAZ,KAAKsiO,4BAA8B1hO,EAC5BA,CACX,EAEA2zB,iBAAkB,WACd,OAAOv0B,KAAKyiO,aAChB,EAEAhuM,iBAAkB,SAAU7zB,GAExB,OADAZ,KAAKyiO,cAAgB7hO,EACdA,CACX,EAEAu0B,uBAAwB,WACpB,OAAOn1B,KAAKikO,mBAChB,EAEA5uM,uBAAwB,SAAUz0B,GAE9B,OADAZ,KAAKikO,oBAAsBrjO,EACpBA,CACX,EAEAomO,oBAAqB,WACjB,OAAOhnO,KAAK6iO,gBAChB,EAEA9sM,aAAc,WACV,OAAO/1B,KAAKmjO,SAChB,EAEAltM,aAAc,SAAUr1B,GAEpB,OADAZ,KAAKmjO,UAAYviO,EACVA,CACX,EAEAs1B,gBAAiB,WACb,OAAOl2B,KAAKojO,YAChB,EAEAhtM,gBAAiB,SAAUx1B,GAEvB,OADAZ,KAAKojO,aAAexiO,EACbA,CACX,EAEAqmO,wBAAyB,WACrB,OAAOjnO,KAAKqjO,oBAChB,EAEA1gB,2BAA4B,WACxB,OAAO3iN,KAAKsjO,uBAChB,EAEA/rM,oBAAqB,WACjB,OAAOv3B,KAAKujO,gBAChB,EAEA9rM,oBAAqB,SAAU72B,GAE3B,OADAZ,KAAKujO,iBAAmB3iO,EACjBA,CACX,EAEAwwB,qBAAsB,WAClB,OAAOpxB,KAAK+hO,iBAChB,EAEAzwM,qBAAsB,SAAU1wB,GAE5B,OADAZ,KAAK+hO,kBAAoBnhO,EAClBA,CACX,EAEAqwB,iBAAkB,WACd,OAAOjxB,KAAKgiO,aAChB,EAEA7wM,iBAAkB,SAAUvwB,GAExB,OADAZ,KAAKgiO,cAAgBphO,EACdA,CACX,EAEA+4B,qBAAsB,WAClB,OAAO35B,KAAKwjO,iBAChB,EAEA3pM,qBAAsB,SAAUj5B,GAE5B,OADAZ,KAAKwjO,kBAAoB5iO,EAClBA,CACX,EAEA03B,wBAAyB,WACrB,OAAOt4B,KAAKyjO,oBAChB,EAEAjrM,wBAAyB,SAAU53B,GAE/B,OADAZ,KAAKyjO,qBAAuB7iO,EACrBA,CACX,EAEAo3B,sBAAuB,WACnB,OAAOh4B,KAAK0jO,kBAChB,EAEAxrM,sBAAuB,SAAUt3B,GAE7B,OADAZ,KAAK0jO,mBAAqB9iO,EACnBA,CACX,EAEAm4B,sBAAuB,WACnB,OAAO/4B,KAAK2jO,kBAChB,EAEA1qM,sBAAuB,SAAUr4B,GAE7B,OADAZ,KAAK2jO,mBAAqB/iO,EACnBA,CACX,EAEAs4B,wBAAyB,WACrB,OAAOl5B,KAAK4jO,oBAChB,EAEAxqM,wBAAyB,SAAUx4B,GAE/B,OADAZ,KAAK4jO,qBAAuBhjO,EACrBA,CACX,EAEAu3B,wBAAyB,WACrB,OAAOn4B,KAAK6jO,oBAChB,EAEAxrM,wBAAyB,SAAUz3B,GAE/B,OADAZ,KAAK6jO,qBAAuBjjO,EACrBA,CACX,EAEAg4B,wBAAyB,WACrB,OAAO,CACX,EAEAE,wBAAyB,SAAUl4B,GAE/B,OADAZ,KAAK8jO,qBAAuBljO,EACrBA,CACX,EAEA44B,qBAAsB,WAClB,OAAOx5B,KAAK+jO,iBAChB,EAEArqM,qBAAsB,SAAU94B,GAE5B,OADAZ,KAAK+jO,kBAAoBnjO,EAClBA,CACX,EAEA00B,2BAA4B,WACxB,OAAOt1B,KAAKkkO,uBAChB,EAEA1uM,2BAA4B,SAAU50B,GAElC,OADAZ,KAAKkkO,wBAA0BtjO,EACxBA,CACX,EAEA60B,qBAAsB,WAClB,OAAOz1B,KAAKmkO,iBAChB,EAEAxuM,qBAAsB,SAAU/0B,GAE5B,OADAZ,KAAKmkO,kBAAoBvjO,EAClBA,CACX,EAEAg1B,yBAA0B,WACtB,OAAO51B,KAAKokO,qBAChB,EAEAtuM,yBAA0B,SAAUl1B,GAEhC,OADAZ,KAAKokO,sBAAwBxjO,EACtBA,CACX,EAEA8zB,qBAAsB,WAClB,OAAO10B,KAAKqkO,iBAChB,EAEAzvM,qBAAsB,SAAUh0B,GAE5B,OADAZ,KAAKqkO,kBAAoBzjO,EAClBA,CACX,EAEAi0B,yBAA0B,WACtB,OAAO70B,KAAKskO,qBAChB,EAEAvvM,yBAA0B,SAAUn0B,GAEhC,OADAZ,KAAKskO,sBAAwB1jO,EACtBA,CACX,EAEAo0B,6BAA8B,WAC1B,OAAOh1B,KAAKukO,yBAChB,EAEArvM,6BAA8B,SAAUt0B,GAEpC,OADAZ,KAAKukO,0BAA4B3jO,EAC1BA,CACX,EAEA6xB,kBAAmB,WACf,OAAOzyB,KAAKwkO,cAChB,EAEA7xM,kBAAmB,SAAU/xB,GAEzB,OADAZ,KAAKwkO,eAAiB5jO,EACfA,CACX,EAEAsmO,sBAAuB,WACnB,OAAOlnO,KAAKykO,kBAChB,EAEA0C,sBAAuB,SAAUvmO,GAE7B,OADAZ,KAAKykO,mBAAqB7jO,EACnBA,CACX,EAEAwmO,sBAAuB,WACnB,OAAOpnO,KAAK0kO,kBAChB,EAEA2C,sBAAuB,SAAUzmO,GAE7B,OADAZ,KAAK0kO,mBAAqB9jO,EACnBA,CACX,EAEA0mO,mBAAoB,WAChB,OAAOtnO,KAAK2kO,eAChB,EAEA4C,mBAAoB,SAAU3mO,GAE1B,OADAZ,KAAK2kO,gBAAkB/jO,EAChBA,CACX,EAEA4mO,yBAA0B,WACtB,OAAOxnO,KAAK4kO,qBAChB,EAEA6C,yBAA0B,SAAU7mO,GAEhC,OADAZ,KAAK4kO,sBAAwBhkO,EACtBA,CACX,EAEA8mO,kBAAmB,WACf,OAAO1nO,KAAK6kO,cAChB,EAEA8C,kBAAmB,SAAU/mO,GAEzB,OADAZ,KAAK6kO,eAAiBjkO,EACfA,CACX,EAEAgnO,wBAAyB,WACrB,OAAO5nO,KAAK8kO,oBAChB,EAEA+C,wBAAyB,SAAUjnO,GAE/B,OADAZ,KAAK8kO,qBAAuBlkO,EACrBA,CACX,EAEAgyB,sBAAuB,WACnB,OAAO5yB,KAAK+kO,kBAChB,EAEAjyM,sBAAuB,SAAUlyB,GAE7B,OADAZ,KAAK+kO,mBAAqBnkO,EACnBA,CACX,EAEA41B,wBAAyB,WACrB,OAAOx2B,KAAKglO,oBAChB,EAEAtuM,wBAAyB,SAAU91B,GAE/B,OADAZ,KAAKglO,qBAAuBpkO,EACrBA,CACX,EAEA4yB,8BAA+B,WAC3B,OAAOxzB,KAAKilO,0BAChB,EAEAvxM,8BAA+B,SAAU9yB,GAErC,OADAZ,KAAKilO,2BAA6BrkO,EAC3BA,CACX,EAEAyyB,4BAA6B,WACzB,OAAOrzB,KAAKklO,wBAChB,EAEA3xM,4BAA6B,SAAU3yB,GAEnC,OADAZ,KAAKklO,yBAA2BtkO,EACzBA,CACX,EAEAk4F,8BAA+B,WAC3B,OAAO94F,KAAKmlO,0BAChB,EAEA2C,8BAA+B,SAAUlnO,GAErC,OADAZ,KAAKmlO,2BAA6BvkO,EAC3BA,CACX,EAEAi3B,mBAAoB,WAChB,OAAO73B,KAAKolO,eAChB,EAEArtM,mBAAoB,SAAUn3B,GAE1B,OADAZ,KAAKolO,gBAAkBxkO,EAChBA,CACX,EAEA63B,4BAA6B,WACzB,OAAOz4B,KAAKqlO,wBAChB,EAEA1sM,4BAA6B,SAAU/3B,GAEnC,OADAZ,KAAKqlO,yBAA2BzkO,EACzBA,CACX,EAEAy4B,uBAAwB,WACpB,OAAOr5B,KAAKslO,mBAChB,EAEA/rM,uBAAwB,SAAU34B,GAE9B,OADAZ,KAAKslO,oBAAsB1kO,EACpBA,CACX,EAEAwzB,iBAAkB,WACd,OAAOp0B,KAAKulO,aAChB,EAEAjxM,iBAAkB,SAAU1zB,GAExB,OADAZ,KAAKulO,cAAgB3kO,EACdA,CACX,EAEAk5B,2BAA4B,WACxB,OAAO95B,KAAKwlO,uBAChB,EAEAxrM,2BAA4B,SAAUp5B,GAElC,OADAZ,KAAKwlO,wBAA0B5kO,EACxBA,CACX,EAEA4vB,0BAA2B,WACvB,OAAOxwB,KAAKylO,sBAChB,EAEA/0M,0BAA2B,SAAU9vB,GAEjC,OADAZ,KAAKylO,uBAAyB7kO,EACvBA,CACX,EAEA6uB,+BAAgC,WAC5B,OAAOzvB,KAAK0lO,2BAChB,EAEA/1M,+BAAgC,SAAU/uB,GAEtC,OADAZ,KAAK0lO,4BAA8B9kO,EAC5BA,CACX,EAEAuuB,kCAAmC,WAC/B,OAAOnvB,KAAK2lO,8BAChB,EAEAt2M,kCAAmC,SAAUzuB,GAEzC,OADAZ,KAAK2lO,+BAAiC/kO,EAC/BA,CACX,EAEAmvB,6BAA8B,WAC1B,OAAO/vB,KAAK4lO,yBAChB,EAEA31M,6BAA8B,SAAUrvB,GAEpC,OADAZ,KAAK4lO,0BAA4BhlO,EAC1BA,CACX,EAEAouB,2BAA4B,WACxB,OAAOhvB,KAAK6lO,uBAChB,EAEA32M,2BAA4B,SAAUtuB,GAElC,OADAZ,KAAK6lO,wBAA0BjlO,EACxBA,CACX,EAEAk2B,oBAAqB,WACjB,OAAO92B,KAAK8lO,gBAChB,EAEA9uM,oBAAqB,SAAUp2B,GAE3B,OADAZ,KAAK8lO,iBAAmBllO,EACjBA,CACX,EAEA+yB,uBAAwB,WACpB,OAAO3zB,KAAK+lO,mBAChB,EAEAlyM,uBAAwB,SAAUjzB,GAE9B,OADAZ,KAAK+lO,oBAAsBnlO,EACpBA,CACX,EAEAw2B,gBAAiB,WACb,OAAOp3B,KAAKgmO,YAChB,EAEA1uM,gBAAiB,SAAU12B,GAEvB,OADAZ,KAAKgmO,aAAeplO,EACbA,CACX,EAEA+1B,iBAAkB,WACd,OAAO32B,KAAKimO,aAChB,EAEApvM,iBAAkB,SAAUj2B,GAExB,OADAZ,KAAKimO,cAAgBrlO,EACdA,CACX,EAEAq2B,wBAAyB,WACrB,OAAOj3B,KAAKkmO,oBAChB,EAEA/uM,wBAAyB,SAAUv2B,GAE/B,OADAZ,KAAKkmO,qBAAuBtlO,EACrBA,CACX,EAEAkwB,qBAAsB,WAClB,OAAO9wB,KAAKmmO,iBAChB,EAEAn1M,qBAAsB,SAAUpwB,GAE5B,OADAZ,KAAKmmO,kBAAoBvlO,EAClBA,CACX,EAEAy1B,iBAAkB,WACd,OAAOr2B,KAAKomO,aAChB,EAEA7vM,iBAAkB,SAAU31B,GAExB,OADAZ,KAAKomO,cAAgBxlO,EACdA,CACX,EAEAoxB,kBAAmB,WACf,OAAOhyB,KAAKqmO,cAChB,EAEAn0M,kBAAmB,SAAUtxB,GAEzB,OADAZ,KAAKqmO,eAAiBzlO,EACfA,CACX,EAEAuxB,uBAAwB,WACpB,OAAOnyB,KAAKsmO,mBAChB,EAEAj0M,uBAAwB,SAAUzxB,GAE9B,OADAZ,KAAKsmO,oBAAsB1lO,EACpBA,CACX,EAEA0xB,uBAAwB,WACpB,OAAOtyB,KAAKumO,mBAChB,EAEA/zM,uBAAwB,SAAU5xB,GAE9B,OADAZ,KAAKumO,oBAAsB3lO,EACpBA,CACX,EAEAsvB,mBAAoB,WAChB,OAAOlwB,KAAKwmO,eAChB,EAEAp2M,mBAAoB,SAAUxvB,GAE1B,OADAZ,KAAKwmO,gBAAkB5lO,EAChBA,CACX,EAEAmnO,WAAY,SAAUz9N,GAClB,OAAa,KAATA,EACO,IAAI00N,GAAiB,EAAM,GAAG,EAAK,MAEvC,IAAIA,GAAiB,EAAO,GAAG,EAAO,KACjD,IAGJ,EAAG1qL,EAA4C4D,cAAc,WAAY,CAAC0gD,EAAU+tI,EAAW,KAAMvH,EAA4C1oE,WAG1I,EAED;;;mCAIA,CAAE/3J,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC2vJ,aAAc,IAAM,IAEtB,IAAIxkG,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzF0uD,EAAkD,4BAA+C,2BACjG2uH,EAAoD,8BAAiD,6BACrGC,EAAgD,0BAA6C,yBAgBtH,SAAS/4E,EAAar1C,EAAO9uE,EAAG/mC,EAAG81G,EAAS5uB,GACxClrF,KAAKkoO,aAAe,EACpBloO,KAAKmoO,aAAe,EACpBnoO,KAAKoxG,OAAS,IACdpxG,KAAKqxG,OAAS,IACdrxG,KAAKomC,OAAS,EACdpmC,KAAKmmC,MAAQ,EACb8hM,EAA8C54E,YAAY7uJ,KAAKR,KAAM65G,EAAO9uE,EAAG/mC,EAAG81G,EAAS5uB,GAC3FlrF,KAAKkoO,aAAepuH,EAAQvL,cAC5BvuG,KAAKmoO,aAAeruH,EAAQz2E,cAC5BrjC,KAAKoxG,SAAWpxG,KAAKqxG,OAASyI,EAAQ12E,uBAClC02E,EAAQG,kBACRj6G,KAAKoxG,QAAUpxG,KAAKoxG,QAExBpxG,KAAK06G,aAAe16G,KAAKooO,WAAW,EAAG,GACvCpoO,KAAKmuB,OAAS,KACdnuB,KAAKk6G,uBACT,CAEA,IAAImuH,EAAgB,CAChBC,eAAgB,WACZ,IAAIC,EAAQ,IAAIN,EAA8CO,YAC1D1/D,EAAWp+G,EAAoC9P,GAAGw7G,SAASp2J,KAAK85G,QAAQ84C,eAAgBo1E,EAAkDnuE,UAwB9I,OAvBgB,MAAZiP,GAAoBzvD,EAAgDq5G,MAChEr5G,EAAgDivD,eAChDtoK,KAAKmmC,MAAQ2iI,EAAStJ,YACtBx/J,KAAKomC,OAAS0iI,EAASxS,cAGvBt2J,KAAKomC,OAASpmC,KAAKmhK,IAAI/6H,OACvBpmC,KAAKmmC,MAAQnmC,KAAKmhK,IAAIh7H,MAClBnmC,KAAKmhK,IAAI/6H,SAAW0iI,EAASxS,cAC7Bt2J,KAAKmoO,cAAgBnoO,KAAKmhK,IAAI/6H,OAAS0iI,EAASxS,cAGjC,MAAhBt2J,KAAKi8G,SACZj8G,KAAKomC,OAASpmC,KAAKi8G,QAAQwsH,cAC3BzoO,KAAKmmC,MAAQnmC,KAAKi8G,QAAQysH,eAE1B1oO,KAAKomC,OAAS,IACdpmC,KAAKmmC,MAAQ,KAEjBoiM,EAAMnuH,OAAS,EAAKp6G,KAAKqxG,QAAUrxG,KAAKomC,OAASpmC,KAAKmoO,cACtDI,EAAMluH,OAAS,EAAKr6G,KAAKqxG,OAASrxG,KAAKmoO,aACvCI,EAAMjuH,OAAS,EAAKt6G,KAAKoxG,OAASpxG,KAAKkoO,aACvCK,EAAMhuH,OAAS,EAAKv6G,KAAKoxG,QAAUpxG,KAAKmmC,MAAQnmC,KAAKkoO,cAC9CK,CACX,IAGJ,EAAG59K,EAA4CzS,cAAc,eAAgB,CAACg3G,EAAcm5E,EAAeJ,EAA8C54E,aAGlJ,EAED;;;6BAIA,CAAE1wJ,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCopO,UAAW,IAAM,EACjBC,WAAY,IAAM,EAClBC,UAAW,IAAM,EACjB3vI,OAAQ,IAAM,EACdP,YAAa,IAAM,IAErB,IAAIjuC,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFnW,EAA4C,sBAAyC,qBACrF8qE,EAA4C,sBAAyC,qBACrFmrD,EAAyC,mBAAsC,kBAC/EppB,EAA4D,sCAAyD,qCACrHizD,EAAuD,iCAAoD,gCAC3Gw0B,EAAoD,8BAAiD,6BACrGvjD,EAAoD,8BAAiD,6BACrGwjD,EAAqD,+BAAkD,8BACvGC,EAAgD,yBAA4C,wBAC5FlhH,EAAyC,kBAAqC,iBAC9ExxB,EAA6C,sBAAyC,qBAuB3GqyI,EAAY,CACZrxL,OAAQ,EACRs4C,KAAM,GASV,SAAS+I,EAAYvyD,GACjBpmC,KAAKomC,OAAS,IACdpmC,KAAK4xH,MAAQ,GACb5xH,KAAKipO,eAAiB,EACtBjpO,KAAKk0H,cAAgB1/E,EAA0CqwD,SAAS6H,eACxE1sG,KAAKkpO,YAAc,IAAIH,EAAmDI,WAC1EnpO,KAAKopO,WAAa,EAClBppO,KAAKomC,OAAmB,EAATA,CACnB,EAdA,EAAGukB,EAA4CzS,cAAc,YAAaywL,IAC1E,EAAGh+K,EAA4C4jC,cAAc,YAAao6I,GAe1E,IAAIU,EAAe,CACf1vN,IAAK,SAAU2vN,GACXtpO,KAAK4xH,MAAMjtH,KAAK2kO,EACpB,EAEAvzL,KAAM,SAAU9T,EAAexgB,EAAS5O,GACpC,GAAwB,MAApBovB,EAAc6T,GAAY,CAC1B,IAAI8+E,EAAYpgF,EAA0CwE,SAAS4kD,qBAAqB37D,EAAciX,gBAAiBl5C,KAAKk0H,eACxHq1G,EAAcvpO,KAAKomC,OAASnE,EAAcm3D,eAAkBn3D,EAAcmE,OAAS,IACnFkV,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK4xH,OACnE,MAAOt2E,EAAOE,WAAY,CACtB,IAAIguL,EAAMluL,EAAOI,QACb7C,EAAiB5W,EAAc6W,IAAIC,UAAUywL,EAAIlyL,QACrD,KAAIuB,EAAerC,EAAI,MAGnBhC,EAA0CwE,SAASC,IAAI27E,EAAW40G,EAAIlyL,QAAU,KAApF,CAGA,IAAImyL,EAAiBxnM,EAAc6W,IAAIC,UAAUywL,EAAI5jI,KACjD/4D,EAAWvnC,KAAKoxC,MAAMmC,EAAe9N,EAAI0+L,EAAe1+L,EAAG8N,EAAe70C,EAAIylO,EAAezlO,GAC7F2P,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0+F,UAAUx5D,EAAe9N,EAAG8N,EAAe70C,GAC/C2P,EAAI+1N,QAAQ78L,GACZl5B,EAAI0mC,YAAc54B,EAClB9N,EAAI6mC,UAAY3nC,EAAMnJ,WACtBiK,EAAIq5G,KAAO,iBAAmD1nH,KAAKu0C,MAAmB,IAAb0vL,GAAkB7/N,WAAhF,WACXiK,EAAIg2N,aAAe,MACnB,IAAIC,EAAKj2N,EAAIk2N,YAAYL,EAAIj6N,MAC7BoE,EAAIs5G,SAASu8G,EAAIj6N,MAAOq6N,EAAGzjM,MAAQ,GAAIojM,EAAa,GACpD51N,EAAIgnC,SAbJ,CAcJ,CACJ,KAAO,CAIH,IAHwB,MAApB36C,KAAK8pO,aAAuB9pO,KAAK8pO,YAAY1nN,cAAgBpiB,KAAKipO,gBAClEjpO,KAAK+pO,gBAEJ/pO,KAAK8pO,YAAYE,MAClB,OAEJzkD,EAAkD7qD,WAAWniH,IAAI0pB,EAAejiC,KAAKk8G,cAAckV,aAAcpxH,KAAK8pO,YAAYG,cAAcrwG,WAChJ33F,EAAc6T,GAAGo/E,WAAWmsB,EAA0D/kC,MAAMqb,UAAW,EAAG33H,KAAKk8G,cAAc9f,MACjI,CACJ,EAEA2tI,aAAc,WAIV,GAHwB,MAApB/pO,KAAK8pO,cACL9pO,KAAK8pO,YAAclB,EAAWsB,SAASlqO,KAAKomC,SAE3CpmC,KAAK8pO,YAAYE,MAAtB,CAGAhqO,KAAKkpO,YAAY35N,KAAO,GACxBvP,KAAKkpO,YAAYiB,SAAyB,GAAdnqO,KAAKomC,OACjC,IAAIo1E,EAAQ,GACRlgE,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK4xH,OACnE,MAAOt2E,EAAOE,WAAY,CAStB,IARA,IAAIguL,EAAMluL,EAAOI,QACbnsC,EAAOi6N,EAAIj6N,KACXqgF,EAAO,EAEPw6I,EAAYpqO,KAAKkpO,YAAYiB,SAAW,IACxC98L,EAAS,MACTlH,EAAQ,EACRC,EAAS,EACJ5jC,EAAI,EAAGA,EAAI+M,EAAK5M,OAAQH,IAAK,CAClC,IAAI0E,EAAOlH,KAAK8pO,YAAYO,aAAa96N,EAAKs8E,OAAOrpF,EAAG,IAC5C,MAAR0E,IACAi/B,GAASj/B,EAAKojO,QAAQv/L,EACtB3E,EAAS9gC,KAAKC,IAAI2B,EAAKojO,QAAQtmO,EAAGoiC,GAE1C,CACA,IAAIj1B,EAAOqjC,EAA0CqrD,SAAS19F,OAAOgkC,EAAOC,GAC5EojM,EAAIrjM,MAAQh1B,EAAK45B,EAAIy+L,EAAIxpL,MAAQ3S,EAAS+8L,EAC1CZ,EAAIpjM,OAASj1B,EAAKnN,EAAIwlO,EAAIxpL,MAAQ3S,EAAS+8L,EAC3C,IAAIG,EAAYh7N,EAAK5M,OACrB,IAASH,EAAI,EAAGA,EAAI+nO,EAAW/nO,IAAK,CAC5B0E,EAAOlH,KAAK8pO,YAAYO,aAAa96N,EAAKs8E,OAAOrpF,EAAG,IACxD,GAAY,MAAR0E,EAAc,CACd,IAAI6+F,EAAW+hB,EAAuC6E,UAAUxqH,OAAOytF,EAAO45I,EAAIxpL,MAAQ3S,EAAQ,EAAIm8L,EAAIxpL,MAAQ3S,EAAQnmC,EAAKojO,QAAQv/L,EAAIq/L,EAAYZ,EAAIxpL,MAAQ3S,EAAQnmC,EAAKojO,QAAQtmO,EAAIomO,EAAYZ,EAAIxpL,MAAQ3S,GACpNuiD,GAAS1oF,EAAKojO,QAAQv/L,EAAIq/L,EAC1BZ,EAAIgB,eAAehvH,EAAOt0G,EAAKiK,KAAM40F,EAAU7+F,EAAKujO,OACxD,CACJ,CACJ,CACAzqO,KAAKopO,WAAa5tH,EAAM74G,OACxB3C,KAAKk8G,cAAgB,IAAIo4F,EAAqD/jF,4BAA4BvwH,KAAKopO,YAC/G,IAAIsB,EAAU1qO,KAAKk8G,cAAcqV,OACjC,IAAS/uH,EAAI,EAAGA,EAAIxC,KAAKopO,WAAY5mO,IACjCkoO,EAAQloO,GAAKg5G,EAAMh5G,GAEvBxC,KAAKk8G,cAAcsV,SACnBxxH,KAAKipO,cAAgBjpO,KAAK8pO,YAAY1nN,aAzCtC,CA0CJ,EAEAwjH,QAAS,WACqB,MAAtB5lI,KAAKk8G,gBACLl8G,KAAKk8G,cAAgB,MAEzBl8G,KAAK4xH,MAAMjvH,OAAS,CACxB,GAOJ,SAASkmO,EAAU8B,GACf3qO,KAAK4qO,eAAiB,EACtB5qO,KAAK2qO,MAAQA,EACb3qO,KAAKyqO,OAAS,IAAI3iH,EAAuC6E,UACzD3sH,KAAKmR,KAAO,IAAIqjC,EAA0CqrD,SAC1D7/F,KAAK4qO,eAAiB,CAC1B,EAVA,EAAGjgL,EAA4CzS,cAAc,cAAe,CAACygD,EAAa0wI,EAAc,OAYxGR,EAAU1mO,OAAS,SAAUwoO,EAAOlzH,EAAItmG,EAAMm5N,GAC1C,IAAI/9I,EAAO,IAAIs8I,EAAU8B,GAMzB,OALAp+I,EAAKo+I,MAAQA,EACbp+I,EAAKk+I,OAAShzH,EACdlrB,EAAKp7E,KAAOA,EACZo7E,EAAK+9I,QAAUA,EACf/9I,EAAKq+I,eAAiB,EACfr+I,CACX,EAEAs8I,EAAUgC,SAAW,SAAUn/N,GAC3B,IAAIi/N,EAAQj/N,EAAK43G,WAAWC,aAAa,SAASC,UAC9Ct8G,EAAO,IAAI2hO,EAAU8B,GAIzB,OAHAzjO,EAAKujO,OAAS3iH,EAAuC6E,UAAUxqH,OAAOgoF,WAAWz+E,EAAK43G,WAAWC,aAAa,UAAUC,WAAYr5B,WAAWz+E,EAAK43G,WAAWC,aAAa,SAASC,WAAYr5B,WAAWz+E,EAAK43G,WAAWC,aAAa,WAAWC,WAAYr5B,WAAWz+E,EAAK43G,WAAWC,aAAa,YAAYC,YACpTt8G,EAAKiK,KAAOqjC,EAA0CqrD,SAAS19F,OAAOgoF,WAAWz+E,EAAK43G,WAAWC,aAAa,aAAaC,WAAYr5B,WAAWz+E,EAAK43G,WAAWC,aAAa,cAAcC,YAC7Lt8G,EAAKojO,QAAU91L,EAA0CqrD,SAAS19F,OAAOgoF,WAAWz+E,EAAK43G,WAAWC,aAAa,gBAAgBC,WAAYr5B,WAAWz+E,EAAK43G,WAAWC,aAAa,iBAAiBC,YAC/Lt8G,CACX,EAEA,IAAI4jO,EAAa,CACbC,OAAQ,WACJ/qO,KAAK4qO,gBACT,EAEAI,QAAS,WACLhrO,KAAK4qO,gBACT,GAOJ,SAAShC,EAAWxiM,GAChBpmC,KAAKirO,YAAc,IACnBjrO,KAAKkrO,UAAY,EACjBlrO,KAAKgqO,OAAQ,EACbhqO,KAAKmrO,YAAc,CAAC,EACpBnrO,KAAKorO,WAAa,IAAIrC,EAAmDI,WACzEnpO,KAAK8gH,QAAS,EACd9gH,KAAKqrO,eAAgB,EACrBrrO,KAAKyvK,SAAW,EAChBzvK,KAAKirO,YAAc7kM,EACnBpmC,KAAK4zN,SAAWkV,EAAkDzvG,QAAQC,QAAQ0vG,EAA8CpvI,WAAW18D,UAAUi9D,eAAe,gBACpKn6F,KAAKo7F,SAAW,IAAI9E,EAA2C+D,QAAQ2uI,EAA8CpvI,WAAW18D,UAAUi9D,eAAe,gBACzJn6F,KAAKo7F,SAASd,cAAgB5vC,EAAoC9P,GAAGxlC,KAAK,iBAAkBpV,MAC5FA,KAAKo7F,SAAS9vF,MAClB,EAlBA,EAAGq/C,EAA4CzS,cAAc,YAAa,CAAC2wL,EAAWiC,EAAY,OAoBlGlC,EAAW0C,QAAU,CAAC,EACtB1C,EAAW2C,WAAa,GAExB3C,EAAWsB,SAAW,SAAU9jM,GAI5B,OAHKskB,EAAoC9P,GAAGqgD,UAAU2tI,EAAW0C,QAASllM,KACtEwiM,EAAW0C,QAAQllM,GAAU,IAAIwiM,EAAWxiM,IAEzCwiM,EAAW0C,QAAQllM,EAC9B,EAEAwiM,EAAW4C,WAAa,WACpB9gL,EAAoC9P,GAAG24H,UAAUq1D,EAAW0C,QAChE,EAEA,IAAIG,EAAc,CACdC,WAAY,WACR,OAAO1rO,KAAKirO,WAChB,EAEAU,eAAgB,WACsB,IAA9B3rO,KAAKo7F,SAAS3O,YACd+N,MAAMx6F,KAAKo7F,SAASX,eACiB,IAA9Bz6F,KAAKo7F,SAAS3O,aACrBzsF,KAAK4rO,cAAc5rO,KAAKo7F,SAAS6nB,SAEzC,EAEA2oH,cAAe,SAAUz+B,GACrB,IAAI7f,EAAQhuE,EAA0C58D,KAAKuoC,iBAAiBkiH,EAAK,cAC7E7xJ,EAASoP,EAAoC9P,GAAGW,UAAU+xI,EAAMniG,YACpE,MAAO7vC,EAAOE,WAAY,CACtB,IAAIqwL,EAAYvwL,EAAOI,QACvB,GAA2B,cAAvBmwL,EAAUxgJ,SAA0B,CACpC,IAAInkF,EAAO2hO,EAAUgC,SAASgB,GAC9B7rO,KAAKmrO,YAAYjkO,EAAKyjO,OAASzjO,EAC/B0hO,EAAW2C,WAAa3C,EAAW2C,WAAarkO,EAAKyjO,KACzD,CACJ,CACA3qO,KAAKgqO,OAAQ,CACjB,EAEAC,YAAa,WACT,OAAOjqO,KAAK4zN,QAChB,EAEAkY,aAAc,WACV9rO,KAAK+rO,aAAY,EACrB,EAEA1B,aAAc,SAAUM,GAIpB,OAHI3qO,KAAK8gH,QACL9gH,KAAKgsO,yBAEFhsO,KAAKmrO,YAAYR,EAC5B,EAEAqB,uBAAwB,WACpBhsO,KAAK+rO,aAAY,EACrB,EAEAA,YAAa,SAAUhmG,GAAe,EAEtC3jH,YAAa,WACT,OAAOpiB,KAAKyvK,QAChB,EAEAntJ,YAAa,SAAU1hB,GAEnB,OADAZ,KAAKyvK,SAAW7uK,EACTA,CACX,EAEAqrO,SAAU,SAAUtB,GAChB,GAAKjgL,EAAoC9P,GAAGqgD,UAAUj7F,KAAKmrO,YAAaR,GAQpE3qO,KAAKmrO,YAAYR,GAAOI,aARoD,CAC5E,IAAI7jO,EAAO,IAAI2hO,EAAU8B,GACzB3qO,KAAKmrO,YAAYR,GAASzjO,EAC1BlH,KAAK8gH,QAAS,EACd9gH,KAAKqrO,eAAgB,EACrBrrO,KAAKyvK,WACLm5D,EAAW2C,WAAa3C,EAAW2C,WAAaZ,CACpD,CAGJ,EAEA/kG,QAAS,WACL5lI,KAAK8gH,QAAS,EACd9gH,KAAK4zN,SAAW,IACpB,EAEA5iG,QAAS,WACLhxH,KAAK4lI,SACT,EAEAnjB,UAAW,WACP,OAAOziH,KAAK8gH,MAChB,EAEA4B,UAAW,SAAU9hH,GAEjB,OADAZ,KAAK8gH,OAASlgH,EACPA,CACX,GAOJ,SAASs4F,EAAO5hD,EAAQ6B,EAAI5pC,EAAM28N,EAAUlsL,GACxChgD,KAAK6sC,SAAW,EAChB7sC,KAAKutC,KAAO,EACZvtC,KAAKmsO,KAAO,EACZnsO,KAAKosO,UAAW,EAChBpsO,KAAK6S,MAAQ43J,EAAuC5yH,OAAOC,YAC3D93C,KAAK0jC,KAAM,EACX1jC,KAAKggD,MAAQ,EACbhgD,KAAKyhB,QAAU,EACfzhB,KAAKuP,KAAO,GACZvP,KAAKmmC,MAAQ,EACbnmC,KAAKomC,OAAS,EACdpmC,KAAKqsO,UAAY,EACjBrsO,KAAKuP,KAAOA,EACZvP,KAAKm5C,GAAKA,EACVn5C,KAAKs3C,OAASA,EACdt3C,KAAKggD,MAAQA,EACbhgD,KAAK4lG,IAAMpxD,EAA0CwE,SAASuvD,WAAWjxD,EAAQ9C,EAA0CwE,SAASgH,MAAM7G,EAAI6G,IAC1IksL,EAAW,IACXlsO,KAAK0jC,KAAM,EAEnB,EAzBA,EAAGinB,EAA4CzS,cAAc,aAAc,CAAC0wL,EAAY6C,EAAa,KAAM/gL,EAAoC9P,GAAGs2E,cA2BlJ,IAAIo7G,EAAU,CACV9B,eAAgB,SAAUv1L,EAAW9jC,EAAM40F,EAAU0R,GAEjD,IADA,IAAI/gB,EAAS,IAAI70F,MAAM,GACdW,EAAI,EAAGA,EAAI,EAAGA,IACnBk0F,EAAOl0F,GAAK,IAAIgyC,EAA0C4wD,gBAE9D,IAAIxV,EAAOp7C,EAA0CwE,SAASK,MAAMr5C,KAAKs3C,OAAQt3C,KAAKm5C,IAClF22C,EAAQt7C,EAA0CwE,SAASK,MAAMr5C,KAAKm5C,GAAIn5C,KAAKs3C,QACnFs4C,EAAKwY,YACLtY,EAAMsY,YACNpoG,KAAKm5C,GAAGivD,YACR,IAAImkI,EAAQ/3L,EAA0CwE,SAASK,MAAMr5C,KAAKs3C,OAAQw4C,GAClFy8I,EAAMnkI,YACDpoG,KAAKqsO,UAGoB,IAAnBrsO,KAAKqsO,YACZz8I,EAAKyY,SAAgC,GAAtBtC,EAASymI,YACxB18I,EAAMuY,SAAgC,EAAvBtC,EAAS0mI,eAJxB78I,EAAKyY,SAASroG,KAAKmmC,MAA8B,EAAtB4/D,EAASymI,YACpC18I,EAAMuY,SAASroG,KAAKmmC,OAAuB,EAAbnmC,KAAKmmC,MAAoC,EAAvB4/D,EAAS0mI,eAK7D,IAAI7mI,EAAM2mI,EAAMtjJ,OACZ2nB,EAASp8D,EAA0CwE,SAASsqD,gBAAgB9uD,EAA0CwE,SAASsvD,YAAaikI,GAChJ3mI,EAAIyC,SAASroG,KAAKomC,OAA8B,EAArB2/D,EAAS2mI,WACpC97H,EAAOvI,SAASroG,KAAKomC,QAAyB,EAAdpmC,KAAKomC,OAAsC,EAAxB2/D,EAAS4mI,eAC5D,IAAI1kF,EAAKjoJ,KAAKs3C,OAAO2xC,OACrBg/D,EAAGtuI,IAAIisF,GACH5lG,KAAK0jC,IACLukH,EAAGtuI,IAAIi2E,GAEPq4D,EAAGl/C,SAASnZ,GAEhB,IAAIs4D,EAAKloJ,KAAKs3C,OAAO2xC,OACrBi/D,EAAGvuI,IAAIisF,GACH5lG,KAAK0jC,IACLwkH,EAAGvuI,IAAIm2E,GAEPo4D,EAAGn/C,SAASjZ,GAEhB,IAAIq4D,EAAKnoJ,KAAKs3C,OAAO2xC,OACjBjpF,KAAK0jC,IACLykH,EAAGxuI,IAAIi2E,GAEPu4D,EAAGp/C,SAASnZ,GAEhBu4D,EAAGxuI,IAAIi3F,GACP,IAAIw3C,EAAKpoJ,KAAKs3C,OAAO2xC,OAyBrB,GAxBIjpF,KAAK0jC,IACL0kH,EAAGzuI,IAAIm2E,GAEPs4D,EAAGr/C,SAASjZ,GAEhBs4D,EAAGzuI,IAAIi3F,GACPla,EAAO,GAAGqP,SAAWkiD,EAAGh/D,OACxByN,EAAO,GAAGmP,GAAK4R,EAAG+0H,WAClB91I,EAAO,GAAGoP,GAAK2R,EAAGi1H,UAClBh2I,EAAO,GAAGmP,GAAK4R,EAAG+0H,WAClB91I,EAAO,GAAGoP,GAAK2R,EAAGk1H,aAClBj2I,EAAO,GAAGqP,SAAWoiD,EAAGl/D,OACxByN,EAAO,GAAGmP,GAAK4R,EAAGg1H,YAClB/1I,EAAO,GAAGoP,GAAK2R,EAAGi1H,UAClBh2I,EAAO,GAAGqP,SAAWmiD,EAAGj/D,OACxByN,EAAO,GAAGmP,GAAK4R,EAAGg1H,YAClB/1I,EAAO,GAAGoP,GAAK2R,EAAGk1H,aAClBj2I,EAAO,GAAGqP,SAAWqiD,EAAGn/D,OACxByN,EAAO,GAAGmP,GAAK4R,EAAGg1H,YAClB/1I,EAAO,GAAGoP,GAAK2R,EAAGi1H,UAClBh2I,EAAO,GAAGqP,SAAWmiD,EAAGj/D,OACxByN,EAAO,GAAGmP,GAAK4R,EAAG+0H,WAClB91I,EAAO,GAAGoP,GAAK2R,EAAGk1H,aAClBj2I,EAAO,GAAGqP,SAAWoiD,EAAGl/D,OAClBjpF,KAAK6sC,UAAc7sC,KAAKutC,MAAUvtC,KAAKmsO,KAAM,CAC/C,IAAKnsO,KAAKosO,SAAU,CAChB,IAAI91D,EAAS9hI,EAA0CqwD,SAASmI,SAAShtG,KAAKs3C,OAAQ,IAAI9C,EAA0CwE,SAAYh5C,KAAKm5C,IACjJyzL,EAAYt2D,EAAOjhF,QACvBu3I,EAAU77H,SACV/wG,KAAK6sO,QAAUr4L,EAA0CqwD,SAAS+H,eAAep4D,EAA0CqwD,SAAS+H,eAAep4D,EAA0CqwD,SAAS+H,eAAep4D,EAA0CqwD,SAAS+H,eAAe0pE,EAAQ9hI,EAA0CqwD,SAASiL,YAAY9vG,KAAK6sC,SAAW,IAAMvnC,KAAK8Z,KAAMo1B,EAA0CqwD,SAAS6K,YAAY1vG,KAAKutC,KAAO,IAAMjoC,KAAK8Z,KAAMo1B,EAA0CqwD,SAAS+K,YAAY5vG,KAAKmsO,KAAO,IAAM7mO,KAAK8Z,KAAMwtN,GAEvjB5sO,KAAKosO,UAAW,CACpB,CACA,IAAS5pO,EAAI,EAAGA,EAAI,EAAGA,IACnBk0F,EAAOl0F,GAAGujG,SAAWvxD,EAA0CwE,SAAS4kD,qBAAqBlH,EAAOl0F,GAAGujG,SAAU/lG,KAAK6sO,QAE9H,CACA,IAAIvxL,EAASoP,EAAoC9P,GAAGW,UAAUm7C,GAC9D,MAAOp7C,EAAOE,WAAY,CACtB,IAAIC,EAAMH,EAAOI,QACjBzG,EAAUtwC,KAAK82C,EACnB,CACJ,IAGJ,EAAGkP,EAA4CzS,cAAc,SAAU,CAACghD,EAAQozI,EAAS,MAGlF,EAED;;;0CAIA,CAAE3tO,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC+9B,oBAAqB,IAAM,IAE7B,IAAIgX,EAA8C,wBAA2C,uBACzFC,EAAsC,gBAAmC,eACzEu4L,EAAkD,4BAA+C,2BACjGC,EAA6C,uBAA0C,sBACvFC,EAA+C,yBAA4C,wBAC3FC,EAA4C,sBAAyC,qBAgB9G,SAAS3vM,IAAwB,CAEjCA,EAAoB2J,gBAAkB,GACtC3J,EAAoB4vM,cAAe,EACnC5vM,EAAoB6vM,iBAAkB,EACtC7vM,EAAoB8vM,mBAAqB,EACzC9vM,EAAoByJ,YAAc,EAClCzJ,EAAoB+vM,QAAU,EAC9B/vM,EAAoBgwM,cAAe,EACnChwM,EAAoBiwM,UAAY,EAChCjwM,EAAoBkwM,UAAY,EAEhClwM,EAAoBmwM,YAAc,WAC9B,GAAInwM,EAAoBgwM,aAAc,CAClC,IAAII,EAAUpwM,EAAoBqwM,cAClC,GAAsC,IAAlCrwM,EAAoBiwM,UAAiB,CACrC,IAAI7gJ,EAAKghJ,EAAQE,UAAYtwM,EAAoBuwM,KAAKD,UAClDE,EAASphJ,EAAKpvD,EAAoBiwM,UACtCjwM,EAAoB+vM,SAAWS,CACnC,CACAxwM,EAAoBuwM,KAAOH,EAC3B,IACIpwM,EAAoBywM,KAAO,IAAItnO,KAAKinO,EAAQE,UAAYtwM,EAAoB+vM,QAChF,CACA,MAAO94I,GACHj3D,EAAoBywM,KAAO,IAAItnO,KAAK,EAAG,GAAI,GAAI,GAAI,GAAI,IACvD62B,EAAoB+vM,QAAU/vM,EAAoBywM,KAAOzwM,EAAoBqwM,aACjF,CACIrwM,EAAoBywM,KAAKjjJ,cAAgB,MACzCxtD,EAAoBywM,KAAO,IAAItnO,KAAK,IAAM,GAAI,GAAI,GAAI,GAAI,IAC1D62B,EAAoB+vM,QAAU/vM,EAAoBywM,KAAOzwM,EAAoBqwM,eAE7ErwM,EAAoBywM,KAAKjjJ,cAAgB,IACzCxtD,EAAoBywM,KAAO,IAAItnO,KAAK,EAAG,GAAI,GAAI,GAAI,GAAI,IACvD62B,EAAoB+vM,QAAU/vM,EAAoBywM,KAAOzwM,EAAoBqwM,cAErF,CACJ,EAEArwM,EAAoB0wM,qBAAuB,SAAUxoM,GACjD,IACI,GAAIlI,EAAoBgwM,aAAc,CAClC,IAAIW,EAAS,IAAIxnO,KAAM62B,EAAoB0P,UAAU4gM,UAAqB,IAARpoM,EAAgBlI,EAAoBiwM,WACtG,OAAOU,CACX,CACI,OAAO3wM,EAAoB0P,SAEnC,CACA,MAAOunD,GACH,OAAOj3D,EAAoB0P,SAC/B,CACJ,EAEA1P,EAAoB4wM,qBAAuB,SAAU1oM,GACjD,IACI,GAAIlI,EAAoBgwM,aAAc,CAClC,IAAIW,EAAS,IAAIxnO,KAAK62B,EAAoB0P,UAAU4gM,UAAYr5L,EAAoCqG,GAAGyG,SAAkB,IAAR7b,EAAelI,EAAoBiwM,YACpJ,OAAOjwM,EAAoBwgH,YAAYmwF,EAC3C,CACI,OAAO3wM,EAAoBwgH,YAAYxgH,EAAoB0P,UAEnE,CACA,MAAOunD,GACH,OAAOj3D,EAAoBwgH,YAAYxgH,EAAoB0P,UAC/D,CACJ,EAEA1P,EAAoB0P,QAAU,WAC1B,OAAO1P,EAAoBywM,IAC/B,EAEAzwM,EAAoBoQ,QAAU,SAAU9sC,GAIpC,OAHA08B,EAAoBywM,KAAOntO,EAC3B08B,EAAoB+vM,QAAU/vM,EAAoBywM,KAAOzwM,EAAoBqwM,cAC7ErwM,EAAoBuwM,KAAOvwM,EAAoBqwM,cACxC/sO,CACX,EAEA08B,EAAoBqwM,YAAc,WAC9B,OAAOrwM,EAAoB6wM,QAC/B,EAEA7wM,EAAoB8wM,YAAc,SAAUxtO,GAIxC,OAHK08B,EAAoB4vM,eACrB5vM,EAAoB6wM,SAAWvtO,GAE5BA,CACX,EAEA08B,EAAoB+wM,UAAY,WAC5B/wM,EAAoB6wM,SAASG,gBAAgBhxM,EAAoB6wM,SAASI,kBAAoBjpO,KAAKu0C,MAAM,IAAOvc,EAAoB2J,kBACpI3J,EAAoB8vM,oBAAsB,CAC9C,EAEA9vM,EAAoBkxM,gBAAkB,WAClC,OAAQlxM,EAAoB4vM,cAAgB5vM,EAAoB6vM,iBAAoB7vM,EAAoB8vM,oBAAsB9vM,EAAoByJ,WACtJ,EAEAzJ,EAAoBmxM,SAAW,WAC3BnxM,EAAoB+vM,QAAU,EAC9B/vM,EAAoBywM,KAAOx5L,EAAoCqG,GAAGp0C,MAClE82B,EAAoBgwM,cAAe,CACvC,EAEAhwM,EAAoBu9G,SAAW,WAC3B,OAAOv9G,EAAoBwgH,YAAYxgH,EAAoB0P,UAC/D,EAEA1P,EAAoB2Q,gBAAkB,WAClC,OAAO3Q,EAAoBgwM,YAC/B,EAEAhwM,EAAoB4Q,gBAAkB,SAAUttC,GAU5C,OATI08B,EAAoBgwM,eAAiB1sO,IACrC08B,EAAoBgwM,aAAe1sO,EAC/BA,GACA08B,EAAoBuwM,KAAOt5L,EAAoCqG,GAAGp0C,MAClE82B,EAAoB+vM,QAAU/vM,EAAoBywM,KAAOx5L,EAAoCqG,GAAGp0C,OAEhG82B,EAAoBywM,KAAO,IAAItnO,KAAK8tC,EAAoCqG,GAAGp0C,MAAMonO,UAAYtwM,EAAoB+vM,UAGlHzsO,CACX,EAEA08B,EAAoBuQ,aAAe,WAC/B,OAAOvQ,EAAoBiwM,SAC/B,EAEAjwM,EAAoBwQ,aAAe,SAAUltC,GAEzC,OADA08B,EAAoBiwM,UAAY3sO,EACzBA,CACX,EAEA08B,EAAoBihK,aAAe,WAC/B,OAAOjhK,EAAoBkwM,SAC/B,EAEAlwM,EAAoBoxM,aAAe,SAAU9tO,GAEzC,OADA08B,EAAoBkwM,UAAY5sO,EACzBA,CACX,EAEA08B,EAAoByhH,aAAe,WAG/B,OAFAzhH,EAAoBqxM,UAAY3B,EAA6Cx0L,YAAYmpD,WAAWsrI,EAA0Cr0I,SAASC,aAAannE,kBAAmBu7M,EAA0Cr0I,SAASC,aAAahnE,mBACvPyL,EAAoBkwM,UAAYP,EAA0Cr0I,SAASC,aAAatnE,uBACzF+L,EAAoBqxM,SAC/B,EAEArxM,EAAoBsxM,aAAe,SAAUhuO,GAQzC,OAPIqsO,EAA0Cr0I,SAAS4D,qBAAqB9qE,oBAAsB9wB,EAAMm+F,WACpGkuI,EAA0Cr0I,SAAS4D,qBAAqB5qE,gBAAgBhxB,EAAMm+F,WAE9FkuI,EAA0Cr0I,SAAS4D,qBAAqB3qE,oBAAsBjxB,EAAMi+F,WACpGouI,EAA0Cr0I,SAAS4D,qBAAqBzqE,gBAAgBnxB,EAAMi+F,WAElGvhE,EAAoBqxM,UAAY/tO,EACzBA,CACX,EAEA08B,EAAoBuxM,YAAc,SAAU5wL,GACxC,IAAIiQ,EAAO,IAAI4+K,EAAgD3rL,GAC/D+M,EAAKnC,MAAM9N,GAAO,GAClB,IAAI6wL,EAAwF,KAAlF5gL,EAAKpB,SAAWvY,EAAoCqG,GAAGyG,SAAS6M,EAAKpB,WAC/E,OAAO,IAAIrmD,KAAKynD,EAAKlN,OAAQkN,EAAKjN,QAAU,EAAGiN,EAAKhN,MAAOgN,EAAKtB,OAAQsB,EAAKrB,SAAUtY,EAAoCqG,GAAGyG,SAAS6M,EAAKpB,UAAWvY,EAAoCqG,GAAGyG,SAASytL,GAC3M,EAEAxxM,EAAoB40I,qBAAuB,SAAUrxK,GACjD,IAAIkuO,EAAU7kJ,SAASrpF,EAAE0oF,UAAU,EAAG,IAAM,EACxCvoC,EAAOkpC,UAAU,EAAY,MAAQ,MAAQrpF,EAAE0oF,UAAU,EAAG,IAC5DylJ,EAAO7kJ,WAAWtpF,EAAE0oF,UAAU,EAAG,IACjC0lJ,EAAW9kJ,WAAWtpF,EAAEgrF,OAAO,IAC/B39B,EAAO,IAAIznD,KAAKu6C,EAAM,EAAG,EAAG,EAAG,GACnC,OAAO1jB,EAAoBwgH,YAAY5vF,IAAS8gL,EAAO,EAAIC,EAC/D,EAEA3xM,EAAoB2gK,oBAAsB,SAAUhgJ,GAChD,OAAO3gB,EAAoB4xM,kBAAkB5xM,EAAoBuxM,YAAY5wL,GACjF,EAEA3gB,EAAoB4xM,kBAAoB,SAAUhhL,GAC9C,IAAIolC,EAAK,IAAI/+C,EAAoCqG,GAAG24C,cACpDD,EAAGK,OAAOzlC,EAAK48B,cAAgB,KAC/B,IAAIqkJ,EAAW,IAAI1oO,KAAKynD,EAAK48B,cAAe,EAAG,EAAG,EAAG,GACjDskJ,EAAY9pO,KAAKwkD,OAAOoE,EAAOihL,GAAY,OAAyB,EACpEjuL,EAAMkuL,EAAYlhL,EAAKw8B,WAAa,GAAKx8B,EAAK68B,aAAe,GAAK,GAAK78B,EAAK88B,aAAe,GAAK,GAAK,GAAK98B,EAAKqgL,kBAAoB,IAAO,GAAK,GAAK,GACpJc,EAAO/xM,EAAoBgyM,aAAapuL,GAE5C,OADAoyC,EAAGK,OAAO07I,GACH/7I,EAAG5pF,UACd,EAEA4zB,EAAoBgyM,aAAe,SAAUpuL,GACzC,IAAIu8I,EAAWv8I,EAAIx3C,WACfo0F,EAAQ2/F,EAASxkL,QAAQ,MACd,IAAX6kF,IACAA,EAAQ2/F,EAAS96L,OACjB86L,GAAY,MAEhB,IAAIl/F,EAAMk/F,EAAS96L,OAASm7F,EAAQ,EAChCvwE,EAAO,WAEX,OADAkwK,EAAWlwK,EAAKs+D,OAAO,EAAG,EAAIiS,GAAS2/F,EAAWlwK,EAAKs+D,OAAO,EAAG,EAAI0S,GAC9Dk/F,CACX,EAEAngK,EAAoBwgH,YAAc,SAAUp/C,GACxC,IAAI19C,EAAO09C,EAAIoB,iBACX7+C,EAAQy9C,EAAIqB,cAAgB,EAC5B7+C,EAAMw9C,EAAIsB,aACVpzC,EAAO8xC,EAAIuB,cACXpzC,EAAS6xC,EAAIwB,gBACbpzC,EAAS4xC,EAAIyB,gBAAkBzB,EAAI0B,qBAAuB,IAC1DrzC,EAAS7L,EAAO0L,EAAO,GAAOC,EAAS,KAASC,EAAS,MAC7D,OAAOigL,EAA2ChxL,UAAUgF,aAAaC,EAAMC,EAAO8L,EAC1F,EAEAzvB,EAAoB8jB,SAAW,SAAUkK,EAAMC,EAAOC,EAAKC,GACvD,IAAIO,EAAIV,EACJW,EAAIV,EACJU,EAAI,IACJD,GAAQ,EACRC,GAAQ,IAEZ,IAAI7D,EAAI,EACJC,EAAI,EAKR,OAJIoD,IACArD,EAAI7T,EAAoCqG,GAAGyG,SAAU2K,EAAI,KACzD3D,EAAI,EAAID,EAAI7T,EAAoCqG,GAAGyG,SAAU+G,EAAI,IAE9D7T,EAAoCqG,GAAGyG,SAAU,QAAU2K,EAAI,OAAUzX,EAAoCqG,GAAGyG,SAAU,SAAW4K,EAAI,IAAOT,EAAMnD,EAAI,MACrK,EAEA,IAAIknL,EAAuB,CAAC,GAE5B,EAAGj7L,EAA4C4D,cAAc,sBAAuB,CAAC5a,EAAqBiyM,EAAsB,MAGzH,EAED;;;uBAIA,CAAE5wO,wBAAyB,2BAAqB;;;;;;AAiBtD,SAAS6wO,MAKP,SAASC,OACT,CAEA,SAASC,QAAQjwO,GACf,OAAc,OAANA,QAAsBH,IAANG,CAC1B,CAEA,SAASkwO,OAAOtnO,GACd,IAAK,IAAI7F,EAAI,EAAG++C,EAAIl5C,EAAK1F,OAAQH,EAAI++C,EAAG/+C,IACtC,GAAIktO,QAAQrnO,EAAK7F,IACf,OAAO6F,EAAK7F,GAGhB,OAAO,IACT,CAEA,SAAS5B,MAAM2L,EAAG7K,GAChB,OAAOguO,QAAQnjO,GAAKA,EAAImjO,QAAQhuO,GAAKA,EAAIiuO,OAAOjtO,UAClD,CAEA,SAAS+nG,OAAOhrG,EAAGmyH,GACjB,IAAK,IAAInvH,KAAKmvH,EACZnyH,EAAEgD,GAAKmvH,EAAMnvH,GAEf,OAAOhD,CACT,CAEA,SAASmwO,aAAartO,GACpB,MAA2B,QAAnBA,EAAEgM,aACZ,CAEA,SAASshO,YAAYttO,GACnB,GAAY,KAARA,EAAE,GAAW,CACf,IAAIutO,EAAgBvtO,EAAE28K,YAAY,KAClC,GAAI4wD,EAAgB,EAAG,CACrB,IAAIC,EAAaxtO,EAAEgnF,UAAU,EAAGumJ,GAC5BE,EAAQztO,EAAEspF,OAAOikJ,EAAgB,GACrC,OAAO,IAAIG,OAAOF,EAAYC,EAChC,CACF,CAEA,OAAO,IACT,CAEA,SAASE,YAAY3tO,GACnB,OAAKA,GAAMA,EAAEI,OAGRJ,EAAE0W,QAAQ,MAAQ,GAAO1W,EAAE0W,QAAQ,MAAQ,GAC9CwxK,SAASloL,EAAG,MAAQkoL,SAASloL,EAAG,KACzB4nF,WAAW5nF,GAEb2nF,SAAS3nF,EAAG,IANV,CAOX,CAEA,SAASghM,UAAUhhM,GACjB,IAAID,EAAImE,KAAKkB,MAAMpF,GACnB,OAAO8+J,MAAM/+J,QAAKhD,EAAY,IAAImH,KAAKnE,EACzC,CAEA,SAAS++C,SAAS5+C,GAChB,OAAQA,GAAK,EAAK6C,KAAKwkD,MAAMrnD,GAAK6C,KAAK6qO,KAAK1tO,EAC9C,CAEA,SAAS+D,MACP,OAAO,IAAIC,IACb,CAEA,SAAS2pO,QACP,IAAI7wO,EAAI,IAAIkH,KACZ,OAAO,IAAIA,KAAKlH,EAAEurF,cAAevrF,EAAEqrF,WAAYrrF,EAAEsrF,UACnD,CAEA,SAASqhF,aAAapiE,EAAIE,GACxB,OAAQF,IAAOE,MAAe0lI,QAAQ5lI,KAAO4lI,QAAQ1lI,KAAQF,EAAG8jI,WAAa5jI,EAAG4jI,SAClF,CAEA,SAASyC,eAAenwO,GACtB,GAAKwvO,QAAQxvO,EAAEowO,QACZZ,QAAQxvO,EAAEwnK,WACVgoE,QAAQxvO,EAAEqwO,YAFb,CAMA,IAAIC,EAActwO,EAAEowO,MAAMnnJ,MAAM,MAC5BsnJ,EAAeD,EAAY,GAC3BE,EAAUxwO,EAAEwnK,SAAW,IAAMxnK,EAAEqwO,WACnC,MAAOb,QAAQe,KAAoD,IAAnCA,EAAax3N,QAAQy3N,GACnDF,EAAYG,QACZF,EAAeD,EAAY,GAG7B,IAAInC,EAAYmC,EAAY,GAC5B,GAAKd,QAAQrB,GAAb,CAIA,IAAIuC,EAAiBvC,EAAU7sO,MAAM,gBAChCkuO,QAAQkB,KAIbJ,EAAYG,QACZzwO,EAAEowO,MAAQE,EAAYK,KAAK,MAC3B3wO,EAAEwnK,SAAWkpE,EAAe,GAC5B1wO,EAAEqwO,WAAarmJ,SAAS0mJ,EAAe,GAAI,IAV3C,CAbA,CAwBF,CAEA,SAAS5rO,MAAM+I,EAAS+iO,EAAWC,GACjC,IAAI7wO,EAAI,IAAIyN,MAAMI,GAClB,GAAI+iO,EACF,IAAK,IAAItsO,KAAKssO,EACZ5wO,EAAEsE,GAAKssO,EAAUtsO,GAQrB,OALIusO,IACF7wO,EAAE6wO,eAAiBA,GAGrBV,eAAenwO,GACRA,CACT,CAEA,SAAS8wO,KAAKjjO,SACZ1C,QAAQi/C,QAAO,EAAOv8C,SAClBhO,WAAW6F,WACbqrO,KAAK,YAET,CAIA,SAASC,QAAQ9wO,GACf,OAAOA,EAAqB,iBAAPA,EAAkBsH,KAAKC,MAAM,IAAMvH,EAAM,KAAOyB,MAAMvB,UAAU+Y,MAAM7Y,KAAKJ,GAAQ,IAC1G,CAEA,SAAS+wO,WAAW5kO,EAAGrF,GACrB,IAAI6+B,EAAQx5B,EAAE0M,QAAQ/R,GACtB,OAAO6+B,GAAS,IAAKx5B,EAAE/G,OAAOugC,EAAO,IAAI,EAC3C,CAEA,SAASwtI,UAAUnzK,GACjB,IAAK,IAAInB,KAAOmB,SACPA,EAAInB,EAEf,CAEA,SAASg8F,UAAU76F,EAAKnB,GACtB,YAAoBK,IAAbc,EAAInB,EACb,CAEA,SAASuJ,KAAKpI,GACZ,GAAIV,OAAO8I,KACT,OAAO9I,OAAO8I,KAAKpI,GAErB,IAAIoI,EAAO,GACX,IAAK,IAAIvJ,KAAOmB,EACdoI,EAAK7D,KAAK1F,GAEZ,OAAOuJ,CACT,CAEA,SAAS2uK,SAAS/2K,GAChB,OAAOoI,KAAKpI,GAAKuC,MACnB,CAEA,SAASyuO,WAAWhxO,EAAKoI,GACvB,IAAIu9B,GAAS,EACTpjC,EAAS6F,EAAOA,EAAK7F,OAASvC,EAAIuC,OAClC0uO,EAAS7oO,EAAO,WAAc,MAAO,CAAEvJ,IAAKuJ,EAAKu9B,GAAQnlC,MAAOR,EAAIoI,EAAKu9B,IAAW,EACtF,WAAc,OAAO3lC,EAAI2lC,EAAQ,EAEnC/lC,KAAK07C,QAAU,KACf17C,KAAKw7C,SAAW,WAGd,OAFAzV,IACA/lC,KAAK07C,QAAU21L,IACRtrM,EAAQpjC,CACjB,EACA3C,KAAKsxO,MAAQ,WACXvrM,GAAS,EACT/lC,KAAK07C,QAAU,IACjB,CACF,CAEA,IAAI61L,eAAiB,CACnB71L,QAAS,KACTF,SAAU,WAAc,OAAO,CAAO,EACtC81L,MAAO7B,MAGT,SAASl0L,UAAU97C,GACjB,OAAKiwO,QAAQjwO,GAGTA,EAAE+xO,cACG/xO,EAAE+xO,qBAEMlyO,IAAbG,EAAEkD,OACG,IAAIyuO,WAAW3xO,GAEjB,IAAI2xO,WAAW3xO,EAAG+I,KAAK/I,IARrB8xO,cASX,CAEA,SAASx7C,QACP/1L,KAAKo8F,MAAQ,EACbp8F,KAAKioH,OAAS,EAChB,CAEA,IAAIwpH,OAAS,CACX/8G,MAAO,WACL10H,KAAKioH,OAAOtlH,OAAS,EACrB3C,KAAKo8F,MAAQ,CACf,EACAs1I,SAAU,SAAUxqO,GAClB,IAAK,IAAI1E,EAAIxC,KAAKo8F,MAAQ,EAAG55F,GAAK,EAAGA,IACnC,GAAIxC,KAAKioH,OAAOzlH,KAAO0E,EACrB,OAAO,EAGX,OAAO,CACT,EACAsqO,cAAe,WACb,OAAO,IAAIJ,WAAWpxO,KAAKioH,OAAO1uB,UACpC,EACA28F,KAAM,WACJ,OAAOl2L,KAAKioH,OAAOjoH,KAAKo8F,MAAQ,EAClC,EACAz3F,KAAM,SAAUuC,GACdlH,KAAKioH,OAAOtjH,KAAKuC,GACjBlH,KAAKo8F,OACP,EACA13F,IAAK,WACH,GAAI1E,KAAKo8F,MAEP,OADAp8F,KAAKo8F,QACEp8F,KAAKioH,OAAOvjH,KAGvB,GAGF,SAASitO,QACP3xO,KAAKo8F,MAAQ,EACbp8F,KAAKioH,OAAS,GACdjoH,KAAKqtO,QAAU,CACjB,CAEA,SAASuE,YAAYvyK,GACnBA,EAAE4oD,OAAS5oD,EAAE4oD,OAAO5uG,MAAMgmD,EAAEguK,SAC5BhuK,EAAEguK,QAAU,CACd,CAEA,IAAIwE,OAAS,CACXn9G,MAAO,WACL10H,KAAKioH,OAAOtlH,OAAS,EACrB3C,KAAKqtO,QAAU,EACfrtO,KAAKo8F,MAAQ,CACf,EACAs1I,SAAU,SAAUxqO,GAClB,IAAK,IAAI1E,EAAIxC,KAAKqtO,QAAS1qO,EAAS3C,KAAKioH,OAAOtlH,OAAQH,GAAKG,EAAQH,IACnE,GAAIxC,KAAKioH,OAAOzlH,KAAO0E,EACrB,OAAO,EAGX,OAAO,CACT,EACA4qO,QAAS,WACP,GAAI9xO,KAAKo8F,MAAO,CACd,IAAIl1F,EAAOlH,KAAKioH,OAAOjoH,KAAKqtO,SAK5B,OAJqB,IAAfrtO,KAAKqtO,SAAertO,KAAKioH,OAAOtlH,QACpCivO,YAAY5xO,MAEdA,KAAKo8F,QACEl1F,CACT,CAEF,EACA4/B,QAAS,SAAU5/B,GACjBlH,KAAKioH,OAAOtjH,KAAKuC,GACjBlH,KAAKo8F,OACP,EACAo1I,cAAe,WAIb,OAHoB,GAAhBxxO,KAAKqtO,SACPuE,YAAY5xO,MAEP,IAAIoxO,WAAWpxO,KAAKioH,OAC7B,EACAiuE,KAAM,WACJ,OAAOl2L,KAAKioH,OAAOtlH,OAAS3C,KAAKioH,OAAOjoH,KAAKqtO,cAAW/tO,CAC1D,GAKF,SAASyyO,OAAOC,EAAMC,GACpB,MAAmB,iBAARA,EACFA,EAAO,EAAI,IAAIpwO,MAAMowO,EAAO,GAAGpB,KAAKmB,GAAQA,EAE9CnwO,MAAMvB,UAAUuwO,KAAKrwO,KAAKkC,UAAW,GAC9C,CAEA,SAASm4C,YAAYt4C,GACnB,OAAQA,IAAMA,EAAEI,MAClB,CAEA,SAASsoJ,WAAW1oJ,GAClB,OAAOs4C,YAAYt4C,KAAOA,EAAEqL,QAAQ,OAAQ,IAAIjL,MAClD,CAEA,SAASuvO,eAAeC,EAAIC,EAAIC,GAG9B,OAFAF,EAAKA,GAAM,GAAIC,EAAKA,GAAM,GAC1BC,IAAcF,EAAKA,EAAGpmJ,cAAeqmJ,EAAKA,EAAGrmJ,eACrComJ,IAAOC,EAAM,EAAKD,EAAKC,GAAO,EAAI,CAC5C,CAEA,IAAIE,qBAAuB,iBACvBC,YAAc,CAAC,EAEnB,SAASlsM,OAAOmsM,GACd,IAAIC,EAAUC,eACVrsM,EAASmsM,EACTz+N,EAASlS,MAAMvB,UAAU+Y,MAAM7Y,KAAKkC,UAAW,GAQnD,OANI8vO,EAAgBtwO,aAAeF,SACjCywO,EAAUD,EACVnsM,EAAStyB,EAAO,GAChBA,EAASA,EAAOsF,MAAM,IAGjBgtB,EAAOz4B,QAAQ0kO,sBACpB,SAAUK,EAAKnxO,GACb,IAAIukC,EAAQmkD,SAAS1oF,EAAMqqF,OAAO,GAAI,IAClCjrF,EAAQmT,EAAOgyB,GACnB,IAAK2pM,QAAQ9uO,GACX,MAAO,GAGT,IAAIgyO,EAAYL,YAAYM,SAASjyO,IACrC,GAAIgyO,EAAW,CACb,IAAIE,EAAa,GACbC,EAAcvxO,EAAMyX,QAAQ,KAIhC,GAHI85N,EAAc,IAChBD,EAAatxO,EAAM+nF,UAAUwpJ,EAAc,EAAGvxO,EAAMmB,OAAS,IAE3DmwO,GAA6B,KAAdA,EACjB,OAAOF,EAAUhyO,EAAOkyO,EAAYL,EAExC,CACA,OAAOA,GAAWC,eAAiB9xO,EAAM8I,WAAa9I,EAAMoyO,gBAC9D,GACJ,CAEA,SAASr3I,KAAKp5F,EAAG0wO,GACf,GAAIA,IAAOjxO,OAAO1B,UAAUq7F,KAAM,CAChCs3I,EAAKA,EAAKA,EAAGpC,KAAK,IAAM,KACxB,IAAIpwO,EAAIwyO,EAAK,IAAIhD,OAAO,KAAOgD,EAAK,OAASA,EAAK,MAAO,KAAO,aAChE,OAAO1wO,EAAEqL,QAAQnN,EAAG,GACtB,CACA,OAAO8B,EAAEo5F,MACX,CAEA,SAASu3I,UAAU3wO,EAAG0wO,GACpB,IAAIxyO,EAAIwyO,EAAK,IAAIhD,OAAO,KAAOgD,EAAGpC,KAAK,IAAM,MAAQ,OACrD,OAAOtuO,EAAEqL,QAAQnN,EAAG,GACtB,CAEA,SAASm6J,QAAQr4J,EAAG0wO,GAClB,IAAIxyO,EAAIwyO,EAAK,IAAIhD,OAAO,IAAMgD,EAAGpC,KAAK,IAAM,OAAS,OACrD,OAAOtuO,EAAEqL,QAAQnN,EAAG,GACtB,CAEA,SAASwU,WAAW1S,EAAG4wO,GACrB,QAAIt4L,YAAYs4L,MAGZt4L,YAAYt4C,IAAO4wO,EAAOxwO,OAASJ,EAAEI,SAGlCJ,EAAEspF,OAAO,EAAGsnJ,EAAOxwO,SAAWwwO,CACvC,CAEA,SAAS1oD,SAASloL,EAAG6wO,GACnB,QAAIv4L,YAAYu4L,MAGZv4L,YAAYt4C,IAAO6wO,EAAOzwO,OAASJ,EAAEI,SAGlCJ,EAAEspF,QAAQunJ,EAAOzwO,SAAWywO,CACrC,CAEA,SAASC,QAAQ9wO,EAAG+wO,EAAYC,GAC9B,OAAQhxO,EAAEI,OAAS2wO,EAAcvB,OAAOwB,GAAM,IAAKD,EAAa/wO,EAAEI,QAAUJ,EAAIA,CAClF,CAEA,SAASixO,SAASjxO,EAAG+wO,EAAYC,GAC/B,OAAQhxO,EAAEI,OAAS2wO,EAAc/wO,EAAIwvO,OAAOwB,GAAM,IAAKD,EAAa/wO,EAAEI,QAAUJ,CAClF,CAEA,SAASkxO,aAAalxO,EAAGwjC,EAAOq2D,GAC9B,OAAKA,GAAWr2D,EAAQq2D,EAAS75F,EAAEI,OAC1BJ,EAAEspF,OAAO,EAAG9lD,GAEdxjC,EAAEspF,OAAO,EAAG9lD,GAASxjC,EAAEspF,OAAO9lD,EAAQq2D,EAC/C,CAEA,SAASs3I,aAAanxO,EAAGwjC,EAAOnlC,GAC9B,OAAKA,EAGAmlC,EAGExjC,EAAEspF,OAAO,EAAG9lD,GAASnlC,EAAQ2B,EAAEspF,OAAO9lD,GAFpCnlC,EAAQ2B,EAHRA,CAMX,CAEA,SAAS02F,cAAc12F,EAAGkP,EAAUC,GAClC,OAAOnP,EAAE4mF,MAAM13E,GAAUo/N,KAAKn/N,GAAY,GAC5C,CAIA,SAASiiO,UAAUC,GACjB,IAAIr0O,EAAI,WAGN,IAFA,IAAI8I,EAAO3F,UACPgB,EAAS,KACJlB,EAAI,EAAG++C,EAAIqyL,EAAOjxO,OAAQH,EAAI++C,EAAG/+C,IACxCkB,EAAS2E,EAAK1F,OAASixO,EAAOpxO,GAAGI,MAAM,KAAMyF,GAAQurO,EAAOpxO,GAAGhC,KAAK,MAEtE,OAAOkD,CACT,EAEA,OADAnE,EAAEs0O,QAAUD,EACLr0O,CACT,CAEA,SAAS6V,KAAKmE,EAAI9Z,GAChB,IAAKA,EACH,OAAO8Z,EAGT,IAAI5O,EAAO,KACX4O,EAAkB,iBAANA,EAAiB9Z,EAAEkL,EAAO4O,GAAMA,EAE5C,IAAIu6N,EAAQnpO,EAAOlL,EAAEs0O,MAAQt0O,EAAEs0O,IAAM,CAAC,GAAK,KACvCC,EAAUF,EAAQA,EAAMnpO,GAAQ,KAapC,OAXKqpO,IAGHA,EAAU,WACR,OAAOz6N,EAAG3W,MAAMnD,EAAGiD,UACrB,EAEIoxO,IACFA,EAAMnpO,GAAQqpO,IAGXA,CACT,CAEA,SAASpyD,QAAQoyD,EAASpzO,GACxB,IAAKozO,EACH,OAAOpzO,EAET,IAAKA,EACH,OAAOozO,EAGT,IAAIJ,EAAS,GAAGr/N,OAAOy/N,EAAQH,SAAWG,EAASpzO,GACnD,OAAO+yO,UAAUC,EACnB,CAEA,SAAS9xD,QAAQkyD,EAASpzO,GACxB,IAAKozO,EACH,OAAO,KAET,IAAKpzO,EACH,OAAOozO,EAGT,IAAIJ,EAASI,EAAQH,SAAW,CAACG,GAC7BjuM,EAAQ6tM,EAAO36N,QAAQrY,GAC3B,OAAImlC,GAAS,EACU,GAAjB6tM,EAAOjxO,OACF,MAGTixO,EAAS7tM,EAAQ6tM,EAAOv6N,MAAM,EAAG0sB,GAAOxxB,OAAOq/N,EAAOv6N,MAAM0sB,EAAQ,IAAM6tM,EAAOv6N,MAAM,GAChFs6N,UAAUC,IAEZI,CACT,CAEA,SAASC,WAAW16N,EAAI26N,EAAUvpO,EAAMxM,GAEtCwM,EAAOA,GAAQ,MAAO,IAAKlE,MAAQ0tO,UAInCh2O,EAAOA,GAAQ4B,WAEf,IAAI0hE,EAAM,CACR92D,KAAMA,EACNypO,OAAQ,WACNj2O,EAAKwM,GAAQ8kO,IACf,EACAz+G,QAAS,WACP,WAAa7yH,EAAKwM,EAAO,CAAE,MAAOzK,GAAK/B,EAAKwM,QAAQrL,CAAW,CACjE,GAUF,OALAnB,EAAKwM,GAAQupO,EAAW36N,EAAK,WAE3B,OADAkoD,EAAIuvD,UACGz3G,EAAG3W,MAAM,KAAMF,UACxB,EAEO++D,CACT,CAIA,SAASi9G,YACT,CAIA,SAAS21D,kBACPr0O,KAAKs0O,QAAS,CAChB,CAIA,SAASpjH,cAAgB,CACzB,SAASqjH,cAAgB,CACzB,SAASC,cAAgB,CACzB,SAASC,YAAc,CACvB,SAASC,eAAiB,CAC1B,SAASC,aAAe,CACxB,SAASC,iBAAmB,CAC5B,SAASC,gBAAkB,CAC3B,SAASC,iBAAmB,CAI5B,SAASvhJ,cAAchxF,GACrBvC,KAAK+0O,OAASrF,QAAQntO,IAAY,KAANA,EAAW,CAACA,GAAK,GAC7CvC,KAAKg1O,QAAgC,GAAtBh1O,KAAK+0O,OAAOpyO,MAC7B,CAvBA+7K,UAAUu2D,MAAQ,IAAIv2D,UAyBtB,IAAIw2D,eAAiB,CACnBvhJ,OAAQ,SAAUpxF,GAKhB,OAJImtO,QAAQntO,IAAY,KAANA,IAChBvC,KAAK+0O,OAAOpwO,KAAKpC,GACjBvC,KAAKg1O,SAAU,GAEVh1O,IACT,EAEA4zF,WAAY,SAAUrxF,GAIpB,OAHAvC,KAAK2zF,OAAOpxF,GACZvC,KAAK2zF,OAAO,QACZ3zF,KAAKg1O,SAAU,EACRh1O,IACT,EAEA00H,MAAO,WACL10H,KAAK+0O,OAAS,GACd/0O,KAAKg1O,SAAU,CACjB,EAEAtrO,SAAU,SAAUnH,GAClB,OAAOvC,KAAK+0O,OAAOlE,KAAKtuO,GAAK,GAC/B,GAKE4yO,eAAiB,GACjBC,sBAAwB,CAC1BpkH,QAAS,WACPmkH,eAAezwO,KACjB,GAGF,SAAS2wO,kBAAkBC,GACzB,IAAIC,EAAsBJ,eACtBK,EAAgBD,EAAoB5yO,OAExC,GAAI6yO,EAAe,CACjBF,EAAYA,GAAa,GACzB,IAAK,IAAI9yO,EAAI,EAAGA,EAAIgzO,EAAehzO,IAAK,CACtC,IAAIizO,EAAWF,EAAoB/yO,GAC/B8yO,EAAUr8N,QAAQw8N,GAAY,GAChCH,EAAU3wO,KAAK8wO,EAEnB,CACA,OAAOH,CACT,CACA,OAAO,IACT,CAEA,SAASI,qBAAqBJ,GAC5B,IAAK,IAAI9yO,EAAI,EAAG+7F,EAAM+2I,EAAU3yO,OAAQH,EAAI+7F,EAAK/7F,IAC/C8yO,EAAU9yO,GAAGmzO,oBAEjB,CAEA,SAASC,WAAWpxO,GAClBxE,KAAK61O,GAAKrxO,EACVxE,KAAK81O,WAAa,IACpB,CAEA,IAAIC,YAAc,CAChBC,SAAU,WAER,OADAh2O,KAAK81O,WAAaT,kBAAkBr1O,KAAK81O,YAClC91O,KAAK61O,EACd,EACAI,SAAU,SAAUzxO,GAClB,GAAIxE,KAAK61O,KAAOrxO,EAAG,CACjBxE,KAAK61O,GAAKrxO,EAEV,IAAI8wO,EAAYt1O,KAAK81O,WACjBR,IACFt1O,KAAK81O,WAAa,KAClBJ,qBAAqBJ,GAEzB,CACF,GAQF,SAASY,qBAAqBtkH,GAC5B5xH,KAAKioH,OAAS2J,GAAS,GACvB5xH,KAAK81O,WAAa,IACpB,CARAF,WAAWO,iBAAmB,SAAU12O,GAEtC,OADA01O,eAAexwO,KAAKlF,GACb21O,qBACT,EAOA,IAAIgB,sBAAwB,CAC1BvoC,SAAU,SAAU9nK,GAElB,OADA/lC,KAAK81O,WAAaT,kBAAkBr1O,KAAK81O,YAClC91O,KAAKioH,OAAOliF,EACrB,EACAswM,SAAU,SAAUtwM,EAAO7+B,GACzBlH,KAAKioH,OAAOliF,GAAS7+B,EACrBlH,KAAKs2O,UACP,EACA9rI,WAAY,WAEV,OADAxqG,KAAK81O,WAAaT,kBAAkBr1O,KAAK81O,YAClC91O,KAAKioH,OAAOtlH,MACrB,EACAgX,IAAK,SAAUzS,GACblH,KAAKioH,OAAOtjH,KAAKuC,GACjBlH,KAAKs2O,UACP,EACA5hH,MAAO,WACL10H,KAAKioH,OAAOyM,QACZ10H,KAAKs2O,UACP,EACA5E,SAAU,SAAUxqO,GAClB,OAAOlH,KAAKioH,OAAOhvG,QAAQ/R,IAAS,CACtC,EACAsqO,cAAe,WAGb,OAFAxxO,KAAK81O,WAAaT,kBAAkBr1O,KAAK81O,YAElC91O,KAAKioH,OAAOupH,eACrB,EACAv4N,QAAS,SAAU/R,GACjB,OAAOlH,KAAKioH,OAAOhvG,QAAQ/R,EAC7B,EACAqvO,OAAQ,SAAUxwM,EAAO7+B,GACvBlH,KAAKioH,OAAOsuH,OAAOxwM,EAAO7+B,GAC1BlH,KAAKs2O,UACP,EACA9gJ,OAAQ,SAAUtuF,GAChB,QAAIlH,KAAKioH,OAAOzyB,OAAOtuF,KACrBlH,KAAKs2O,YACE,EAGX,EACAE,SAAU,SAAUzwM,GAClB/lC,KAAKioH,OAAOziH,OAAOugC,EAAO,GAC1B/lC,KAAKs2O,UACP,EACApF,QAAS,WACP,OAAOlxO,KAAKioH,MACd,EACAquH,SAAU,WACR,IAAIhB,EAAYt1O,KAAK81O,WACjBR,IACFt1O,KAAK81O,WAAa,KAClBJ,qBAAqBJ,GAEzB,GAKF,SAASmB,KAAK/yO,GACZ1D,KAAK02O,oBAA4Bp3O,IAAXoE,GACnB1D,KAAKwL,OAAS,OAAQ,OACtBxL,KAAKwL,OAAS,UAAW,IAC5BxL,KAAK0D,OAASA,EACd1D,KAAKgF,MAAQ,IACf,CAEA,IAAI2xO,MAAQ,CACVC,cAAe,WACb,MAAsB,WAAf52O,KAAKwL,MACd,EACAqrO,WAAY,SAAUC,GACpB,IAAIC,EAAO,IAAIN,KAcf,OAbAz2O,KAAKg3O,cAAa,SAAU10O,GAC1B,IACIoB,EADAsB,EAAQ1C,EAAE0C,MAEd,IAAKA,EACH,IACEtB,EAASozO,EAAax0O,EACxB,CACA,MAAOpC,GACL8E,EAAQ9E,CACV,CAEF+2O,YAAYF,EAAMrzO,EAAQsB,EAC5B,IACO+xO,CACT,EACAC,aAAc,SAAUF,GACtB,GAAI92O,KAAK02O,eACP12O,KAAK02O,eAAe/xO,KAAKmyO,OAEtB,CACH,IAAIv4O,EAAOyB,KACX+M,YAAW,WAAc+pO,EAAav4O,EAAO,GAAG,EAClD,CACA,OAAOyB,IACT,EACA2D,KAAM,SAAUkV,GACd,OAAO7Y,KAAKg3O,cAAa,SAAU10O,GACjB,QAAZA,EAAEkJ,QACJqN,EAASvW,EAAEoB,OAEf,GACF,EACAstO,KAAM,SAAUn4N,GACd,OAAO7Y,KAAKg3O,cAAa,SAAU10O,GACjB,UAAZA,EAAEkJ,QACJqN,EAASvW,EAAE0C,MAEf,GACF,EACApB,KAAM,SAAUszO,EAAcC,GAC5B,OAAOn3O,KAAKg3O,cAAa,SAAU10O,GACrB,QAAZA,EAAEkJ,OAAmB0rO,EAAa50O,EAAEoB,QAAUyzO,EAAa70O,EAAE0C,MAC/D,GACF,GAGF,SAASiyO,YAAYF,EAAMrzO,EAAQsB,GACjC,GAAmB,WAAf+xO,EAAKvrO,OAAqB,CACxBxG,GACF+xO,EAAK/xO,MAAQA,EACb+xO,EAAKvrO,OAAS,WAGdurO,EAAKrzO,OAASA,EACdqzO,EAAKvrO,OAAS,QAGhB,IAAI4rO,EAAgBL,EAAKL,eACzBK,EAAKL,eAAiB,KAEtB,IAAK,IAAIl0O,EAAI,EAAG5D,EAAIw4O,EAAcz0O,OAAQH,EAAI5D,EAAG4D,IAC/C40O,EAAc50O,GAAGu0O,EAErB,CACF,CAEA,SAASM,WAAWC,EAAOC,GACzBD,EAAQpG,QAAQoG,GAEhB,IAAIl7I,EAAQk7I,EAAM30O,OAEd49G,EAAW,EACVnkB,EAAQ,GAA0B,iBAAZk7I,EAAM,KAC/B/2H,EAAW+2H,EAAM,GACjBA,EAAQA,EAAMj+N,MAAM,GACpB+iF,KAEEv6F,MAAMwD,QAAQiyO,EAAM,MACtBA,EAAQA,EAAM,GACdl7I,EAAQk7I,EAAM30O,QAGhB,IAAI60O,EAAW,IAAIf,KACfgB,EAAO,EAEX,SAASX,EAAax0O,GACG,WAAnBk1O,EAAShsO,SACXisO,IACIF,EACFN,YAAYO,EAAUl1O,GAEfm1O,GAAQr7I,GACf66I,YAAYO,GAAU,GAG5B,CAEA,SAASE,IACgB,WAAnBF,EAAShsO,QAETyrO,YAAYO,IADVD,GACoB,KAM5B,CAEgB,GAAZh3H,GACFxzG,WAAW2qO,EAASn3H,GAGtB,IAAK,IAAI/9G,EAAI,EAAGA,EAAI45F,EAAO55F,IACzB80O,EAAM90O,GAAGw0O,aAAaF,GAGxB,OAAOU,CACT,CAiBA,SAASG,SAASj0O,GAChB,IAAIqzO,EAAO,IAAIN,KAAK/yO,GAEpB,MAAO,CACLqzO,KAAMA,EACN5zO,QAAS,SAAUO,GACjBuzO,YAAYF,EAAMrzO,EACpB,EACAL,OAAQ,SAAU2B,GAChBiyO,YAAYF,EAAM,KAAO/xO,GAAS,IAAI2I,MACxC,EAEJ,CA5BA8oO,KAAK9jJ,IAAM,WACT,OAAO0kJ,WAAW30O,WAAW,EAC/B,EACA+zO,KAAKc,IAAM,WACT,OAAOF,WAAW30O,WAAW,EAC/B,EACA+zO,KAAKmB,MAAQ,SAAUF,GACrB,IAAIG,EAAY,IAAIpB,KAMpB,OAJA1pO,YAAW,WACTkqO,YAAYY,GAAW,EACzB,GAAGH,GAEIG,CACT,EAkBA,IAAInF,eAAiB,CACnB/nO,KAAM,GAENmtO,GAAI,CACFC,IAAK,MACLC,IAAK,IACL/9L,IAAK,IACLg+L,OAAQ,YACRC,OAAQ,WACRC,GAAI,CAAC,GACL/5F,GAAI,EACJg6F,GAAI,IACJ9wC,GAAI,IAEJ+wC,IAAK,IACLC,MAAO,CAAC,GACRC,MAAO,EACPC,MAAO,IACPC,MAAO,IACPC,MAAO,QACPC,MAAO,SAEPC,IAAK,IACLC,MAAO,CAAC,GACRC,MAAO,EACPC,MAAO,IACPC,MAAO,IACPC,MAAO,SACPC,MAAO,QAGTC,IAAK,CACHC,GAAI,KACJC,GAAI,KAEJjB,GAAI,IACJ1rJ,GAAI,IAEJ4sJ,IAAK,kCACLC,IAAK,uBACL5pD,KAAM,sBACN6T,GAAI,iCAEJg2C,GAAI,sBACJC,GAAI,WAEJC,GAAI,aACJruF,GAAI,UAEJsuF,KAAM,EACNz4L,IAAK,CAAC,SAAU,SAAU,UACxB,YAAa,WACb,SAAU,YACZ04L,KAAM,CAAC,MAAO,MAAO,MAAO,MAC1B,MAAO,MAAO,OAChBC,KAAM,CAAC,KAAM,KAAM,KAAM,KACvB,KAAM,KAAM,MAEdC,IAAK,CAAC,UAAW,WAAY,QAC3B,QAAS,MAAO,OAAQ,OACxB,SAAU,YAAa,UACvB,WAAY,WAAY,IAC1BC,KAAM,CAAC,MAAO,MAAO,MAAO,MAC1B,MAAO,MAAO,MAAO,MACrB,MAAO,MAAO,MAAO,MAAO,MAI9BC,eAAiB,CAAErvO,KAAM,QAASwuO,IAAKzG,eAAeyG,IAAKrB,GAAIpF,eAAeoF,IAIlF,SAASmC,mBAAmBruJ,EAAQsuJ,EAAQC,EAASC,GACnD,IAAIC,EAAc,KACdC,EAAe1uJ,EAAO3yE,QAAQkhO,GAC9BG,EAAe,IACjBD,EAAczuJ,EAAOC,OAAOyuJ,GAC5B1uJ,EAASA,EAAOC,OAAO,EAAGyuJ,IAG5B,IAAIC,EAAW3uJ,EAAO32E,WAAW,KAC7BslO,IACF3uJ,EAASA,EAAOC,OAAO,IAGzB,IAAI2uJ,EAAa,EACbC,EAAYP,EAAOM,GACvB,GAAI5uJ,EAAOjpF,OAAS83O,EAClB,OAAOJ,EAAczuJ,EAASyuJ,EAAczuJ,EAG9C,IAAI7lD,EAAQ6lD,EAAOjpF,OACfJ,EAAI,GACJoB,GAAO,EACX,OAAQA,EAAM,CACZ,IAAIhB,EAAS83O,EACTzuD,EAAajmJ,EAAQpjC,EAOzB,GANIqpL,EAAa,IACfyuD,GAAazuD,EACbrpL,GAAUqpL,EACVA,EAAa,EACbroL,GAAO,IAEJhB,EACH,MAGF,IAAIi5G,EAAOhwB,EAAOC,OAAOmgG,EAAYrpL,GAEnCJ,EADEA,EAAEI,OACAi5G,EAAOw+H,EAAQ73O,EAGfq5G,EAEN71E,GAASpjC,EAEL63O,EAAaN,EAAOv3O,OAAS,IAC/B63O,IACAC,EAAYP,EAAOM,GAEvB,CAKA,OAHID,IACFh4O,EAAI,IAAMA,GAEL83O,EAAc93O,EAAI83O,EAAc93O,CACzC,CAEAgwO,YAAY,UAAY,SAAU3mJ,EAAQvlD,EAAQosM,GAChD,IAAIqF,EAAKrF,EAAQqF,GACbv1O,EAAI,GACJurM,GAAa,EAEbznK,EAAO1jC,OAAS,IAClBmrM,EAAY5jH,SAAS7jD,EAAOwlD,OAAO,KAGrC,IAAI6uJ,EAAKr0M,EAAOg3J,OAAO,GACvB,OAAQq9C,GACN,IAAK,IAAK,IAAK,IACbn4O,EAAI2nF,SAAS5kF,KAAKkjD,IAAIojC,IAASliF,YACb,GAAdokM,IACFvrM,EAAI8wO,QAAQ9wO,EAAGurM,EAAW,MAExBliH,EAAS,IACXrpF,EAAI,IAAMA,GAEZ,MACF,IAAK,IAAK,IAAK,IACbA,EAAI2nF,SAAS5kF,KAAKkjD,IAAIojC,IAASliF,SAAS,IAC9B,KAANgxO,IACFn4O,EAAIA,EAAEwpF,gBAEU,GAAd+hH,IACFvrM,EAAI8wO,QAAQ9wO,EAAGurM,EAAW,MAE5B,MACF,IAAK,IAAK,IAAK,IAEXvrM,GADgB,GAAdurM,EACEliH,EAAO2xG,gBAGP3xG,EAAO2xG,cAAcuQ,GAEjB,KAAN4sC,IACFn4O,EAAIA,EAAEwpF,eAER,MACF,IAAK,IAAK,IAAK,IACf,IAAK,IAAK,IAAK,IAKb,IAJkB,GAAd+hH,IACFA,EAAYgqC,EAAG15F,IAEjB77I,EAAIqpF,EAAO8xG,QAAQoQ,GAAWpkM,WAC1BokM,GAAuB,KAATgqC,EAAGM,GAAY,CAC/B,IAAIryM,EAAQxjC,EAAE0W,QAAQ,KACtB1W,EAAIA,EAAEspF,OAAO,EAAG9lD,GAAS+xM,EAAGM,GAAK71O,EAAEspF,OAAO9lD,EAAQ,EACpD,CACW,KAAN20M,GAAqB,KAANA,IAClBn4O,EAAI03O,mBAAmB13O,EAAGu1O,EAAGK,GAAIL,EAAGM,GAAIN,EAAGxwC,KAE7C,MACF,IAAK,IAAK,IAAK,IAKb,IAJkB,GAAdwG,IACFA,EAAYgqC,EAAGgB,OAEjBv2O,EAAI+C,KAAKkjD,IAAIojC,GAAQ8xG,QAAQoQ,GAAWpkM,WACpCokM,GAA0B,KAAZgqC,EAAGiB,MAAe,CAC9BhzM,EAAQxjC,EAAE0W,QAAQ,KACtB1W,EAAIA,EAAEspF,OAAO,EAAG9lD,GAAS+xM,EAAGiB,MAAQx2O,EAAEspF,OAAO9lD,EAAQ,EACvD,CACAxjC,EAAI03O,mBAAmB13O,EAAGu1O,EAAGe,MAAOf,EAAGiB,MAAOjB,EAAGkB,OAE/Cz2O,EADEqpF,EAAS,EACP5pF,OAAOqkC,OAAOosM,EAASqF,EAAGmB,MAAO12O,GAGjCP,OAAOqkC,OAAOosM,EAASqF,EAAGoB,MAAO32O,GAEvC,MACF,IAAK,IAAK,IAAK,IAKb,IAJkB,GAAdurM,IACFA,EAAYgqC,EAAGS,OAEjBh2O,GAAwB,IAAnB+C,KAAKkjD,IAAIojC,IAAiB8xG,QAAQoQ,GAAWpkM,WAC9CokM,GAA0B,KAAZgqC,EAAGU,MAAe,CAC9BzyM,EAAQxjC,EAAE0W,QAAQ,KACtB1W,EAAIA,EAAEspF,OAAO,EAAG9lD,GAAS+xM,EAAGU,MAAQj2O,EAAEspF,OAAO9lD,EAAQ,EACvD,CACAxjC,EAAI03O,mBAAmB13O,EAAGu1O,EAAGQ,MAAOR,EAAGU,MAAOV,EAAGW,OAE/Cl2O,EADEqpF,EAAS,EACP5pF,OAAOqkC,OAAOosM,EAASqF,EAAGa,MAAOp2O,GAGjCP,OAAOqkC,OAAOosM,EAASqF,EAAGY,MAAOn2O,GAEvC,MAGJ,OAAOA,CACT,EAEA,IAAIo4O,cAAgB,+FAEpBpI,YAAY,QAAU,SAAU/uC,EAAIn9J,EAAQosM,GAC1C,GAAc,OAAVpsM,EACF,OAAOm9J,EAAGo3C,cAEP,GAAwB,KAApBv0M,EAAOg3J,OAAO,GAAW,CAChC,IAAIw9C,EAAS,SACb,OAAQx0M,GACN,IAAK,KAAMw0M,EAAS,aAAc,MAClC,IAAK,KAAMA,EAAS,aAAc,MAEpC,OAAOpI,GAAWC,eAAiBlvC,EAAG,KAAOq3C,KAAYr3C,EAAG,WAAaq3C,IAC3E,CAEA,IAAI1B,EAAM1G,EAAQ0G,IAElB,GAAqB,GAAjB9yM,EAAO1jC,OACT,OAAQ0jC,GACN,IAAK,IAAKA,EAAS8yM,EAAIK,GAAK,IAAML,EAAI9tF,GAAI,MAC1C,IAAK,IAAKhlH,EAAS8yM,EAAI31C,GAAI,MAE3B,IAAK,IAAKn9J,EAAS8yM,EAAIM,GAAI,MAC3B,IAAK,IAAKpzM,EAAS8yM,EAAIK,GAAI,MAE3B,IAAK,IAAKnzM,EAAS8yM,EAAI9tF,GAAI,MAC3B,IAAK,IAAKhlH,EAAS8yM,EAAIO,GAAI,MAE3B,IAAK,IAAKrzM,EAAS8yM,EAAIM,GAAK,IAAMN,EAAI9tF,GAAI,MAC1C,IAAK,IAAKhlH,EAAS8yM,EAAIM,GAAK,IAAMN,EAAIO,GAAI,MAE1C,IAAK,IAAK,IAAK,IACbP,EAAMzG,eAAeyG,IACrB9yM,EAAS8yM,EAAIG,IACb,MACF,IAAK,IAAKjzM,EAAS8yM,EAAII,IAAK,MAC5B,IAAK,IACHlzM,EAAS8yM,EAAI31C,GACbA,EAAK,IAAI/8L,KAAK+8L,EAAG1jG,iBAAkB0jG,EAAGzjG,cAAeyjG,EAAGxjG,aACtDwjG,EAAGvjG,cAAeujG,EAAGtjG,gBAAiBsjG,EAAGrjG,gBAAiBqjG,EAAGpjG,sBAC/D,MAEF,IAAK,IAAK/5D,EAAS8yM,EAAIxpD,KAAM,MAIT,KAApBtpJ,EAAOg3J,OAAO,KAChBh3J,EAASA,EAAOwlD,OAAO,IAGzB,IAAIyH,EAAK,IAAIC,cAEbonJ,cAAcG,UAAY,EAC1B,MAAO,EAAM,CACX,IAAI/0M,EAAQ40M,cAAcG,UACtBt5O,EAAQm5O,cAAcI,KAAK10M,GAG/B,GADAitD,EAAGK,OAAOttD,EAAOhtB,MAAM0sB,EAAOvkC,EAAQA,EAAMukC,MAAQM,EAAO1jC,UACtDnB,EACH,MAGF,IAAIk5O,EAAKl5O,EAAM,GACXo6G,EAAO8+H,EACX,OAAQA,GACN,IAAK,OACH9+H,EAAOu9H,EAAIj4L,IAAIsiJ,EAAGw3C,UAClB,MACF,IAAK,MACHp/H,EAAOu9H,EAAIS,KAAKp2C,EAAGw3C,UACnB,MACF,IAAK,KACHp/H,EAAOy3H,QAAQ7vC,EAAG34G,UAAUnhF,WAAY,EAAG,KAC3C,MACF,IAAK,IACHkyG,EAAO4nF,EAAG34G,UACV,MACF,IAAK,OACH+wB,EAAOu9H,EAAIW,IAAIt2C,EAAG54G,YAClB,MACF,IAAK,MACHgxB,EAAOu9H,EAAIY,KAAKv2C,EAAG54G,YACnB,MACF,IAAK,KACHgxB,EAAOy3H,SAAS7vC,EAAG54G,WAAa,GAAGlhF,WAAY,EAAG,KAClD,MACF,IAAK,IACHkyG,EAAQ4nF,EAAG54G,WAAa,EACxB,MACF,IAAK,OACHgxB,EAAO4nF,EAAG14G,cACV,MACF,IAAK,KACH8wB,EAAOy3H,SAAS7vC,EAAG14G,cAAgB,KAAKphF,WAAY,EAAG,KACvD,MACF,IAAK,IACHkyG,EAAQ4nF,EAAG14G,cAAgB,IAC3B,MACF,IAAK,IAAK,IAAK,KACb8wB,EAAO4nF,EAAG94G,WAAa,GAClBkxB,EAGU,MAAN8+H,IACP9+H,EAAOy3H,QAAQz3H,EAAKlyG,WAAY,EAAG,MAHnCkyG,EAAO,KAKT,MACF,IAAK,KACHA,EAAOy3H,QAAQ7vC,EAAG94G,WAAWhhF,WAAY,EAAG,KAC5C,MACF,IAAK,IACHkyG,EAAO4nF,EAAG94G,WACV,MACF,IAAK,KACHkxB,EAAOy3H,QAAQ7vC,EAAGz4G,aAAarhF,WAAY,EAAG,KAC9C,MACF,IAAK,IACHkyG,EAAO4nF,EAAGz4G,aACV,MACF,IAAK,KACH6wB,EAAOy3H,QAAQ7vC,EAAGx4G,aAAathF,WAAY,EAAG,KAC9C,MACF,IAAK,IACHkyG,EAAO4nF,EAAGx4G,aACV,MACF,IAAK,IAAK,IAAK,KACb4wB,EAAQ4nF,EAAG94G,WAAa,GAAMyuJ,EAAIC,GAAKD,EAAIE,GACjC,KAANqB,IACF9+H,EAAOA,EAAKyhF,OAAO,IAErB,MACF,IAAK,MACHzhF,EAAOy3H,QAAQ7vC,EAAG+qC,kBAAkB7kO,WAAY,EAAG,KACnD,MACF,IAAK,KACHkyG,EAAOy3H,QAAQ7vC,EAAG+qC,kBAAkB7kO,WAAY,GAAGmiF,OAAO,EAAG,GAC7D,MACF,IAAK,IACH+vB,EAAOy3H,QAAQ7vC,EAAG+qC,kBAAkB7kO,WAAY,GAAG2zL,OAAO,GAC1D,MACF,IAAK,IACHzhF,EAAO4nF,EAAGy3C,oBAAsB,GAChCr/H,GAASA,GAAQ,EAAK,IAAM,KAAOt2G,KAAKwkD,MAAMxkD,KAAKkjD,IAAIozD,IACvD,MACF,IAAK,KAAM,IAAK,MACdA,EAAO4nF,EAAGy3C,oBAAsB,GAChCr/H,GAASA,GAAQ,EAAK,IAAM,KAAOy3H,QAAQ/tO,KAAKwkD,MAAMxkD,KAAKkjD,IAAIozD,IAAOlyG,WAAY,EAAG,KAC3E,OAANgxO,IACF9+H,GAAQu9H,EAAIzsJ,GAAK2mJ,QAAQ/tO,KAAKkjD,IAAIg7I,EAAGy3C,oBAAsB,IAAIvxO,WAAY,EAAG,MAEhF,MACF,QACwB,KAAlBkyG,EAAKyhF,OAAO,KACdzhF,EAAOA,EAAK/vB,OAAO,EAAG+vB,EAAKj5G,OAAS,GAAGiL,QAAQ,OAAQ,MAEzD,MAEJ0lF,EAAGK,OAAOioB,EACZ,CAEA,OAAOtoB,EAAG5pF,UACZ,EAIA,IAAIwxO,SAAW,CAAC,EAEZC,aAAe,QACfC,iBAAmB,YAEvB,SAASC,WAAWxI,EAAUyI,EAAUC,GAKtC,GAAI15O,MAAMwD,QAAQi2O,GAAW,CAC3B,IAAIhxO,EAAOgxO,EAAS,GAKpB,GAAIA,EAAS34O,QAAU,EAAG,CACxB,IAAI64O,EAAWF,EAAS,GACxB,GAAIE,EAAU,CAGZ,IAAIC,EAAY,WAAc,EAC9BA,EAAUn7O,UAAYk7O,EAASl7O,UAC/BgK,EAAKhK,UAAY,IAAIm7O,EACrBnxO,EAAKhK,UAAU4B,YAAcoI,CAC/B,CAGAgxO,EAAS,IAAM7wI,OAAOngG,EAAKhK,UAAWg7O,EAAS,IAE/ChxO,EAAKoxO,MAAQF,GAAY97O,OACzB4K,EAAKqxO,YAAcL,EAASjiO,MAAM,GAClC/O,EAAKsxO,MAAQT,YACf,MAEE7wO,EAAKsxO,MAAQR,iBAIf,OADA9wO,EAAKuxO,MAAQhJ,EACN0I,EAAa1I,GAAYvoO,CAClC,CAEA,OAAOgxO,CACT,CAEA,SAASQ,QAAQviO,GACf,OAAOA,EAAGqiO,OAAST,YACrB,CAEA,SAASY,YAAYxiO,GACnB,OAAOA,EAAGqiO,OAASR,gBACrB,CAEA,SAASY,OAAOC,GACd,IAAIC,EAIJ,IACEA,EAAOD,EAAS/5O,WAClB,CACA,MAAOo6N,GACP,CACA,OAAO4f,GAAQx8O,MACjB,CAEA,SAAS4K,KAAK/H,GACZ,IAAI45O,EAAU55O,EAAE0W,QAAQ,KACpBmjO,EAAKD,EAAU,EAAIjB,SAAS34O,EAAEspF,OAAO,EAAGswJ,IAAYp8O,WACpD4K,EAAOwxO,EAAU,EAAI55O,EAAEspF,OAAOswJ,EAAU,GAAK55O,EAEjD,OAAO65O,EAAKA,EAAGzxO,GAAQ,IACzB,CAEA,IAAI0xO,WAAa,CACfz+H,OAAQ,SACR57G,OAAQ,SACRs6O,QAAS,UACTz6O,MAAO,QACP4E,KAAM,OACNwpO,OAAQ,SACRhwO,SAAU,YAGZ,SAAS4yO,SAASvoO,GAIhB,GAHMA,aAAgBrK,WACpBqK,EAAOA,EAAKpI,aAEVoI,EAAKuxO,MACP,OAAOvxO,EAAKuxO,MAEd,GAAIvxO,EAAKK,KACP,OAAOL,EAAKK,KAEd,IAAK,IAAInI,EAAI,EAAG+7F,EAAM89I,WAAW15O,OAAQH,EAAI+7F,EAAK/7F,GAAK,EACrD,GAAI8H,GAAQ+xO,WAAW75O,GACrB,OAAO65O,WAAW75O,EAAI,GAG1B,MAAO,QACT,CAEA,SAAS+5O,UAAUjyO,EAAMkyO,GAIvB,GAAKlyO,GAAQ5K,QAAY4K,GAAQkyO,EAC/B,OAAO,EAET,GAAIlyO,EAAKsxO,OAAST,aAAc,CAC9B,IAAIK,EAAWgB,EAAUd,MACzB,MAAOF,EAAU,CACf,GAAIlxO,GAAQkxO,EACV,OAAO,EAETA,EAAWA,EAASE,KACtB,CACF,MACK,GAAIpxO,EAAKsxO,OAASR,iBAAkB,CACnCI,EAAWgB,EACf,MAAOhB,EAAU,CACf,IAAIiB,EAAajB,EAASG,YAC1B,GAAIc,GAAeA,EAAWxjO,QAAQ3O,IAAS,EAC7C,OAAO,EAETkxO,EAAWA,EAASE,KACtB,CACF,CACA,OAAO,CACT,CAEA,SAASgB,WAAWpyO,EAAM2xO,GAGxB,IAAKvM,QAAQuM,GACX,OAAO,EAGT,GAAK3xO,GAAQ5K,QAAYu8O,aAAoB3xO,EAC3C,OAAO,EAGT,IAAIqyO,EAAeX,OAAOC,GAC1B,OAAOM,UAAUjyO,EAAMqyO,EACzB,CAEA,SAASpsJ,QAAQ0rJ,EAAU3xO,GACzB,OAAOoyO,WAAWpyO,EAAM2xO,EAC1B,CAEA,SAAS7lF,SAAS6lF,EAAU3xO,GAC1B,OAAOoyO,WAAWpyO,EAAM2xO,GAAYA,EAAW,IACjD,CAEA,SAASW,UAAUjyO,EAAMkyO,EAAgBv+O,GACvC,IAAIw+O,EAAW5B,SAASvwO,GAAQ,CAAEkxO,MAAOlxO,GAEzC,GAAIkyO,EACF,IAAK,IAAIhK,KAAYgK,EACnBxB,WAAWxI,EAAUgK,EAAehK,GAAWiK,GAInD,IAAInqO,EAAM,CAAC,EACX,GAAIrU,EACF,IAAK,IAAIu0O,KAAYv0O,EACnBqU,EAAIkgO,GAAYwI,WAAWxI,EAAUv0O,EAAQu0O,GAAWiK,GAI5D,OAAOnqO,CACT,CAEA,SAASoqO,eAAepyO,GACtB,IAAImyO,EAAW5B,SAASvwO,GAAQ,CAAEkxO,MAAOlxO,GACzC,OAAOmyO,CACT,CAEA,OAAOryI,OAAOmyI,UAAU,KAAM,KAAM,CAClC1rH,YAAa,CAACA,aACdqjH,YAAa,CAACA,aACdC,YAAa,CAACA,aACdC,UAAW,CAACA,WACZC,aAAc,CAACA,cACfC,WAAY,CAACA,YACbC,eAAgB,CAACA,gBACjBC,cAAe,CAACA,eAChBC,eAAgB,CAACA,gBACjBp2D,UAAW,CAACA,UAAW,CAAC,GACxB21D,gBAAiB,CAACA,gBAAiB,CAAC,EAAG31D,WACvCnrF,cAAe,CAACA,cAAe2hJ,gBAC/Bn/C,MAAO,CAACA,MAAO07C,QACfE,MAAO,CAACA,MAAOE,QACf+D,WAAY,CAACA,WAAYG,aACzBG,qBAAsB,CAACA,qBAAsBE,sBAAuB,KAAM7B,aAC1EkC,KAAM,CAACA,KAAME,SACX,CACFt0N,QAAS,MAETqtN,QACA9uO,MACA6pG,OACAjiG,KACA2uK,SACAl8E,UACAs4E,UACAh4H,UACAm2D,MAAOw/H,QACP17I,OAAQ27I,WACRzhF,QAASkgF,aACToN,OAAQnN,YACRjkJ,OAAQskJ,YACRhiL,KAAMq1I,UACNliJ,SACA76C,IACA4pO,MACAlkE,aACAlnK,MACA+sO,OACAl3L,YACAowG,WACA5kH,OACA6rM,eACAj9N,WACAw1K,SACA4oD,QACAG,SACA73I,KACAu3I,UACAt4E,QACA84E,aACAD,aACAx6I,cACA7jF,KACAwsK,QACAE,QACAmyD,WACA0D,SAEAt5O,OAAQu+O,UACRK,QAAS/B,SACT6B,eACA1B,WAEAS,QACAC,YACAC,OACA1xO,KACAuoO,SACAtiJ,QACA6lE,SACAmmF,UACAG,WAEAjK,QAAS,CACPyK,QAASxK,eACTh3L,QAASs+L,gBAGXhJ,MAEJ,CA7/CA,mCAAoBvwO,EAAE,4BACD,mCAAoBlB,EAAE,2BAAqB,CACzCq7C,GAAI,IAAM,KA6/CjC,IAAIA,GAAK40L,KAEF,EAED;;;yBAIA,CAAE7wO,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC49I,OAAQ,IAAM,EACdzB,KAAM,IAAM,IAEd,IAAIhxF,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFoyC,EAA4C,sBAAyC,qBACrF61B,EAAyC,mBAAsC,kBAC/Eo6G,EAA+C,yBAA4C,wBAepH,SAAStxF,EAAK9oC,GACV5yG,KAAK27I,UAAY,EACjB37I,KAAKo3C,GAAK,EACVp3C,KAAKirC,IAAM,EACXjrC,KAAKm9O,IAAM,EACXn9O,KAAKiH,GAAK,EACVjH,KAAKw7I,kBAAoB,EACzBx7I,KAAK47I,IAAM,EACX57I,KAAKs9C,SAAW,EAChB,IAAI8/L,EAAKxqI,EAAMzpB,MAAM,MAIrB,GAHAnpF,KAAKiH,GAAKijF,SAASx/B,EAAoC9P,GAAGq+C,cAAcmkJ,EAAG,GAAI,MAAO,KACtFp9O,KAAKirC,IAAMk/C,WAAWizJ,EAAG,IACzBp9O,KAAKo3C,GAAK+yC,WAAWizJ,EAAG,IAAM,GAC1BA,EAAGz6O,OAAS,EACZ,IACgC,SAAxBy6O,EAAG,GAAGrxJ,eAA8BqxJ,EAAG,KACvCp9O,KAAK27I,UAAYxxD,WAAWizJ,EAAG,IAEvC,CACA,MAAO7oJ,GACP,CAEJ,GAAI6oJ,EAAGz6O,OAAS,EACZ,IACI3C,KAAKm9O,IAAMhzJ,WAAWizJ,EAAG,IACzBp9O,KAAKq9O,WAAWr9O,KAAKm9O,IACzB,CACA,MAAOthJ,GACP,CAEAuhJ,EAAGz6O,OAAS,IACZ3C,KAAK47I,IAAMzxD,WAAWizJ,EAAG,IACzBp9O,KAAKs9O,4BAEb,CAEA,IAAIC,EAAQ,CACRj8N,SAAU,WACN,MAAO,MAAQthB,KAAKiH,GAAGyC,UAC3B,EAEA8zO,gBAAiB,WACb,OAAOxQ,EAA6Cx0L,YAAYmnD,UAAU3/F,KAAKo3C,GAAIp3C,KAAKirC,IAC5F,EAEAwyM,MAAO,SAAU7qI,EAAO8qI,GACpB,IAAIN,EAAKxqI,EAAMzpB,MAAM,MAIrB,GAHAnpF,KAAKiH,GAAKijF,SAASkzJ,EAAG,IACtBp9O,KAAKo3C,GAAK+yC,WAAWizJ,EAAG,IAAM,GAC9Bp9O,KAAKirC,IAAMk/C,WAAWizJ,EAAG,IACrBA,EAAGz6O,OAAS,EACZ,IACI3C,KAAK27I,UAAYxxD,WAAWizJ,EAAG,GACnC,CACA,MAAO7oJ,GACP,CAEJ,GAAI6oJ,EAAGz6O,OAAS,EACZ,IACI3C,KAAK62C,IAAM+7E,EAAuCx6E,MAAMC,KAAK+kM,EAAG,GACpE,CACA,MAAOvhJ,GACP,CAER,EAEAyhJ,0BAA2B,WACvBt9O,KAAKs9C,SAAW,GAAKt9C,KAAK47I,IAAM,KAChC57I,KAAKw7I,kBAAoBx7I,KAAK27I,UAAY,GAAK5+C,EAA0Cr6C,KAAKonC,KAAK9pF,KAAKs9C,SAAU,IAAM,GAExHt9C,KAAKs9C,UAAY,UACrB,EAEA+/L,WAAY,SAAUM,GAClB,IAAI/+O,EAAI,WAEJ++O,IAAQ,IACR/+O,EAAI,WACG++O,IAAQ,IACf/+O,EAAI,WACG++O,IAAQ,GACf/+O,EAAI,WAMC++O,IAAQ,IACb/+O,EAAI,WACG++O,IAAQ,IACf/+O,EAAI,WACG++O,IAAQ,IACf/+O,EAAI,WACG++O,IAAQ,GACf/+O,EAAI,WACG++O,IAAQ,IACf/+O,EAAI,WACG++O,IAAQ,IACf/+O,EAAI,WACG++O,IAAQ,IACf/+O,EAAI,WACG++O,IAAQ,IACf/+O,EAAI,WACG++O,IAAQ,IACf/+O,EAAI,WACG++O,GAAO,EACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,KACd/+O,EAAI,YACG++O,GAAO,IACd/+O,EAAI,WACG++O,GAAO,KACd/+O,EAAI,WACG++O,GAAO,KACd/+O,EAAI,WACG++O,GAAO,KACd/+O,EAAI,WACG++O,GAAO,KACd/+O,EAAI,WACG++O,GAAO,KACd/+O,EAAI,WACG++O,GAAO,KACd/+O,EAAI,WACG++O,GAAO,KACd/+O,EAAI,WACG++O,GAAO,KACd/+O,EAAI,WACG++O,GAAO,IACd/+O,EAAI,YAGRoB,KAAK62C,IAAM+7E,EAAuCx6E,MAAM04C,QAAQlyF,EACpE,GAQJ,SAASu+I,EAAOhiF,GACZn7D,KAAKo3C,GAAK,EACVp3C,KAAKirC,IAAM,EACXjrC,KAAKs9C,SAAW,EAChBt9C,KAAKsK,KAAO,EACZtK,KAAKk9I,YAAc,EACnBl9I,KAAKmR,KAAO,EACZnR,KAAK49O,OAAS,EACd59O,KAAK49O,OAASziL,EAAG0iL,YACjB79O,KAAKo3C,GAAK+jB,EAAGE,aACbr7D,KAAKirC,IAAMkwB,EAAGE,aACdr7D,KAAKs9C,SAAW6d,EAAGE,aACnBr7D,KAAKk9I,YAAc/hF,EAAGmlG,WACtBtgK,KAAKmR,KAAOgqD,EAAGE,YACnB,EAnBA,EAAG1Q,EAA4CzS,cAAc,OAAQ,CAACwjG,EAAM6hG,EAAO,OAqBnFpgG,EAAO2gG,cAAgB,EAAE,GAAI,MAAQ,MAAQ,MAAQ,KAAO,MAAQ,MAAQ,KAAO,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,GAE7K3gG,EAAO4gG,SAAW,SAAUn9O,GACxB,IAAI2L,EAAI,EACJ7K,EAAIy7I,EAAO2gG,cAAcn7O,OAAS,EACtC,MAAOjB,EAAI6K,EAAI,EAAG,CACd,IAAI1H,GAAK0H,EAAI7K,GAAK,EACdd,EAAQu8I,EAAO2gG,cAAcj5O,GAC7B0H,EAAI1H,EAEJnD,EAAImD,CAEZ,CACA,OAAO0H,CACX,EAEA,IAAIyxO,EAAU,CAAC,GAEf,EAAGrzL,EAA4CzS,cAAc,SAAU,CAACilG,EAAQ6gG,EAAS,MAGlF,EAED;;;iCAIA,CAAEr/O,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCipO,YAAa,IAAM,EACnBn5E,YAAa,IAAM,IAErB,IAAI3kG,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzF0uD,EAAkD,4BAA+C,2BACjGrc,EAA4C,sBAAyC,qBACrFsc,EAA4D,sCAAyD,qCACrHC,EAAmD,6BAAgD,4BACnG29G,EAAqD,+BAAkD,8BACvG+mB,EAAwC,kBAAqC,iBAkBtG,SAASzV,IACLxoO,KAAKo6G,OAAS,EACdp6G,KAAKq6G,OAAS,EACdr6G,KAAKs6G,OAAS,EACdt6G,KAAKu6G,OAAS,CAClB,CAEA,IAAI2jI,EAAe,CAAC,EAOpB,SAAS7uF,EAAYx1C,EAAO9uE,EAAG/mC,EAAG81G,EAAS5uB,GACvClrF,KAAK05G,YAAa,EAClBukI,EAAsCrkI,KAAKp5G,KAAKR,MAChDA,KAAKkrF,OAASA,EACdlrF,KAAK65G,MAAQA,EACb75G,KAAK+5G,MAAQhvE,EACb/qC,KAAKg6G,MAAQh2G,EACbhE,KAAK85G,QAAUA,EACf95G,KAAK05G,YAAcI,EAAQG,gBAC3Bj6G,KAAKk6G,uBACT,EAfA,EAAGvvD,EAA4CzS,cAAc,cAAe,CAACswL,EAAa0V,EAAc,OAiBxG,IAAIC,EAAe,CACfjkI,sBAAuB,WACnB,GAAKl6G,KAAK05G,WAAV,CAIA,IAAIwB,EAAcl7G,KAAK85G,QAAQ12E,sBAAwB99B,KAAKo8D,IAAI,EAAG1hE,KAAK65G,OACpEO,EAAUp6G,KAAK85G,QAAQ12E,sBAAwB,EAAKpjC,KAAU,MAAIk7G,EAAel7G,KAAK85G,QAAQz2E,cAC9Fg3E,EAAUr6G,KAAK85G,QAAQ12E,sBAAwB,GAAMpjC,KAAKg6G,MAAQ,GAAMkB,EAAel7G,KAAK85G,QAAQz2E,cACpGi3E,EAAWt6G,KAAU,MAAIk7G,EAAcl7G,KAAK85G,QAAQ12E,sBAAwBpjC,KAAK85G,QAAQ83C,kBAAqB5xJ,KAAK85G,QAAQvL,cAC3HgM,GAAYv6G,KAAK+5G,MAAQ,GAAMmB,EAAcl7G,KAAK85G,QAAQ12E,sBAAwBpjC,KAAK85G,QAAQ83C,kBAAqB5xJ,KAAK85G,QAAQvL,cACjIiM,GAAaJ,EAASC,GAAU,EAChCI,GAAaH,EAASC,GAAU,EACpCv6G,KAAK06G,aAAe16G,KAAKooO,WAAW5tH,EAAWC,GAC/Cz6G,KAAK26G,QAAU36G,KAAKooO,WAAWhuH,EAAQE,GACvCt6G,KAAK46G,YAAc56G,KAAKooO,WAAW/tH,EAAQE,GAC3Cv6G,KAAK66G,SAAW76G,KAAKooO,WAAWhuH,EAAQG,GACxCv6G,KAAK86G,WAAa96G,KAAKooO,WAAW/tH,EAAQC,GAC1C,IAAIS,EAAW/6G,KAAKooO,WAAWhuH,EAAQE,GACvCS,EAAShS,SAAS/oG,KAAK06G,cACvB16G,KAAKg7G,aAAeD,EAASp4G,QAf7B,MAFI3C,KAAKi7G,gCAkBb,EAEAA,+BAAgC,WAC5B,IAAIC,EAAcl7G,KAAK85G,QAAQ12E,sBAAwB99B,KAAKo8D,IAAI,EAAG1hE,KAAK65G,OACpEO,EAAUp6G,KAAK85G,QAAQ12E,sBAAwB,GAAMpjC,KAAKg6G,MAAQ,GAAMkB,EAAel7G,KAAK85G,QAAQz2E,cACpGg3E,EAAUr6G,KAAK85G,QAAQ12E,sBAAwB,EAAKpjC,KAAU,MAAIk7G,EAAel7G,KAAK85G,QAAQz2E,cAC9Fi3E,EAAWt6G,KAAU,MAAIk7G,EAAcl7G,KAAK85G,QAAQ12E,sBAAwBpjC,KAAK85G,QAAQ83C,kBAAqB5xJ,KAAK85G,QAAQvL,cAC3HgM,GAAYv6G,KAAK+5G,MAAQ,GAAMmB,EAAcl7G,KAAK85G,QAAQ12E,sBAAwBpjC,KAAK85G,QAAQ83C,kBAAqB5xJ,KAAK85G,QAAQvL,cACrIvuG,KAAK26G,QAAU36G,KAAKooO,WAAWhuH,EAAQE,GACvCt6G,KAAK46G,YAAc56G,KAAKooO,WAAW/tH,EAAQE,GAC3Cv6G,KAAK66G,SAAW76G,KAAKooO,WAAWhuH,EAAQG,GACxCv6G,KAAK86G,WAAa96G,KAAKooO,WAAW/tH,EAAQC,EAC9C,EAEAguH,eAAgB,WACZ,IAAIptH,EAAcl7G,KAAK85G,QAAQ12E,sBAAwB99B,KAAKo8D,IAAI,EAAG1hE,KAAK65G,OACpE0uH,EAAQ,IAAIC,EAKhB,OAJAD,EAAMnuH,OAAUp6G,KAAK85G,QAAQ12E,sBAAwB,EAAKpjC,KAAU,MAAIk7G,EAAel7G,KAAK85G,QAAQz2E,cACpGklM,EAAMluH,OAAUr6G,KAAK85G,QAAQ12E,sBAAwB,GAAMpjC,KAAKg6G,MAAQ,GAAMkB,EAAel7G,KAAK85G,QAAQz2E,cAC1GklM,EAAMjuH,OAAWt6G,KAAU,MAAIk7G,EAAcl7G,KAAK85G,QAAQ12E,sBAAwBpjC,KAAK85G,QAAQ83C,kBAAqB5xJ,KAAK85G,QAAQvL,cACjIg6H,EAAMhuH,QAAYv6G,KAAK+5G,MAAQ,GAAMmB,EAAcl7G,KAAK85G,QAAQ12E,sBAAwBpjC,KAAK85G,QAAQ83C,kBAAqB5xJ,KAAK85G,QAAQvL,cAChIg6H,CACX,EAEAH,WAAY,SAAUrpL,EAAKG,GACvBA,GAAOA,EACP,IAAIk/L,EAAOp+O,KAAK85G,QAAQ12E,sBAAwB,EAC5CiK,EAAS/nC,KAAKmiD,IAAI22L,EAAOH,EAAsCrkI,KAAKviB,IACxE,OAAOr3F,KAAK85G,QAAQ66C,aAAa57G,UAAUikD,EAA0ChkD,SAAS72C,OAAO,EAAI48C,EAAMq/L,EAAO/wM,EAAU6R,EAAMk/L,EAAO/wM,GACjJ,EAEAq5G,aAAc,WACV1mJ,KAAKq+O,UAAY3zL,EAAoC9P,GAAGw7G,SAASp2J,KAAK85G,QAAQ84C,eAAgBskE,EAAmD7gE,WAC3H,MAAlBr2J,KAAKq+O,WACLr+O,KAAKgnJ,UAAW,EAChBhnJ,KAAK4mJ,aAAc,EACnB5mJ,KAAK4kJ,QAAU5kJ,KAAKq+O,UAAUz5F,QAC9B5kJ,KAAK8mJ,gBAAiB,GACtB,EAAGztC,EAAgD0tC,0BAA0B/mJ,KAAK+lJ,WAAW,GACzF1sC,EAAgDivD,eAChDtoK,KAAK+lI,cACL/lI,KAAK2kJ,eAAgB,IAKrB3kJ,KAAKmhK,IAAMnhK,KAAKq+O,UAAU59E,YAC1BzgK,KAAK45H,UAAY55H,KAAKmhK,IAAIm9E,aAC1Bt+O,KAAK2kJ,eAAgB,IAGzBs5F,EAAsCrkI,KAAKt5G,UAAUomJ,aAAalmJ,KAAKR,KAE/E,EAEAm7G,eAAgB,SAAUl5E,GACtB,GAAIjiC,KAAK4zM,gBACL,OAAO,EAEX5zM,KAAK4zM,iBAAkB,EACvB,IAAK,IAAIpxM,EAAI,EAAGA,EAAI,EAAGA,IACnBxC,KAAKo7G,qBAAqB54G,GAAK,GAEnCxC,KAAKu+O,aAAev+O,KAAKooO,WAAW,EAAG,GACvC,IAAIG,EAAQvoO,KAAKsoO,iBACjBtoO,KAAK26G,QAAU36G,KAAKooO,WAAWG,EAAMnuH,OAAQmuH,EAAMjuH,QAAQvR,SAAS/oG,KAAKu+O,cACzEv+O,KAAK46G,YAAc56G,KAAKooO,WAAWG,EAAMluH,OAAQkuH,EAAMhuH,QAAQxR,SAAS/oG,KAAKu+O,cAC7Ev+O,KAAK66G,SAAW76G,KAAKooO,WAAWG,EAAMnuH,OAAQmuH,EAAMhuH,QAAQxR,SAAS/oG,KAAKu+O,cAC1Ev+O,KAAK86G,WAAa96G,KAAKooO,WAAWG,EAAMluH,OAAQkuH,EAAMjuH,QAAQvR,SAAS/oG,KAAKu+O,cAC5E,IAAIjnM,EAAS0lD,EAA0ChkD,SAASkvD,SAASloG,KAAK26G,QAAS36G,KAAK46G,aACxF4jI,EAAaxhJ,EAA0ChkD,SAASkvD,SAASloG,KAAK26G,QAAS36G,KAAK86G,YAC5F2jI,EAAczhJ,EAA0ChkD,SAASkvD,SAASloG,KAAK66G,SAAU76G,KAAK46G,aAC9F8jI,EAAY1hJ,EAA0ChkD,SAASkvD,SAASloG,KAAK26G,QAAS36G,KAAK66G,UAC3F8jI,EAAe3hJ,EAA0ChkD,SAASkvD,SAASloG,KAAK86G,WAAY96G,KAAK46G,aACrG,GAAwB,MAApB34E,EAAc6T,GACd91C,KAAKo7G,qBAAqB,GAAGz2G,KAAK40G,EAAiDyC,eAAe75G,OAAO66F,EAA0CoI,gBAAgBY,UAAUhmG,KAAK26G,QAAS,EAAG,GAAI3d,EAA0CoI,gBAAgBY,UAAUw4I,EAAY,EAAG,IAAMxhJ,EAA0CoI,gBAAgBY,UAAU04I,EAAW,GAAK,GAAI1+O,KAAKi8G,QAASj8G,KAAK65G,QACtY75G,KAAKo7G,qBAAqB,GAAGz2G,KAAK40G,EAAiDyC,eAAe75G,OAAO66F,EAA0CoI,gBAAgBY,UAAUw4I,EAAY,EAAG,IAAMxhJ,EAA0CoI,gBAAgBY,UAAU1uD,EAAQ,GAAK,IAAM0lD,EAA0CoI,gBAAgBY,UAAU04I,EAAW,GAAK,GAAI1+O,KAAKi8G,QAASj8G,KAAK65G,QACpY75G,KAAKo7G,qBAAqB,GAAGz2G,KAAK40G,EAAiDyC,eAAe75G,OAAO66F,EAA0CoI,gBAAgBY,UAAU04I,EAAW,GAAK,GAAI1hJ,EAA0CoI,gBAAgBY,UAAUy4I,EAAa,EAAG,IAAMzhJ,EAA0CoI,gBAAgBY,UAAUhmG,KAAK66G,SAAU,EAAG,GAAI76G,KAAKi8G,QAASj8G,KAAK65G,QACxY75G,KAAKo7G,qBAAqB,GAAGz2G,KAAK40G,EAAiDyC,eAAe75G,OAAO66F,EAA0CoI,gBAAgBY,UAAU04I,EAAW,GAAK,GAAI1hJ,EAA0CoI,gBAAgBY,UAAU1uD,EAAQ,GAAK,IAAM0lD,EAA0CoI,gBAAgBY,UAAUy4I,EAAa,EAAG,IAAMz+O,KAAKi8G,QAASj8G,KAAK65G,QACrY75G,KAAKo7G,qBAAqB,GAAGz2G,KAAK40G,EAAiDyC,eAAe75G,OAAO66F,EAA0CoI,gBAAgBY,UAAUw4I,EAAY,EAAG,IAAMxhJ,EAA0CoI,gBAAgBY,UAAU24I,EAAc,GAAK,GAAI3hJ,EAA0CoI,gBAAgBY,UAAU1uD,EAAQ,GAAK,IAAMt3C,KAAKi8G,QAASj8G,KAAK65G,QACvY75G,KAAKo7G,qBAAqB,GAAGz2G,KAAK40G,EAAiDyC,eAAe75G,OAAO66F,EAA0CoI,gBAAgBY,UAAUw4I,EAAY,EAAG,IAAMxhJ,EAA0CoI,gBAAgBY,UAAUhmG,KAAK86G,WAAY,EAAG,GAAI9d,EAA0CoI,gBAAgBY,UAAU24I,EAAc,GAAK,GAAI3+O,KAAKi8G,QAASj8G,KAAK65G,QAC5Y75G,KAAKo7G,qBAAqB,GAAGz2G,KAAK40G,EAAiDyC,eAAe75G,OAAO66F,EAA0CoI,gBAAgBY,UAAU1uD,EAAQ,GAAK,IAAM0lD,EAA0CoI,gBAAgBY,UAAUhmG,KAAK46G,YAAa,EAAG,GAAI5d,EAA0CoI,gBAAgBY,UAAUy4I,EAAa,EAAG,IAAMz+O,KAAKi8G,QAASj8G,KAAK65G,QAC1Y75G,KAAKo7G,qBAAqB,GAAGz2G,KAAK40G,EAAiDyC,eAAe75G,OAAO66F,EAA0CoI,gBAAgBY,UAAU1uD,EAAQ,GAAK,IAAM0lD,EAA0CoI,gBAAgBY,UAAU24I,EAAc,GAAK,GAAI3hJ,EAA0CoI,gBAAgBY,UAAUhmG,KAAK46G,YAAa,EAAG,GAAI56G,KAAKi8G,QAASj8G,KAAK65G,QAC3Y75G,KAAK2kJ,eAAgB,MAClB,CAEH3kJ,KAAKk8G,cAAgB7C,EAAgD8C,eAAeC,eACpF/C,EAAgD8C,eAAeE,WAAW/C,EAA0DgD,MAAMC,aAAcv8G,KAAKk8G,eAC7J,IAAIM,EAAW,IAAIC,aAAa,IAC5BC,EAASF,EACTz2E,EAAQ,EACZA,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAOi3D,EAA0CoI,gBAAgBY,UAAU24I,EAAc,GAAK,IAC7H54M,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAOi3D,EAA0CoI,gBAAgBY,UAAUhmG,KAAK86G,WAAY,EAAG,IAC9H/0E,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAOi3D,EAA0CoI,gBAAgBY,UAAUhmG,KAAK46G,YAAa,EAAG,IAC/H70E,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAOi3D,EAA0CoI,gBAAgBY,UAAU1uD,EAAQ,GAAK,KACvHvR,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAOi3D,EAA0CoI,gBAAgBY,UAAUw4I,EAAY,EAAG,KACzHz4M,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAOi3D,EAA0CoI,gBAAgBY,UAAUy4I,EAAa,EAAG,KAC1H14M,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAOi3D,EAA0CoI,gBAAgBY,UAAU04I,EAAW,GAAK,IAC1H34M,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAOi3D,EAA0CoI,gBAAgBY,UAAUhmG,KAAK26G,QAAS,EAAG,IAC3H50E,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAOi3D,EAA0CoI,gBAAgBY,UAAUhmG,KAAK66G,SAAU,EAAG,IAC5HxB,EAAgD8C,eAAeS,WAAWtD,EAA0DgD,MAAMC,aAAcC,EAAUlD,EAA0DgD,MAAMO,aAGlO,IAASr6G,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxBujC,EAAQ,EACR/lC,KAAK07G,cAAgB,EACrB,IAAIoB,EAAY,IAAIC,YAAiC,EAArB/8G,KAAK07G,eACjCsB,EAAaF,EACjB,OAAQt6G,GACJ,KAAK,EACDw6G,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtB,MACJ,KAAK,EACDi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtB,MACJ,KAAK,EACDi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtB,MACJ,KAAK,EACDi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtBi3E,EAAWj3E,KAAW,EACtB,MAER/lC,KAAKi9G,cAAcz6G,GAAK62G,EAAgD8C,eAAeC,eACvF/C,EAAgD8C,eAAeE,WAAW/C,EAA0DgD,MAAMY,qBAAsBl9G,KAAKi9G,cAAcz6G,IACnL62G,EAAgD8C,eAAeS,WAAWtD,EAA0DgD,MAAMY,qBAAsBJ,EAAWxD,EAA0DgD,MAAMO,YAC/O,CACJ,CACA,OAAO,CACX,IAGJ,EAAGlyD,EAA4CzS,cAAc,cAAe,CAACm3G,EAAa8uF,EAAcF,EAAsCrkI,MAGvI,EAED;;;yBAIA,CAAEj7G,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCq6G,KAAM,IAAM,IAEd,IAAIlvD,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFnW,EAA4C,sBAAyC,qBACrFgxD,EAAkD,4BAA+C,2BACjGwjE,EAAgD,0BAA6C,yBAC7F3nB,EAA4D,sCAAyD,qCACrH+hE,EAAoD,8BAAiD,6BACrG7O,EAAoD,8BAAiD,6BACrGqqC,EAAwC,kBAAqC,iBAC7EC,EAA+C,yBAA4C,wBAC3F7V,EAAgD,yBAA4C,wBAC5F8V,EAA+D,wCAA2D,uCAC1HC,EAAyD,kCAAqD,iCAC9GC,EAA2D,oCAAuD,mCAwB3I,SAASplI,IACL55G,KAAKo7G,qBAAuB,IAAIv5G,MAAM,GACtC7B,KAAKi9G,cAAgB,IAAIp7G,MAAM,GAC/B7B,KAAK65G,MAAQ,EACb75G,KAAK+5G,MAAQ,EACb/5G,KAAKg6G,MAAQ,EACbh6G,KAAKi8G,QAAU,KACfj8G,KAAK45H,UAAY,KACjB55H,KAAKyiJ,eAAgB,EACrBziJ,KAAK2kJ,eAAgB,EACrB3kJ,KAAKykJ,eAAgB,EACrBzkJ,KAAKu+O,aAAe/pM,EAA0CwE,SAASs0B,KACvEttE,KAAKmlJ,SAAW,CAAC,KAAM,KAAM,KAAM,MACnCnlJ,KAAKkrF,OAAS,KACdlrF,KAAKi/O,YAAc,IAAIzqM,EAA0CwE,SACjEh5C,KAAKwlJ,4BAA8B,EACnCxlJ,KAAKk/O,gBAAkB,OACvBl/O,KAAK8zM,SAAW,EAChB9zM,KAAKsoJ,WAAa,EAClBtoJ,KAAKwzM,UAAW,EAChBxzM,KAAKgnJ,UAAW,EAChBhnJ,KAAK8oN,SAAU,EACf9oN,KAAKm/O,gBAAiB,EACtBn/O,KAAKskJ,mBAAqB,EAC1BtkJ,KAAKknJ,aAAe,EACpBlnJ,KAAKo/O,YAAc,EACnBp/O,KAAK4mJ,aAAc,EACnB5mJ,KAAK4zM,iBAAkB,EACvB5zM,KAAKq/O,WAAY,EACjBr/O,KAAKk0M,QAAU,KACfl0M,KAAKs/O,eAAiB,IAAI9qM,EAA0CwE,SACpEh5C,KAAKu/O,mBAAqB,IAAI/qM,EAA0CwE,SACxEh5C,KAAKw/O,gBAAkB,IAAIhrM,EAA0CwE,SACrEh5C,KAAKy/O,kBAAoB,IAAIjrM,EAA0CwE,SACvEh5C,KAAKg7G,aAAe,EACpBh7G,KAAK06G,aAAe,IAAIlmE,EAA0CwE,SAClEh5C,KAAKmuB,OAAS,EACdnuB,KAAK07G,cAAgB,EACrB17G,KAAK0/O,YAAc,EACnB1/O,KAAK8mJ,gBAAiB,EACtB9mJ,KAAK4kJ,SAAU,EACf5kJ,KAAK2/O,KAAO,KACZ3/O,KAAK4/O,QAAU,KACf5/O,KAAK6/O,aAAe,EACpB7/O,KAAKulJ,gBAAkB,KACvBvlJ,KAAKulJ,gBAAkB,IAAI1jJ,MAAM,GACjC,IAAK,IAAIW,EAAI,EAAGA,EAAI,EAAGA,IACnBxC,KAAKulJ,gBAAgB/iJ,GAAKq8O,EAA6C3yJ,WAAW/pF,QAAO,EAAO,IAExG,CAEAy3G,EAAK2qC,wBAA0B,EAC/B3qC,EAAKkmI,aAAe,EACpBlmI,EAAKmmI,aAAe,EACpBnmI,EAAKomI,iBAAmB,EACxBpmI,EAAK6rC,YAAc,EACnB7rC,EAAKmrC,kBAAoB,EACzBnrC,EAAK4qC,aAAe,EACpB5qC,EAAKqmI,YAAc,MACnB,EAAGz6I,EAAgDg8B,oBAAoB,GACvE5nB,EAAKsmI,UAAY,EACjBtmI,EAAKumI,iBAAkB,GACvB,EAAG36I,EAAgDi8B,qBAAoB,GACvE7nB,EAAKwmI,SAAW,GAChBxmI,EAAKymI,eAAiB,GACtBzmI,EAAK0mI,aAAe,GACpB1mI,EAAK0tC,iBAAmB,EACxB1tC,EAAK2mI,aAAe,EACpB3mI,EAAKviB,GAAM,UAAY,IAEvBuiB,EAAK4mI,eAAiB,WAClB,IACI,OAAO5mI,EAAKqmI,WAChB,CACA,MAAO1rJ,GACH,OAAO,IACX,CACJ,EAEAqlB,EAAK6mI,iBAAmB,WACpB,OAAO,EACX,EAEA,IAAIC,EAAQ,CACRz5F,eAAgB,SAAUlhH,EAAOmhH,GAC7B,OAAOlnJ,KAAKi9G,cAAcl3E,EAC9B,EAEAohH,cAAe,SAAUpoG,EAAKG,GAC1B,OAAO,CACX,EAEAmoG,wBAAyB,SAAUtoG,EAAKG,EAAKnP,GACzC,OAAO,CACX,EAEAg2F,YAAa,WACT,GAAsE,MAAlEvgC,EAAgD2W,eAChD,IAKI,GAJAn8G,KAAK45H,UAAYp0B,EAAgD2W,eAAegpB,gBAChF3/B,EAAgD2W,eAAe+iB,YAAYmiB,EAA0D/kC,MAAM6iB,WAAYn/H,KAAK45H,WAC5Jp0B,EAAgD2W,eAAekqB,cAAcgb,EAA0D/kC,MAAM6iB,WAAYkiB,EAA0D/kC,MAAMgqB,eAAgB+a,EAA0D/kC,MAAMiqB,eACzS/gC,EAAgD2W,eAAekqB,cAAcgb,EAA0D/kC,MAAM6iB,WAAYkiB,EAA0D/kC,MAAMkqB,eAAgB6a,EAA0D/kC,MAAMiqB,eACrSvmI,KAAK85G,QAAQjyE,gBAAgBt5B,cAAc0K,QAAQ,SAAW,GAAKusF,EAAgD8iE,cACnH9iE,EAAgD2W,eAAeipB,WAAWic,EAA0D/kC,MAAM6iB,WAAY,EAAGkiB,EAA0D/kC,MAAMo1B,KAAMhnF,EAAoC9P,GAAGyG,SAASrhD,KAAKq+O,UAAU7+E,aAAc90G,EAAoC9P,GAAGyG,SAASrhD,KAAKq+O,UAAU/nF,aAAc,EAAGjV,EAA0D/kC,MAAMm1B,IAAK4P,EAA0D/kC,MAAMmhB,MAAOz9H,KAAKq+O,UAAU7iF,UACvhBh2D,EAAgD2W,eAAekqB,cAAcgb,EAA0D/kC,MAAM6iB,WAAYkiB,EAA0D/kC,MAAMmqB,mBAAoB4a,EAA0D/kC,MAAM0yB,SAC7SxpC,EAAgD2W,eAAekqB,cAAcgb,EAA0D/kC,MAAM6iB,WAAYkiB,EAA0D/kC,MAAM04B,mBAAoBqM,EAA0D/kC,MAAM0yB,aAE5S,CACD,IAAI7vB,EAAQn/G,KAAKi8G,QAEjB,GAAqM,MAA/LmnG,EAAkD/pF,QAAQoM,aAAazlI,KAAKi8G,QAAQ71E,SAAWg9K,EAAkD/pF,QAAQoM,aAAazlI,KAAKi8G,QAAQ91E,QAAe,CACpM,IAAIomD,EAAOjrF,SAASkL,cAAc,UAClC+/E,EAAKnmD,OAASg9K,EAAkD/pF,QAAQqM,cAAcvmB,EAAM/4E,QAC5FmmD,EAAKpmD,MAAQi9K,EAAkD/pF,QAAQqM,cAAcvmB,EAAMh5E,OAC3F,IAAIxyB,EAAM44E,EAAK+/B,WAAW,MAC1B34G,EAAIi5G,UAAUzN,EAAO,EAAG,EAAG5yB,EAAKpmD,MAAOomD,EAAKnmD,QAE5C+4E,EAAQ5yB,CACZ,CACAiZ,EAAgD2W,eAAeipB,WAAWic,EAA0D/kC,MAAM6iB,WAAY,EAAGkiB,EAA0D/kC,MAAM+oB,KAAMgc,EAA0D/kC,MAAM+oB,KAAMgc,EAA0D/kC,MAAMgpB,cAAenmB,GACpX3Z,EAAgD2W,eAAekqB,cAAcgb,EAA0D/kC,MAAM6iB,WAAYkiB,EAA0D/kC,MAAMmqB,mBAAoB4a,EAA0D/kC,MAAMoqB,uBAC7SlhC,EAAgD2W,eAAewqB,eAAe0a,EAA0D/kC,MAAM6iB,WAClJ,CACA35B,EAAgD2W,eAAe+iB,YAAYmiB,EAA0D/kC,MAAM6iB,WAAY,KAC3J,CACA,MAAO5qC,GACHv0F,KAAK4kJ,SAAU,CACnB,CAER,EAEAjoC,UAAW,SAAUD,EAAQ32E,EAAOllC,GAMhC,OALA67G,EAAO32E,KAAWllC,EAAEklG,SAASh7D,EAC7B2xE,EAAO32E,KAAWllC,EAAEklG,SAAS/hG,EAC7B04G,EAAO32E,KAAWllC,EAAEklG,SAASvvD,EAC7BkmE,EAAO32E,KAAWllC,EAAEglG,GACpB6W,EAAO32E,KAAWllC,EAAEilG,GACb//D,CACX,EAEA8tK,eAAgB,SAAU90J,EAAKG,EAAKyhM,EAAgBC,GAGhD,GAFA7hM,EAAMz5C,KAAKC,IAAID,KAAKilF,IAAI,GAAIxrC,IAAO,IACnCG,EAAM55C,KAAKC,IAAID,KAAKilF,IAAI,IAAKrrC,IAAO,MAC/BsmD,EAAgDitH,gBAAkC,MAAhBzyN,KAAKyzM,QACxE,OAAOzzM,KAAKu9F,QAAQx+C,EAAKG,EAAKyhM,GAE9BC,IACA1hM,GAAO,KAEX,IAAI+/C,EAAWj/F,KAAKyzM,QAAQzzM,KAAK8zM,UAC7BvsD,EAASvnJ,KAAK6gP,oBAAoB9hM,EAAKG,EAAK+/C,EAAU0hJ,GAC1D,OAAOp5F,CACX,EAEAs5F,oBAAqB,SAAU9hM,EAAKG,EAAK+/C,EAAU0hJ,GAC/C,IAAIxyN,EAAS,EAAK8wE,EAAWj/F,KAAKqoJ,sBAC9Bd,EAAS/yG,EAA0CwE,SAAS72C,OAAQmD,KAAKgxC,IAAI4I,EAAM06D,EAAKviB,IAAM/xF,KAAKgxC,IAAIyI,EAAM66D,EAAKviB,IAAMlpE,EAAU7oB,KAAKixC,IAAIwI,EAAM66D,EAAKviB,IAAMlpE,EAAU7oB,KAAKixC,IAAI2I,EAAM06D,EAAKviB,IAAM/xF,KAAKgxC,IAAIyI,EAAM66D,EAAKviB,IAAMlpE,GAI9N,OAHIwyN,GACAp5F,EAAOx+C,SAAS/oG,KAAKi/O,aAElB13F,CACX,EAEAc,oBAAqB,WACjB,OAAOroJ,KAAKk/O,eAChB,EAEAz2B,oBAAqB,SAAU7nN,GAE3B,OADAZ,KAAKk/O,gBAAkBt+O,EAChBA,CACX,EAEA8lJ,aAAc,WACV,IAAI/7B,EAAQ3qH,KAEZ,GAAIA,KAAK85G,QAAQjyE,gBAAgBt5B,cAAc0K,QAAQ,SAAW,EACzDjZ,KAAK4mJ,aAAgB5mJ,KAAK2kJ,gBAC3B3kJ,KAAK4mJ,aAAc,EACfphD,EAAgD8iE,cAChDtoK,KAAKq+O,UAAY,IAAIW,EAAyD58E,cAAcpiK,KAAK85G,QAAS95G,KAAK8iJ,WAAW,SAAUgmB,GAChIn+C,EAAMi8B,aAAc,EACpBj8B,EAAMi6B,QAAUj6B,EAAM0zH,UAAUz5F,SAChC,EAAGp/C,EAAgDuhD,0BAA0Bp8B,EAAMo7B,WAAW,GACzFp7B,EAAM0zH,UAAUz5F,UACZj6B,EAAM9Q,QAKP8Q,EAAM7Q,QAAQ54E,qBAAqBg+E,qBAAqByL,EAAM0zH,WAC9D1zH,EAAM0zH,UAAUnhF,wBAEpBvyC,EAAMq8B,UAAW,EACjBr8B,EAAMg6B,cAAgBh6B,EAAMq8B,WAAar8B,EAAM6oF,WAAa7oF,EAAMm+F,SAClEn+F,EAAMm8B,gBAAiB,EACvBn8B,EAAMob,cAEd,IAGA/lI,KAAKq+O,UAAYU,EAAuDthF,YAAYqC,gBAAgB9/J,KAAK85G,QAAS95G,KAAK8iJ,WAAW,SAAUgmB,GACnIn+C,EAAM9Q,OACP8Q,EAAM7Q,QAAQ54E,qBAAqBg+E,qBAAqByL,EAAM0zH,WAElE1zH,EAAMq8B,UAAW,EACjBr8B,EAAMi8B,aAAc,EACpBj8B,EAAMi6B,QAAUj6B,EAAM0zH,UAAUz5F,QAChCj6B,EAAMg6B,cAAgBh6B,EAAMq8B,WAAar8B,EAAM6oF,WAAa7oF,EAAMm+F,SAClEn+F,EAAMm8B,gBAAiB,GACvB,EAAGthD,EAAgDuhD,0BAA0Bp8B,EAAMo7B,WAAW,GAC9Fp7B,EAAMiP,UAAYkvC,EAASrI,YAAY69E,YAC3C,SAGL,CACH,GAAyC,MAArCt+O,KAAK8gP,cAAcluF,eAOnB,OANA5yJ,KAAKgnJ,UAAW,EAChBhnJ,KAAK4mJ,aAAc,EACnB5mJ,KAAK4kJ,SAAU,EACf5kJ,KAAK2kJ,eAAgB,EACrB3kJ,KAAK8mJ,gBAAiB,OACtB,EAAGthD,EAAgDuhD,0BAA0B/mJ,KAAK+lJ,WAAW,GAGjG,IAAK/lJ,KAAK4mJ,cAAgB5mJ,KAAK2kJ,cAAe,CAC1C3kJ,KAAK4mJ,aAAc,EACnB5mJ,KAAKi8G,QAAU36G,SAASkL,cAAc,OACtC,IAAIs5H,EAAU9lI,KAAKi8G,QACnBj8G,KAAKi8G,QAAQ4N,iBAAiB,QAAQ,SAAU3pH,GAC5CyqH,EAAMq8B,UAAW,EACjBr8B,EAAMi8B,aAAc,EACpBj8B,EAAMi6B,SAAU,EAChBj6B,EAAMg6B,cAAgBh6B,EAAMq8B,WAAar8B,EAAM6oF,WAAa7oF,EAAMm+F,SAClEn+F,EAAMm8B,gBAAiB,GACvB,EAAGthD,EAAgDuhD,0BAA0Bp8B,EAAMo7B,WAAW,GAC9Fp7B,EAAMob,aACV,IAAG,GACH/lI,KAAKi8G,QAAQ4N,iBAAiB,SAAS,SAAU3pH,GAC7C,IAAKyqH,EAAM1O,QAAQ+pB,aAAa,gBAAiB,CAC7Crb,EAAM1O,QAAQgqB,aAAa,gBAAgB,GAe3C,IAAIC,EAAU8iG,EAA8CpvI,WAAW18D,UAAUipG,cAAcxb,EAAM1O,QAAQ16G,KAC7G,GAAe,MAAX2kI,EAGA,YADAvb,EAAM1O,QAAQ16G,IAAM2kI,EAG5B,CACAvb,EAAMi8B,aAAc,EACpBj8B,EAAMg6B,eAAgB,EACtBh6B,EAAMi6B,SAAU,EAChBj6B,EAAMm8B,gBAAiB,GACvB,EAAGthD,EAAgDuhD,0BAA0Bp8B,EAAMo7B,WAAW,EAClG,IAAG,GACHjgB,EAAQM,YAAc,YACtBpmI,KAAKi8G,QAAQ16G,IAAMvB,KAAK8iJ,SAC5B,CACJ,CACJ,EAEAmxD,oBAAqB,WACjB,OAAO,CACX,EAEA8sC,aAAc,WACV,GAAoB,MAAhB/gP,KAAKghP,QACL,OAAOhhP,KAAKi0M,sBAGhB,GADAj0M,KAAKyzM,QAAUzzM,KAAKghP,QACQ,OAAxBhhP,KAAKghP,QAAQr+O,QAA2C,MAAxB3C,KAAKghP,QAAQr+O,OAC7C,OAAO3C,KAAKi0M,sBAEhB,IACI34J,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKyzM,SACnE,MAAOn4J,EAAOE,WAAY,CACtB,IAAIylM,EAAK3lM,EAAOI,QACPulM,CACb,CAEA,OADAjhP,KAAKsoJ,YAActoJ,KAAKyzM,QAAQ9wM,QACzB,CACX,EAEAu+O,WAAY,WACR,IAAIv2H,EAAQ3qH,KAEZ,IAAKA,KAAK2kJ,gBAAkB3kJ,KAAKm/O,eAAgB,CAC7Cn/O,KAAK8oN,SAAU,EACf9oN,KAAKm/O,gBAAiB,EACtBvlI,EAAKsmI,YACL,IAAIr1O,EAAM,IAAIC,eACdD,EAAIg/G,iBAAiB,QAAQ,SAAU3pH,GACnCyqH,EAAM6oF,UAAW,EACjB7oF,EAAMw0H,gBAAiB,EACvBx0H,EAAMg6B,cAAgBh6B,EAAMq8B,WAAar8B,EAAM6oF,WAAa7oF,EAAMm+F,SAClEn+F,EAAMm8B,gBAAiB,EACvB,IACIn8B,EAAMq2H,QAAU,IAAIvkI,aAAa5xG,EAAIM,SACzC,CACA,MAAOopF,GACP,EACA,EAAGiR,EAAgDuhD,0BAA0Bp8B,EAAMo7B,WAAW,EAClG,IAAG,GACHl7I,EAAIg/G,iBAAiB,SAAS,SAAU3pH,GACpCyqH,EAAMw0H,gBAAiB,EACvBx0H,EAAM6oF,UAAW,EACjB7oF,EAAMg6B,eAAgB,EACtBh6B,EAAMi6B,SAAU,EAChBj6B,EAAMm8B,gBAAiB,GACvB,EAAGthD,EAAgDuhD,0BAA0Bp8B,EAAMo7B,WAAW,EAClG,IAAG,GACHl7I,EAAIE,KAAK,MAAO/K,KAAKmhP,cAAc,GACnCt2O,EAAIG,aAAe,cACnBH,EAAIS,MACR,CACJ,EAEA84I,OAAQ,SAAUniH,EAAexgB,GAI7B,GAHAzhB,KAAKskJ,mBAAqB1qC,EAAK2qC,wBAC/B3qC,EAAK4qC,eACLxkJ,KAAKo/O,aAAc,EAAG55I,EAAgDusH,yBAClE/xN,KAAK4kJ,QACL,OAAO,EAEX,IAAIw8F,EAAO,EAEX,GADAphP,KAAKykJ,eAAgB,GAChBzkJ,KAAK2kJ,cAEN,OADA,EAAGn/C,EAAgDq/C,yBAAyB7kJ,OACrE,EAEX,IACIklJ,EAAa,EACbm8F,EAAU,GACVrhP,KAAK85G,QAAQ25C,gBAAkBzzJ,KAAK85G,QAAQG,mBAC5ConI,EAAU,GAKd,IAHA,IAAIC,EAAU,EACVt8F,GAAmB,EACnBC,GAAgB,EACXjiD,EAAK,EAAGA,EAAK,EAAGA,IACrB,IAAK,IAAIC,EAAK,EAAGA,EAAKm+I,EAAMn+I,IACpBjjG,KAAK65G,MAAQ75G,KAAK85G,QAAQ32E,cAEO,MAA7BnjC,KAAKmlJ,SAASD,KACdllJ,KAAKmlJ,SAASD,IAAc,EAAG1/C,EAAgD4/C,kBAAkBplJ,KAAK65G,MAAQ,EAAgB,EAAb75G,KAAK+5G,OAAc9W,EAAKq+I,GAAW,EAAiB,EAAbthP,KAAKg6G,OAAchX,EAAKq+I,GAAW,EAAIrhP,KAAK85G,QAAS95G,OAE7MA,KAAKmlJ,SAASD,GAAYG,gBAAgBpjH,EAAcqjH,gBACxDtlJ,KAAKykJ,eAAgB,EACjBzkJ,KAAKmlJ,SAASD,GAAYtB,gBAAgB3hH,IAC1CjiC,KAAKulJ,gBAAgBL,GAAYr4D,iBAAiB7sF,KAAKmlJ,SAASD,GAAYd,OAAOniH,EAAexgB,IAC9FzhB,KAAKulJ,gBAAgBL,GAAYt4D,oBACjCq4D,GAAgB,IAIpBjlJ,KAAKulJ,gBAAgBL,GAAYr4D,iBAAgB,IAIrD7sF,KAAKulJ,gBAAgBL,GAAYr4D,gBAAgB7sF,KAAKulJ,gBAAgBL,GAAYv4D,WAAU,IAE5F3sF,KAAKulJ,gBAAgBL,GAAYt4D,oBAAsB5sF,KAAKulJ,gBAAgBL,GAAYz4D,cACxE,GAIpBzsF,KAAKulJ,gBAAgBL,GAAYv4D,WAAU,GAEzC3sF,KAAKulJ,gBAAgBL,GAAYz4D,cACnCu4D,GAAmB,GAEvBE,IASR,IANID,GAAiBD,KACjBhlJ,KAAKwlJ,4BAA8B5rC,EAAK2qC,wBACrB,MAAfvkJ,KAAKkrF,SACLlrF,KAAKkrF,OAAOs6D,4BAA8BxlJ,KAAKwlJ,+BAGlDR,EACD,OAAO,EAEX,IAAKhlJ,KAAKm7G,eAAel5E,GACrB,OAAO,EAEX23E,EAAK6rC,cACLzlJ,KAAKknJ,aAAelnJ,KAAKuhP,uBACzB,IAAK,IAAI/+O,EAAI,EAAGA,EAAI,EAAGA,IACfxC,KAAKulJ,gBAAgB/iJ,GAAGoqF,mBACxB5sF,KAAK0lJ,WAAWzjH,EAAez/B,EAAIif,EAAU,KAAM,GAG3D,OAAO,CACX,EAEA8/N,qBAAsB,WAClB,IAAIC,EAAS,EACb,IAAK5nI,EAAKumI,gBACN,OAAO,EAEX,IAAIv6I,GAAM,EAAGJ,EAAgDgtH,wBAAwBxyN,KAAK65G,MAAO75G,KAAK+5G,MAAO/5G,KAAKg6G,MAAQ,EAAGh6G,KAAK85G,QAAS95G,OAChI,MAAP4lG,GAAeA,EAAI4/C,4BAA8B5rC,EAAK2qC,wBAA0B,KAChFi9F,GAAU,GAEd,IAAI1xJ,GAAQ,EAAG0V,EAAgDgtH,wBAAwBxyN,KAAK65G,MAAO75G,KAAK+5G,MAAQ,EAAG/5G,KAAKg6G,MAAOh6G,KAAK85G,QAAS95G,OAChI,MAAT8vF,GAAiBA,EAAM01D,4BAA8B5rC,EAAK2qC,wBAA0B,KACpFi9F,GAAU,GAEd,IAAI5wI,GAAS,EAAGpL,EAAgDgtH,wBAAwBxyN,KAAK65G,MAAO75G,KAAK+5G,MAAO/5G,KAAKg6G,MAAQ,EAAGh6G,KAAK85G,QAAS95G,OAChI,MAAV4wG,GAAkBA,EAAO40C,4BAA8B5rC,EAAK2qC,wBAA0B,KACtFi9F,GAAU,GAEd,IAAI5xJ,GAAO,EAAG4V,EAAgDgtH,wBAAwBxyN,KAAK65G,MAAO75G,KAAK+5G,MAAQ,EAAG/5G,KAAKg6G,MAAOh6G,KAAK85G,QAAS95G,MAI5I,OAHY,MAAR4vF,GAAgBA,EAAK41D,4BAA8B5rC,EAAK2qC,wBAA0B,KAClFi9F,GAAU,GAEPA,CACX,EAEA97F,WAAY,SAAUzjH,EAAe25E,EAAMn6F,EAAS8zE,GAChD,GAAsE,MAAlEiQ,EAAgD2W,eAAwB,CACxE,IAAIylB,EAAW3/F,EAAc2/F,UAA+C,MAAnC3/F,EAAcg1J,kBACnD37I,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKo7G,qBAAqBQ,IACxF,MAAOtgE,EAAOE,WAAY,CACtB,IAAIu4J,EAAMz4J,EAAOI,QAEjB,GADAq4J,EAAItyL,QAAUA,EACVmgH,EAAU,CAEV,IAAI6/G,EAAO1tC,EAAIptG,OAAO1d,OACtBhnD,EAAcw3F,YAAY/kB,eAAe+sI,GACzCA,EAAKr5I,YAGL,IAAIs5I,EAAQltM,EAA0CwE,SAASC,IAAIwoM,EAAMx/M,EAAcg1J,mBAEnFyqD,EADAA,EAAQ,EACA,EAGAp8O,KAAKilF,IAAI,EAAY,EAARm3J,GAIzB3tC,EAAInyE,SAAW8/G,CACnB,MAEI3tC,EAAInyE,SAAW,EAEnBmyE,EAAIh+J,KAAK9T,EAAckY,OAAQlY,EAAc6W,IACjD,CACJ,MACQ0sD,EAAgD8iE,eAAmC,MAAlBtoK,KAAKq+O,WACtES,EAA6DxnF,kBAAkBwB,oBAAoBtzD,EAAgD2W,eAAgBn8G,KAAK85G,QAAQ54E,qBAAqBoH,cACrMisK,EAAkDr6E,WAAW3vC,IAAMvqF,KAAK85G,QAAQ54E,qBAAqBiH,SACrGosK,EAAkDr6E,WAAW30H,IAAMvF,KAAK85G,QAAQ54E,qBAAqBkH,SACrGmsK,EAAkDr6E,WAAWzb,eAAiBz+G,KAAK85G,QAAQ54E,qBAAqBu9E,eAChH81F,EAAkDr6E,WAAWxb,WAAa1+G,KAAK85G,QAAQ54E,qBAAqBw9E,WAC5G61F,EAAkDr6E,WAAW3b,MAAQv+G,KAAK85G,QAAQ54E,qBAAqBq9E,MACvGg2F,EAAkDr6E,WAAW1b,OAASx+G,KAAK85G,QAAQ54E,qBAAqBs9E,OACxG+1F,EAAkDr6E,WAAWhyF,UAAYloC,KAAK85G,QAAQ54E,qBAAqBgH,UAC3GqsK,EAAkDr6E,WAAW/4F,iBAAmBnhC,KAAK85G,QAAQ54E,qBAAqBC,iBAClHozK,EAAkDr6E,WAAW3hH,IAAI0pB,EAAejiC,KAAKk8G,cAAel8G,KAAKinJ,eAAerrC,EAAM57G,KAAKknJ,cAAelnJ,KAAK45H,UAAWn4G,GAAS,EAAOzhB,KAAKu+O,eAGvLhqC,EAAkD55E,WAAWpiH,IAAI0pB,EAAejiC,KAAKk8G,cAAel8G,KAAKinJ,eAAerrC,EAAM57G,KAAKknJ,cAAelnJ,KAAK45H,UAAWn4G,GAAS,EAAOzhB,KAAKu+O,cAE3Lt8M,EAAc6T,GAAGolG,aAAamG,EAA0D/kC,MAAMqb,UAAgC,EAArB33H,KAAK07G,cAAmB2lC,EAA0D/kC,MAAM46B,eAAgB,EAEzN,EAEAtR,QAAS,SAAU2iB,GAiBf,GAhBAvoJ,KAAK2kJ,eAAgB,EACrB3kJ,KAAKyzM,QAAU,KACfzzM,KAAKghP,QAAU,KACfhhP,KAAKm/O,gBAAiB,EACtBn/O,KAAKgnJ,UAAW,EAChBhnJ,KAAKwzM,UAAW,EAChBxzM,KAAK4kJ,SAAU,EACK,MAAhB5kJ,KAAKi8G,UACLj8G,KAAKi8G,QAAU,MAEnBj8G,KAAKo7G,qBAAuB,IAAIv5G,MAAM,GACtC7B,KAAK4zM,iBAAkB,EACnBrrD,GAAmC,MAAfvoJ,KAAKkrF,SACzBlrF,KAAKkrF,OAAOy2J,YAAY3hP,MACxBA,KAAKkrF,OAAS,MAEoD,MAAlEsa,EAAgD2W,eAAwB,CACxE,IAAI7gE,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKi9G,eACnE,MAAO3hE,EAAOE,WAAY,CACtB,IAAIgmH,EAAMlmH,EAAOI,QACjB8pD,EAAgD2W,eAAe8U,aAAauwC,EAChF,CACAxhK,KAAKi9G,cAAgB,IAAIp7G,MAAM,GACL,MAAtB7B,KAAKk8G,gBACL1W,EAAgD2W,eAAe8U,aAAajxH,KAAKk8G,eACjFl8G,KAAKk8G,cAAgB,MAEH,MAAlBl8G,KAAK45H,YACLp0B,EAAgD2W,eAAe0pB,cAAc7lI,KAAK45H,WAClF55H,KAAK45H,UAAY,KAEzB,CACJ,EAEA+nH,YAAa,SAAUv2J,GACnB,IAAK,IAAI5oF,EAAI,EAAGA,EAAI,EAAGA,IACnB,GAAIxC,KAAKmlJ,SAAS3iJ,KAAO4oF,EAErB,YADAprF,KAAKmlJ,SAAS3iJ,GAAK,KAI/B,EAEA24G,eAAgB,SAAUl5E,GACtB,QAAIujE,EAAgDitH,gBAAkBzyN,KAAKwzM,UAA4B,MAAhBxzM,KAAKyzM,UACnFzzM,KAAK+gP,oBAIVv7I,EAAgDitH,gBAAkC,MAAhBzyN,KAAKyzM,WAG3EzzM,KAAK2kJ,eAAgB,GACd,GACX,EAEAkkE,WAAY,WACR,IAAI+4B,EAAU,IAAI//O,MAAM,GACxB+/O,EAAQ,GAAK5hP,KAAK26G,QAClBinI,EAAQ,GAAK5hP,KAAK46G,YAClBgnI,EAAQ,GAAK5hP,KAAK66G,SAClB+mI,EAAQ,GAAK5hP,KAAK86G,WAClB,IAAIp3G,EAAS8wC,EAA0CiwD,WAAWsT,oBAAoB6pI,GACtF5hP,KAAK06G,aAAeh3G,EAAO4zC,OAC3Bt3C,KAAKg7G,aAAet3G,EAAOyqB,MAC/B,EAEAy1H,gBAAiB,SAAU3hH,GACvB,GAAIjiC,KAAK65G,MAAQ,EAAG,CAEhB,IAAIuoB,EAAMngG,EAAc6W,IACxBspF,EAAIzvB,aAAa3yG,KAAK26G,QAAS36G,KAAKs/O,gBACpCl9G,EAAIzvB,aAAa3yG,KAAK46G,YAAa56G,KAAKu/O,oBACxCn9G,EAAIzvB,aAAa3yG,KAAK66G,SAAU76G,KAAKw/O,iBACrCp9G,EAAIzvB,aAAa3yG,KAAK86G,WAAY96G,KAAKy/O,mBACvC,IAAI75I,EAAM5lG,KAAKs/O,eACf15I,EAAImD,SAAS/oG,KAAKw/O,iBAClB,IAAIqC,EAAYj8I,EAAIjjG,SAChBiuG,EAAS5wG,KAAKy/O,kBAClB7uI,EAAO7H,SAAS/oG,KAAKu/O,oBACrB,IAAIuC,EAAelxI,EAAOjuG,SACtBitF,EAAO5vF,KAAKy/O,kBAChB7vJ,EAAKmZ,SAAS/oG,KAAKs/O,gBACnB,IAAIyC,EAAanyJ,EAAKjtF,SAClBmtF,EAAQ9vF,KAAKu/O,mBACjBzvJ,EAAMiZ,SAAS/oG,KAAKw/O,iBACpB,IAAIwC,EAAclyJ,EAAMntF,SACpBs/O,EAAY38O,KAAKC,IAAID,KAAKC,IAAIy8O,EAAaD,GAAaz8O,KAAKC,IAAIu8O,EAAcD,IACnF,GAAII,EAAY,IACZ,OAAO,EAGProI,EAAK2mI,aAAgBvgP,KAAK65G,MAAQD,EAAK2mI,aAAgBvgP,KAAK65G,MAAQD,EAAK2mI,YAEjF,CACA,OAAO,CACX,EAEAl7F,gBAAiB,SAAU2gD,GACnBhmM,KAAK65G,MAAQ,KAAO75G,KAAK85G,QAAQmjB,kBAAoBj9H,KAAK85G,QAAQmjB,kBAGtEj9H,KAAKykJ,eAAgB,EAErB,IADA,IAAIwhD,EAAW,IAAIzxJ,EAA0C8wD,SAAStlG,KAAK06G,aAAa3vE,EAAG/qC,KAAK06G,aAAa12G,EAAGhE,KAAK06G,aAAalkE,EAAG,GAC5Hh0C,EAAI,EAAGA,EAAI,EAAGA,IACnB,GAAIwjM,EAAQxjM,GAAGy2C,IAAIgtJ,IAAajmM,KAAKg7G,aACjC,OAAO,EAIf,OADAh7G,KAAKykJ,eAAgB,GACd,CACX,EAEAy9F,iBAAkB,WACd,OAAOliP,KAAKg7G,YAChB,EAEAmnI,iBAAkB,WACd,OAAOniP,KAAK06G,YAChB,EAEAnd,QAAS,SAAUx+C,EAAKG,EAAKyhM,GACzB,GAAuC,IAAnC3gP,KAAK85G,QAAQ72E,kBAAyB,CACtC,IAAIskH,EAAS/yG,EAA0CwE,SAAS72C,QAASmD,KAAKgxC,IAAI4I,EAAM06D,EAAKviB,IAAM/xF,KAAKgxC,IAAIyI,EAAM66D,EAAKviB,IAAMr3F,KAAKmuB,OAAU7oB,KAAKixC,IAAIwI,EAAM66D,EAAKviB,IAAMr3F,KAAKmuB,OAAU7oB,KAAKixC,IAAI2I,EAAM06D,EAAKviB,IAAM/xF,KAAKgxC,IAAIyI,EAAM66D,EAAKviB,IAAMr3F,KAAKmuB,QAC9O,OAAOo5H,CACX,CACIroG,GAAO,IACHqoG,EAAS/yG,EAA0CwE,SAAS72C,OAAQmD,KAAKgxC,IAAI4I,EAAM06D,EAAKviB,IAAM/xF,KAAKgxC,IAAIyI,EAAM66D,EAAKviB,IAAMr3F,KAAKmuB,OAAU7oB,KAAKixC,IAAIwI,EAAM66D,EAAKviB,IAAMr3F,KAAKmuB,OAAU7oB,KAAKixC,IAAI2I,EAAM06D,EAAKviB,IAAM/xF,KAAKgxC,IAAIyI,EAAM66D,EAAKviB,IAAMr3F,KAAKmuB,QAC7O,OAAOo5H,CAEf,EAEA66F,qBAAsB,SAAUvkE,EAAQ39K,GAAK,EAE7C4gP,YAAa,WACT,OAAO9gP,KAAK85G,OAChB,EAEAuoI,YAAa,SAAUzhP,GAEnB,OADAZ,KAAK85G,QAAUl5G,EACRA,CACX,EAEAmlJ,QAAS,WAIL,OAHiB,MAAb/lJ,KAAK2/O,OACL3/O,KAAK2/O,MAAO,EAAGf,EAAsC0D,YAAYtiP,KAAK85G,QAAS95G,KAAK65G,MAAO75G,KAAK+5G,MAAO/5G,KAAKg6G,MAAOh6G,KAAKkrF,SAErHlrF,KAAK2/O,IAChB,EAuBA78F,QAAS,WACL,IAAIy/F,EAAgBvZ,EAA8CpvI,WAAW18D,UAAU6lF,QAAQ/iH,KAAK85G,QAAQnyE,UAAW,GACnH66M,EAAYD,EAChB,GAAIA,EAActpO,QAAQ,QAAU,EAEhC,OAAKjZ,KAAK85G,QAAQmjB,kBAAqBvyE,EAAoC9P,GAAGC,YAAY76C,KAAK85G,QAAQy3C,uBAQ5F7mG,EAAoC9P,GAAGvU,OAAOk8M,EAAeviP,KAAK85G,QAAQm5C,iBAAkBjzJ,KAAK65G,MAAO75G,KAAK+5G,MAAO/5G,KAAKg6G,QAPhIwoI,EAAY93L,EAAoC9P,GAAGvU,OAAOk8M,EAAeviP,KAAKyiP,cAAeziP,KAAK0iP,aAC9FF,EAAUvpO,QAAQ,qBAAuB,IACzCupO,GAAa,QAEVA,GAMfA,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,MAAOxiP,KAAK+5G,MAAMrwG,YAC9F84O,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,MAAOxiP,KAAKg6G,MAAMtwG,YAC9F84O,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,MAAOxiP,KAAK65G,MAAMnwG,YAC9F,IAAIigF,EAAO,EACP64J,EAAUvpO,QAAQ,UAAY,IAC9B0wE,EAAO,EACP64J,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,QAAS,QAErFA,EAAUvpO,QAAQ,UAAY,IAC9B0wE,EAAO,EACP64J,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,QAAS,QAErFA,EAAUvpO,QAAQ,UAAY,IAC9B0wE,EAAO,EACP64J,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,QAAS,QAErFA,EAAUvpO,QAAQ,UAAY,IAC9B0wE,EAAO,EACP64J,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,QAAS,QAErFA,EAAUvpO,QAAQ,SAAW,IAC7BupO,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,OAAQ,SAEpFA,EAAUvpO,QAAQ,SAAW,IAC7BupO,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,OAAQ,SAEpFA,EAAUvpO,QAAQ,wCAA0C,IAC5DupO,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,sCAAuC,sCAEvH,IAAIv7O,EAAKjH,KAAK0iP,YACVC,EAAS,GAWb,OAPIA,EAHC17O,EAAGtE,OAGKsE,EAAG4kF,OAAO5kF,EAAGtE,OAAS,EAAG,GAFzBgnF,EAAKjgF,WAIlB84O,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,MAAOv7O,GACnFu7O,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,MAAOG,GAC/EH,EAAUvpO,QAAQ,qBAAuB,IACzCupO,GAAa,QAEVA,CACX,EAEArB,WAAY,WACR,IAAIoB,EAAgBvZ,EAA8CpvI,WAAW18D,UAAU6lF,QAAQ/iH,KAAK85G,QAAQu3C,aAAc,GAC1H,IAAKrxJ,KAAK85G,QAAQmjB,mBAAqB+rC,EAA8CzsI,iBAAkB,CACrFysM,EAA8CpvI,WAAW18D,UAAU28D,cAAc,uCAC1FnvC,EAAoC9P,GAAGC,YAAY0nM,IAC1CA,CAElB,CACA,GAAIA,EAActpO,QAAQ,QAAU,EAChC,OAAOyxC,EAAoC9P,GAAGvU,OAAOk8M,EAAgB,OAAQviP,KAAK65G,MAAO75G,KAAK+5G,MAAO/5G,KAAKg6G,OAE9G,IAAIwoI,EAAYD,EAChBC,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,MAAOxiP,KAAK+5G,MAAMrwG,YAC9F84O,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,MAAOxiP,KAAKg6G,MAAMtwG,YAC9F84O,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,MAAOxiP,KAAK65G,MAAMnwG,YAC9F,IAAIigF,EAAO,EACP64J,EAAUvpO,QAAQ,UAAY,IAC9B0wE,EAAO,EACP64J,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,QAAS,QAErFA,EAAUvpO,QAAQ,UAAY,IAC9B0wE,EAAO,EACP64J,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,QAAS,QAErFA,EAAUvpO,QAAQ,UAAY,IAC9B0wE,EAAO,EACP64J,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,QAAS,QAErFA,EAAUvpO,QAAQ,UAAY,IAC9B0wE,EAAO,EACP64J,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,QAAS,QAEzF,IAAIv7O,EAAKjH,KAAK0iP,YACVC,EAAS,GAQb,OAJIA,EAHC17O,EAAGtE,OAGKsE,EAAG4kF,OAAO5kF,EAAGtE,OAAS,EAAG,GAFzBgnF,EAAKjgF,WAIlB84O,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,MAAOv7O,GACnFu7O,EAAY93L,EAAoC9P,GAAGq+C,cAAcupJ,EAAW,MAAOG,GAC5EH,CACX,EAEAC,YAAa,WACT,IAAIE,GAAuB,EAAb3iP,KAAK+5G,SAA4B,EAAb/5G,KAAKg6G,QAAc,GACrD,OAAO2oI,CACX,EAEAD,UAAW,WACP,GAAoB,MAAhB1iP,KAAK4/O,QACL,OAAO5/O,KAAK4/O,QAEhB,IAAIgD,EAAW5iP,KAAK65G,MAChBgpI,EAAO7iP,KAAK+5G,MACZ+oI,EAAO9iP,KAAKg6G,MACsB,IAAlCh6G,KAAK85G,QAAQmjB,kBACb2lH,IAEJ,IAAIG,EAAU/iP,KAAK85G,QAAQy3C,sBAC3B,GAAK7mG,EAAoC9P,GAAGC,YAAYkoM,GAiBpD,OADA/iP,KAAK4/O,QAAU,IACR5/O,KAAK4/O,QAfZ,IADA,IAAItsJ,EAAK,IAAI5oC,EAAoC9P,GAAG24C,cAC3C/wF,EAAIogP,EAAUpgP,EAAI,IAAKA,EAAG,CAC/B,IAAIwgP,EAAO,GAAMxgP,EAAI,EACjBtD,EAAM,EACH2jP,EAAOG,IACV9jP,EAAM,GAEH4jP,EAAOE,IACV9jP,GAAO,GAEXo0F,EAAGK,OAAOovJ,EAAQl3J,OAAO3sF,EAAK,GAClC,CAEA,OADAc,KAAK4/O,QAAUtsJ,EAAG5pF,WACX1J,KAAK4/O,OAKpB,EAEAqD,gBAAiB,WACb,OAAOjjP,KAAK6/O,YAChB,EAEAqD,gBAAiB,SAAUtiP,GAEvB,OADAZ,KAAK6/O,aAAej/O,EACbA,CACX,IAGJ,EAAG+pD,EAA4CzS,cAAc,OAAQ,CAAC0hE,EAAM8mI,EAAO,MAG5E,EAED;;;+BAIA,CAAE/hP,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCixC,UAAW,IAAM,IAEnB,IAAIka,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFnW,EAA4C,sBAAyC,qBACrFgxD,EAAkD,4BAA+C,2BACjG47C,EAAwC,kBAAqC,iBAC7E+hG,EAAwC,kBAAqC,iBAC7EC,EAA4C,sBAAyC,qBAiB9G,SAAS5yM,IAAc,CAEvBA,EAAU6yM,OAAS,CAAC,EACpB7yM,EAAU8yM,OAAS,CAAC,EACpB9yM,EAAU+yM,YAAc,EACxB/yM,EAAUgzM,mBAAqB,EAC/BhzM,EAAUizM,iBAAmB,IAC7BjzM,EAAUkzM,qBAAuB,IACjClzM,EAAUmzM,iBAAmB,EAE7BnzM,EAAUozM,eAAiB,WACvB,OAAOl5L,EAAoC9P,GAAGu8H,SAAS3mI,EAAU6yM,OACrE,EAIA7yM,EAAUqzM,QAAU,SAAUhqI,EAAO9uE,EAAG/mC,EAAG81G,EAAS5uB,GAChD,IAAI44J,EAAU,KACVr6C,GAAU,EAAGroD,EAAsCkhG,YAAYxoI,EAASD,EAAO9uE,EAAG/mC,EAAGknF,GACpFxgC,EAAoC9P,GAAGqgD,UAAUzqD,EAAU8yM,OAAQ75C,GAOpEq6C,EAAUtzM,EAAU8yM,OAAO75C,IAN3Bq6C,EAAUV,EAA0Cx/H,SAASkrC,WAAWh1C,EAASD,EAAO9uE,EAAG/mC,EAAGknF,GAC/E,MAAX44J,IACAtzM,EAAU8yM,OAAO75C,GAAWq6C,IAOpC,OAAOA,CACX,GAEA,EAAGt+I,EAAgD2sH,sBAAsB3hL,EAAUqzM,SAInFrzM,EAAUuzM,cAAgB,SAAUlqI,EAAO9uE,EAAG/mC,EAAG81G,EAAS5uB,GACtD,GAAI2uB,EAAQC,EAAQw3C,gBAChB,OAAO,KAEX,IAAIwyF,EAAU,KACVr6C,GAAU,EAAGroD,EAAsCkhG,YAAYxoI,EAASD,EAAO9uE,EAAG/mC,EAAGknF,GACzF,IACI,IAAKxgC,EAAoC9P,GAAGqgD,UAAUzqD,EAAU8yM,OAAQ75C,GACpE,OAAO,KAEPq6C,EAAUtzM,EAAU8yM,OAAO75C,EAEnC,CACA,MAAOl1G,GAAO,CACd,OAAOuvJ,CACX,GAEA,EAAGt+I,EAAgD0sH,4BAA4B1hL,EAAUuzM,eAEzFvzM,EAAUC,WAAa,WACrB,IAAK,MAAM+9K,KAAQ9uN,OAAOqU,OAAOy8B,EAAU8yM,QACzC,IACE90B,EAAK5oF,SAAQ,EACf,CAAE,MAAO1lI,GACP,QACF,CAEJ,EAEAswC,EAAUwzM,0BAA4B,WAClC,IAAIC,EAAmB,GACnBC,EAAgB,GACpB,IACI,IACI,IAAI5oM,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKgoC,EAAU8yM,SACpH,MAAOhoM,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb8yK,EAAOh+K,EAAU8yM,OAAOrkP,GACxBuvN,EAAKlqE,mBAAsB6+F,EAAsCvpI,KAAK2qC,wBAA0B,KAASiqE,EAAK1nE,iBAAkB0nE,EAAK5nE,cACjI4nE,EAAK7pE,cACLu/F,EAAcv/O,KAAK6pN,GAGnBy1B,EAAiBt/O,KAAK6pN,GAGlC,CACJ,CACA,MAAO3yH,GACP,CACA,OAAOqoJ,EAAcvhP,MACzB,CACA,MAAO4xK,GACH,OAAQ,CACZ,CACJ,EAEA/jI,EAAU2zM,aAAe,SAAUliN,GAC/B,MAAOyoB,EAAoC9P,GAAGu8H,SAAS3mI,EAAU6yM,QAAU,GAAK7yM,EAAU+yM,YAAc,EAAG,CACvG,IAAIa,EAAc,IACdC,GAAc,EACdC,EAAS,KAEThpM,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKgoC,EAAU6yM,SACpH,MAAO/nM,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbp5C,EAAIkuC,EAAU6yM,OAAOpkP,GACzB,IAAKqD,EAAEwkJ,gBAAkBxkJ,EAAEmiJ,cAAe,CACtC,IAAI8/F,EAAW/vM,EAA0CwE,SAASwtD,SAASlkG,EAAE6/O,oBAC7EoC,EAASt6I,oBAAoBhoE,EAAcw3F,aACvCx3F,EAAck7F,MACdonH,EAASx7I,SAASv0D,EAA0CwE,SAAS72C,OAAO,EAAG,GAAI,IAGnFoiP,EAASx7I,SAAS9mE,EAAcgrE,gBAEpC,IAAIu3I,EAAWl/O,KAAKC,IAAI,EAAGg/O,EAAS5hP,SAAWL,EAAE4/O,oBAC7CuC,EAAiBniP,EAAEw+O,cAAc7jH,mBAAqBmmH,EAA0CtkO,eAAe+nF,SAAavkG,EAAEw+O,cAAc7jH,mBAAqBmmH,EAA0CtkO,eAAeytI,SAC1Ni4F,EAAWJ,KAAiBC,GAAeI,KAC3CL,EAAcI,EACdF,EAAShiP,EAAEyjJ,UACHzjJ,EAAEu3G,MACVwqI,EAAcI,EAEtB,CACJ,CACA,GAAc,MAAVH,EAYA,OAXA,IAAII,EAAWl0M,EAAU6yM,OAAOiB,GAChCI,EAAS59F,gBAAiB,EAC1Bt2G,EAAU+yM,cACN/yM,EAAU+yM,YAAc,IACxB/yM,EAAU+yM,YAAc,GAE5BmB,EAASh+F,eACLg+F,EAAS5D,cAAcpvF,sBACvBgzF,EAASxD,YAKrB,CACJ,EAIA1wM,EAAUm0M,eAAiB,SAAUn2B,GACjC,IAAIo2B,EAUJ,OATAA,EAAW,IACNp2B,EAAK5nE,aAAgB4nE,EAAK7pE,gBACvBj6F,EAAoC9P,GAAGqgD,UAAUzqD,EAAU6yM,OAAQ70B,EAAKzoE,WACxEv1G,EAAU6yM,OAAO70B,EAAKzoE,WAAW25F,aAAekF,GAEhDp2B,EAAKkxB,YAAckF,EACnBp0M,EAAU6yM,OAAO70B,EAAKzoE,WAAayoE,KAGpC,CACX,GAEA,EAAGhpH,EAAgDysH,6BAA6BzhL,EAAUm0M,gBAI1Fn0M,EAAUq0M,gBAAkB,SAAU5lP,EAAK2jH,GACvC,GAAIA,EAAU,CACV,IAAI8hI,EAAWl0M,EAAU6yM,OAAOpkP,GAChB,MAAZylP,IACAA,EAAS59F,gBAAiB,SACnBt2G,EAAU6yM,OAAOqB,EAAS3+F,YAErCv1G,EAAU+yM,aACd,QACO/yM,EAAU6yM,OAAOpkP,EAC5B,GAEA,EAAGumG,EAAgD4sH,8BAA8B5hL,EAAUq0M,iBAE3Fr0M,EAAUC,WAAa,WACnBia,EAAoC9P,GAAG24H,UAAU/iI,EAAU8yM,OAC/D,EAEA9yM,EAAUs0M,WAAa,WACnBp6L,EAAoC9P,GAAG24H,UAAU/iI,EAAU6yM,OAC/D,EAEA7yM,EAAUu0M,SAAW,WACjB,KAAIr6L,EAAoC9P,GAAGu8H,SAAS3mI,EAAU8yM,QAAU9yM,EAAUkzM,sBAAlF,CAGA,IAAIO,EAAmB,GACnBC,EAAgB,GACpB,IACI,IACI,IAAI5oM,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKgoC,EAAU8yM,SACpH,MAAOhoM,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb8yK,EAAOh+K,EAAU8yM,OAAOrkP,GACxBuvN,EAAKlqE,mBAAsB6+F,EAAsCvpI,KAAK2qC,wBAA0B,KAASiqE,EAAK1nE,iBAAkB0nE,EAAK5nE,cACjI4nE,EAAK7pE,cACLu/F,EAAcv/O,KAAK6pN,GAGnBy1B,EAAiBt/O,KAAK6pN,GAGlC,CACJ,CACA,MAAO3yH,GACP,CAEA,GADArrD,EAAUgzM,mBAAqBU,EAAcvhP,OACzCuhP,EAAcvhP,OAAS6tC,EAAUkzM,qBAAsB,CACvDQ,EAAcv0D,MAAK,SAAUhmF,EAAIC,GAC7B,OAAQA,EAAGw1I,YAAcz1I,EAAGy1I,YAAe,EAAMx1I,EAAGw1I,cAAgBz1I,EAAGy1I,YAAe,GAAK,CAC/F,IACA,IAAI4F,EAAed,EAAcvhP,OAAS6tC,EAAUkzM,qBAChDr+H,EAAS36D,EAAoC9P,GAAGW,UAAU2oM,GAC9D,MAAO7+H,EAAO7pE,WAAY,CAClBgzK,EAAOnpG,EAAO3pE,QAClB,GAAIspM,EAAe,EACf,MAEJx2B,EAAK5oF,SAAQ,GACbo/G,GACJ,CACJ,CACA,GAAIt6L,EAAoC9P,GAAGu8H,SAAS3mI,EAAU8yM,QAAU9yM,EAAUizM,iBAC9E,OAEJ,GAAIQ,EAAiBthP,OAAS6tC,EAAUizM,iBAAkB,CACtDQ,EAAiBt0D,MAAK,SAAUhmF,EAAIC,GAChC,OAAQA,EAAGw1I,YAAcz1I,EAAGy1I,YAAe,EAAMx1I,EAAGw1I,cAAgBz1I,EAAGy1I,YAAe,GAAK,CAC/F,IACI4F,EAAef,EAAiBthP,OAAS6tC,EAAUizM,iBACnDuB,EAAe,KACfA,EAAe,IAEnB,IAAI1/H,EAAS56D,EAAoC9P,GAAGW,UAAU0oM,GAC9D,MAAO3+H,EAAO9pE,WAAY,CAClBgzK,EAAOlpG,EAAO5pE,QAClB,GAAIspM,EAAe,EACf,MAEJx2B,EAAK5oF,SAAQ,UACNp1F,EAAU8yM,OAAO90B,EAAKzoE,WAC7Bi/F,GACJ,CACJ,CACJ,CACA,MAAO39C,GAAO,CA5Dd,CA+DJ,EAGA72J,EAAUy0M,cAAgB,WACtB,IAAI97O,EAAO,GACPmyC,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKgoC,EAAU6yM,SACpH,MAAO/nM,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbp5C,EAAIkuC,EAAU6yM,OAAOpkP,GACzB,IAAKqD,EAAEwkJ,eAAgB,CACnBxkJ,EAAEo9O,YAAcp9O,EAAEo9O,YAAc,EAChC,IACQp9O,EAAEo9O,YAAc,EAChBv2O,EAAKxE,KAAKrC,GAEJA,EAAEmiJ,eACRt7I,EAAKxE,KAAKrC,EAElB,CACA,MAAOu5F,GACP,CACJ,CACJ,CACA,IAAIwpB,EAAS36D,EAAoC9P,GAAGW,UAAUpyC,GAC9D,MAAOk8G,EAAO7pE,WAAY,CAClBl5C,EAAI+iH,EAAO3pE,eACRlL,EAAU6yM,OAAO/gP,EAAEyjJ,UAC9B,CACJ,EAEA,IAAIm/F,EAAa,CAAC,GAElB,EAAGv6L,EAA4CzS,cAAc,YAAa,CAAC1H,EAAW00M,EAAY,MAI3F,EAED;;;+BAIA,CAAEvmP,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC0vJ,UAAW,IAAM,IAEnB,IAAIvkG,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzF0uD,EAAkD,4BAA+C,2BACjGrc,EAA4C,sBAAyC,qBACrFsc,EAA4D,sCAAyD,qCACrH6uG,EAA+C,yBAA4C,wBAC3Fg9B,EAAmD,6BAAgD,4BACnGlH,EAAwC,kBAAqC,iBAC7EmH,EAA4C,sBAAyC,qBACrFC,EAAwC,kBAAqC,iBAoBtG,SAASp2F,IACLjvJ,KAAK05G,YAAa,EAClB15G,KAAK2lG,WAAY,EACjB3lG,KAAK+hJ,cAAgB,KACrB/hJ,KAAKuoN,qBAAuB,KAC5BvoN,KAAK25G,oBAAsB,EAC3B35G,KAAKsiJ,eAAgB,EACrB27F,EAAsCrkI,KAAKp5G,KAAKR,KACpD,CAEAivJ,EAAUq2F,iBAAmB,IAAIzjP,MAAM,IACvCotJ,EAAUs2F,qBAAuB,IAAI1jP,MAAM,IAC3CotJ,EAAUu2F,gBAAkB,IAAI3jP,MAAM,GAEtCotJ,EAAUw2F,cAAgB,SAAUzoI,GAIhC,IAHA,IAAI5gB,EAAQ4gB,EAAWr6G,OACnBm6G,EAAY,IAAIC,YAAY3gB,GAC5BspJ,EAAgB5oI,EACXt6G,EAAI,EAAGA,EAAI45F,EAAO55F,IACvBkjP,EAAcljP,GAAKw6G,EAAWx6G,GAElC,OAAOkjP,CACX,EAEAz2F,EAAU9sJ,OAAS,SAAU03G,EAAOqqC,EAAIC,EAAIrqC,EAAS5uB,GACjD,IAAIqB,EAAO,IAAI0iE,EAqBf,OApBA1iE,EAAKrB,OAASA,EACdqB,EAAKstB,MAAQA,EACbttB,EAAKwtB,MAAQmqC,EACb33D,EAAKytB,MAAQmqC,EACb53D,EAAKutB,QAAUA,EACfvtB,EAAKmtB,YAAcI,EAAQG,gBACvB1tB,EAAKwtB,QAAUmqC,GACf1pD,MAAM,OAEJsf,EAAQ+3C,iBACVtlE,EAAKk8H,oBAAoB3uG,EAAQ+3C,kBAG5B/3C,EAAQ72E,kBAGTspD,EAAKk8H,oBAAoB,SAFzBl8H,EAAKk8H,oBAAoB,QAKjCl8H,EAAK2tB,wBACE3tB,CACX,EAEA,IAAIo5J,EAAa,CACbzrI,sBAAuB,WACnBl6G,KAAK2oN,qBACL3oN,KAAK26G,QAAU36G,KAAK4oN,OAAO,GAAW7iH,SAAS9c,OAC/CjpF,KAAK46G,YAAc56G,KAAK4oN,OAAO,GAAW7iH,SAAS9c,OACnDjpF,KAAK66G,SAAW76G,KAAK4oN,OAAO,GAAW7iH,SAAS9c,OAChDjpF,KAAK86G,WAAa96G,KAAK4oN,OAAO,GAAW7iH,SAAS9c,OAClDjpF,KAAK6oN,YACT,EAEA5hE,eAAgB,SAAUlhH,EAAOmhH,GAC7B,OAAKlnJ,KAAK65G,MAGN75G,KAAK2lG,UACEspD,EAAUs2F,qBAA6B,GAARx/M,EAAamhH,GAE5C+H,EAAUq2F,iBAAyB,GAARv/M,EAAamhH,GALxC+H,EAAUu2F,gBAAgBz/M,EAOzC,EACAy9G,sBAAuB,SAAUxmC,EAAYpB,GACzC,IAAK57G,KAAK65G,MAIN,OAHAo1C,EAAUu2F,gBAAgB5pI,GAAQvC,EAAgD8C,eAAeC,eACjG/C,EAAgD8C,eAAeE,WAAW/C,EAA0DgD,MAAMY,qBAAsB+xC,EAAUu2F,gBAAgB5pI,SAC1LvC,EAAgD8C,eAAeS,WAAWtD,EAA0DgD,MAAMY,qBAAsBF,EAAY1D,EAA0DgD,MAAMO,aAGhP,IAAK,IAAItwG,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,IAAIq5O,EAAY32F,EAAUw2F,cAAczoI,GACxCh9G,KAAK6lP,yBAAyBD,EAAWr5O,GACrCvM,KAAK2lG,WACLspD,EAAUs2F,qBAA4B,GAAP3pI,EAAYrvG,GAAK8sG,EAAgD8C,eAAeC,eAC/G/C,EAAgD8C,eAAeE,WAAW/C,EAA0DgD,MAAMY,qBAAsB+xC,EAAUs2F,qBAA4B,GAAP3pI,EAAYrvG,IAC3M8sG,EAAgD8C,eAAeS,WAAWtD,EAA0DgD,MAAMY,qBAAsB0oI,EAAWtsI,EAA0DgD,MAAMO,eAG3OoyC,EAAUq2F,iBAAwB,GAAP1pI,EAAYrvG,GAAK8sG,EAAgD8C,eAAeC,eAC3G/C,EAAgD8C,eAAeE,WAAW/C,EAA0DgD,MAAMY,qBAAsB+xC,EAAUq2F,iBAAwB,GAAP1pI,EAAYrvG,IACvM8sG,EAAgD8C,eAAeS,WAAWtD,EAA0DgD,MAAMY,qBAAsB0oI,EAAWtsI,EAA0DgD,MAAMO,aAEnP,CACJ,EACAgpI,yBAA0B,SAAU7oI,EAAYzwG,GAC5C,IAAIkE,EAAM,CAAC,EACPq1O,EAAU,CAAC,EACXxqM,EAASoP,EAAoC9P,GAAGW,UAAUyhE,GAC9D,MAAO1hE,EAAOE,WAAY,CACtB,IAAIzV,EAAQuV,EAAOI,QACf2nG,EAAOrjJ,KAAK+hJ,cAAch8G,GAC1BggN,EAASr7L,EAAoC9P,GAAGyG,SAAoB,GAAVgiG,EAAKx9C,GAAU,IACzEmgJ,EAASt7L,EAAoC9P,GAAGyG,SAAoB,GAAVgiG,EAAKv9C,GAAU,IACzE2+G,GAAMuhC,GAAU,GAAKD,EACpBr7L,EAAoC9P,GAAGqgD,UAAU6qJ,EAASrhC,KAC3DqhC,EAAQrhC,GAAM1+K,EAEtB,CACA,IAAIkgN,EAAW,GACf,GAAgB,KAAP,EAAJ15O,GACD,IAAK,IAAIw+B,EAAI,EAAGA,EAAIk7M,EAAUl7M,GAAK,EAAG,CAClC,IAAI/mC,EAAIiiP,EACJhnP,GAAO+E,GAAK,GAAK+mC,EACjB7rC,GAAO8E,GAAK,GAAK+mC,EAAI,EACrB2f,EAAoC9P,GAAGqgD,UAAU6qJ,EAAS7mP,KAC1DwR,EAAIq1O,EAAQ7mP,IAAQ6mP,EAAQ5mP,GAEpC,CAEJ,GAAgB,KAAP,EAAJqN,GACD,IAASvI,EAAI,EAAGA,EAAIiiP,EAAUjiP,GAAK,EAAG,CAC9B+mC,EAAIk7M,EACJhnP,GAAO+E,GAAK,GAAK+mC,EACjB7rC,GAAQ8E,EAAI,GAAM,GAAK+mC,EACvB2f,EAAoC9P,GAAGqgD,UAAU6qJ,EAAS7mP,KAC1DwR,EAAIq1O,EAAQ7mP,IAAQ6mP,EAAQ5mP,GAEpC,CAEJ,GAAgB,KAAP,EAAJqN,GACD,IAASw+B,EAAI,EAAGA,EAAIk7M,EAAUl7M,GAAK,EAAG,CAC9B/mC,EAAI,EACJ/E,GAAO+E,GAAK,GAAK+mC,EACjB7rC,GAAO8E,GAAK,GAAK+mC,EAAI,EACrB2f,EAAoC9P,GAAGqgD,UAAU6qJ,EAAS7mP,KAC1DwR,EAAIq1O,EAAQ7mP,IAAQ6mP,EAAQ5mP,GAEpC,CAEJ,GAAgB,KAAP,EAAJqN,GACD,IAASvI,EAAI,EAAGA,EAAIiiP,EAAUjiP,GAAK,EAAG,CAC9B+mC,EAAI,EACJ9rC,GAAO+E,GAAK,GAAK+mC,EACjB7rC,GAAQ8E,EAAI,GAAM,GAAK+mC,EACvB2f,EAAoC9P,GAAGqgD,UAAU6qJ,EAAS7mP,KAC1DwR,EAAIq1O,EAAQ7mP,IAAQ6mP,EAAQ5mP,GAEpC,CAEJ,GAAKwrD,EAAoC9P,GAAGu8H,SAAS1mK,GAIrD,IAAK,IAAIjO,EAAI,EAAGA,EAAIw6G,EAAWr6G,OAAQH,IAC/BkoD,EAAoC9P,GAAGqgD,UAAUxqF,EAAKusG,EAAWx6G,MACjEw6G,EAAWx6G,GAAKiO,EAAIusG,EAAWx6G,IAG3C,EAEA0jP,oBAAqB,SAAU/8O,GAC3B,IAAIzF,EAASs5F,EAA0CyH,WAAWsT,oBAAoB5uG,GACtFnJ,KAAK06G,aAAeh3G,EAAO4zC,OAC3Bt3C,KAAKg7G,aAAet3G,EAAOyqB,MAC/B,EAEAg5H,cAAe,SAAUpoG,EAAKG,GAC1B,IAAKl/C,KAAK65G,MACN,OAAO,EAEX,GAAmB,IAAf75G,KAAK65G,MACL,OAAK36D,GAAO,GAAKA,GAAO,KAASl/C,KAAK+5G,OAAwB,IAAf/5G,KAAKg6G,QAG/C96D,EAAM,IAAMA,GAAO,KAAwB,IAAfl/C,KAAK+5G,OAA8B,IAAf/5G,KAAKg6G,QAGrD96D,EAAM,GAAKA,IAAQ,KAASl/C,KAAK+5G,QAAU/5G,KAAKg6G,OAGhD96D,GAAO,IAAMA,IAAQ,KAAwB,IAAfl/C,KAAK+5G,QAAgB/5G,KAAKg6G,QAKjE,IAAKh6G,KAAKwzM,UAA4B,MAAhBxzM,KAAKyzM,QACvB,OAAO,EAEX,IAAItmF,EAAYg7F,EAA6C3vK,YAAYq3C,eAAe9wC,EAAKG,GACzF0mD,EAAM5lG,KAAKonJ,qBAAqBpnJ,KAAK26G,QAAQ1xB,OAAQjpF,KAAK66G,SAAS5xB,OAAQkkC,GAC3Er9B,EAAQ9vF,KAAKonJ,qBAAqBpnJ,KAAK66G,SAAS5xB,OAAQjpF,KAAK46G,YAAY3xB,OAAQkkC,GACjFvc,EAAS5wG,KAAKonJ,qBAAqBpnJ,KAAK46G,YAAY3xB,OAAQjpF,KAAK86G,WAAW7xB,OAAQkkC,GACpFv9B,EAAO5vF,KAAKonJ,qBAAqBpnJ,KAAK86G,WAAW7xB,OAAQjpF,KAAK26G,QAAQ1xB,OAAQkkC,GAClF,SAAIvnB,GAAO9V,GAAS8gB,GAAUhhB,EAIlC,EACAw3D,qBAAsB,SAAU9iB,EAAMC,EAAMC,GACxCF,EAAKl8B,YACLm8B,EAAKn8B,YACL,IAAI/uD,EAAQ2jD,EAA0ChkD,SAASK,MAAMirF,EAAMC,GACvEtrF,EAAM+jD,EAA0ChkD,SAASC,IAAII,EAAOmrF,GACxE,OAAOvrF,EAAM,CACjB,EAEAouG,wBAAyB,SAAUtoG,EAAKG,EAAKnP,GACzC,GAAI/vC,KAAK65G,MAAQokI,EAAsCrkI,KAAK0tC,iBACxD,IAAK,IAAIm9D,EAAK,EAAGA,EAAK,EAAGA,IAAM,CAC3B,IAAIr5H,EAAQprF,KAAKmlJ,SAASs/D,GAC1B,GAAa,MAATr5H,GACIA,EAAM+7D,cAAcpoG,EAAKG,GAAM,CAC/B,IAAIqoG,EAASn8D,EAAMi8D,wBAAwBtoG,EAAKG,EAAKnP,GACrD,GAAMw3G,EACF,OAAOA,EAGP,KAER,CAER,CAEJ02F,EAAsCrkI,KAAKomI,gBAAkBhgP,KAAK65G,MAClEokI,EAAsCrkI,KAAKkmI,YAAc9/O,KAAK+5G,MAC9DkkI,EAAsCrkI,KAAKmmI,YAAc//O,KAAKg6G,MAC9D,IAAImT,EAAYg7F,EAA6C3vK,YAAYq3C,eAAe9wC,EAAKG,GAC7FiuE,EAAYnwB,EAA0ChkD,SAASsqD,gBAAgB,IAAItG,EAA0ChkD,SAAYm0E,GACzI,IAAI1V,EAAK4tI,EAAsC59F,aAAaC,oBAAoB1nJ,KAAK26G,QAAQ1xB,OAAQjpF,KAAK66G,SAAS5xB,OAAQjpF,KAAK86G,WAAW7xB,OAAQjpF,KAAK46G,YAAY3xB,OAAQkkC,EAAUlkC,QAGlL0+D,EAAMriJ,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,GAAY,GAAPktB,EAAG1sE,IACnC68G,EAAMtiJ,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,GAAY,GAAPktB,EAAGzzG,IACnC6jJ,EAAKviJ,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,GAAI7/B,EAAoC9P,GAAGyG,SAAiB,GAAPo2D,EAAG1sE,KAClF+8G,EAAKxiJ,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,GAAI7/B,EAAoC9P,GAAGyG,SAAiB,GAAPo2D,EAAGzzG,KAClF86F,EAAK6oD,EAAME,EACXE,EAAKH,EAAME,EAEf,GAAqB,MAAjB9nJ,KAAKgoJ,SAAkB,CAEvB,IAAIC,EAAKjoJ,KAAKgoJ,SAASH,EAAK,GAAKC,GAC7BI,EAAKloJ,KAAKgoJ,SAAUH,EAAK,EAAK,GAAKC,GACnCK,EAAKnoJ,KAAKgoJ,SAASH,EAAK,IAAMC,EAAK,IACnCM,EAAKpoJ,KAAKgoJ,SAAUH,EAAK,EAAK,IAAMC,EAAK,IACzCliD,EAAMqiD,GAAM,EAAInpD,GAAMA,EAAKopD,EAC3Bt3C,EAASu3C,GAAM,EAAIrpD,GAAMA,EAAKspD,EAC9BlpJ,EAAM0mG,GAAO,EAAImiD,GAAMA,EAAKn3C,EAChC,OAAO1xG,EAAMc,KAAKqoJ,qBACtB,CACA,OAAOroJ,KAAKsoJ,WAAatoJ,KAAKqoJ,qBAClC,EACAsgE,mBAAoB,WAQhB,GAPA3oN,KAAK+hJ,cAAgB,GACrB/hJ,KAAKuoN,qBAAuB,IAAI1mN,MAAM,GACtC7B,KAAKuoN,qBAAqB,GAAK,GAC/BvoN,KAAKuoN,qBAAqB,GAAK,GAC/BvoN,KAAKuoN,qBAAqB,GAAK,GAC/BvoN,KAAKuoN,qBAAqB,GAAK,GAC/BvoN,KAAK4oN,OAAS,IAAI/mN,MAAM,GACpB7B,KAAK65G,MAAQ,EAAG,CACG,MAAf75G,KAAKkrF,SACLlrF,KAAKkrF,QAAS,EAAGmuB,EAAgD+rC,kBAAkBplJ,KAAK65G,MAAQ,EAAG75G,KAAK+5G,MAAQ,EAAG/5G,KAAKg6G,MAAQ,EAAGh6G,KAAK85G,QAAS,OAErJ,IAAI5uB,EAASlrF,KAAKkrF,OACd+9H,EAASjpN,KAAK+5G,MAAQ,EACtBmvG,EAASlpN,KAAKg6G,MAAQ,EACtBh6G,KAAK65G,MAAQ,EACb75G,KAAK2lG,UAAYza,EAAOya,UAGxB3lG,KAAK2lG,UAA8C,KAAtB,IAAXsjH,EAA0B,IAAXC,GAErClpN,KAAK4oN,OAAO,GAAa19H,EAAO09H,OAAOK,EAAS,EAAIC,GAAQjgI,OAC5DjpF,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,EAAIC,GAASh+H,EAAO09H,OAAOK,EAAS,EAAI,EAAIC,IAC7GlpN,KAAK4oN,OAAO,GAAa19H,EAAO09H,OAAOK,EAAS,EAAI,EAAIC,GAAQjgI,OAChEjpF,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,EAAIC,GAASh+H,EAAO09H,OAAOK,EAAS,GAAKC,EAAS,KAC/GlpN,KAAK2lG,UACL3lG,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,EAAIC,GAASh+H,EAAO09H,OAAOK,EAAS,EAAI,GAAKC,EAAS,KAGvHlpN,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,EAAI,EAAIC,GAASh+H,EAAO09H,OAAOK,EAAS,GAAKC,EAAS,KAE3HlpN,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,EAAI,EAAIC,GAASh+H,EAAO09H,OAAOK,EAAS,EAAI,GAAKC,EAAS,KAC3HlpN,KAAK4oN,OAAO,GAAa19H,EAAO09H,OAAOK,EAAS,GAAKC,EAAS,IAAIjgI,OAClEjpF,KAAK4oN,OAAO,GAAa5oN,KAAKmpN,YAAYj+H,EAAO09H,OAAOK,EAAS,GAAKC,EAAS,IAAKh+H,EAAO09H,OAAOK,EAAS,EAAI,GAAKC,EAAS,KAC7HlpN,KAAK4oN,OAAO,GAAa19H,EAAO09H,OAAOK,EAAS,EAAI,GAAKC,EAAS,IAAIjgI,OACtEjpF,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,GAAMwT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,GAAMuT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,GAAMwT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,GAAMuT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,GAAMuT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,GAAMwT,EAAgDpT,eAClFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW/iH,GAAK,EAAIwT,EAAgDpT,eAChFjmG,KAAK4oN,OAAO,GAAW9iH,GAAK,EAAIuT,EAAgDpT,eAChFjmG,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IAChC5oN,KAAK2lG,WACL3lG,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,MAGlGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAE1G,MACInC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,GAAI,EAAG,EAAG,EAAG,GACvGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,EAAG,EAAG,EAAG,GAAK,GACxGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,GAAI,EAAG,EAAG,EAAG,GACvGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,QAAQ,EAAG,EAAG,EAAG,EAAG,IACvGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,EAAG,EAAG,EAAG,GAAK,IACxGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,EAAG,EAAG,EAAG,EAAG,IACtGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,GAAI,EAAG,EAAG,EAAG,GACvGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,EAAG,GAAI,EAAG,GAAK,GACzGnC,KAAK4oN,OAAO,GAAa5rH,EAA0CoI,gBAAgBjjG,OAAO,GAAI,EAAG,EAAG,EAAG,GACvGnC,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAK+hJ,cAAcp9I,KAAK3E,KAAK4oN,OAAO,IACpC5oN,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,IAClGnC,KAAKuoN,qBAAqB,GAAG5jN,KAAKygP,EAA0Cl+B,SAAS/kN,OAAO,EAAG,EAAG,GAE1G,EACAgnN,YAAa,SAAUC,EAAwBC,GAC3C,IAAIC,EAAKtsH,EAA0ChkD,SAAS02C,KAAK05H,EAAuBrjH,SAAUsjH,EAAyBtjH,SAAU,IACjIwjH,EAAOvsH,EAA0C6C,SAASnQ,KAAKsN,EAA0C6C,SAAS19F,OAAOinN,EAAuBvjH,GAAIujH,EAAuBtjH,IAAK9I,EAA0C6C,SAAS19F,OAAOknN,EAAyBxjH,GAAIwjH,EAAyBvjH,IAAK,IAEzS,OADAwjH,EAAGlhH,YACIpL,EAA0CoI,gBAAgBY,UAAUsjH,EAAIC,EAAKx+K,EAAGw+K,EAAKvlN,EAChG,EAEAm3G,eAAgB,SAAUl5E,GACtB,GAAIjiC,KAAK4zM,gBACL,OAAO,EAIX,GAFA5zM,KAAK4zM,iBAAkB,EACvBqqC,EAAsCrkI,KAAKt5G,UAAU66G,eAAe36G,KAAKR,KAAMiiC,IAC1EjiC,KAAKsiJ,cAAe,CACK,MAAtBtiJ,KAAK+hJ,eACL/hJ,KAAK2oN,qBAE6D,KAAlEtvG,EAAgDpT,gBAC3CjmG,KAAK85G,QAAQ72E,mBAAqBjjC,KAAK85G,QAAQ72E,kBAIhDjjC,KAAK25G,oBAAsBr0G,KAAKilF,IAAI,EAAGjlF,KAAKC,IAAI,EAAG,EAAIvF,KAAK65G,SAI5D75G,KAAK8oN,SAAW9oN,KAAK65G,MAAQ,IAC7B75G,KAAKgoJ,SAAW,IAAInmJ,MAAM,KAC1B7B,KAAKk0M,QAAU,IACXl0M,KAAK2lG,UAC+B,MAAhCspD,EAAUk3F,qBACVnmP,KAAKomP,uBAAyB,IAAIvkP,MAAM7B,KAAKk0M,SAC7Cl0M,KAAKqmP,uBAAyB,IAAIxkP,MAAM7B,KAAKk0M,UAIjB,MAA5BjlD,EAAUq3F,iBACVtmP,KAAKumP,mBAAqB,IAAI1kP,MAAM7B,KAAKk0M,SACzCl0M,KAAKwmP,mBAAqB,IAAI3kP,MAAM7B,KAAKk0M,WAKzD,IAAK,IAAI1xM,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAI45F,EAAQp8F,KAAK25G,oBACjB,MAAOvd,KAAU,EAAG,CAChB,IAAI+qH,EAAU,GACV7rK,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKuoN,qBAAqB/lN,IACxF,MAAO84C,EAAOE,WAAY,CACtB,IAAIu4J,EAAMz4J,EAAOI,QACjBq4J,EAAI0yC,UAAUt/B,EAASnnN,KAAK+hJ,cAChC,CACA/hJ,KAAKuoN,qBAAqB/lN,GAAK2kN,CACnC,CACJ,CACA,GAAwB,MAApBllL,EAAc6T,GACd,IAAStzC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxBxC,KAAKo7G,qBAAqB54G,GAAK,GAC/B,IAAI2iH,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAKuoN,qBAAqB/lN,IACxF,MAAO2iH,EAAO3pE,WAAY,CAClBu4J,EAAM5uF,EAAOzpE,QAAjB,IACImgE,EAAK77G,KAAK+hJ,cAAcgyD,EAAIn1M,GAC5Bk9G,EAAK97G,KAAK+hJ,cAAcgyD,EAAIryM,GAC5Bq6G,EAAK/7G,KAAK+hJ,cAAcgyD,EAAIxnM,GAChCvM,KAAKo7G,qBAAqB54G,GAAGmC,KAAKwgP,EAAiDnpI,eAAe75G,OAAO05G,EAAIC,EAAIC,EAAI/7G,KAAKi8G,QAASj8G,KAAK65G,OAC5I,CACJ,KAEC,CACD75G,KAAKk8G,cAAgB7C,EAAgD8C,eAAeC,eACpF/C,EAAgD8C,eAAeE,WAAW/C,EAA0DgD,MAAMC,aAAcv8G,KAAKk8G,eAC7J,IAAIM,EAAW,IAAIC,aAAyC,EAA5Bz8G,KAAK+hJ,cAAcp/I,QAC/C+5G,EAASF,EACTz2E,EAAQ,EACRs/E,EAAS36D,EAAoC9P,GAAGW,UAAUv7C,KAAK+hJ,eACnE,MAAO18B,EAAO7pE,WAAY,CACtB,IAAI5Q,EAAKy6E,EAAO3pE,QACZ17C,KAAK8oN,SACL/iL,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAO/lC,KAAK0mP,iBAAiB97M,IAC5D5qC,KAAK8zM,YAGL/tK,EAAQ/lC,KAAK28G,UAAUD,EAAQ32E,EAAO6E,EAE9C,CACI5qC,KAAK8oN,UACD9oN,KAAK2lG,UAC8B,MAA/B3lG,KAAKqmP,yBACLp3F,EAAU03F,mBAAqB3mP,KAAKqmP,uBACpCp3F,EAAUk3F,mBAAqBnmP,KAAKomP,uBACpCpmP,KAAKqmP,uBAAyB,KAC9BrmP,KAAKomP,uBAAyB,MAIH,MAA3BpmP,KAAKumP,qBACLt3F,EAAU23F,eAAiB5mP,KAAKwmP,mBAChCv3F,EAAUq3F,eAAiBtmP,KAAKumP,mBAChCvmP,KAAKumP,mBAAqB,KAC1BvmP,KAAKwmP,mBAAqB,OAItCntI,EAAgD8C,eAAeS,WAAWtD,EAA0DgD,MAAMC,aAAcC,EAAUlD,EAA0DgD,MAAMO,aAClO,IAASr6G,EAAI,EAAGA,EAAI,EAAGA,IAEnB,GADAxC,KAAK07G,cAAgB17G,KAAKuoN,qBAAqB/lN,GAAGG,OACjB,MAA7B3C,KAAKinJ,eAAezkJ,EAAG,GAAY,CACnC,IAAIs6G,EAAY,IAAIC,YAAiC,EAArB/8G,KAAK07G,eACjCsB,EAAaF,EACjB/2E,EAAQ,EACR,IAAIu/E,EAAS56D,EAAoC9P,GAAGW,UAAUv7C,KAAKuoN,qBAAqB/lN,IACxF,MAAO8iH,EAAO9pE,WAAY,CAClBu4J,EAAMzuF,EAAO5pE,QACjBshE,EAAWj3E,KAAWguK,EAAIn1M,EAC1Bo+G,EAAWj3E,KAAWguK,EAAIryM,EAC1Bs7G,EAAWj3E,KAAWguK,EAAIxnM,CAC9B,CACAvM,KAAKwjJ,sBAAsBxmC,EAAYx6G,EAC3C,CAER,CACAxC,KAAKsiJ,eAAgB,CACzB,CACA,OAAO,CACX,EAEAokG,iBAAkB,SAAUrjG,GACxB,IAAIwjG,EAAU,IAAI7pJ,EAA0CoI,gBACxD0hJ,EAAS3+B,EAA6C3vK,YAAYmoD,sBAAsB0iD,EAAKt9C,UAOjG,GANI+gJ,EAAOjoJ,WAAa,KACpBioJ,EAAO5iN,QAAQ4iN,EAAOjoJ,UAAY,KAElCioJ,EAAOjoJ,UAAY,KACnBioJ,EAAO5iN,QAAQ4iN,EAAOjoJ,UAAY,KAElC7+F,KAAK65G,MAAQ,EAAG,CAChB,IAAIksI,EAASr7L,EAAoC9P,GAAGyG,SAAoB,GAAVgiG,EAAKx9C,GAAU,IACzEmgJ,EAASt7L,EAAoC9P,GAAGyG,SAAoB,GAAVgiG,EAAKv9C,GAAU,IAC7E9lG,KAAKgoJ,SAAS+9F,EAAkB,GAATC,GAAehmP,KAAKyzM,QAAQzzM,KAAK8zM,UACpD9zM,KAAK2lG,UAC8B,MAA/B3lG,KAAKomP,yBACLpmP,KAAKqmP,uBAAuBrmP,KAAK8zM,UAAYiyC,EAC7C/lP,KAAKomP,uBAAuBpmP,KAAK8zM,UAAYkyC,GAIlB,MAA3BhmP,KAAKumP,qBACLvmP,KAAKwmP,mBAAmBxmP,KAAK8zM,UAAYiyC,EACzC/lP,KAAKumP,mBAAmBvmP,KAAK8zM,UAAYkyC,EAGrD,CACA,IAAI/rM,EAAMj6C,KAAK6zM,eAAeizC,EAAO/nJ,UAAW+nJ,EAAOjoJ,WAAW,GAAO,GAKzE,OAJAgoJ,EAAQhhJ,GAAKw9C,EAAKx9C,GAClBghJ,EAAQ/gJ,GAAKu9C,EAAKv9C,GAClB7rD,EAAI8uD,SAAS/oG,KAAKi/O,aAClB4H,EAAQ9gJ,SAAW9rD,EACZ4sM,CACX,EAEAjhH,QAAS,SAAU2iB,GACf01F,EAAsCrkI,KAAKt5G,UAAUslI,QAAQplI,KAAKR,KAAMuoJ,GAC9C,MAAtBvoJ,KAAK+hJ,gBACL/hJ,KAAK+hJ,cAAgB,MAEQ,MAA7B/hJ,KAAKuoN,uBACLvoN,KAAKuoN,qBAAuB,MAEhCvoN,KAAKsiJ,eAAgB,EACrBtiJ,KAAKgoJ,SAAW,IACpB,EACAgsD,gBAAiB,SAAU9vD,EAAIC,GAC3B,OAAOnkJ,KAAKgoJ,SAAqB,IAAX,GAAK7D,GAAWD,EAC1C,EAEA+vD,oBAAqB,WACjB,IAAI/oH,EAASxgC,EAAoC9P,GAAGw7G,SAASp2J,KAAKkrF,OAAQ+jE,GAC1E,GAAc,MAAV/jE,EACA,OAAO,EAEX,IAAIohB,EAAatsG,KAAK+5G,MAAQ,IAAO,EAAK,EAAI,EAC1CxN,EAAcvsG,KAAKg6G,MAAQ,EAAU,EAAJ,EACrCh6G,KAAKgoJ,SAAW,IAAInmJ,MAAM,KAG1B,IAAK,IAAIklP,EAAM,EAAGA,EAAM,GAAIA,GAAO,EAE/B,IADA,IAAI99J,GAAO,EACF+9J,EAAM,EAAGA,EAAM,GAAIA,IAEpBhnP,KAAKgoJ,SAAsB,IAAZ,GAAK++F,GAAYC,GADhC/9J,EACuCiC,EAAO8oH,gBAAiBgzC,EAAM,EAAK16I,EAAUy6I,EAAM,EAAKx6I,IAGtDrhB,EAAO8oH,gBAAiBgzC,EAAM,EAAK16I,EAAUy6I,EAAM,EAAKx6I,GAAWrhB,EAAO8oH,gBAAkBgzC,EAAM,EAAK16I,EAAW,EAAIy6I,EAAM,EAAKx6I,IAAY,EAE1LtjB,GAAQA,EAKhB,IAAK,IAAIg+J,EAAM,EAAGA,EAAM,GAAIA,GAAO,EAC/B,IAAK,IAAIC,EAAM,EAAGA,EAAM,GAAIA,IACxBlnP,KAAKgoJ,SAAsB,IAAZ,GAAKi/F,GAAYC,IAASlnP,KAAKg0M,gBAAgBkzC,EAAKD,EAAM,GAAKjnP,KAAKg0M,gBAAgBkzC,EAAKD,EAAM,IAAM,EAK5HjnP,KAAKyzM,QAAU,IAAI5xM,MAAM7B,KAAKk0M,SAC9B,IAAK,IAAI1xM,EAAI,EAAGA,EAAIxC,KAAKk0M,QAAS1xM,IAC1BxC,KAAK2lG,UACL3lG,KAAKyzM,QAAQjxM,GAAKxC,KAAKgoJ,SAASiH,EAAU03F,mBAAmBnkP,GAAuC,GAAlCysJ,EAAUk3F,mBAAmB3jP,IAG/FxC,KAAKyzM,QAAQjxM,GAAKxC,KAAKgoJ,SAASiH,EAAU23F,eAAepkP,GAAmC,GAA9BysJ,EAAUq3F,eAAe9jP,IAE3FxC,KAAKsoJ,YAActoJ,KAAKyzM,QAAQjxM,GAMpC,OAFAxC,KAAKsoJ,YAActoJ,KAAKyzM,QAAQ9wM,OAChC3C,KAAKwzM,UAAW,GACT,CACX,IAGJ,EAAG7oJ,EAA4CzS,cAAc,YAAa,CAAC+2G,EAAW02F,EAAY1H,EAAsCrkI,MAGjI,EAED;;;yBAIA,CAAEj7G,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCwkH,KAAM,IAAM,IAEd,IAAIr5D,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzF00D,EAAgD,0BAA6C,yBAC7F+/G,EAA8C,wBAA2C,uBACzFvsG,EAA+C,yBAA4C,wBAepH,SAAS9O,IACL/jH,KAAKmnP,UAAY,EACjBnnP,KAAKi5M,eAAiB,EACtBj5M,KAAKonP,cAAgB,EACrBpnP,KAAKqnP,aAAe,EACpBrnP,KAAK0jH,mBAAqB,EAC9B,CAEAK,EAAKJ,SAAW,SAAUv4B,GACtB,IAAImB,EAAO,IAAIw3B,EAiDf,OAhD2C,MAAvC34B,EAAMk4B,WAAWC,aAAa,QAC9Bh3B,EAAKtlF,GAAKmkF,EAAMk4B,WAAWC,aAAa,MAAMC,WAEF,MAA5Cp4B,EAAMk4B,WAAWC,aAAa,aAC9Bh3B,EAAK+6J,SAAWl8J,EAAMk4B,WAAWC,aAAa,WAAWC,WAEf,MAA1Cp4B,EAAMk4B,WAAWC,aAAa,WAC9Bh3B,EAAKp/E,MAAQi+E,EAAMk4B,WAAWC,aAAa,SAASC,WAEJ,MAAhDp4B,EAAMk4B,WAAWC,aAAa,iBAC9Bh3B,EAAK/kD,YAAc4jD,EAAMk4B,WAAWC,aAAa,eAAeC,WAEb,MAAnDp4B,EAAMk4B,WAAWC,aAAa,oBAC9Bh3B,EAAK0sH,eAAiBtuJ,EAA4C4kG,MAAM5nJ,MAAM,iBAAkByjF,EAAMk4B,WAAWC,aAAa,kBAAkBC,YAEhG,MAAhDp4B,EAAMk4B,WAAWC,aAAa,iBAC9Bh3B,EAAKg7J,YAAcn8J,EAAMk4B,WAAWC,aAAa,eAAeC,WAErB,MAA3Cp4B,EAAMk4B,WAAWC,aAAa,YAC9Bh3B,EAAKi7J,OAASp8J,EAAMk4B,WAAWC,aAAa,UAAUC,WAER,MAA9Cp4B,EAAMk4B,WAAWC,aAAa,eAC9Bh3B,EAAKk7J,UAAYr8J,EAAMk4B,WAAWC,aAAa,aAAaC,WAET,MAAnDp4B,EAAMk4B,WAAWC,aAAa,oBAC9Bh3B,EAAKm7J,eAAiBt8J,EAAMk4B,WAAWC,aAAa,kBAAkBC,WAEpB,MAAlDp4B,EAAMk4B,WAAWC,aAAa,mBAC9Bh3B,EAAK66J,cAAgBj9J,WAAWiB,EAAMk4B,WAAWC,aAAa,iBAAiBC,YAE9B,MAAjDp4B,EAAMk4B,WAAWC,aAAa,kBAC9Bh3B,EAAK86J,aAAel9J,WAAWiB,EAAMk4B,WAAWC,aAAa,gBAAgBC,YAEzB,MAApDp4B,EAAMk4B,WAAWC,aAAa,qBAC9Bh3B,EAAKo7J,gBAAkBv8J,EAAMk4B,WAAWC,aAAa,mBAAmBC,WAEnB,MAArDp4B,EAAMk4B,WAAWC,aAAa,sBAC9Bh3B,EAAKq7J,iBAAmBx8J,EAAMk4B,WAAWC,aAAa,oBAAoBC,WAEzB,MAAjDp4B,EAAMk4B,WAAWC,aAAa,kBAC9Bh3B,EAAKs7J,aAAez8J,EAAMk4B,WAAWC,aAAa,gBAAgBC,WAErB,MAA7Cp4B,EAAMk4B,WAAWC,aAAa,cAC9Bh3B,EAAKujH,SAAW1kH,EAAMk4B,WAAWC,aAAa,YAAYC,WAET,MAAjDp4B,EAAMk4B,WAAWC,aAAa,iBAC9Bh3B,EAAKg6B,iBAAiBn7B,EAAMk4B,WAAWC,aAAa,gBAAgBC,WAEjEj3B,CACX,EAEA,IAAIu7J,EAAQ,CACRxmO,SAAU,WACN,OAAOthB,KAAKmN,KAChB,EAEAi3G,cAAe,WACX,OAAOpkH,KAAK+gH,UAChB,EAEAsD,cAAe,SAAUzjH,GAErB,OADAZ,KAAK+gH,WAAangH,EACXA,CACX,EAEA0lH,iBAAkB,WACd,OAAK57D,EAAoC9P,GAAGC,YAAY76C,KAAK0jH,oBAElDrE,EAA8C9iF,iBAC9Cs2F,EAA6Cj5B,WAAW18D,UAAUi9D,eAAe,kBAErFzvC,EAAoC9P,GAAGvU,OAAOwsF,EAA6Cj5B,WAAW18D,UAAU28D,cAAc,yCAA0C75F,KAAKiH,IAJzKjH,KAAK0jH,kBAKpB,EAEA6C,iBAAkB,SAAU3lH,GAExB,OADAZ,KAAK0jH,mBAAqB9iH,EACnBA,CACX,EAEAiqH,YAAa,WACT,OAAIngE,EAAoC9P,GAAGC,YAAY76C,KAAKsnP,YAAcjoI,EAA8C9iF,iBAC7GmuB,EAAoC9P,GAAGvU,OAAOwsF,EAA6Cj5B,WAAW18D,UAAU28D,cAAc,gCAAiC75F,KAAKiH,IAEpKjH,KAAKsnP,QAEpB,EAEAS,YAAa,SAAUnnP,GAEnB,OADAZ,KAAKsnP,SAAW1mP,EACTA,CACX,EAEA0jH,WAAY,WACR,OAAOtkH,KAAKukH,OAChB,EAEAC,WAAY,SAAU5jH,GAElB,OADAZ,KAAKukH,QAAU3jH,EACRA,CACX,EAEA6jH,YAAa,WACT,OAAO,CACX,EAEAC,WAAY,WACR,OAAO,CACX,EAEAC,aAAc,WACV,OAAO,CACX,EAEAC,yBAA0B,WACtB,OAAO,CACX,EAEArC,aAAc,WACV,OAAO,CACX,EAEAwC,aAAc,WACV,MAAO,EACX,IAGJ,EAAGp6D,EAA4CzS,cAAc,OAAQ,CAAC6rE,EAAM+jI,EAAO,KAAM1oB,EAA4C73G,YAG9H,EAED;;;uCAIA,CAAE5oH,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCyoP,YAAa,IAAM,EACnBC,UAAW,IAAM,IAEnB,IAAIv9L,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FoyC,EAA4C,uBAA0C,qBACtFmrJ,EAA6D,wCAA2D,sCACxHv8C,EAA4C,uBAA0C,qBAe/G,SAASs8C,EAAUjuF,EAAU7oJ,GACzBnR,KAAKmR,KAAO,EACZnR,KAAKsyG,OAAS,EACdtyG,KAAKg6J,SAAWA,EAChBh6J,KAAKmR,KAAOA,CAChB,CAEA,IAAIg3O,EAAa,CACbz+O,SAAU,WACN,OAAO1J,KAAKg6J,QAChB,GAQJ,SAASguF,IACLhoP,KAAK2nK,cAAgB,GACrB3nK,KAAKooP,eAAiB,EACtBpoP,KAAKqoP,WAAa,GAClBroP,KAAK0K,IAAM,GACX1K,KAAKsoP,eACT,EAXA,EAAG39L,EAA4CzS,cAAc,YAAa,CAAC+vM,EAAWE,EAAY,OAalGH,EAAY1uH,QAAU,SAAU5uH,EAAK69O,GACjC,IAAIh8J,EAAO,IAAIy7J,EAOf,OANAz7J,EAAK7hF,IAAMA,EACX6hF,EAAKi8J,QAAUD,EACfh8J,EAAK6O,SAAW,IAAIuwG,EAA0CtxG,QAAQ3vF,GACtE6hF,EAAK6O,SAASpwF,aAAe,OAC7BuhF,EAAK6O,SAASd,cAAgB5vC,EAAoC9P,GAAGxlC,KAAK,eAAgBm3E,GAC1FA,EAAK6O,SAAS9vF,OACPihF,CACX,EAEA,IAAIk8J,EAAe,CACf7gF,cAAe,WACX,OAAO5nK,KAAKqoP,UAChB,EAEAK,cAAe,SAAU9nP,GAErB,OADAZ,KAAKqoP,WAAaznP,EACXA,CACX,EAEAinK,QAAS,SAAU7N,EAAUvyJ,GACzB,GAAY,MAARA,IAGCijD,EAAoC9P,GAAGqgD,UAAUj7F,KAAK2oP,eAAgB3uF,GAAW,CAClF,IAAI4uF,EAAK,IAAIX,EAAUjuF,EAAUvyJ,EAAK0J,MACtCy3O,EAAGt2I,OAAStyG,KAAKooP,eACjBQ,EAAGz+O,KAAO1C,EACVzH,KAAK6oP,SAASlkP,KAAKikP,GACnB5oP,KAAK2oP,eAAe3uF,GAAY4uF,EAChC5oP,KAAKooP,gBAAkBQ,EAAGz3O,IAC9B,CACJ,EAEAm3O,cAAe,WACU,MAAjBtoP,KAAK6oP,WACL7oP,KAAK6oP,SAAW,IAEO,MAAvB7oP,KAAK2oP,iBACL3oP,KAAK2oP,eAAiB,CAAC,GAE3B3oP,KAAK6oP,SAASlmP,OAAS,EACvB+nD,EAAoC9P,GAAG24H,UAAUvzK,KAAK2oP,gBACtD3oP,KAAKooP,eAAiB,CAC1B,EAEAU,aAAc,WACV,IAAI/3F,EAAY,IAAIm3F,EAA2Da,cAC/Eh4F,EAAUi4F,WAAa,EACvBj4F,EAAUk4F,4BAA4B,MAAO,kCAC7Cl4F,EAAUE,mBAAmB,eAC7BF,EAAUG,sBAAsB,aAAc,cAC9CH,EAAUE,mBAAmB,SAC7B,IAAI31G,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK6oP,UACnE,MAAOvtM,EAAOE,WAAY,CACtB,IAAI0tM,EAAQ5tM,EAAOI,QACnBq1G,EAAUE,mBAAmB,QAC7BF,EAAUG,sBAAsB,OAAQg4F,EAAMlvF,UAC9CjJ,EAAUG,sBAAsB,OAAQg4F,EAAM/3O,KAAKzH,YACnDqnJ,EAAUG,sBAAsB,SAAUg4F,EAAM52I,OAAO5oG,YACvDqnJ,EAAUgB,kBACd,CACAhB,EAAUgB,mBACVhB,EAAUo4F,uBACVp4F,EAAUq4F,SACV,IAAI3hP,EAAOspJ,EAAUjtJ,KACjBqG,EAAO,IAAII,KAAK,CAAC9C,IACjB4hP,EAAW3+L,EAAoC9P,GAAGvU,OAAO,WAAYl8B,EAAKgH,MAC9E1J,EAAOijD,EAAoC9P,GAAGq+C,cAAcxxF,EAAM,aAAc4hP,GAChFl/O,EAAO,IAAII,KAAK,CAAC9C,IACjB,IAAI6hP,EAAQ,GACZA,EAAM3kP,KAAKwF,GACX,IAAIg7G,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAK6oP,UAGnE,MAAO1jI,EAAO3pE,WAAY,CAClB0tM,EAAQ/jI,EAAOzpE,QACnB4tM,EAAM3kP,KAAKukP,EAAM/+O,KACrB,CACA,IAAIo/O,EAAU,IAAIh/O,KAAK++O,EAAO,CAAEh/O,KAAM,sBACtC,OAAOi/O,CACX,EAEAC,aAAc,WACV,IAAI7+H,EAAQ3qH,KAEZ,GAAkC,IAA9BA,KAAKo7F,SAAS3O,YACd+N,MAAMx6F,KAAKo7F,SAASX,oBACjB,GAAkC,IAA9Bz6F,KAAKo7F,SAAS3O,YAAmB,CACxCzsF,KAAKypP,UAAYzpP,KAAKo7F,SAAS+gD,UAC/B,IAAIC,EAAS,IAAI5uI,WACjB4uI,EAAO1uI,UAAY,SAAUxN,GACzB,IAAIoyG,EAASqY,EAAM++H,SAASttG,EAAO14I,QAC/Bg2J,EAAS,IAAIlsJ,WACjBksJ,EAAOhsJ,UAAY,SAAU0pJ,GACzB,IAAI3vJ,EAAOijD,EAAoC9P,GAAGw7G,SAASsD,EAAOh2J,OAAQ1B,QACtE8qM,EAAU,IAAIC,UAClBpiF,EAAMg/H,QAAQ78C,EAAQE,gBAAgBvlM,EAAM,YAAa6qG,GACzDqY,EAAM69H,SACV,EACA9uF,EAAO1qH,WAAW27E,EAAM8+H,UAAUpwO,MAAM,EAAGi5F,GAC/C,EACA8pC,EAAOptG,WAAWhvC,KAAKypP,UAAUpwO,MAAM,EAAG,KAC9C,CACJ,EAEAqwO,SAAU,SAAUjiP,GAChB,IAAIi/B,EAAQj/B,EAAKwR,QAAQ,MACzB,OAAe,IAAXytB,EACO,EAEJwjD,SAASziF,EAAK8hF,UAAU7iD,EAAOA,EAAQ,IAAK,GACvD,EAEAijN,QAAS,SAAUzmI,EAAK5Q,GACpB,IACI,IAAIs3I,EAAM7sJ,EAA0Cr6C,KAAKuoC,iBAAiBi4B,EAAK,eAC3E7zG,EAAQ0tF,EAA0Cr6C,KAAKuoC,iBAAiB2+J,EAAK,SACjF5pP,KAAK6oP,SAASlmP,OAAS,EACvB,IAAI24C,EAASoP,EAAoC9P,GAAGW,UAAUlsC,EAAM87E,YACpE,MAAO7vC,EAAOE,WAAY,CACtB,IAAI4vC,EAAQ9vC,EAAOI,QACnB,GAAuB,SAAnB0vC,EAAMC,SAAqB,CAC3B,IAAIu9J,EAAK,IAAIX,EAAU78J,EAAMk4B,WAAWC,aAAa,QAAQC,UAAWt5B,SAASkB,EAAMk4B,WAAWC,aAAa,QAAQC,YACvHolI,EAAGt2I,OAASA,EACZA,GAAUs2I,EAAGz3O,KACbnR,KAAK6oP,SAASlkP,KAAKikP,EACvB,CACJ,CACJ,CACA,MAAO/sJ,GACP,CACJ,EAEA+sE,YAAa,SAAU5O,GACnB,IAAI4uF,EAAK5oP,KAAK6pP,aAAa7vF,GAC3B,GAAU,MAAN4uF,EAAY,CACZ,IAAIkB,EAAM9vF,EAASnuE,OAAOmuE,EAASklB,YAAY,MAAM3wK,cACjDjE,EAAO,KACX,OAAQw/O,GACJ,IAAK,OACDx/O,EAAO,YACP,MACJ,IAAK,OACL,IAAK,QACDA,EAAO,aACP,MACJ,IAAK,OACDA,EAAO,cACP,MACJ,IAAK,OACDA,EAAO,aACP,MACJ,IAAK,OACL,IAAK,QACDA,EAAO,2BACP,MAER,OAAOtK,KAAKypP,UAAUpwO,MAAMuvO,EAAGt2I,OAAQs2I,EAAGt2I,OAASs2I,EAAGz3O,KAAM7G,EAChE,CACA,OAAO,IACX,EAEAu/O,aAAc,SAAU7vF,GACpB,IAAI1+G,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK6oP,UACnE,MAAOvtM,EAAOE,WAAY,CACtB,IAAI0tM,EAAQ5tM,EAAOI,QACnB,GAAIwtM,EAAMlvF,WAAaA,EACnB,OAAOkvF,CAEf,CACA,OAAO,IACX,EAEAa,eAAgB,WACZ,OAAI/pP,KAAK6oP,SAASlmP,OAAS,EAChB3C,KAAK6oP,SAAS,GAAG7uF,SAEjB,IAEf,EAEAgwF,eAAgB,WACZ,IAAI1uM,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK6oP,UACnE,MAAOvtM,EAAOE,WACEF,EAAOI,OAE3B,IAGJ,EAAGiP,EAA4CzS,cAAc,cAAe,CAAC8vM,EAAaS,EAAc,MAGjG,EAED;;;kCAIA,CAAE9pP,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC0qP,aAAc,IAAM,EACpBC,UAAW,IAAM,EACjBC,cAAe,IAAM,EACrBC,gBAAiB,IAAM,EACvBC,UAAW,IAAM,EACjBC,QAAS,IAAM,EACfC,cAAe,IAAM,EACrBC,aAAc,IAAM,EACpBC,UAAW,IAAM,EACjBC,YAAa,IAAM,IAErB,IAAIhgM,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FnW,EAA4C,uBAA0C,qBACtFgxD,EAAkD,6BAAgD,2BAClG+oG,EAAoD,+BAAkD,6BACtGo8C,EAAqD,gCAAmD,8BACxGC,EAA4C,uBAA0C,qBACtFC,EAAyC,oBAAuC,kBAChF30J,EAA+C,0BAA6C,wBAC5F40J,EAAyD,oCAAuD,kCAChHC,EAA6C,uBAA0C,qBACvFjjI,EAAyC,mBAAsC,iBAC/EkjI,EAAgD,yBAA4C,8BAuBjHT,EAAgB,CAChB7mN,IAAK,EACLwnK,OAAQ,IAGZ,EAAGvgJ,EAA4CzS,cAAc,gBAAiBqyM,IAC9E,EAAG5/L,EAA4C4jC,cAAc,gBAAiBg8J,GAK9E,IAAIL,EAAY,CACZe,MAAO,EACPC,MAAO,IAGX,EAAGvgM,EAA4CzS,cAAc,YAAagyM,IAC1E,EAAGv/L,EAA4C4jC,cAAc,YAAa27J,GAK1E,IAAIO,EAAY,CACZ1/C,OAAQ,EACRogD,SAAU,EACV7vG,KAAM,EACN8vG,MAAO,EACPC,MAAO,EACP90J,KAAM,EACN+0J,aAAc,IAGlB,EAAG3gM,EAA4CzS,cAAc,YAAauyM,IAC1E,EAAG9/L,EAA4C4jC,cAAc,YAAak8J,GAK1E,IAAIJ,EAAY,CACZkB,KAAM,EACNC,OAAQ,EACRxxE,KAAM,EACNyxE,WAAY,EACZC,KAAM,EACNC,MAAO,EACPtiK,IAAK,GAST,SAASihK,IACLtqP,KAAK4rP,WAAY,EACjB5rP,KAAK6rP,kBAAmB,EACxB7rP,KAAKy2F,MAAQ,GAIbz2F,KAAKiH,IAAMqjP,EAAQwB,UAAUpiP,WAC7B1J,KAAK+rP,OAAS,KACd/rP,KAAK+3F,KAAO,GACZ/3F,KAAKgsP,QAAU,GACfhsP,KAAKisP,YAAcz3M,EAA0CqwD,SAAS6H,eACtE1sG,KAAKksP,UAAY,EACjBlsP,KAAKmsP,UAAY,EACjBnsP,KAAKosP,WAAa,EAClBpsP,KAAK02F,OAAS,KACd12F,KAAKqsP,UAAW,EAChBrsP,KAAKssP,aAAe,EACpBtsP,KAAKusP,MAAQ,EACbvsP,KAAKwsP,MAAQ,EACbxsP,KAAKysP,YAAc,EACnBzsP,KAAK0sP,UAAY,IAAI7B,EAAuCzyM,MAC5Dp4C,KAAK2sP,UAAY,EACjB3sP,KAAK4sP,WAAa,EAClB5sP,KAAK6sP,kBAAoB,EACzB7sP,KAAK8sP,QAAU,EACf9sP,KAAK+sP,GAAK,EACV/sP,KAAKgtP,GAAK,EACVhtP,KAAKitP,OAAS,EACdjtP,KAAKktP,QAAU,EACfltP,KAAKqiL,OAASwoE,EAAuChzM,OAAOC,YAC5D93C,KAAK+0C,SAAW,GAChB/0C,KAAKmtP,eAAiB,EACtBntP,KAAKotP,gBAAkB,EACvBptP,KAAKi8G,QAAU,KACfj8G,KAAK45H,UAAY,KACjB55H,KAAKqtP,mBAAqB,CAC9B,EA3CA,EAAG1iM,EAA4CzS,cAAc,YAAamyM,IAC1E,EAAG1/L,EAA4C4jC,cAAc,YAAa87J,GA4C1EC,EAAQgD,cAAgB,EACxBhD,EAAQiD,gBAAkB,6BAC1BjD,EAAQwB,OAAS,MACjBxB,EAAQjzJ,GAAK,UAAY,IAEzBizJ,EAAQ3mI,SAAW,SAAU+pF,EAAO8/C,GAChC,GAA0B,MAAtBA,EAAQlqI,WACR,OAAO,KAEX,GAA+C,MAA3CkqI,EAAQlqI,WAAWC,aAAa,QAChC,OAAO,KAEX,IAAIkqI,EAAmBD,EAAQlqI,WAAWC,aAAa,QAAQC,UAC3D2/C,EAAcz4G,EAAoC9P,GAAGq+C,cAAcw0J,EAAkB,eAAgB,IACrGC,EAAa,KACjB,OAAQvqF,GACJ,IAAK,eACDuqF,EAAa,IAAIzD,EACjB,MACJ,IAAK,gBACDyD,EAAa,IAAIvD,EACjB,MACJ,IAAK,kBACDuD,EAAa,IAAItD,EACjB,MACJ,IAAK,eACDsD,EAAa,IAAIlD,EACjB,MACJ,IAAK,cACDkD,EAAa,IAAIhD,EACjB,MACJ,QACI,OAAO,KAIf,OAFAgD,EAAW3B,OAASr+C,EACpBggD,EAAWC,oBAAoBH,GACxBE,CACX,EAEA,IAAIE,EAAW,CACXtsO,SAAU,WACN,OAAOthB,KAAKy2F,KAChB,EAEAl1E,SAAU,SAAU3gB,GAEhB,OADAZ,KAAKy2F,MAAQ71F,EACNA,CACX,EAEAitP,UAAW,WACP,OAAO7tP,KAAK+rP,MAChB,EAEA+B,UAAW,SAAUltP,GAEjB,OADAZ,KAAK+rP,OAASnrP,EACPA,CACX,EAEAmtP,WAAY,WACR,IAAIhoN,EAAQ,EACRuV,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK+rP,OAAOiC,gBAC1E,MAAO1yM,EAAOE,WAAY,CACtB,IAAIt0C,EAAOo0C,EAAOI,QAClB,GAAIx0C,IAASlH,KACT,MAEJ+lC,GACJ,CACA,OAAOA,CACX,EAEA4B,QAAS,WACL,OAAO3nC,KAAK+3F,IAChB,EAEAsuB,QAAS,SAAUzlH,GAEf,OADAZ,KAAK+3F,KAAOn3F,EACLA,CACX,EAEAqtP,WAAY,WACR,OAAOjuP,KAAKgsP,OAChB,EAEAkC,WAAY,SAAUttP,GAElB,OADAZ,KAAKgsP,QAAUprP,EACRA,CACX,EAEAwtC,KAAM,WAAc,EAEpB+/M,MAAO,WAAc,EAErBnyO,KAAM,WAAc,EAEpBoyO,KAAM,SAAUx4O,GAAQ,EAExBy4O,aAAc,SAAU19F,EAASC,EAAStkD,EAASC,EAASzd,GACxD6hE,GAAW,IACXC,GAAW,IACX,IAAI9yD,EAAQtpD,EAA0CwE,SAAS72C,OAAOwuJ,EAAUrkD,EAASskD,EAAUrkD,EAAS,MAS5G,OARMvsG,KAAKksP,WAAelsP,KAAKmsP,WAAansP,KAAKosP,aAAet9J,KAC5D9uF,KAAKksP,UAAYv7F,EACjB3wJ,KAAKmsP,UAAYv7F,EACjB5wJ,KAAKisP,YAAcz3M,EAA0CqwD,SAASmM,YAAYx8D,EAA0CwE,SAAS72C,QAAQwuJ,GAAUC,EAAS,IAChK5wJ,KAAKisP,YAAYp6I,UAAUr9D,EAA0CqwD,SAASiL,WAAYhhB,EAAQ,IAAMxpF,KAAK8Z,KAC7Gpf,KAAKisP,YAAYp6I,UAAUr9D,EAA0CqwD,SAASmM,YAAYx8D,EAA0CwE,SAAS72C,OAAOwuJ,EAASC,EAAS,MAE1K9yD,EAAQtpD,EAA0CwE,SAAS4kD,qBAAqBE,EAAO99F,KAAKisP,aACrFnuJ,CACX,EAEAsmD,OAAQ,SAAUniH,EAAeqsN,GACzB9oJ,EAAgDktH,SAC5B,MAAhB1yN,KAAKi8G,SAAmBj8G,KAAK4rP,YAC7B5rP,KAAKuuP,oBAEJvuP,KAAK6rP,mBAAoByC,IAC1BtuP,KAAKwuP,qBACLxuP,KAAKyuP,kBAIjB,EAEA7oH,QAAS,WACe,MAAhB5lI,KAAKi8G,UACLj8G,KAAKi8G,QAAU,MAEnBj8G,KAAK45H,UAAY,IACrB,EAEA20H,kBAAmB,WAAc,EAYjCG,eAAgB,WAAc,EAE9BC,gBAAiB,WACb3uP,KAAKotP,gBAAkB,EACvBptP,KAAK02F,OAAS,IAClB,EAEA83J,mBAAoB,WACG,MAAfxuP,KAAK02F,SACL12F,KAAKotP,gBAAkB,EACvBptP,KAAK02F,OAAS,IAAI70F,MAAM,GACxB7B,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,SAAU7uP,KAAK6lK,YAAc,GAAI7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC5H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,QAAS7uP,KAAK6lK,YAAc,GAAI7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC3H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,SAAU7uP,KAAK6lK,YAAc,EAAG7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC3H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,QAAS7uP,KAAK6lK,YAAc,EAAG7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC1H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAEpC,EAEAiuO,eAAgB,WAAc,EAI9BM,YAAa,WACT,OAAO/uP,KAAKqsP,QAChB,EAEA2C,YAAa,SAAUpuP,GAuBnB,OAtBIZ,KAAKqsP,WAAazrP,IAClBZ,KAAKqsP,SAAWzrP,EACZZ,KAAKqsP,UACLrsP,KAAKusP,MAAQvsP,KAAK+sP,GAClB/sP,KAAKwsP,MAAQxsP,KAAKgtP,GAClBhtP,KAAK6sP,kBAAoB7sP,KAAKmtP,eAC9BntP,KAAK0sP,UAAY1sP,KAAKqiL,OACtBriL,KAAK2sP,UAAY3sP,KAAKitP,OACtBjtP,KAAK4sP,WAAa5sP,KAAKktP,QACvBltP,KAAK2uP,oBAGL3uP,KAAKusP,MAAQvsP,KAAK+sP,GAAK/sP,KAAK4uP,QAC5B5uP,KAAKwsP,MAAQxsP,KAAKgtP,GAAKhtP,KAAK6uP,QAC5B7uP,KAAK6sP,kBAAoB7sP,KAAKmtP,eAAiBntP,KAAK8uP,oBACpD9uP,KAAK0sP,UAAY1sP,KAAKqiL,OAASriL,KAAKwgB,YACpCxgB,KAAK2sP,UAAY3sP,KAAKitP,OAASjtP,KAAK6lK,YACpC7lK,KAAK4sP,WAAa5sP,KAAKktP,QAAUltP,KAAK0rO,aACtC1rO,KAAK2uP,kBACL3uP,KAAKssP,aAAe,IAGrB1rP,CACX,EAEAquP,gBAAiB,WACb,OAAOjvP,KAAKssP,YAChB,EAEA4C,gBAAiB,SAAUtuP,GASvB,OARKZ,KAAKqsP,SAGFrsP,KAAKssP,eAAiB1rP,IACtBZ,KAAKssP,aAAe1rP,EACpBZ,KAAK2uP,mBAJT3uP,KAAKssP,aAAe,EAOjB1rP,CACX,EAEAuuP,WAAY,WACR,OAAOnvP,KAAK8sP,OAChB,EAEAsC,WAAY,SAAUxuP,GAElB,OADAZ,KAAK8sP,QAAUlsP,EACRA,CACX,EAEA2mG,aAAc,WACV,OAAO/yD,EAA0CqrD,SAAS19F,OAAOnC,KAAK4uP,QAAS5uP,KAAK6uP,QACxF,EAEArnJ,aAAc,SAAU5mG,GAGpB,OAFAZ,KAAKqvP,MAAMzuP,EAAMmqC,GACjB/qC,KAAKsvP,MAAM1uP,EAAMoD,GACVpD,CACX,EAEAguP,MAAO,WACH,OAAQ5uP,KAAK+sP,IAAM,EAAI/sP,KAAKssP,cAAkBtsP,KAAKusP,MAAQvsP,KAAKssP,YACpE,EAEA+C,MAAO,SAAUzuP,GAYb,OAXIZ,KAAKssP,aAAe,GAChBtsP,KAAK+sP,KAAOnsP,IACZZ,KAAK+sP,GAAKnsP,EACVZ,KAAK2uP,mBAGL3uP,KAAKusP,QAAU3rP,IACfZ,KAAKusP,MAAQ3rP,EACbZ,KAAK2uP,mBAGN/tP,CACX,EAEAiuP,MAAO,WACH,OAAQ7uP,KAAKgtP,IAAM,EAAIhtP,KAAKssP,cAAkBtsP,KAAKwsP,MAAQxsP,KAAKssP,YACpE,EAEAgD,MAAO,SAAU1uP,GAYb,OAXIZ,KAAKssP,aAAe,GAChBtsP,KAAKgtP,KAAOpsP,IACZZ,KAAKgtP,GAAKpsP,EACVZ,KAAK2uP,mBAGL3uP,KAAKwsP,QAAU5rP,IACfZ,KAAKwsP,MAAQ5rP,EACbZ,KAAK2uP,mBAGN/tP,CACX,EAEAilK,UAAW,WACP,OAAQ7lK,KAAKitP,QAAU,EAAIjtP,KAAKssP,cAAkBtsP,KAAK2sP,UAAY3sP,KAAKssP,YAC5E,EAEAxmF,UAAW,SAAUllK,GAejB,OAdIA,EAAQ,GAAOA,IACfA,EAAQ,GAERZ,KAAKssP,aAAe,GAChBtsP,KAAKitP,SAAWrsP,IAChBZ,KAAKitP,OAASrsP,EACdZ,KAAK2uP,mBAGL3uP,KAAK2sP,YAAc/rP,IACnBZ,KAAK2sP,UAAY/rP,EACjBZ,KAAK2uP,mBAGN/tP,CACX,EAEA8qO,WAAY,WACR,OAAQ1rO,KAAKktP,SAAW,EAAIltP,KAAKssP,cAAkBtsP,KAAK4sP,WAAa5sP,KAAKssP,YAC9E,EAEAiD,WAAY,SAAU3uP,GAelB,OAdIA,EAAQ,GAAOA,IACfA,EAAQ,GAERZ,KAAKssP,aAAe,GAChBtsP,KAAKktP,UAAYtsP,IACjBZ,KAAKktP,QAAUtsP,EACfZ,KAAK2uP,mBAGL3uP,KAAK4sP,aAAehsP,IACpBZ,KAAK4sP,WAAahsP,EAClBZ,KAAK2uP,mBAGN/tP,CACX,EAEA4f,UAAW,WACP,IAAIgvO,EAAM9kM,EAAoC9P,GAAGyG,SAAWrhD,KAAKqiL,OAAO5hL,GAAK,EAAIT,KAAKssP,cAAkBtsP,KAAK0sP,UAAUjsP,EAAIT,KAAKssP,cAC5HmD,EAAQ/kM,EAAoC9P,GAAGyG,SAAWrhD,KAAKqiL,OAAOviL,GAAK,EAAIE,KAAKssP,cAAkBtsP,KAAK0sP,UAAU5sP,EAAIE,KAAKssP,cAC9HoD,EAAOhlM,EAAoC9P,GAAGyG,SAAWrhD,KAAKqiL,OAAO3gL,GAAK,EAAI1B,KAAKssP,cAAkBtsP,KAAK0sP,UAAUhrP,EAAI1B,KAAKssP,cAC7Hl/L,EAAQ1C,EAAoC9P,GAAGyG,SAAWrhD,KAAKqiL,OAAO91K,GAAK,EAAIvM,KAAKssP,cAAkBtsP,KAAK0sP,UAAUngP,EAAIvM,KAAKssP,cAClI,OAAOzB,EAAuCzyM,MAAMq4C,SAASnrF,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,IAAKn9B,IAAS9nD,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,IAAKilK,IAAOlqP,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,IAAKklK,IAASnqP,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,IAAKmlK,IAClM,EAEAjvO,UAAW,SAAU7f,GAYjB,OAXIZ,KAAKssP,aAAe,GAChBtsP,KAAKqiL,SAAWzhL,IAChBZ,KAAKqiL,OAASzhL,EACdZ,KAAK2uP,mBAGL3uP,KAAK0sP,YAAc9rP,IACnBZ,KAAK0sP,UAAY9rP,EACjBZ,KAAK2uP,mBAGN/tP,CACX,EAEA4gB,YAAa,WACT,OAAOxhB,KAAKwgB,YAAYjU,EAAI,GAChC,EAEAmV,YAAa,SAAU9gB,GACnB,IAAIi2C,EAAM72C,KAAKwgB,YAGf,OAFAxgB,KAAKygB,UAAUoqO,EAAuCzyM,MAAMq4C,SAASnrF,KAAKilF,IAAI,IAAK7/B,EAAoC9P,GAAGyG,SAAkB,IAARzgD,IAAgBi2C,EAAIp2C,EAAGo2C,EAAI/2C,EAAG+2C,EAAIn1C,IACtK1B,KAAK+0C,SAAWn0C,EACTA,CACX,EAEAkuP,kBAAmB,WACf,OAAQ9uP,KAAKmtP,gBAAkB,EAAIntP,KAAKssP,cAAkBtsP,KAAK6sP,kBAAoB7sP,KAAKssP,YAC5F,EAEAqD,kBAAmB,SAAU/uP,GAYzB,OAXIZ,KAAKssP,aAAe,GAChBtsP,KAAKmtP,iBAAmBvsP,IACxBZ,KAAKmtP,eAAiBvsP,EACtBZ,KAAK2uP,mBAGL3uP,KAAK6sP,oBAAsBjsP,IAC3BZ,KAAK6sP,kBAAoBjsP,EACzBZ,KAAK2uP,mBAGN/tP,CACX,EAEAu2C,QAAS,SAAUqtF,GACf,IAAIorH,EAAa,IAAI/tP,MAAM,GAC3B+tP,EAAW,GAAKp7M,EAA0CqrD,SAAS19F,OAAOqiI,EAAQz5F,EAAGy5F,EAAQxgI,GAC7F,IAAI25F,EAAMnpD,EAA0CowD,SAAS8Q,UAAU11G,KAAK8uP,oBAAsB,IAAMxpP,KAAK8Z,GAAIo1B,EAA0CqrD,SAAS19F,OAAOnC,KAAK4uP,QAAS5uP,KAAK6uP,UAC9LlxJ,EAAIoY,iBAAiB65I,GACrB,IAAI7iI,EAAOjF,EAAuC6E,UAAUxqH,OAAQnC,KAAK4uP,QAAW5uP,KAAK6lK,YAAc,EAAM7lK,KAAK6uP,QAAW7uP,KAAK0rO,aAAe,EAAK1rO,KAAK6lK,YAAa7lK,KAAK0rO,cAC7K,OAAO3+G,EAAK2kH,SAASke,EAAW,GACpC,EAEAtrI,WAAY,WACR,OAAOtkH,KAAKukH,OAChB,EAEAC,WAAY,SAAU5jH,GAElB,OADAZ,KAAKukH,QAAU3jH,EACRA,CACX,EAEAivP,sBAAuB,WACnB,OAAO7vP,KAAKqtP,kBAChB,EAEAyC,sBAAuB,SAAUlvP,GAE7B,OADAZ,KAAKqtP,mBAAqBzsP,EACnBA,CACX,EAEAkwJ,UAAW,SAAUC,EAAWg/F,GAC5Bh/F,EAAUE,mBAAmB,WAC7BF,EAAUG,sBAAsB,KAAMlxJ,KAAKiH,IAC3C8pJ,EAAUG,sBAAsB,OAAQlxJ,KAAKskK,eAC7CvT,EAAUG,sBAAsB,OAAQlxJ,KAAKshB,YAC7CyvI,EAAUG,sBAAsB,IAAKlxJ,KAAK+sP,GAAGrjP,YAC7CqnJ,EAAUG,sBAAsB,IAAKlxJ,KAAKgtP,GAAGtjP,YAC7CqnJ,EAAUG,sBAAsB,QAASlxJ,KAAKitP,OAAOvjP,YACrDqnJ,EAAUG,sBAAsB,SAAUlxJ,KAAKktP,QAAQxjP,YACvDqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAKmtP,eAAezjP,YAChEqnJ,EAAUG,sBAAsB,QAASlxJ,KAAKqiL,OAAOjoI,QACrD22G,EAAUG,sBAAsB,MAAOlxJ,KAAK+3F,MAC5Cg5D,EAAUG,sBAAsB,SAAUlxJ,KAAKgsP,SAC/Cj7F,EAAUG,sBAAsB,UAAWlxJ,KAAKqsP,SAAS3iP,YACrD1J,KAAKqsP,WACLt7F,EAAUG,sBAAsB,OAAQlxJ,KAAKusP,MAAM7iP,YACnDqnJ,EAAUG,sBAAsB,OAAQlxJ,KAAKwsP,MAAM9iP,YACnDqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAK2sP,UAAUjjP,YAC3DqnJ,EAAUG,sBAAsB,YAAalxJ,KAAK4sP,WAAWljP,YAC7DqnJ,EAAUG,sBAAsB,cAAelxJ,KAAK6sP,kBAAkBnjP,YACtEqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAK0sP,UAAUtyM,QAC3D22G,EAAUG,sBAAsB,oBAAqBvmG,EAA4C4kG,MAAM6B,MAAM,oBAAqBpxJ,KAAKqtP,sBAE3It8F,EAAUG,sBAAsB,SAAUvmG,EAA4C4kG,MAAM6B,MAAM,gBAAiBpxJ,KAAK8sP,UACxH9sP,KAAKgwP,uBAAuBj/F,GAC5BA,EAAUgB,kBACd,EAEAuS,YAAa,WACT,MAAO,qBACX,EAEAiD,kBAAmB,SAAUC,GAAM,EAEnCwoF,uBAAwB,SAAUj/F,GAAa,EAE/C48F,oBAAqB,SAAUjiP,GAC3B1L,KAAKiH,GAAKyE,EAAK43G,WAAWC,aAAa,MAAMC,UAC7CxjH,KAAKuhB,SAAS7V,EAAK43G,WAAWC,aAAa,QAAQC,WACnDxjH,KAAK+sP,GAAK5iK,WAAWz+E,EAAK43G,WAAWC,aAAa,KAAKC,WACvDxjH,KAAKgtP,GAAK7iK,WAAWz+E,EAAK43G,WAAWC,aAAa,KAAKC,WACvDxjH,KAAKitP,OAAS9iK,WAAWz+E,EAAK43G,WAAWC,aAAa,SAASC,WAC/DxjH,KAAKktP,QAAU/iK,WAAWz+E,EAAK43G,WAAWC,aAAa,UAAUC,WACjExjH,KAAKmtP,eAAiBhjK,WAAWz+E,EAAK43G,WAAWC,aAAa,YAAYC,WAC1ExjH,KAAKqiL,OAASwoE,EAAuCzyM,MAAMC,KAAK3sC,EAAK43G,WAAWC,aAAa,SAASC,WAC3D,MAAvC93G,EAAK43G,WAAWC,aAAa,QAC7BvjH,KAAKqmH,QAAQ36G,EAAK43G,WAAWC,aAAa,OAAOC,WAEP,MAA1C93G,EAAK43G,WAAWC,aAAa,WAC7BvjH,KAAKkuP,WAAWxiP,EAAK43G,WAAWC,aAAa,UAAUC,WAEZ,MAA3C93G,EAAK43G,WAAWC,aAAa,aAC7BvjH,KAAKqsP,SAAW3hM,EAAoC9P,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,WAAWC,WACnGxjH,KAAKqsP,WACLrsP,KAAKusP,MAAQpiK,WAAWz+E,EAAK43G,WAAWC,aAAa,QAAQC,WAC7DxjH,KAAKwsP,MAAQriK,WAAWz+E,EAAK43G,WAAWC,aAAa,QAAQC,WAC7DxjH,KAAK0sP,UAAY7B,EAAuCzyM,MAAMC,KAAK3sC,EAAK43G,WAAWC,aAAa,YAAYC,WAC5GxjH,KAAK2sP,UAAYxiK,WAAWz+E,EAAK43G,WAAWC,aAAa,YAAYC,WACrExjH,KAAK4sP,WAAaziK,WAAWz+E,EAAK43G,WAAWC,aAAa,aAAaC,WACvExjH,KAAK6sP,kBAAoB1iK,WAAWz+E,EAAK43G,WAAWC,aAAa,eAAeC,WACvB,MAArD93G,EAAK43G,WAAWC,aAAa,sBAC7BvjH,KAAK8vP,sBAAsBnlM,EAA4C4kG,MAAM5nJ,MAAM,oBAAqB+D,EAAK43G,WAAWC,aAAa,qBAAqBC,cAItKxjH,KAAKkmK,kBAAkBx6J,EAC3B,EAEAw6J,kBAAmB,SAAUx6J,GAAQ,EAErChC,SAAU,WACN,OAAO1J,KAAKshB,UAChB,GAOJ,SAAS6oO,IACLnqP,KAAKiwP,iBAAkB,EACvBjwP,KAAKkwP,UAAY,IAAIvF,EAAmDpnH,SACxE+mH,EAAQ9pP,KAAKR,KACjB,EARA,EAAG2qD,EAA4CzS,cAAc,UAAW,CAACoyM,EAASsD,EAAU,OAW5FzD,EAAchoP,OAAS,SAAUurM,EAAOp+L,GACpC,IAAIi9E,EAAO,IAAI49J,EAQf,OAPA59J,EAAKuhK,UAAUpgD,GAEfnhH,EAAKqvG,YAActsL,EAAK3E,KACxB4hF,EAAKhrE,SAASmsL,EAAMyiD,mBAAmB,UACvC5jK,EAAK8iK,MAAM,GACX9iK,EAAK+iK,MAAM,GACX5hD,EAAMmgD,YAAYuC,cAAc9gP,EAAK3E,KAAM2E,GACpCi9E,CACX,EAEA,IAAI8jK,EAAiB,CACjB/rF,YAAa,WACT,MAAO,2BACX,EAEAr7E,KAAM,SAAUykH,GACZ,IAAI4iD,EAAgB,IAAInG,EAWxB,OAVAmG,EAAcxC,UAAUpgD,GACxB4iD,EAAc10D,YAAc57L,KAAK47L,YACjC00D,EAAcjB,MAAMrvP,KAAK4uP,SACzB0B,EAAchB,MAAMtvP,KAAK6uP,SACzByB,EAAcxqF,UAAU9lK,KAAK6lK,aAC7ByqF,EAAcf,WAAWvvP,KAAK0rO,cAC9B4kB,EAAc7vO,UAAUzgB,KAAKwgB,aAC7B8vO,EAAc5uO,YAAY1hB,KAAKwhB,eAC/B8uO,EAAcX,kBAAkB3vP,KAAK8uP,qBACrCwB,EAAc/uO,SAASvhB,KAAKshB,WAAa,WAClCgvO,CACX,EAEA1qH,QAAS,WACL5lI,KAAKi8G,QAAU,KACO,MAAlBj8G,KAAK45H,YACL55H,KAAK45H,UAAUgM,UACf5lI,KAAK45H,UAAY,KAEzB,EAEA20H,kBAAmB,WACf,IAAI5jI,EAAQ3qH,KAEZ,IACQwlG,EAAgDktH,OAChD1yN,KAAK45H,UAAY55H,KAAK6tP,YAAYA,YAAY16D,mBAAmBnzL,KAAK47L,aACtE57L,KAAKiwP,iBAAkB,GAGvBjwP,KAAKi8G,QAAUj8G,KAAK6tP,YAAYA,YAAY0C,iBAAiBvwP,KAAK47L,aAAa,WAC3EjxE,EAAMslI,iBAAkB,CAC5B,GAER,CACA,MAAO17J,GACP,CACJ,EAEA6vD,OAAQ,SAAUniH,EAAeqsN,GAC7B,GAAI9oJ,EAAgDktH,MAC1B,MAAlB1yN,KAAK45H,WACL55H,KAAKuuP,oBAEJvuP,KAAK6lK,aAAgB7lK,KAAK0rO,eAC3B1rO,KAAK8lK,UAAU9lK,KAAK45H,UAAUoL,aAAa7+F,OAC3CnmC,KAAKuvP,WAAWvvP,KAAK45H,UAAUoL,aAAa5+F,SAEhDpmC,KAAKwuP,qBACLxuP,KAAKyuP,iBACLzuP,KAAKkwP,UAAUn6M,KAAK9T,EAAejiC,KAAK02F,OAAQ12F,KAAK02F,OAAO/zF,OAAQ3C,KAAK45H,WAAW,EAAM,OACvF,CAIH,GAHoB,MAAhB55H,KAAKi8G,SACLj8G,KAAKuuP,qBAEJvuP,KAAKiwP,gBACN,OAECjwP,KAAK6lK,aAAgB7lK,KAAK0rO,eAC3B1rO,KAAK8lK,UAAU9lK,KAAKi8G,QAAQ91E,OAC5BnmC,KAAKuvP,WAAWvvP,KAAKi8G,QAAQ71E,SAEjC,IAAIzyB,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0+F,UAAUryG,KAAK4uP,QAAS5uP,KAAK6uP,SACjCl7O,EAAI+1N,OAAO1pO,KAAK8uP,oBAAsBxE,EAAQjzJ,IAC9C1jF,EAAI0mC,YAAcr6C,KAAKwhB,cACvB7N,EAAIi5G,UAAU5sH,KAAKi8G,SAAUj8G,KAAK6lK,YAAc,GAAI7lK,KAAK0rO,aAAe,EAAG1rO,KAAK6lK,YAAa7lK,KAAK0rO,cAClG/3N,EAAIgnC,SACR,CACJ,EAEA4sH,kBAAmB,SAAUC,GACzBA,EAAGK,QAAQ7nK,KAAK6tP,YAAYA,YAAY2C,uBAAyBxwP,KAAK47L,YAAa57L,KAAK6tP,YAAYA,YAAYjlF,YAAY5oK,KAAK47L,aACrI,EAEAo0D,uBAAwB,SAAUj/F,GAC9BA,EAAUE,mBAAmB,UAC7BF,EAAUG,sBAAsB,WAAYlxJ,KAAK47L,aACjD7qC,EAAUgB,kBACd,EAEAmU,kBAAmB,SAAUx6J,GACzB,IAAI+kP,EAAS7F,EAA0CloM,KAAKuoC,iBAAiBv/E,EAAM,UACnF1L,KAAK47L,YAAc60D,EAAOntI,WAAWC,aAAa,YAAYC,SAClE,GAOJ,SAASknI,IACL1qP,KAAKkwP,UAAY,IAAIvF,EAAmDpnH,SACxEvjI,KAAK0wP,OAAS,KACd1wP,KAAK2wP,MAAQ,KACbrG,EAAQ9pP,KAAKR,KACjB,EATA,EAAG2qD,EAA4CzS,cAAc,gBAAiB,CAACiyM,EAAekG,EAAgB/F,IAW9GI,EAAYvoP,OAAS,SAAUipO,GAC3B,IAAIh8I,EAAK,IAAIs7J,EAGb,OAFAt7J,EAAGg8I,WAAaA,EAChBh8I,EAAGwhK,uBACIxhK,CACX,EAEA,IAAIyhK,EAAe,CACfvsF,YAAa,WACT,MAAO,yBACX,EAEA9jJ,UAAW,WACP,OAAO8pO,EAAQhqP,UAAUkgB,UAAUhgB,KAAKR,KAC5C,EAEAygB,UAAW,SAAU7f,GAMjB,OALIZ,KAAKorO,WAAW0lB,kBAAoBlwP,IACpCZ,KAAKorO,WAAW0lB,gBAAkBlwP,EAClC0pP,EAAQhqP,UAAUmgB,UAAUjgB,KAAKR,KAAMY,GACvCZ,KAAK4lI,WAEFhlI,CACX,EAEAwjJ,OAAQ,SAAUniH,EAAeqsN,GAC7B,GAAI9oJ,EAAgDktH,MAChD1yN,KAAKuuP,oBACLvuP,KAAKwuP,qBACLxuP,KAAKyuP,iBACLzuP,KAAKkwP,UAAUn6M,KAAK9T,EAAejiC,KAAK02F,OAAQ12F,KAAK02F,OAAO/zF,OAAQ3C,KAAK45H,WAAW,EAAM,OACvF,CACH,IAAIjmH,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0+F,UAAUryG,KAAK4uP,QAAS5uP,KAAK6uP,SACjCl7O,EAAI+1N,OAAO1pO,KAAK8uP,oBAAsBxE,EAAQjzJ,IAC9C1jF,EAAI0mC,YAAcr6C,KAAKwhB,cACvBxhB,KAAK+wP,kBAAkBp9O,GACvBA,EAAIgnC,SACR,CACJ,EACAo2M,kBAAmB,SAAUp9O,GACzBA,EAAI6mC,UAAYx6C,KAAKorO,WAAW0lB,gBAAgBpnP,WAChDiK,EAAIq5G,MAAShtH,KAAKorO,WAAiB,OAAI,SAAW,UAAY,KAAQprO,KAAKorO,WAAe,KAAI,OAAS,UAAY,IAAM9lO,KAAKu0C,MAAiC,IAA3B75C,KAAKorO,WAAWjB,UAAgBzgO,WAAa,MAAQ1J,KAAKorO,WAAW4lB,SACzMr9O,EAAIg2N,aAAe,MACnB,IAAIp6N,EAAOvP,KAAKorO,WAAW77N,KAC3B,GAAIA,EAAK0J,QAAQ,OAAS,EAAG,CACzB,GAAI1J,EAAK0J,QAAQ,YAAc,EAAG,CAC9B,IAAIi1C,EAAOxD,EAAoC9P,GAAGvU,OAAO,iBAAkBykN,EAAuDxtN,oBAAoB0P,WACtJz9B,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,UAAW2+C,EACjF,CACA,GAAI3+C,EAAK0J,QAAQ,YAAc,EAAG,CAC9B,IAAIrD,EAAO80C,EAAoC9P,GAAGvU,OAAO,eAAgBykN,EAAuDxtN,oBAAoB0P,WACpJz9B,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,UAAWqG,EACjF,CACArG,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,UAAWw7O,EAA2C1kG,QAAQ4qG,eAAezrJ,EAAgDolB,oBAAoB25F,kCACnNh1M,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,SAAU2mF,EAA6C19C,YAAYs+C,UAAU0O,EAAgDolB,oBAAoBh+E,WAAWmS,MAC9NxvC,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,SAAU2mF,EAA6C19C,YAAYs+C,UAAU0O,EAAgDolB,oBAAoBh+E,WAAWmS,MAC9NxvC,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,QAAS2mF,EAA6C19C,YAAYs+C,UAAU0O,EAAgDolB,oBAAoBh+E,WAAWwjD,WAC7N7gF,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,SAAU2mF,EAA6C19C,YAAYs+C,UAAU0O,EAAgDolB,oBAAoBh+E,WAAWyjD,YAC9N9gF,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,SAAU2mF,EAA6C19C,YAAYs+C,UAAU0O,EAAgDolB,oBAAoBxxB,gBACvN,CACA,IAAI1N,EAAQn8E,EAAK45E,MAAM,MACnB+nK,GAAalxP,KAAK0rO,aAAe,EACjCylB,EAAuC,IAA3BnxP,KAAKorO,WAAWjB,SAC5B7uL,EAASoP,EAAoC9P,GAAGW,UAAUmwC,GAC9D,MAAOpwC,EAAOE,WAAY,CACtB,IAAI+6C,EAAOj7C,EAAOI,QACd0tC,EAAQwhK,EAA0CloM,KAAK+oC,eAAe93E,EAAK4iF,EAAMv2F,KAAK6lK,aACtF1gD,EAASz6D,EAAoC9P,GAAGW,UAAU6tC,GAC9D,MAAO+7B,EAAO3pE,WAAY,CACtB,IAAIogE,EAAOuJ,EAAOzpE,QAClB/nC,EAAIs5G,SAASrR,GAAO57G,KAAK6lK,YAAc,EAAGqrF,GAC1CA,GAAYC,CAChB,CACJ,CACJ,EACAP,qBAAsB,WACC,MAAf5wP,KAAK0wP,QAAgC,MAAd1wP,KAAK2wP,QAC5B3wP,KAAK2wP,MAAQrvP,SAASkL,cAAc,UACpCxM,KAAK2wP,MAAMvqN,OAAS,IACpBpmC,KAAK2wP,MAAMxqN,MAAQ,IACnBnmC,KAAK0wP,OAAS1wP,KAAK2wP,MAAMrkI,WAAW,OAExCtsH,KAAK0wP,OAAOl2M,UAAYx6C,KAAKorO,WAAW0lB,gBAAgBpnP,WACxD1J,KAAK0wP,OAAO1jI,MAAShtH,KAAKorO,WAAiB,OAAI,SAAW,UAAY,KAAQprO,KAAKorO,WAAe,KAAI,OAAS,UAAY,IAAM9lO,KAAKu0C,MAAiC,IAA3B75C,KAAKorO,WAAWjB,UAAgBzgO,WAAa,MAAQ1J,KAAKorO,WAAW4lB,SACjNhxP,KAAK0wP,OAAO/mB,aAAe,MAC3B,IAAIp6N,EAAOvP,KAAKorO,WAAW77N,KAC3B,GAAIA,EAAK0J,QAAQ,OAAS,EAAG,CACzB,GAAI1J,EAAK0J,QAAQ,YAAc,EAAG,CAC9B,IAAIi1C,EAAOxD,EAAoC9P,GAAGvU,OAAO,iBAAkBykN,EAAuDxtN,oBAAoB0P,WACtJz9B,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,UAAW2+C,EACjF,CACA,GAAI3+C,EAAK0J,QAAQ,YAAc,EAAG,CAC9B,IAAIrD,EAAO80C,EAAoC9P,GAAGvU,OAAO,eAAgBykN,EAAuDxtN,oBAAoB0P,WACpJz9B,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,UAAWqG,EACjF,CACArG,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,UAAWw7O,EAA2C1kG,QAAQ4qG,eAAezrJ,EAAgDolB,oBAAoB25F,kCACnNh1M,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,SAAU2mF,EAA6C19C,YAAYs+C,UAAU0O,EAAgDolB,oBAAoBh+E,WAAWmS,MAC9NxvC,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,SAAU2mF,EAA6C19C,YAAYs+C,UAAU0O,EAAgDolB,oBAAoBh+E,WAAWmS,MAC9NxvC,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,QAAS2mF,EAA6C19C,YAAYs+C,UAAU0O,EAAgDolB,oBAAoBh+E,WAAWwjD,WAC7N7gF,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,SAAU2mF,EAA6C19C,YAAYs+C,UAAU0O,EAAgDolB,oBAAoBh+E,WAAWyjD,YAC9N9gF,EAAOm7C,EAAoC9P,GAAGq+C,cAAc1pF,EAAM,SAAU2mF,EAA6C19C,YAAYs+C,UAAU0O,EAAgDolB,oBAAoBxxB,gBACvN,CACA,IAAI1N,EAAQn8E,EAAK45E,MAAM,MACnB+nK,EAAW,EACXC,EAAuC,IAA3BnxP,KAAKorO,WAAWjB,SAC5BinB,EAAW,EACX91M,EAASoP,EAAoC9P,GAAGW,UAAUmwC,GAC9D,MAAOpwC,EAAOE,WAAY,CACtB,IAAI+6C,EAAOj7C,EAAOI,QACdvV,EAAQnmC,KAAK0wP,OAAO7mB,YAAYtzI,GAAMpwD,MAC1CirN,EAAW9rP,KAAKC,IAAI4gC,EAAOirN,GAC3BF,GAAYC,CAChB,CAGAnxP,KAAK8lK,UAAqB,KAAXsrF,GACfpxP,KAAKuvP,WAAW2B,GAChBlxP,KAAK2wP,MAAQ,KACb3wP,KAAK0wP,OAAS,IAClB,EAEAnC,kBAAmB,YACO,MAAlBvuP,KAAK45H,WAAsB55H,KAAKorO,WAAW77N,KAAK0J,QAAQ,OAAS,KAC5DjZ,KAAK0rO,cAAiB1rO,KAAK6lK,aAC5B7lK,KAAK4wP,uBAEU,MAAf5wP,KAAK0wP,QAAgC,MAAd1wP,KAAK2wP,QAC5B3wP,KAAK2wP,MAAQrvP,SAASkL,cAAc,UACpCxM,KAAK2wP,MAAMvqN,OAASskB,EAAoC9P,GAAGyG,SAASrhD,KAAK0rO,cACzE1rO,KAAK2wP,MAAMxqN,MAAQukB,EAAoC9P,GAAGyG,SAASrhD,KAAK6lK,aACxE7lK,KAAK0wP,OAAS1wP,KAAK2wP,MAAMrkI,WAAW,OAExCtsH,KAAK0wP,OAAOr+I,UAAUryG,KAAK6lK,YAAc,EAAG7lK,KAAK0rO,aAAe,GAChE1rO,KAAK0wP,OAAOnzF,UAAU,EAAG,EAAGv9J,KAAK6lK,YAAa7lK,KAAK0rO,cACnD1rO,KAAK+wP,kBAAkB/wP,KAAK0wP,QAC5B1wP,KAAK45H,UAAY,IAAI20E,EAAkDl1E,QACvEr5H,KAAK45H,UAAUoL,aAAehlI,KAAK2wP,MACnC3wP,KAAK45H,UAAUmM,cACf/lI,KAAK2wP,MAAQ,KACb3wP,KAAK0wP,OAAS,KAEtB,EAEAV,uBAAwB,SAAUj/F,GAC9BA,EAAUE,mBAAmB,QAC7BjxJ,KAAKorO,WAAW5vB,WAAWzqD,GAC3BA,EAAUgB,kBACd,EAEAmU,kBAAmB,SAAUx6J,GACzB,IAAI6D,EAAOq7O,EAA0CloM,KAAKuoC,iBAAiBv/E,EAAM,QACjF1L,KAAKorO,WAAa4f,EAA8C7hB,WAAWxlH,SAASinI,EAA0CloM,KAAKuoC,iBAAiB17E,EAAM,cAC9J,EAEAi/O,mBAAoB,WACZhpJ,EAAgDktH,OAChD43B,EAAQhqP,UAAUkuP,mBAAmBhuP,KAAKR,KAElD,GAOJ,SAASwqP,IACLxqP,KAAKqxP,aAAe,EACpBrxP,KAAKkwP,UAAY,IAAIvF,EAAmDpnH,SACxEvjI,KAAKsxP,kBAAmB,EACxBhH,EAAQ9pP,KAAKR,KACjB,EATA,EAAG2qD,EAA4CzS,cAAc,cAAe,CAACwyM,EAAamG,EAAcvG,IAWxGE,EAAatvL,QAAU,SAAUq2L,EAAiBC,GAC9C,IAAIhE,EAAU,IAAIhD,EAGlB,OAFAgD,EAAQ6D,aAAeG,EACvBhE,EAAQM,UAAUyD,GACX/D,CACX,EAEA,IAAIiE,EAAgB,CAChBntF,YAAa,WACT,MAAO,0BACX,EAEAotF,cAAe,WACX,OAAO1xP,KAAKqxP,YAChB,EAEAM,cAAe,SAAU/wP,GAGrB,OAFAZ,KAAKqxP,aAAezwP,EACpBZ,KAAK2uP,kBACE/tP,CACX,EAEAwjJ,OAAQ,SAAUniH,EAAeqsN,GAC7B,GAAI9oJ,EAAgDktH,MAChD1yN,KAAKwuP,qBACLxuP,KAAKkwP,UAAUn6M,KAAK9T,EAAejiC,KAAK02F,OAAQ12F,KAAK02F,OAAO/zF,OAAQ,KAAM3C,KAAKsxP,iBAAkBtxP,KAAKwhB,oBAEtG,OAAQxhB,KAAKqxP,cACT,KAAK,EACDrxP,KAAK4xP,sBAAsB3vN,GAC3B,MACJ,KAAK,EACDjiC,KAAK6xP,oBAAoB5vN,GACzB,MACJ,KAAK,EACDjiC,KAAK8xP,wBAAwB7vN,GAC7B,MACJ,KAAK,EACDjiC,KAAK+xP,oBAAoB9vN,GACzB,MACJ,KAAK,EACDjiC,KAAKgyP,qBAAqB/vN,GAC1B,MACJ,KAAK,EACDjiC,KAAKiyP,qBAAqBhwN,GAC1B,MACJ,KAAK,EACDjiC,KAAKkyP,oBAAoBjwN,GACzB,MACJ,QACI,MAGhB,EAEAusN,mBAAoB,WAChB,GAAmB,MAAfxuP,KAAK02F,OACL,OAAQ12F,KAAKqxP,cACT,KAAK,EACDrxP,KAAKmyP,0BACL,MACJ,KAAK,EACD7H,EAAQhqP,UAAUkuP,mBAAmBhuP,KAAKR,MAC1C,MACJ,KAAK,EACDA,KAAKoyP,4BACL,MACJ,KAAK,EACDpyP,KAAKqyP,wBACL,MACJ,KAAK,EACDryP,KAAKsyP,yBACL,MACJ,KAAK,EACDtyP,KAAKuyP,yBACL,MACJ,KAAK,EACDvyP,KAAKwyP,wBACL,MACJ,QACI,MAGhB,EACAA,sBAAuB,WACLxyP,KAAK4uP,QACL5uP,KAAK6uP,QACN7uP,KAAK6lK,YAFlB,IAGIljK,EAAS3C,KAAK6lK,YACdtsH,EAAWmR,EAAoC9P,GAAGyG,SAAU1+C,EAAS,IAAO,EACvD2C,KAAK8Z,GACX,MAAfpf,KAAK02F,SACL12F,KAAK02F,OAAS,IAAI70F,MAAiB,EAAX03C,EAAe,IAE3C,IAAK,IAAIG,EAAI,EAAGA,GAAKH,EAAUG,IAAK,CAChC,IAAIl3C,EAAQ,EAAJk3C,EACR15C,KAAK02F,OAAOl0F,GAAK,IAAIgyC,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAOl0F,GAAGujG,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,QAAWn1M,EAAIH,EAAYv5C,KAAK6lK,YAAe7lK,KAAK6lK,YAAc,EAAK,EAAG7lK,KAAK8uP,qBAC9I9uP,KAAK02F,OAAOl0F,GAAGqjG,GAAMnsD,EAAI,EACzB15C,KAAK02F,OAAOl0F,GAAGsjG,GAAK,EACpB9lG,KAAK02F,OAAOl0F,GAAGqQ,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAOl0F,EAAI,GAAK,IAAIgyC,EAA0CwwD,wBACnEhlG,KAAK02F,OAAOl0F,EAAI,GAAGujG,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,QAAWn1M,EAAIH,EAAYv5C,KAAK6lK,YAAe7lK,KAAK6lK,YAAc,GAAM,EAAG7lK,KAAK8uP,qBACnJ9uP,KAAK02F,OAAOl0F,EAAI,GAAGqjG,GAAMnsD,EAAI,EAC7B15C,KAAK02F,OAAOl0F,EAAI,GAAGsjG,GAAK,EACxB9lG,KAAK02F,OAAOl0F,EAAI,GAAGqQ,MAAQ7S,KAAKwgB,WACpC,CACJ,EACA4xO,0BAA2B,WACvB,IAAIzhG,EAAU3wJ,KAAK4uP,QACfh+F,EAAU5wJ,KAAK6uP,QAEflsP,GADS3C,KAAK6lK,YACL7lK,KAAK6lK,aACdtsH,EAAWmR,EAAoC9P,GAAGyG,SAAU1+C,EAAS,IAAO,EAC5E8vP,EAAe/nM,EAAoC9P,GAAGyG,SAAUrhD,KAAK0rO,aAAe,IAAO,EAC3FgnB,EAAkE,GAAjC,GAAhBn5M,EAAW,GAAgC,GAApBk5M,EAAe,IACxC,MAAfzyP,KAAK02F,SACL12F,KAAK02F,OAAS,IAAI70F,MAAM6wP,IAE5B,IAAK,IAAIh5M,EAAI,EAAGA,GAAKH,EAAUG,IAAK,CAChC,IAAIl3C,EAAQ,EAAJk3C,EACR15C,KAAK02F,OAAOl0F,GAAK,IAAIgyC,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAOl0F,GAAGujG,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAUl3G,EAAIH,EAAYv5C,KAAK6lK,YAAe7lK,KAAK6lK,YAAc,EAAK7lK,KAAK0rO,aAAe,EAAI1rO,KAAK8uP,qBACxJ9uP,KAAK02F,OAAOl0F,GAAGqjG,GAAMnsD,EAAI,EACzB15C,KAAK02F,OAAOl0F,GAAGsjG,GAAK,EACpB9lG,KAAK02F,OAAOl0F,GAAGqQ,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAOl0F,EAAI,GAAK,IAAIgyC,EAA0CwwD,wBACnEhlG,KAAK02F,OAAOl0F,EAAI,GAAGujG,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAUl3G,EAAIH,EAAYv5C,KAAK6lK,YAAe7lK,KAAK6lK,YAAc,EAAM7lK,KAAK0rO,aAAe,EAAK,GAAK1rO,KAAK8uP,qBACnK9uP,KAAK02F,OAAOl0F,EAAI,GAAGqjG,GAAMnsD,EAAI,EAC7B15C,KAAK02F,OAAOl0F,EAAI,GAAGsjG,GAAK,EACxB9lG,KAAK02F,OAAOl0F,EAAI,GAAGqQ,MAAQ7S,KAAKwgB,YAChC,IAAIylC,EAAuB,GAAhB1M,EAAW,GAAgC,GAApBk5M,EAAe,GAAU,EAAKjwP,EAChExC,KAAK02F,OAAOzwC,GAAK,IAAIzR,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAOzwC,GAAG8/C,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAUl3G,EAAIH,EAAYv5C,KAAK6lK,YAAe7lK,KAAK6lK,YAAc,GAAO7lK,KAAK0rO,aAAe,EAAM,GAAI1rO,KAAK8uP,qBAChK9uP,KAAK02F,OAAOzwC,GAAG4/C,GAAMnsD,EAAI,EACzB15C,KAAK02F,OAAOzwC,GAAG6/C,GAAK,EACpB9lG,KAAK02F,OAAOzwC,GAAGpzC,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAOzwC,EAAI,GAAK,IAAIzR,EAA0CwwD,wBACnEhlG,KAAK02F,OAAOzwC,EAAI,GAAG8/C,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAUl3G,EAAIH,EAAYv5C,KAAK6lK,YAAe7lK,KAAK6lK,YAAc,GAAO7lK,KAAK0rO,aAAe,EAAK1rO,KAAK8uP,qBAC/J9uP,KAAK02F,OAAOzwC,EAAI,GAAG4/C,GAAMnsD,EAAI,EAC7B15C,KAAK02F,OAAOzwC,EAAI,GAAG6/C,GAAK,EACxB9lG,KAAK02F,OAAOzwC,EAAI,GAAGpzC,MAAQ7S,KAAKwgB,WACpC,CACA,IAAI8xF,EAA2B,GAAhB/4D,EAAW,GAC1B,IAASG,EAAI,EAAGA,GAAK+4M,EAAc/4M,IAAK,CACpC,IAAIksD,EAA4B,GAApB6sJ,EAAe,GAAUngJ,EAAS,EAC1C9vG,EAAQ,EAAJk3C,EACR15C,KAAK02F,OAAOkP,EAAMpjG,GAAK,IAAIgyC,EAA0CwwD,wBACrEhlG,KAAK02F,OAAOkP,EAAMpjG,GAAGujG,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAU5wJ,KAAK6lK,YAAc,EAAMnsH,EAAI+4M,EAAgBzyP,KAAK0rO,aAAgB1rO,KAAK0rO,aAAe,EAAK1rO,KAAK8uP,qBACrK9uP,KAAK02F,OAAOkP,EAAMpjG,GAAGqjG,GAAMnsD,EAAI,EAC/B15C,KAAK02F,OAAOkP,EAAMpjG,GAAGsjG,GAAK,EAC1B9lG,KAAK02F,OAAOkP,EAAMpjG,GAAGqQ,MAAQ7S,KAAKwgB,YAClCxgB,KAAK02F,OAAOkP,EAAMpjG,EAAI,GAAK,IAAIgyC,EAA0CwwD,wBACzEhlG,KAAK02F,OAAOkP,EAAMpjG,EAAI,GAAGujG,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAW5wJ,KAAK6lK,YAAc,EAAK,GAAOnsH,EAAI+4M,EAAgBzyP,KAAK0rO,aAAgB1rO,KAAK0rO,aAAe,EAAK1rO,KAAK8uP,qBAChL9uP,KAAK02F,OAAOkP,EAAMpjG,EAAI,GAAGqjG,GAAMnsD,EAAI,EACnC15C,KAAK02F,OAAOkP,EAAMpjG,EAAI,GAAGsjG,GAAK,EAC9B9lG,KAAK02F,OAAOkP,EAAMpjG,EAAI,GAAGqQ,MAAQ7S,KAAKwgB,YAClCylC,EAAIzjD,EAAsB,GAAhB+2C,EAAW,GAAgC,GAApBk5M,EAAe,GACpDzyP,KAAK02F,OAAOzwC,GAAK,IAAIzR,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAOzwC,GAAG8/C,SAAW/lG,KAAKquP,aAAa19F,EAASC,GAAY5wJ,KAAK6lK,YAAc,EAAK,GAAOnsH,EAAI+4M,EAAgBzyP,KAAK0rO,aAAgB1rO,KAAK0rO,aAAe,EAAK1rO,KAAK8uP,qBACvK9uP,KAAK02F,OAAOzwC,GAAG4/C,GAAMnsD,EAAI,EACzB15C,KAAK02F,OAAOzwC,GAAG6/C,GAAK,EACpB9lG,KAAK02F,OAAOzwC,GAAGpzC,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAOzwC,EAAI,GAAK,IAAIzR,EAA0CwwD,wBACnEhlG,KAAK02F,OAAOzwC,EAAI,GAAG8/C,SAAW/lG,KAAKquP,aAAa19F,EAASC,GAAY5wJ,KAAK6lK,YAAc,EAAOnsH,EAAI+4M,EAAgBzyP,KAAK0rO,aAAgB1rO,KAAK0rO,aAAe,EAAK1rO,KAAK8uP,qBACtK9uP,KAAK02F,OAAOzwC,EAAI,GAAG4/C,GAAMnsD,EAAI,EAC7B15C,KAAK02F,OAAOzwC,EAAI,GAAG6/C,GAAK,EACxB9lG,KAAK02F,OAAOzwC,EAAI,GAAGpzC,MAAQ7S,KAAKwgB,WACpC,CACJ,EACA6xO,sBAAuB,WACnB,IAAI1hG,EAAU3wJ,KAAK4uP,QACfh+F,EAAU5wJ,KAAK6uP,QAEfr1M,GADSx5C,KAAK6lK,YACiB,EAAVvgK,KAAK8Z,GAAU,GACrB,MAAfpf,KAAK02F,SACL12F,KAAK02F,OAAS,IAAI70F,MAAM,KAER,MAAhB7B,KAAK2yP,UACL3yP,KAAK2yP,QAAU,IAAI9wP,MAAM,KAE7B,IAAK,IAAIW,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAIowP,EAAOpwP,EAAIg3C,EAAqBl0C,KAAK8Z,GAAK,EAC9Cpf,KAAK2yP,QAAQnwP,GAAK,IAAIgyC,EAA0CwwD,wBAChEhlG,KAAK2yP,QAAQnwP,GAAGujG,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAUtrJ,KAAKgxC,IAAIs8M,IAAS5yP,KAAK6lK,YAAc,GAAMvgK,KAAKixC,IAAIq8M,IAAS5yP,KAAK0rO,aAAe,GAAK1rO,KAAK8uP,qBAC3J9uP,KAAK2yP,QAAQnwP,GAAGqjG,GAAK,EACrB7lG,KAAK2yP,QAAQnwP,GAAGsjG,GAAK,EACrB9lG,KAAK2yP,QAAQnwP,GAAGqQ,MAAQ7S,KAAKwgB,WACjC,CACA,IAAShe,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACrBowP,EAAOpwP,EAAIg3C,EAAqBA,EAAoB,EAAMl0C,KAAK8Z,GAAK,EACxEpf,KAAK2yP,QAAQnwP,GAAK,IAAIgyC,EAA0CwwD,wBAChEhlG,KAAK2yP,QAAQnwP,GAAGujG,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAUtrJ,KAAKgxC,IAAIs8M,IAAS5yP,KAAK6lK,YAAc,KAAQvgK,KAAKixC,IAAIq8M,IAAS5yP,KAAK0rO,aAAe,KAAO1rO,KAAK8uP,qBAC/J9uP,KAAK2yP,QAAQnwP,GAAGqjG,GAAK,EACrB7lG,KAAK2yP,QAAQnwP,GAAGsjG,GAAK,EACrB9lG,KAAK2yP,QAAQnwP,GAAGqQ,MAAQ7S,KAAKwgB,WACjC,CACAxgB,KAAK02F,OAAO,GAAK12F,KAAK2yP,QAAQ,GAC9B3yP,KAAK02F,OAAO,GAAK12F,KAAK2yP,QAAQ,GAC9B3yP,KAAK02F,OAAO,GAAK12F,KAAK2yP,QAAQ,GAC9B3yP,KAAK02F,OAAO,GAAK12F,KAAK2yP,QAAQ,GAC9B3yP,KAAK02F,OAAO,GAAK12F,KAAK2yP,QAAQ,GAC9B3yP,KAAK02F,OAAO,GAAK12F,KAAK2yP,QAAQ,GAC9B3yP,KAAK02F,OAAO,GAAK12F,KAAK2yP,QAAQ,GAC9B3yP,KAAK02F,OAAO,GAAK12F,KAAK2yP,QAAQ,GAC9B3yP,KAAK02F,OAAO,GAAK12F,KAAK2yP,QAAQ,GAC9B3yP,KAAK02F,OAAO,GAAK12F,KAAK2yP,QAAQ,GAC9B3yP,KAAK02F,OAAO,IAAM12F,KAAK2yP,QAAQ,GAC/B3yP,KAAK02F,OAAO,IAAM12F,KAAK2yP,QAAQ,GAC/B3yP,KAAKsxP,kBAAmB,CAC5B,EACAiB,uBAAwB,WACD,MAAfvyP,KAAK02F,SACL12F,KAAK02F,OAAS,IAAI70F,MAAM,IAE5B7B,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,SAAU7uP,KAAK6lK,YAAc,GAAI7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC5H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,QAAS7uP,KAAK6lK,YAAc,GAAI7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC3H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,SAAU7uP,KAAK6lK,YAAc,EAAG7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC3H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,QAAS7uP,KAAK6lK,YAAc,GAAI7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC3H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,SAAU7uP,KAAK6lK,YAAc,EAAG7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC3H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,QAAS7uP,KAAK6lK,YAAc,EAAG7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC1H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,QAAS7uP,KAAK6lK,YAAc,GAAI7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC3H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,QAAS7uP,KAAK6lK,YAAc,EAAG,EAAG7lK,KAAK8uP,qBACtG9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,GACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAO,GAAK,IAAIliD,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAO,GAAGqP,SAAW/lG,KAAKquP,aAAaruP,KAAK4uP,QAAS5uP,KAAK6uP,QAAS7uP,KAAK6lK,YAAc,EAAG7lK,KAAK0rO,aAAe,EAAG1rO,KAAK8uP,qBAC1H9uP,KAAK02F,OAAO,GAAGmP,GAAK,EACpB7lG,KAAK02F,OAAO,GAAGoP,GAAK,EACpB9lG,KAAK02F,OAAO,GAAG7jF,MAAQ7S,KAAKwgB,YAC5BxgB,KAAKsxP,kBAAmB,CAC5B,EACAgB,uBAAwB,WACpB,IAAI3hG,EAAU3wJ,KAAK4uP,QACfh+F,EAAU5wJ,KAAK6uP,QACf1gO,EAASnuB,KAAK6lK,YAAc,EAC5BgtF,EAA0B,EAAVvtP,KAAK8Z,GAAS+O,EAC9BorB,EAAWmR,EAAoC9P,GAAGyG,SAAUwxM,EAAgB,IAAO,EACnFr5M,EAA+B,EAAVl0C,KAAK8Z,GAAUm6B,EACrB,MAAfv5C,KAAK02F,SACL12F,KAAK02F,OAAS,IAAI70F,MAAiB,EAAX03C,EAAe,IAE3C,IAAK,IAAIG,EAAI,EAAGA,GAAKH,EAAUG,IAAK,CAChC,IAAIl3C,EAAQ,EAAJk3C,EACR15C,KAAK02F,OAAOl0F,GAAK,IAAIgyC,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAOl0F,GAAGujG,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAUtrJ,KAAKgxC,IAAIoD,EAAIF,IAAsBx5C,KAAK6lK,YAAc,GAAMvgK,KAAKixC,IAAImD,EAAIF,IAAsBx5C,KAAK0rO,aAAe,GAAK1rO,KAAK8uP,qBAC5L9uP,KAAK02F,OAAOl0F,GAAGqjG,GAAMnsD,EAAI,EACzB15C,KAAK02F,OAAOl0F,GAAGsjG,GAAK,EACpB9lG,KAAK02F,OAAOl0F,GAAGqQ,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAOl0F,EAAI,GAAK,IAAIgyC,EAA0CwwD,wBACnEhlG,KAAK02F,OAAOl0F,EAAI,GAAGujG,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAUtrJ,KAAKgxC,IAAIoD,EAAIF,IAAuBx5C,KAAK6lK,YAAc,EAAK,IAAOvgK,KAAKixC,IAAImD,EAAIF,IAAuBx5C,KAAK0rO,aAAe,EAAK,IAAM1rO,KAAK8uP,qBAC9M9uP,KAAK02F,OAAOl0F,EAAI,GAAGqjG,GAAMnsD,EAAI,EAC7B15C,KAAK02F,OAAOl0F,EAAI,GAAGsjG,GAAK,EACxB9lG,KAAK02F,OAAOl0F,EAAI,GAAGqQ,MAAQ7S,KAAKwgB,WACpC,CACJ,EACA2xO,wBAAyB,WACrB,IAAIxhG,EAAU3wJ,KAAK4uP,QACfh+F,EAAU5wJ,KAAK6uP,QACf1gO,EAASnuB,KAAK6lK,YAAc,EAC5BgtF,EAA0B,EAAVvtP,KAAK8Z,GAAS+O,EAC9BorB,EAAWmR,EAAoC9P,GAAGyG,SAAUwxM,EAAgB,IAAO,EACnFr5M,EAA+B,EAAVl0C,KAAK8Z,GAAUm6B,EACrB,MAAfv5C,KAAK02F,SACL12F,KAAK02F,OAAS,IAAI70F,MAAiB,EAAX03C,EAAe,IAE3C,IAAK,IAAIG,EAAI,EAAGA,GAAKH,EAAUG,IAAK,CAChC,IAAIl3C,EAAQ,EAAJk3C,EACR15C,KAAK02F,OAAOl0F,GAAK,IAAIgyC,EAA0CwwD,wBAC/DhlG,KAAK02F,OAAOl0F,GAAGujG,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAUtrJ,KAAKgxC,IAAIoD,EAAIF,IAAsBx5C,KAAK6lK,YAAc,GAAMvgK,KAAKixC,IAAImD,EAAIF,IAAsBx5C,KAAK0rO,aAAe,GAAK1rO,KAAK8uP,qBAC5L9uP,KAAK02F,OAAOl0F,GAAGqjG,GAAMnsD,EAAI,EACzB15C,KAAK02F,OAAOl0F,GAAGsjG,GAAK,EACpB9lG,KAAK02F,OAAOl0F,GAAGqQ,MAAQ7S,KAAKwgB,YAC5BxgB,KAAK02F,OAAOl0F,EAAI,GAAK,IAAIgyC,EAA0CwwD,wBACnEhlG,KAAK02F,OAAOl0F,EAAI,GAAGujG,SAAW/lG,KAAKquP,aAAa19F,EAASC,EAAS,EAAG,EAAG5wJ,KAAK8uP,qBAC7E9uP,KAAK02F,OAAOl0F,EAAI,GAAGqjG,GAAMnsD,EAAI,EAC7B15C,KAAK02F,OAAOl0F,EAAI,GAAGsjG,GAAK,EACxB9lG,KAAK02F,OAAOl0F,EAAI,GAAGqQ,MAAQ7S,KAAKwgB,WACpC,CACJ,EAEA+tO,kBAAmB,WACf,OAAQvuP,KAAK0xP,iBACT,KAAK,EACL,KAAK,EACL,KAAK,EACD,MACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,QACI1xP,KAAKi8G,QAAU,KACf,MAEZ,EAGAi2I,oBAAqB,SAAUjwN,GAC3B,IAAItuB,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJ,IAAIjsB,EAASnuB,KAAK6lK,YAAc,EAChClyJ,EAAI0+F,UAAUryG,KAAK4uP,QAAS5uP,KAAK6uP,SACjCl7O,EAAI+1N,OAAO1pO,KAAK8uP,oBAAsBxE,EAAQjzJ,IAC9C1jF,EAAIgoC,QAAQxtB,EAAQ,GACpBxa,EAAIioC,OAAOztB,EAAQ,GACnBxa,EAAIqa,UAAY,EAChBra,EAAI8mC,YAAcz6C,KAAKwgB,YAAY9W,WACnCiK,EAAI0mC,YAAcr6C,KAAKwhB,cACvB7N,EAAI+mC,SACJ/mC,EAAIgnC,SACR,EAEAm3M,wBAAyB,SAAU7vN,GAC/B,IAAItuB,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0+F,UAAUryG,KAAK4uP,QAAS5uP,KAAK6uP,SACjCl7O,EAAI+1N,OAAO1pO,KAAK8uP,oBAAsBxE,EAAQjzJ,IAC9C1jF,EAAI2mC,YACJ3mC,EAAIgoC,QAAQ37C,KAAK6lK,YAAc,GAAI7lK,KAAK0rO,aAAe,GACvD/3N,EAAIioC,OAAO57C,KAAK6lK,YAAc,GAAI7lK,KAAK0rO,aAAe,GACtD/3N,EAAIioC,OAAO57C,KAAK6lK,YAAc,EAAG7lK,KAAK0rO,aAAe,GACrD/3N,EAAIioC,QAAQ57C,KAAK6lK,YAAc,EAAG7lK,KAAK0rO,aAAe,GACtD/3N,EAAIkoC,YACJloC,EAAIqa,UAAY,EAChBra,EAAI8mC,YAAcz6C,KAAKwgB,YAAY9W,WACnCiK,EAAI0mC,YAAcr6C,KAAKwhB,cACvB7N,EAAI+mC,SACJ/mC,EAAIgnC,SACR,EAEAk3M,oBAAqB,SAAU5vN,GAC3B,IAAItuB,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0+F,UAAUryG,KAAK4uP,QAAS5uP,KAAK6uP,SACjCl7O,EAAI+1N,OAAO1pO,KAAK8uP,oBAAsBxE,EAAQjzJ,IAC9C1jF,EAAI2mC,YACJ3mC,EAAIgoC,QAAQ37C,KAAK6lK,YAAc,GAAI7lK,KAAK0rO,aAAe,GACvD/3N,EAAIioC,OAAO57C,KAAK6lK,YAAc,GAAI7lK,KAAK0rO,aAAe,GACtD/3N,EAAIioC,OAAO57C,KAAK6lK,YAAc,EAAG7lK,KAAK0rO,aAAe,GACrD/3N,EAAIioC,QAAQ57C,KAAK6lK,YAAc,EAAG7lK,KAAK0rO,aAAe,GACtD/3N,EAAIkoC,YACJloC,EAAIqa,UAAY,EAChBra,EAAI6mC,UAAYx6C,KAAKwgB,YAAY9W,WACjCiK,EAAI0mC,YAAcr6C,KAAKwhB,cACvB7N,EAAI4Z,OACJ5Z,EAAIgnC,SACR,EAEAo3M,oBAAqB,SAAU9vN,GAC3B,IAAItuB,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0+F,UAAUryG,KAAK4uP,QAAS5uP,KAAK6uP,SACjCl7O,EAAI+1N,OAAO1pO,KAAK8uP,oBAAsBxE,EAAQjzJ,IAC9C1jF,EAAI2mC,YAMJ,IALA,IAAIq2G,EAAU,EACVC,EAAU,EAEVp3G,GADSx5C,KAAK6lK,YACiB,EAAVvgK,KAAK8Z,GAAU,GACpCi8B,GAAQ,EACH74C,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAIowP,EAAOpwP,EAAIg3C,EAAqBl0C,KAAK8Z,GAAK,EAC1Ci8B,GACAA,GAAQ,EACR1nC,EAAIgoC,OAAOg1G,EAAUrrJ,KAAKgxC,IAAIs8M,IAAS5yP,KAAK6lK,YAAc,GAAIjV,EAAUtrJ,KAAKixC,IAAIq8M,IAAS5yP,KAAK0rO,aAAe,KAG9G/3N,EAAIioC,OAAO+0G,EAAUrrJ,KAAKgxC,IAAIs8M,IAAS5yP,KAAK6lK,YAAc,GAAIjV,EAAUtrJ,KAAKixC,IAAIq8M,IAAS5yP,KAAK0rO,aAAe,IAElH,IAAIzjB,EAAQzlN,EAAIg3C,EAAqBA,EAAoB,EAAMl0C,KAAK8Z,GAAK,EACzEzL,EAAIioC,OAAO+0G,EAAUrrJ,KAAKgxC,IAAI2xK,IAAUjoN,KAAK6lK,YAAc,KAAMjV,EAAUtrJ,KAAKixC,IAAI0xK,IAAUjoN,KAAK0rO,aAAe,KACtH,CACA/3N,EAAIkoC,YACJloC,EAAIqa,UAAY,EAChBra,EAAI6mC,UAAYx6C,KAAKwgB,YAAY9W,WACjCiK,EAAI0mC,YAAcr6C,KAAKwhB,cACvB7N,EAAI4Z,OACJ5Z,EAAIgnC,SACR,EAEAs3M,qBAAsB,SAAUhwN,GAC5B,IAAItuB,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0+F,UAAUryG,KAAK4uP,QAAS5uP,KAAK6uP,SACjCl7O,EAAI+1N,OAAO1pO,KAAK8uP,oBAAsBxE,EAAQjzJ,IAC9C1jF,EAAI2mC,YACJ3mC,EAAIgoC,QAAU37C,KAAK6lK,YAAc,GAAQ7lK,KAAK0rO,aAAe,GAC7D/3N,EAAIioC,OAAQ57C,KAAK6lK,YAAc,GAAO7lK,KAAK0rO,aAAe,GAC1D/3N,EAAIioC,OAAQ57C,KAAK6lK,YAAc,GAAO7lK,KAAK0rO,aAAe,GAC1D/3N,EAAIioC,OAAQ57C,KAAK6lK,YAAc,EAAI,GACnClyJ,EAAIioC,OAAQ57C,KAAK6lK,YAAc,EAAK7lK,KAAK0rO,aAAe,GACxD/3N,EAAIioC,OAAQ57C,KAAK6lK,YAAc,EAAK7lK,KAAK0rO,aAAe,GACxD/3N,EAAIioC,QAAU57C,KAAK6lK,YAAc,EAAM7lK,KAAK0rO,aAAe,GAC3D/3N,EAAIkoC,YACJloC,EAAIqa,UAAY,EAChBra,EAAI6mC,UAAYx6C,KAAKwgB,YAAY9W,WACjCiK,EAAI0mC,YAAcr6C,KAAKwhB,cACvB7N,EAAI4Z,OACJ5Z,EAAIgnC,SACR,EAGAq3M,qBAAsB,SAAU/vN,GAC5B,IAAItuB,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAI0+F,UAAUryG,KAAK4uP,QAAS5uP,KAAK6uP,SACjCl7O,EAAIqsC,MAAM,EAAGhgD,KAAK0rO,aAAe1rO,KAAK6lK,aACtClyJ,EAAI+1N,OAAO1pO,KAAK8uP,oBAAsBxE,EAAQjzJ,IAC9C1jF,EAAI2mC,YACJ3mC,EAAI4mC,IAAI,EAAG,EAAGv6C,KAAK6lK,YAAc,EAAG,EAAa,EAAVvgK,KAAK8Z,IAAQ,GACpDzL,EAAIkoC,YACJloC,EAAIqa,UAAY,EAChBra,EAAI8mC,YAAcz6C,KAAKwgB,YAAY9W,WACnCiK,EAAI0mC,YAAcr6C,KAAKwhB,cACvB7N,EAAI+mC,SACJ/mC,EAAIgnC,SACR,EAEAi3M,sBAAuB,SAAU3vN,GAC7B,IAAItuB,EAAMsuB,EAAckY,OACxBxmC,EAAIymC,OACJzmC,EAAIqsC,MAAM,EAAGhgD,KAAK6lK,YAAc7lK,KAAK0rO,cACrC/3N,EAAI0+F,UAAUryG,KAAK4uP,QAAS5uP,KAAK6uP,SACjCl7O,EAAI+1N,OAAO1pO,KAAK8uP,oBAAsBxE,EAAQjzJ,IAC9C1jF,EAAI2mC,YACJ3mC,EAAI4mC,IAAI,EAAG,EAAGv6C,KAAK6lK,YAAa,EAAa,EAAVvgK,KAAK8Z,IAAQ,GAChDzL,EAAIkoC,YACJloC,EAAIqa,UAAY,EAChBra,EAAI6mC,UAAYx6C,KAAKwgB,YAAY9W,WACjCiK,EAAI0mC,YAAcr6C,KAAKwhB,cACvB7N,EAAI4Z,OACJ5Z,EAAIgnC,SACR,EAEAg0M,gBAAiB,WACbrE,EAAQhqP,UAAUquP,gBAAgBnuP,KAAKR,MACvCA,KAAK4lI,SACT,EAEAoqH,uBAAwB,SAAUj/F,GAC9BA,EAAUE,mBAAmB,SAC7BF,EAAUG,sBAAsB,YAAavmG,EAA4C4kG,MAAM6B,MAAM,YAAapxJ,KAAKqxP,eACvHtgG,EAAUgB,kBACd,EAEAmU,kBAAmB,SAAUx6J,GACzB,IAAI2sH,EAAQuyH,EAA0CloM,KAAKuoC,iBAAiBv/E,EAAM,SAClF1L,KAAKqxP,aAAe1mM,EAA4C4kG,MAAM5nJ,MAAM,YAAa0wH,EAAM/U,WAAWC,aAAa,aAAaC,UACxI,GAOJ,SAASymI,IACLjqP,KAAK8yP,SAAW,KAChB9yP,KAAK+yP,eAAgB,EACrB/yP,KAAKgzP,gBAAiB,EACtBhzP,KAAKizP,UAAY,IACjBjzP,KAAKkzP,SAAU,EACflzP,KAAKmzP,YAAc,EACnBnzP,KAAKozP,aAAe,EACpB9I,EAAQ9pP,KAAKR,MACbA,KAAK6rP,kBAAmB,CAC5B,EAdA,EAAGlhM,EAA4CzS,cAAc,eAAgB,CAACsyM,EAAciH,EAAenH,IAgB3GL,EAAa9nP,OAAS,SAAUovP,EAAiBjiP,GAC7C,IAAI+jP,EAAK,IAAIpJ,EAIb,OAHAoJ,EAAGvF,UAAUyD,GACb8B,EAAGz3D,YAActsL,EAAK3E,KACtB0oP,EAAGxF,YAAYA,YAAYuC,cAAc9gP,EAAK3E,KAAM2E,GAC7C+jP,CACX,EAEA,IAAIC,EAAgB,CAChBhvF,YAAa,WACT,MAAO,0BACX,EAEAivF,SAAU,WACN,OAAOvzP,KAAKkzP,OAChB,EAEAM,SAAU,SAAU5yP,GAGhB,OAFAZ,KAAKkzP,QAAUtyP,EACfZ,KAAKyzP,WAAWzzP,KAAK0zP,cACd9yP,CACX,EAEA8yP,WAAY,WACR,OAAO1zP,KAAKizP,SAChB,EAEAQ,WAAY,SAAU7yP,GAKlB,OAJAZ,KAAKizP,UAAYryP,EACI,MAAjBZ,KAAK8yP,WACL9yP,KAAK8yP,SAASa,OAAU3zP,KAAY,QAAI,EAAKA,KAAKizP,UAAY,KAE3DryP,CACX,EAEA2mK,kBAAmB,SAAUC,GACzBA,EAAGK,QAAQ7nK,KAAK6tP,YAAYA,YAAY2C,uBAAyBxwP,KAAK47L,YAAa57L,KAAK6tP,YAAYA,YAAYjlF,YAAY5oK,KAAK47L,aACrI,EAEAxtJ,KAAM,WACmB,MAAjBpuC,KAAK8yP,UACL9yP,KAAK0uP,iBAET1uP,KAAKgzP,gBAAiB,EACD,MAAjBhzP,KAAK8yP,UAAoB9yP,KAAK+yP,gBAC9B/yP,KAAK8yP,SAAS1kN,OACdpuC,KAAKyzP,WAAWzzP,KAAK0zP,cACrB1zP,KAAK8yP,SAASppN,YAAc1pC,KAAKmzP,YAEzC,EAEAhF,MAAO,WACkB,MAAjBnuP,KAAK8yP,UACL9yP,KAAK0uP,iBAET1uP,KAAKgzP,gBAAiB,EACD,MAAjBhzP,KAAK8yP,UAAoB9yP,KAAK+yP,eAC9B/yP,KAAK8yP,SAAS3E,OAEtB,EAEAnyO,KAAM,WACFhc,KAAKmuP,OACT,EAEAC,KAAM,SAAUx4O,GACZ5V,KAAKmzP,YAAcv9O,EACE,MAAjB5V,KAAK8yP,UACL9yP,KAAK0uP,iBAEL1uP,KAAK+yP,gBACD/yP,KAAK8yP,SAASzoK,SAAWz0E,EACzB5V,KAAK8yP,SAAS3E,QAGdnuP,KAAK8yP,SAASppN,YAAc1pC,KAAKmzP,YAG7C,EAEAzE,eAAgB,WACZ,IAAI/jI,EAAQ3qH,KAEZ,GAAqB,MAAjBA,KAAK8yP,SAAT,CAGA9yP,KAAK8yP,SAAWxxP,SAASkL,cAAc,SACvCxM,KAAK8yP,SAASjpI,iBAAiB,kBAAkB,WACxCc,EAAMooI,gBACPpoI,EAAMooI,eAAgB,EAClBpoI,EAAMqoI,gBACNroI,EAAMv8E,OAGlB,IAAG,GAOH,IAAIvuB,EAASve,SAASkL,cAAc,UACpCxM,KAAK8yP,SAASc,YAAY/zO,GAC1BA,EAAOte,IAAMvB,KAAK6tP,YAAYA,YAAY5hF,cAAcjsK,KAAK47L,aAC7D/7K,EAAOvV,KAAO,YACdtK,KAAK8yP,SAASz6M,MApBd,CAqBJ,EAOAk2M,kBAAmB,WACfvuP,KAAK0uP,gBACT,EAEA9oH,QAAS,WACL0kH,EAAQhqP,UAAUslI,QAAQplI,KAAKR,MAC/BA,KAAKgzP,gBAAiB,EACD,MAAjBhzP,KAAK8yP,WACL9yP,KAAK8yP,SAAS3E,QACdnuP,KAAK8yP,SAASvxP,IAAM,KACpBvB,KAAK8yP,SAAW,KAExB,EAEAe,cAAe,WACX,OAAO7zP,KAAKozP,YAChB,EAEAU,cAAe,SAAUlzP,GAErB,OADAZ,KAAKozP,aAAexyP,EACbA,CACX,EAEAovP,uBAAwB,SAAUj/F,GAC9BA,EAAUE,mBAAmB,SAC7BF,EAAUG,sBAAsB,WAAYlxJ,KAAK47L,aACjD7qC,EAAUG,sBAAsB,SAAUlxJ,KAAKizP,UAAUvpP,YACzDqnJ,EAAUG,sBAAsB,OAAQlxJ,KAAKkzP,QAAQxpP,YACrDqnJ,EAAUG,sBAAsB,YAAavmG,EAA4C4kG,MAAM6B,MAAM,YAAapxJ,KAAKozP,eACvHriG,EAAUgB,kBACd,EAEAmU,kBAAmB,SAAUx6J,GACzB,IAAIqoP,EAAQnJ,EAA0CloM,KAAKuoC,iBAAiBv/E,EAAM,SAClF1L,KAAK47L,YAAcm4D,EAAMzwI,WAAWC,aAAa,YAAYC,UACd,MAA3CuwI,EAAMzwI,WAAWC,aAAa,YAC9BvjH,KAAKizP,UAAY/oK,SAAS6pK,EAAMzwI,WAAWC,aAAa,UAAUC,YAEzB,MAAzCuwI,EAAMzwI,WAAWC,aAAa,UAC9BvjH,KAAKkzP,QAAUxoM,EAAoC9P,GAAG80G,QAAQqkG,EAAMzwI,WAAWC,aAAa,QAAQC,YAEtD,MAA9CuwI,EAAMzwI,WAAWC,aAAa,eAC9BvjH,KAAKozP,aAAezoM,EAA4C4kG,MAAM5nJ,MAAM,YAAaosP,EAAMzwI,WAAWC,aAAa,aAAaC,WAE5I,GAOJ,SAAS4mI,IACLpqP,KAAKg0P,YAAc,EACnBh0P,KAAKi0P,cAAgB,EACrBj0P,KAAKk0P,cAAgB,GACrBl0P,KAAKy7L,UAAY,EACjBz7L,KAAKm0P,WAAa,EAClBn0P,KAAKo0P,WAAa,EAClBp0P,KAAKiwP,iBAAkB,EACvBjwP,KAAKq0P,gBAAkB,EACvBr0P,KAAKs0P,cAAgB,IACrBt0P,KAAKu0P,aAAe,IACpBv0P,KAAKw0P,aAAe9pM,EAAoC9P,GAAGp0C,MAC3DxG,KAAKy0P,YAAa,EAClBnK,EAAQ9pP,KAAKR,KACjB,EAlBA,EAAG2qD,EAA4CzS,cAAc,eAAgB,CAAC+xM,EAAcqJ,EAAehJ,IAoB3G,IAAIoK,EAAmB,CACnBpwF,YAAa,WACT,MAAO,6BACX,EAEAqwF,aAAc,WACV,OAAO30P,KAAKg0P,WAChB,EAEAY,aAAc,SAAUh0P,GAEpB,OADAZ,KAAKg0P,YAAcpzP,EACZA,CACX,EAEAi0P,eAAgB,WACZ,OAAO70P,KAAKi0P,aAChB,EAEAa,eAAgB,SAAUl0P,GAEtB,OADAZ,KAAKi0P,cAAgBrzP,EACdA,CACX,EAEAm0P,kBAAmB,WACf,OAAO/0P,KAAKg1P,gBAChB,EAEAC,kBAAmB,SAAUr0P,GACzB,GAAIZ,KAAKg1P,mBAAqBp0P,IAC1BZ,KAAKg1P,iBAAmBp0P,EACxBZ,KAAKk0P,cAAgB,IAChBxpM,EAAoC9P,GAAGC,YAAY76C,KAAKg1P,mBACzD,IACI,IAAI5rK,EAAQppF,KAAKg1P,iBAAiB7rK,MAAM,KACpC7tC,EAASoP,EAAoC9P,GAAGW,UAAU6tC,GAC9D,MAAO9tC,EAAOE,WAAY,CACtB,IAAIogE,EAAOtgE,EAAOI,QACd3Q,EAAIm/C,SAASx/B,EAAoC9P,GAAG+gD,KAAKigB,IAC7D57G,KAAKk0P,cAAcvvP,KAAKomC,EAC5B,CACJ,CACA,MAAO8wD,GACP,CAGR,OAAOj7F,CACX,EAEAm7L,WAAY,WACR,OAAO/7L,KAAKy7L,SAChB,EAEAO,WAAY,SAAUp7L,GAElB,OADAZ,KAAKy7L,UAAY76L,EACVA,CACX,EAEAs0P,YAAa,WACT,OAAOl1P,KAAKm0P,UAChB,EAEAgB,YAAa,SAAUv0P,GAEnB,OADAZ,KAAKm0P,WAAavzP,EACXA,CACX,EAEAw0P,YAAa,WACT,OAAOp1P,KAAKo0P,UAChB,EAEAiB,YAAa,SAAUz0P,GAEnB,OADAZ,KAAKo0P,WAAaxzP,EACXA,CACX,EAEAqoF,KAAM,SAAUykH,GACZ,IAAI4nD,EAAqB,IAAIlL,EAiB7B,OAhBAkL,EAAmBxH,UAAUpgD,GAC7B4nD,EAAmB15D,YAAc57L,KAAK47L,YACtC05D,EAAmBjG,MAAMrvP,KAAK4uP,SAC9B0G,EAAmBhG,MAAMtvP,KAAK6uP,SAC9ByG,EAAmBxvF,UAAU9lK,KAAK6lK,aAClCyvF,EAAmB/F,WAAWvvP,KAAK0rO,cACnC4pB,EAAmB70O,UAAUzgB,KAAKwgB,aAClC80O,EAAmB5zO,YAAY1hB,KAAKwhB,eACpC8zO,EAAmB3F,kBAAkB3vP,KAAK8uP,qBAC1CwG,EAAmB/zO,SAASvhB,KAAKshB,WAAa,WAC9Cg0O,EAAmBR,eAAe90P,KAAK60P,kBACvCS,EAAmBt5D,WAAWh8L,KAAK+7L,cACnCu5D,EAAmBV,aAAa50P,KAAK20P,gBACrCW,EAAmBL,kBAAkBj1P,KAAK+0P,qBAC1CO,EAAmBH,YAAYn1P,KAAKk1P,eACpCI,EAAmBD,YAAYr1P,KAAKo1P,eAC7BE,CACX,EAEA1vH,QAAS,WACL5lI,KAAKi8G,QAAU,IACnB,EAEAsyI,kBAAmB,WACf,IAAI5jI,EAAQ3qH,KAEZ,IACmB0qD,EAAoC9P,GAAG6vI,SAASzqL,KAAK47L,YAAYrtL,cAAe,QAC/FvO,KAAKi8G,QAAUj8G,KAAK6tP,YAAYA,YAAY0C,iBAAiBvwP,KAAK47L,aAAa,WAC3EjxE,EAAMslI,iBAAkB,CAC5B,GACJ,CACA,MAAO17J,GACP,CACJ,EAEAgzE,kBAAmB,SAAUC,GACzBA,EAAGK,QAAQ7nK,KAAK6tP,YAAYA,YAAY2C,uBAAyBxwP,KAAK47L,YAAa57L,KAAK6tP,YAAYA,YAAYjlF,YAAY5oK,KAAK47L,aACrI,EAEAo0D,uBAAwB,SAAUj/F,GAC9BA,EAAUE,mBAAmB,YAC7BF,EAAUG,sBAAsB,WAAYlxJ,KAAK47L,aACjD7qC,EAAUG,sBAAsB,SAAUlxJ,KAAKy7L,UAAU/xL,YACzDqnJ,EAAUG,sBAAsB,OAAQvmG,EAA4C4kG,MAAM6B,MAAM,YAAapxJ,KAAKg0P,cAClHjjG,EAAUG,sBAAsB,UAAWlxJ,KAAKm0P,WAAWzqP,YAC3DqnJ,EAAUG,sBAAsB,UAAWlxJ,KAAKo0P,WAAW1qP,YAC3DqnJ,EAAUG,sBAAsB,aAAclxJ,KAAKi0P,cAAcvqP,YAC5DghD,EAAoC9P,GAAGC,YAAY76C,KAAKg1P,mBACzDjkG,EAAUG,sBAAsB,gBAAiBlxJ,KAAKg1P,kBAE1DjkG,EAAUgB,kBACd,EAEAmU,kBAAmB,SAAUx6J,GACzB,IAAI6pP,EAAW3K,EAA0CloM,KAAKuoC,iBAAiBv/E,EAAM,YACrF1L,KAAK47L,YAAc25D,EAASjyI,WAAWC,aAAa,YAAYC,UAChExjH,KAAKy7L,UAAYvxG,SAASqrK,EAASjyI,WAAWC,aAAa,UAAUC,WACrExjH,KAAKg0P,YAAcrpM,EAA4C4kG,MAAM5nJ,MAAM,YAAa4tP,EAASjyI,WAAWC,aAAa,QAAQC,WAC9E,MAA/C+xI,EAASjyI,WAAWC,aAAa,YACjCvjH,KAAKm1P,YAAYjrK,SAASqrK,EAASjyI,WAAWC,aAAa,WAAWC,YAEvB,MAA/C+xI,EAASjyI,WAAWC,aAAa,YACjCvjH,KAAKq1P,YAAYnrK,SAASqrK,EAASjyI,WAAWC,aAAa,WAAWC,YAEpB,MAAlD+xI,EAASjyI,WAAWC,aAAa,eACjCvjH,KAAK80P,eAAe5qK,SAASqrK,EAASjyI,WAAWC,aAAa,cAAcC,YAEvB,MAArD+xI,EAASjyI,WAAWC,aAAa,kBACjCvjH,KAAKi1P,kBAAkBM,EAASjyI,WAAWC,aAAa,iBAAiBC,UAEjF,EAEAp1E,KAAM,WACFpuC,KAAKy0P,YAAa,EAClBz0P,KAAKw0P,aAAe9pM,EAAoC9P,GAAGp0C,KAC/D,EAEA2nP,MAAO,WACHnuP,KAAKy0P,YAAa,CACtB,EAEAz4O,KAAM,WACFhc,KAAKy0P,YAAa,EAClBz0P,KAAKq0P,gBAAkB,CAC3B,EAEA7F,mBAAoB,WAChB,IAAIgH,EAAax1P,KAAKy7L,UAItB,GAHK/wI,EAAoC9P,GAAGC,YAAY76C,KAAKg1P,oBACzDQ,EAAax1P,KAAKk0P,cAAcvxP,QAEhC3C,KAAKy0P,WAAY,CACjB,IAAI/nK,EAAKhiC,EAAoC9P,GAAGp0C,MAAQxG,KAAKw0P,aAC7D,OAAQx0P,KAAKg0P,aACT,KAAK,EACDh0P,KAAKq0P,gBAAkB3pM,EAAoC9P,GAAGyG,SAAWqrC,EAAK,IAAO,GAAM8oK,GAAex1P,KAAKi0P,cAC/G,MACJ,KAAK,EAED,GADAj0P,KAAKq0P,gBAAkB/uP,KAAKkjD,IAAIkC,EAAoC9P,GAAGyG,UAAWqrC,EAAK,IAAO,GAAK8oK,IAA4B,EAAbA,EAAiB,KAAQA,EAAa,IAAMx1P,KAAKi0P,cAC/Jj0P,KAAKq0P,gBAAkB,GAAKr0P,KAAKq0P,gBAAkBmB,EAAa,GAGpE,MACJ,KAAK,EACDx1P,KAAKq0P,gBAAkB/uP,KAAKC,IAAI,EAAGiwP,EAAa9qM,EAAoC9P,GAAGyG,SAAWqrC,EAAK,IAAO,GAAM8oK,IAAgBx1P,KAAKi0P,cACzI,MACJ,KAAK,EACD,IAAI1nK,EAAOjnF,KAAKilF,IAAImC,EAAK,IAAO,GAAiB,EAAb8oK,EAAiB,GAAKA,EAC1Dx1P,KAAKq0P,gBAAkB/uP,KAAKkjD,IAAK+jC,GAAqB,EAAbipK,EAAiB,IAAOA,EAAa,IAAMx1P,KAAKi0P,cACzF,MACJ,KAAK,EACDj0P,KAAKq0P,gBAAkB/uP,KAAKilF,IAAIirK,EAAa,EAAG9qM,EAAoC9P,GAAGyG,SAAUqrC,EAAK,IAAO,KAC7G,MACJ,KAAK,EACD1sF,KAAKq0P,gBAAkBr0P,KAAKi0P,cAC5B,MACJ,KAAK,EACDj0P,KAAKq0P,gBAAmBmB,EAAa,EAAKx1P,KAAKi0P,cAC/C,MACJ,QACIj0P,KAAKq0P,gBAAkBr0P,KAAKi0P,cAC5B,MAEZ,CACKvpM,EAAoC9P,GAAGC,YAAY76C,KAAKg1P,oBACrDh1P,KAAKq0P,gBAAkBr0P,KAAKk0P,cAAcvxP,QAAU3C,KAAKq0P,iBAAmB,EAC5Er0P,KAAKq0P,gBAAkBr0P,KAAKk0P,cAAcl0P,KAAKq0P,iBAG/Cr0P,KAAKq0P,gBAAkB,GAG/Br0P,KAAKotP,gBAAkB,CAC3B,IAGJ,EAAGziM,EAA4CzS,cAAc,kBAAmB,CAACkyM,EAAiBsK,EAAkBpK,GAG7G,EAED;;;oCAIA,CAAE3rP,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCk2P,UAAW,IAAM,EACjBC,gBAAiB,IAAM,IAEzB,IAAIhrM,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FnW,EAA4C,uBAA0C,qBACtFmhN,EAAqD,gCAAmD,8BACxGpnD,EAAoD,+BAAkD,6BACtG55J,EAAyC,oBAAuC,kBAChF+1H,EAAwC,mBAAsC,iBAiBnGgrF,EAAkB,CAClB/6I,QAAS,EACT/U,IAAK,EACLiV,SAAU,EACV/qB,MAAO,EACP8qB,YAAa,EACbhK,OAAQ,EACRkK,WAAY,EACZlrB,KAAM,EACN85I,OAAQ,EACRp8L,KAAM,EACNgK,OAAQ,GACR47E,KAAM,IAcV,SAASuiI,IACLz1P,KAAK41P,qBAAuB,KAC5B51P,KAAK61P,oBAAsB,KAC3B71P,KAAK81P,cAAgB,KACrB91P,KAAK+1P,aAAe,GACpB/1P,KAAKg2P,OAAS,KACdh2P,KAAKi2P,OAAS,EACdj2P,KAAKk2P,QAAU,IAAIP,EAAmDpyH,SACtEvjI,KAAK+tJ,SAAW,EAChB/tJ,KAAKguJ,SAAW,CACpB,EArBA,EAAGrjG,EAA4CzS,cAAc,kBAAmBw9M,IAChF,EAAG/qM,EAA4C4jC,cAAc,kBAAmBmnK,GAsBhFD,EAAUn9H,QAAU,IAAIz2H,MAAM,IAE9B,IAAIs0P,EAAa,CACbC,eAAgB,WACZp2P,KAAK+1P,aAAapzP,OAAS,CAC/B,EAEA0zP,aAAc,SAAU7I,GACL,MAAXA,IACMxtP,KAAK+1P,aAAa98O,QAAQu0O,IAAY,GACxCxtP,KAAK+1P,aAAapxP,KAAK6oP,GAGnC,EAEA8I,kBAAmB,SAAUC,GACzB,IAAIj7M,EAASoP,EAAoC9P,GAAGW,UAAUg7M,GAC9D,MAAOj7M,EAAOE,WAAY,CACtB,IAAIg7M,EAAKl7M,EAAOI,QAChB17C,KAAK+1P,aAAapxP,KAAK6xP,EAC3B,CACJ,EAEAC,kBAAmB,SAAUjJ,GACzB,OAAQxtP,KAAK+1P,aAAa98O,QAAQu0O,IAAY,CAClD,EAEAkJ,aAAc,SAAUlJ,GACpBxtP,KAAK+1P,aAAapzP,OAAS,EACZ,MAAX6qP,GACAxtP,KAAK+1P,aAAapxP,KAAK6oP,EAE/B,EAEAmJ,gBAAiB,WACb,OAAO32P,KAAK+1P,aAAapzP,OAAS,CACtC,EAEAi0P,kBAAmB,SAAUL,GACzBv2P,KAAK+1P,aAAapzP,OAAS,EAC3B,IAAI24C,EAASoP,EAAoC9P,GAAGW,UAAUg7M,GAC9D,MAAOj7M,EAAOE,WAAY,CACtB,IAAIg7M,EAAKl7M,EAAOI,QAChB17C,KAAK+1P,aAAapxP,KAAK6xP,EAC3B,CACJ,EAEAK,UAAW,WACP,OAAO72P,KAAKg2P,MAChB,EAEAc,UAAW,SAAUl2P,GAEjB,OADAZ,KAAKg2P,OAASp1P,EACPA,CACX,EAEAwjJ,OAAQ,SAAUniH,EAAe80N,GAW7B,GAVA/2P,KAAKi2P,OAAS,KAAOh0N,EAAcmE,OACF,MAA7BpmC,KAAK41P,uBACL51P,KAAK41P,qBAAuBrnD,EAAkDl1E,QAAQC,QAAQ,uBAElE,MAA5Bt5H,KAAK61P,sBACL71P,KAAK61P,oBAAsBtnD,EAAkDl1E,QAAQC,QAAQ,4BAEvE,MAAtBt5H,KAAK81P,gBACL91P,KAAK81P,cAAgBvnD,EAAkDl1E,QAAQC,QAAQ,4BAEvFt5H,KAAK+1P,aAAapzP,OAAS,EAAG,CAC9B,IAAI24C,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK+1P,cACnE,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACjB8xM,IAAYxtP,KAAKg2P,OACjBh2P,KAAKg3P,sBAAsB/0N,EAAeurN,EAASxtP,KAAK81P,eAGxD91P,KAAKg3P,sBAAsB/0N,EAAeurN,EAASxtP,KAAK61P,oBAEhE,CACJ,KAAO,CACH,IAAI1wI,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAK+1P,cACnE,MAAO5wI,EAAO3pE,WAAY,CAClBgyM,EAAUroI,EAAOzpE,QACrB17C,KAAKg3P,sBAAsB/0N,EAAeurN,EAASxtP,KAAK41P,qBAC5D,CACJ,CACJ,EAEAoB,sBAAuB,SAAU/0N,EAAeurN,EAASyJ,GACrD,IAAIC,EAAUl3P,KAAKm3P,YAAY3J,GAC3B1+J,EAAQ0+J,EAAQsB,oBAChBtsP,EAAI,EACJk3C,EAAI,EACJ4B,EAASoP,EAAoC9P,GAAGW,UAAU27M,GAC9D,MAAO57M,EAAOE,WAAY,CACtB,IAAI47M,EAAS97M,EAAOI,QACpB+5M,EAAUn9H,QAAQ91H,EAAI,GAAK,IAAIgyC,EAA0CwwD,wBACzEywJ,EAAUn9H,QAAQ91H,EAAI,GAAGujG,SAAWynJ,EAAQa,aAAaruP,KAAK+tJ,SAAU/tJ,KAAKguJ,SAAUopG,EAAO5qB,WAAaxsO,KAAK+tJ,SAAUqpG,EAAO1qB,UAAY1sO,KAAKguJ,SAAUl/D,GAC5J2mK,EAAUn9H,QAAQ91H,EAAI,GAAGqjG,GAAKnsD,GAAK,EAAI,GACvC+7M,EAAUn9H,QAAQ91H,EAAI,GAAGsjG,GAAK,EAC9B2vJ,EAAUn9H,QAAQ91H,EAAI,GAAGqQ,MAAQ8hC,EAAuCkD,OAAOC,YAC/E29M,EAAUn9H,QAAQ91H,EAAI,GAAK,IAAIgyC,EAA0CwwD,wBACzEywJ,EAAUn9H,QAAQ91H,EAAI,GAAGujG,SAAWynJ,EAAQa,aAAaruP,KAAK+tJ,SAAU/tJ,KAAKguJ,SAAUopG,EAAO3qB,YAAczsO,KAAK+tJ,SAAUqpG,EAAO1qB,UAAY1sO,KAAKguJ,SAAUl/D,GAC7J2mK,EAAUn9H,QAAQ91H,EAAI,GAAGqjG,IAAMnsD,EAAI,IAAM,EAAI,GAC7C+7M,EAAUn9H,QAAQ91H,EAAI,GAAGsjG,GAAK,EAC9B2vJ,EAAUn9H,QAAQ91H,EAAI,GAAGqQ,MAAQ8hC,EAAuCkD,OAAOC,YAC/E29M,EAAUn9H,QAAQ91H,EAAI,GAAK,IAAIgyC,EAA0CwwD,wBACzEywJ,EAAUn9H,QAAQ91H,EAAI,GAAGujG,SAAWynJ,EAAQa,aAAaruP,KAAK+tJ,SAAU/tJ,KAAKguJ,SAAUopG,EAAO5qB,WAAaxsO,KAAK+tJ,SAAUqpG,EAAOzqB,aAAe3sO,KAAKguJ,SAAUl/D,GAC/J2mK,EAAUn9H,QAAQ91H,EAAI,GAAGqjG,GAAKnsD,GAAK,EAAI,GACvC+7M,EAAUn9H,QAAQ91H,EAAI,GAAGsjG,GAAK,EAC9B2vJ,EAAUn9H,QAAQ91H,EAAI,GAAGqQ,MAAQ8hC,EAAuCkD,OAAOC,YAC/E29M,EAAUn9H,QAAQ91H,EAAI,GAAK,IAAIgyC,EAA0CwwD,wBACzEywJ,EAAUn9H,QAAQ91H,EAAI,GAAGujG,SAAWynJ,EAAQa,aAAaruP,KAAK+tJ,SAAU/tJ,KAAKguJ,SAAUopG,EAAO3qB,YAAczsO,KAAK+tJ,SAAUqpG,EAAO1qB,UAAY1sO,KAAKguJ,SAAUl/D,GAC7J2mK,EAAUn9H,QAAQ91H,EAAI,GAAGqjG,IAAMnsD,EAAI,IAAM,EAAI,GAC7C+7M,EAAUn9H,QAAQ91H,EAAI,GAAGsjG,GAAK,EAC9B2vJ,EAAUn9H,QAAQ91H,EAAI,GAAGqQ,MAAQ8hC,EAAuCkD,OAAOC,YAC/E29M,EAAUn9H,QAAQ91H,EAAI,GAAK,IAAIgyC,EAA0CwwD,wBACzEywJ,EAAUn9H,QAAQ91H,EAAI,GAAGujG,SAAWynJ,EAAQa,aAAaruP,KAAK+tJ,SAAU/tJ,KAAKguJ,SAAUopG,EAAO3qB,YAAczsO,KAAK+tJ,SAAUqpG,EAAOzqB,aAAe3sO,KAAKguJ,SAAUl/D,GAChK2mK,EAAUn9H,QAAQ91H,EAAI,GAAGqjG,IAAMnsD,EAAI,IAAM,EAAI,GAC7C+7M,EAAUn9H,QAAQ91H,EAAI,GAAGsjG,GAAK,EAC9B2vJ,EAAUn9H,QAAQ91H,EAAI,GAAGqQ,MAAQ8hC,EAAuCkD,OAAOC,YAC/E29M,EAAUn9H,QAAQ91H,EAAI,GAAK,IAAIgyC,EAA0CwwD,wBACzEywJ,EAAUn9H,QAAQ91H,EAAI,GAAGujG,SAAWynJ,EAAQa,aAAaruP,KAAK+tJ,SAAU/tJ,KAAKguJ,SAAUopG,EAAO5qB,WAAaxsO,KAAK+tJ,SAAUqpG,EAAOzqB,aAAe3sO,KAAKguJ,SAAUl/D,GAC/J2mK,EAAUn9H,QAAQ91H,EAAI,GAAGqjG,GAAKnsD,GAAK,EAAI,GACvC+7M,EAAUn9H,QAAQ91H,EAAI,GAAGsjG,GAAK,EAC9B2vJ,EAAUn9H,QAAQ91H,EAAI,GAAGqQ,MAAQ8hC,EAAuCkD,OAAOC,YAC/Et1C,GAAK,EACLk3C,GACJ,CACI15C,KAAK22P,kBACL32P,KAAKk2P,QAAQngN,KAAK9T,EAAewzN,EAAUn9H,QAASm9H,EAAUn9H,QAAQ31H,OAAS,EAAGs0P,GAAe,EAAO,GAExGj3P,KAAKk2P,QAAQngN,KAAK9T,EAAewzN,EAAUn9H,QAASm9H,EAAUn9H,QAAQ31H,OAAQs0P,GAAe,EAAO,EAE5G,EAEAI,sBAAuB,SAAUC,GAC7B,IAAI1H,EAAa,IAAI/tP,MAAM,GAC3B+tP,EAAW,GAAKp7M,EAA0CqrD,SAAS19F,OAAOm1P,EAAMvsN,EAAGusN,EAAMtzP,GACzF,IAAI25F,EAAMnpD,EAA0CowD,SAAS8Q,UAAU11G,KAAK+1P,aAAa,GAAGjH,oBAAsB,IAAMxpP,KAAK8Z,GAAIo1B,EAA0CqrD,SAAS19F,OAAOnC,KAAK+1P,aAAa,GAAGnH,QAAS5uP,KAAK+1P,aAAa,GAAGlH,UAE9O,OADAlxJ,EAAIoY,iBAAiB65I,GACdA,EAAW,EACtB,EAEA2H,mBAAoB,SAAUD,GAC1B,IAAI1H,EAAa,IAAI/tP,MAAM,GAC3B+tP,EAAW,GAAKp7M,EAA0CqrD,SAAS19F,OAAOm1P,EAAMvsN,EAAGusN,EAAMtzP,GACzF,IAAI25F,EAAMnpD,EAA0CowD,SAAS8Q,SAAS11G,KAAK+1P,aAAa,GAAGjH,oBAAsB,IAAMxpP,KAAK8Z,GAAIo1B,EAA0CqrD,SAAS19F,OAAOnC,KAAK+1P,aAAa,GAAGnH,QAAS5uP,KAAK+1P,aAAa,GAAGlH,UAE7O,OADAlxJ,EAAIoY,iBAAiB65I,GACdA,EAAW,EACtB,EAEAz4M,QAAS,SAAU4uD,GACf,GAAiC,IAA7B/lG,KAAK+1P,aAAapzP,OAAc,CAChC,IAAI24C,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK+1P,cACnE,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACjBw7M,EAAUl3P,KAAKm3P,YAAY3J,GAC3BznN,EAAQ,EACRonF,EAAYntH,KAAKq3P,sBAAsBtxJ,GACvCof,EAASz6D,EAAoC9P,GAAGW,UAAU27M,GAC9D,MAAO/xI,EAAO3pE,WAAY,CACtB,IAAIgxE,EAAQrH,EAAOzpE,QACnB,GAAI8wE,EAAMklH,SAASvkH,GACf,OAAOpnF,EAEXA,GACJ,CACJ,CACJ,CACA,OAAO,EACX,EAEAoxN,YAAa,SAAU3J,GACnB,IAAIziN,EAAI2f,EAAoC9P,GAAGyG,SAAUmsM,EAAQoB,QAAWpB,EAAQ3nF,YAAc,GAAO,GACrG7hK,EAAK0mD,EAAoC9P,GAAGyG,SAASmsM,EAAQqB,SAAYrB,EAAQ9hB,aAAe,EAAM,GAC1G1rO,KAAK+tJ,SAAWy/F,EAAQoB,QACxB5uP,KAAKguJ,SAAWw/F,EAAQqB,QACxB,IAAI1oN,EAAQqnN,EAAQ3nF,YAChBz/H,EAASonN,EAAQ9hB,aACjB8rB,EAAa,GAAKx3P,KAAKi2P,OACvBiB,EAAU,IAAIr1P,MAAM,GAUxB,OATAq1P,EAAQ,GAAKxsF,EAAsC/9C,UAAUxqH,OAAO4oC,EAAIysN,EAAYxzP,EAAIwzP,EAAYA,EAAYA,GAChHN,EAAQ,GAAKxsF,EAAsC/9C,UAAUxqH,OAAQ4oC,EAAK5E,EAAQ,EAAOqxN,EAAa,EAAIxzP,EAAIwzP,EAAYA,EAAYA,GACtIN,EAAQ,GAAKxsF,EAAsC/9C,UAAUxqH,OAAO4oC,EAAI5E,EAAOniC,EAAIwzP,EAAYA,EAAYA,GAC3GN,EAAQ,GAAKxsF,EAAsC/9C,UAAUxqH,OAAO4oC,EAAI5E,EAAQniC,EAAKoiC,EAAS,EAAOoxN,EAAa,EAAIA,EAAYA,GAClIN,EAAQ,GAAKxsF,EAAsC/9C,UAAUxqH,OAAO4oC,EAAI5E,EAAQniC,EAAIoiC,EAASoxN,EAAYA,GACzGN,EAAQ,GAAKxsF,EAAsC/9C,UAAUxqH,OAAQ4oC,EAAK5E,EAAQ,EAAOqxN,EAAa,EAAKxzP,EAAIoiC,EAASoxN,EAAYA,GACpIN,EAAQ,GAAKxsF,EAAsC/9C,UAAUxqH,OAAO4oC,EAAIysN,EAAaxzP,EAAIoiC,EAASoxN,EAAYA,GAC9GN,EAAQ,GAAKxsF,EAAsC/9C,UAAUxqH,OAAO4oC,EAAIysN,EAAaxzP,EAAKoiC,EAAS,EAAOoxN,EAAa,EAAIA,EAAYA,GACvIN,EAAQ,GAAKxsF,EAAsC/9C,UAAUxqH,OAAQ4oC,EAAK5E,EAAQ,EAAOqxN,EAAa,EAAIxzP,EAAI,GAAKhE,KAAKi2P,OAAQuB,EAAYA,GACrIN,CACX,IAGJ,EAAGvsM,EAA4CzS,cAAc,YAAa,CAACu9M,EAAWU,EAAY,MAG3F,EAED;;;sCAIA,CAAEx3P,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCk4P,gBAAiB,IAAM,EACvBtuB,WAAY,IAAM,IAEpB,IAAI70L,EAA8C,yBAA4C,uBAC1FC,EAAsC,iBAAoC,eAC1EwoD,EAA4C,uBAA0C,qBACtF61B,EAAyC,oBAAuC,kBAerG6kI,EAAkB,CAClBvkI,KAAM,EACNwkI,MAAO,EACP3vI,MAAO,EACP4vI,OAAQ,EACRC,MAAO,GASX,SAASzuB,IACLnpO,KAAK63P,MAAO,EACZ73P,KAAK83P,QAAS,EACd93P,KAAK+3P,WAAY,EACjB/3P,KAAKmqO,SAAW,EAChBnqO,KAAKg4P,YAAc,CACvB,EAZA,EAAG1jN,EAA4C4D,cAAc,kBAAmBu/M,IAChF,EAAGnjN,EAA4Ci6C,cAAc,kBAAmBkpK,GAahFtuB,EAAWhnO,OAAS,SAAUoN,EAAMsoP,EAAMC,EAAQC,EAAW5tB,EAAU6mB,EAAUiH,EAAgBC,EAAiBF,GAC9G,IAAIzrK,EAAO,IAAI48I,EAUf,OATA58I,EAAKh9E,KAAOA,EACZg9E,EAAKsrK,KAAOA,EACZtrK,EAAKurK,OAASA,EACdvrK,EAAKwrK,UAAYA,EACjBxrK,EAAK49I,SAAWA,EAChB59I,EAAKykK,SAAWA,EAChBzkK,EAAKukK,gBAAkBmH,EACvB1rK,EAAK2rK,gBAAkBA,EACvB3rK,EAAKyrK,YAAcA,EACZzrK,CACX,EAEA48I,EAAWxlH,SAAW,SAAUj4G,GAC5B,IAAIysP,EAAgB,IAAIhvB,EAaxB,OAZAgvB,EAAc5oP,KAAOwtF,EAA0Cr6C,KAAK4oC,aAAa5/E,GACjFysP,EAAcH,YAAc,EAC5BG,EAAcN,KAAOtjN,EAAoCqG,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,QAAQC,WACzG20I,EAAcL,OAASvjN,EAAoCqG,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,UAAUC,WAC7G20I,EAAcJ,UAAYxjN,EAAoCqG,GAAG80G,QAAQhkJ,EAAK43G,WAAWC,aAAa,aAAaC,WACnH20I,EAAchuB,SAAWhgJ,WAAWz+E,EAAK43G,WAAWC,aAAa,YAAYC,WAC7E20I,EAAcnH,SAAWtlP,EAAK43G,WAAWC,aAAa,YAAYC,UAClE20I,EAAcrH,gBAAkBl+H,EAAuCx6E,MAAMC,KAAK3sC,EAAK43G,WAAWC,aAAa,kBAAkBC,WACjI20I,EAAcD,gBAAkBtlI,EAAuCx6E,MAAMC,KAAK3sC,EAAK43G,WAAWC,aAAa,mBAAmBC,WAC/E,MAA/C93G,EAAK43G,WAAWC,aAAa,iBAC7B40I,EAAcH,YAAc1jN,EAA4Ci7G,MAAM5nJ,MAAM,kBAAmB+D,EAAK43G,WAAWC,aAAa,eAAeC,YAEhJ20I,CACX,EAEA,IAAIC,EAAc,CACd1uP,SAAU,WACN,OAAO1J,KAAKuP,IAChB,EAEAisM,WAAY,SAAUzqD,GAClBA,EAAUE,mBAAmB,cAC7BF,EAAUG,sBAAsB,OAAQlxJ,KAAK63P,KAAKnuP,YAClDqnJ,EAAUG,sBAAsB,SAAUlxJ,KAAK83P,OAAOpuP,YACtDqnJ,EAAUG,sBAAsB,YAAalxJ,KAAK+3P,UAAUruP,YAC5DqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAKmqO,SAASzgO,YAC1DqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAKgxP,UACjDjgG,EAAUG,sBAAsB,iBAAkBlxJ,KAAK8wP,gBAAgB12M,QACvE22G,EAAUG,sBAAsB,kBAAmBlxJ,KAAKk4P,gBAAgB99M,QACxE22G,EAAUG,sBAAsB,cAAe58G,EAA4Ci7G,MAAM6B,MAAM,kBAAmBpxJ,KAAKg4P,cAC/HjnG,EAAUsnG,aAAar4P,KAAKuP,MAC5BwhJ,EAAUgB,kBACd,IAGJ,EAAGz9G,EAA4C4D,cAAc,aAAc,CAACixL,EAAYivB,EAAa,MAG9F,EAED;;;wCAIA,CAAEz5P,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC+4P,aAAc,IAAM,EACpBC,UAAW,IAAM,IAEnB,IAAI7tM,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1F00D,EAAgD,2BAA8C,yBAC9F7Z,EAAkD,6BAAgD,2BAClG8lD,EAA4C,uBAA0C,qBACtFktG,EAAoD,+BAAkD,6BACtG9tF,EAAwC,mBAAsC,iBAC9E+tF,EAA6D,wCAA2D,sCACxH/xF,EAA4C,uBAA0C,qBACtFgyF,EAA8C,yBAA4C,uBAC1FC,EAA2D,qCAAwD,mCACnHC,EAAiD,0BAA6C,+BAC9FC,EAA8C,uBAA0C,4BACxFC,EAAgD,yBAA4C,8BAC5FC,EAAiD,2BAA8C,yBAC/FC,EAA0D,oCAAuD,kCACjHC,EAAyD,mCAAsD,iCA2BpIV,EAAY,CACZW,SAAU,EACVC,aAAc,EACdC,SAAU,EACVC,SAAU,EACVC,aAAc,GASlB,SAAShB,IACLt4P,KAAKu5P,WAAa,EAClBv5P,KAAKw5P,kBAAoB,GACzBx5P,KAAK0K,IAAM,GACX1K,KAAKy5P,OAAS,GACdz5P,KAAK05P,iCAAmC,EACxC15P,KAAKg3C,IAAM,GACXh3C,KAAK25P,OAAS,GACd35P,KAAK45P,SAAW,EAChB55P,KAAK65P,gBAAkB,EACvB75P,KAAK85P,aAAe,GACpB95P,KAAK+5P,sBAAwB,GAC7B/5P,KAAKg6P,kBAAoB,GACzBh6P,KAAKi6P,aAAe,GACpBj6P,KAAKk6P,WAAa,GAClBl6P,KAAKm6P,aAAe,GACpBn6P,KAAKo6P,mBAAqB,GAC1Bp6P,KAAKq6P,SAAW,OAChBr6P,KAAKs6P,QAAU,GACft6P,KAAKu6P,QAAU,GACfv6P,KAAKw6P,gBAAkB,GACvBx6P,KAAKy6P,aAAe,KACpBz6P,KAAK06P,iBAAmB,GACxB16P,KAAK26P,UAAY,GACjB36P,KAAKkiL,OAAS,EACdliL,KAAK8gL,MAAQ,UACb9gL,KAAK46P,UAAY,GACjB56P,KAAK66P,UAAY,GACjB76P,KAAK8sL,SAAW,GAChB9sL,KAAK86P,WAAY,EACjB96P,KAAK+6P,kBAAoB,GACzB/6P,KAAKg7P,kBAAoB,GACzBh7P,KAAKi7P,WAAa,GAClBj7P,KAAKk7P,uBAAyB,EAC9Bl7P,KAAKm7P,aAAe,CAAC,EACrBn7P,KAAKo7P,eAAiB,CAAC,EAGvBp7P,KAAKq7P,WAAa,CAAC,EACnBr7P,KAAKs7P,sBAAuB,EAC5Bt7P,KAAKg3C,IAAM0zH,EAAsC1+H,KAAKw/H,UAAU9hK,UACpE,EA/CA,EAAGihD,EAA4CzS,cAAc,YAAaqgN,IAC1E,EAAG5tM,EAA4C4jC,cAAc,YAAagqK,GAgD1ED,EAAaiD,yBAA2B,WACpC,MAAO,EACX,EAEAjD,EAAah/H,QAAU,SAAU5uH,EAAK69O,GAClC,IAAIh8J,EAAO,IAAI+rK,EAIf,OAHA/rK,EAAK7hF,IAAMA,EACX6hF,EAAKi8J,QAAUD,EACfh8J,EAAKivK,SAAW5C,EAA+C5Q,YAAY1uH,QAAQ5uH,EAAKggD,EAAoC9P,GAAGxlC,KAAK,mBAAoBm3E,IACjJA,CACX,EAEA+rK,EAAamD,WAAa,SAAU/wP,EAAK69O,GACrC,IAAIh8J,EAAO,IAAI+rK,EAIf,OAHA/rK,EAAK7hF,IAAMA,EACX6hF,EAAKi8J,QAAUD,EACfh8J,EAAKivK,SAAW5C,EAA+C5Q,YAAY1uH,QAAQ5uH,EAAK69O,GACjFh8J,CACX,GAEA,EAAG8yB,EAA8C9a,4BAA4B+zJ,EAAamD,YAE1F,IAAIC,EAAgB,CAChBC,cAAe,WACX,OAAO37P,KAAKu5P,WAAa,CAC7B,EAEAqC,cAAe,SAAUh7P,GAMrB,OALIA,EACAZ,KAAKu5P,aAELv5P,KAAKu5P,WAAa,EAEf34P,CACX,EAEA4vP,qBAAsB,WAIlB,OAHI9lM,EAAoC9P,GAAGC,YAAY76C,KAAKw5P,qBACxDx5P,KAAKw5P,kBAAoBlB,EAAaiD,2BAA6Bv7P,KAAKg3C,IAAM,MAE3Eh3C,KAAKw5P,iBAChB,EAEAqC,qBAAsB,SAAUj7P,GAE5B,OADAZ,KAAKw5P,kBAAoB54P,EAClBA,CACX,EAEAk7P,iBAAkB,WACd,IAAInxI,EAAQ3qH,KAEZ,IACI,IAAI+7P,EAAS/7P,KAAKw7P,SAASzR,iBACvB7mI,EAAM,IAAI11G,WACd01G,EAAIx1G,UAAY,SAAU0pJ,GACtB,IAAI3vJ,EAAOijD,EAAoC9P,GAAGw7G,SAASlzC,EAAIx/G,OAAQ1B,QACnE8qM,EAAU,IAAIC,UAClBpiF,EAAMi5C,QAAQkpC,EAAQE,gBAAgBvlM,EAAM,aAC5CkjH,EAAM69H,SACV,EACAtlI,EAAIl0E,WAAWhvC,KAAKw7P,SAAS5yF,YAAYmzF,GAC7C,CACA,MAAOz/B,GACHj9G,EAA8C7b,sBAAsB64H,eAAeC,EACvF,CACJ,EAEA14D,QAAS,SAAU1gD,GACf,IAAI/kH,EAAOmtJ,EAA0C5oG,KAAKuoC,iBAAiBi4B,EAAK,QAChFljH,KAAKg3C,IAAM74C,EAAKmlH,WAAWC,aAAa,MAAMC,UAC9CxjH,KAAKg8P,UAAU79P,EAAKmlH,WAAWC,aAAa,SAASC,WACrDxjH,KAAKi8P,WAAW99P,EAAKmlH,WAAWC,aAAa,UAAUC,WACJ,MAA/CrlH,EAAKmlH,WAAWC,aAAa,gBAC7BvjH,KAAKuwM,gBAAgBpyM,EAAKmlH,WAAWC,aAAa,eAAeC,WAElB,MAA/CrlH,EAAKmlH,WAAWC,aAAa,iBAC7BvjH,KAAKi6P,aAAe97P,EAAKmlH,WAAWC,aAAa,eAAeC,WAEpB,MAA5CrlH,EAAKmlH,WAAWC,aAAa,aAC7BvjH,KAAKqwM,aAAalyM,EAAKmlH,WAAWC,aAAa,YAAYC,WAEP,MAApDrlH,EAAKmlH,WAAWC,aAAa,qBAC7BvjH,KAAKk8P,YAAY/9P,EAAKmlH,WAAWC,aAAa,oBAAoBC,WAEtExjH,KAAK06P,iBAAmBv8P,EAAKmlH,WAAWC,aAAa,mBAAmBC,UACxExjH,KAAKkiL,OAASv3H,EAA4C4kG,MAAM5nJ,MAAM,YAAaxJ,EAAKmlH,WAAWC,aAAa,aAAaC,WAC7HxjH,KAAK8gL,MAAQn2H,EAA4C4kG,MAAM5nJ,MAAM,iBAAkBxJ,EAAKmlH,WAAWC,aAAa,kBAAkBC,WACtIxjH,KAAK46P,UAAYz8P,EAAKmlH,WAAWC,aAAa,YAAYC,UAC1D,IAAI24I,EAAY7wG,EAA0C5oG,KAAKuoC,iBAAiB9sF,EAAM,aAClFm9C,EAASoP,EAAoC9P,GAAGW,UAAU4gN,EAAUhxK,YACxE,MAAO7vC,EAAOE,WAAY,CACtB,IAAI4gN,EAAW9gN,EAAOI,QACI,aAAtB0gN,EAAS/wK,UACTrrF,KAAKq8P,YAAYxD,EAA4CyD,SAAS34I,SAAS3jH,KAAMo8P,GAE7F,CACA,IAAIG,EAASjxG,EAA0C5oG,KAAKuoC,iBAAiB9sF,EAAM,mBACnF,GAAc,MAAVo+P,EAAgB,CAChB,IAAIp3I,EAASz6D,EAAoC9P,GAAGW,UAAUghN,EAAOpxK,YACrE,MAAOg6B,EAAO3pE,WAAY,CACtB,IAAIw2H,EAAQ7sD,EAAOzpE,QACnB,GAAuB,mBAAnBs2H,EAAM3mF,SAA+B,CACrC,IAAImxK,EAAW,IAAI7D,EAAyDx6E,eAE5E,GADAq+E,EAASt2F,kBAAkB8L,IACtBtnH,EAAoC9P,GAAGqgD,WAAU,EAAGokB,EAA8C3b,0BAA2B84J,EAAS7xP,MAAO,CAC9I,IAAI8F,EAAM,IAAIwoP,EAAuDrrF,SAAS4uF,EAAS7xP,KAAM,IAC7F8F,EAAIuhK,MAAQwqF,EACZ/rP,EAAIg7J,gBAAiB,GACrB,EAAGpsD,EAA8C3b,0BAA0B84J,EAAS7xP,MAAQ8F,CAChG,CACJ,CACJ,CACAwoP,EAAuD77N,aAAa83I,qBACpE+jF,EAAuD77N,aAAa6zI,UACxE,CACA,IAAIwrF,EAASnxG,EAA0C5oG,KAAKuoC,iBAAiB9sF,EAAM,UACnF,GAAc,MAAVs+P,EAAgB,CAChB,IAAIp3I,EAAS36D,EAAoC9P,GAAGW,UAAUkhN,EAAOtxK,YACrE,MAAOk6B,EAAO7pE,WAAY,CACtB,IAAI/4B,EAAQ4iG,EAAO3pE,QACnB,GAAuB,UAAnBj5B,EAAM4oE,SAAsB,CAC5B,IAAI+3E,EAAW21F,EAA+Cp1F,MAAMC,QAAQnhJ,GAAO,GACnF,GAAgB,MAAZ2gJ,EAAkB,CAClB,GAAI14G,EAAoC9P,GAAG21C,QAAQ6yE,EAAU41F,EAAwDt4N,eAAgB,CACjI,IAAIg8N,EAAgBt5F,EAChBhhI,EAAWs6N,EAAcz7N,eAC7B,GAAImB,EAAS66F,mBAAqBypC,EAA0C5nJ,eAAe2tI,SAAwC,SAA7BrqH,EAASyF,gBAA4B,CACvIw3E,EAA8C5b,iBAAiBvhE,eAAeE,GAC9E,QACJ,CACJ,CACA,IAAIslI,EAAWh9G,EAAoC9P,GAAGvU,OAAO,UAAW+8H,EAASn8J,GAAGyC,YAChFghD,EAAoC9P,GAAGqgD,UAAUg+J,EAAuD77N,aAAaqD,gBAAiB2iI,EAASn8J,KAC/IgyP,EAAuD77N,aAAaoS,gBAAgB4zH,EAASn8J,IAAI,GAAM,GAE3G,IACIm8J,EAASqI,gBAAiB,EAC1BrI,EAASqF,SAASzoK,KAAM0nK,GACxBuxF,EAAuD77N,aAAazjB,IAAIypJ,GAAU,EACtF,CACA,MAAOsiC,GACP,CACJ,CACJ,CACJ,CACAuzD,EAAuD77N,aAAa6zI,UACxE,CACAjxK,KAAKu5P,WAAa,CACtB,EAEAoD,cAAe,WACX,OAAO9vP,IAAIC,gBAAgB9M,KAAK+uC,aACpC,EAEAA,WAAY,WACR,IAAI6tN,GAAe,EACnB58P,KAAK4lI,UACL,IAAIj3F,EAAU3uC,KAAK68P,aACfr1F,EAAK,IAAIoxF,EAA+C5Q,YAC5DxgF,EAAGkhF,cAAc1oP,KAAKusB,UACtBi7I,EAAGK,QAAQ,cAAe,IAAIt9J,KAAK,CAACokC,KAChC3uC,KAAKy6P,aAET,IAAIn/M,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKulC,iBACnE,MAAO+V,EAAOE,WAAY,CACtB,IAAIx/B,EAAOs/B,EAAOI,QAClB1/B,EAAK8gP,mBAAmBt1F,EAAIo1F,EAChC,CACA,IAAIG,EAAa/8P,KAAKg9P,yBAClB73I,EAASz6D,EAAoC9P,GAAGW,UAAUwhN,GAC9D,MAAO53I,EAAO3pE,WAAY,CACtB,IAAIv0C,EAAKk+G,EAAOzpE,QACZgP,EAAoC9P,GAAGqgD,UAAUg+J,EAAuD77N,aAAaqD,gBAAiBx5B,IACtIgyP,EAAuD77N,aAAaqD,gBAAgBx5B,GAAIsgK,kBAAkBC,EAElH,CAEA,OADAxnK,KAAK47P,eAAc,GACZp0F,EAAGshF,cACd,EAEA+T,WAAY,WACR,IAAI9rG,EAAY,IAAI0nG,EAA2D1P,cAC/Eh4F,EAAUi4F,WAAa,EACvBj4F,EAAUk4F,4BAA4B,MAAO,kCAC7Cl4F,EAAUE,mBAAmB,QAC7BF,EAAUG,sBAAsB,KAAMlxJ,KAAKg3C,KAC3C+5G,EAAUG,sBAAsB,QAASlxJ,KAAK25P,QAC9C5oG,EAAUG,sBAAsB,cAAelxJ,KAAKswM,mBACpDv/C,EAAUG,sBAAsB,cAAelxJ,KAAKswM,mBACpDv/C,EAAUG,sBAAsB,WAAYlxJ,KAAK4lC,cAAgB,KAAMl8B,YACvEqnJ,EAAUG,sBAAsB,SAAUlxJ,KAAKu6P,SAC/CxpG,EAAUG,sBAAsB,cAAelxJ,KAAKi6P,cACpDlpG,EAAUG,sBAAsB,kBAAmBlxJ,KAAK06P,kBACxD3pG,EAAUG,sBAAsB,mBAAoBlxJ,KAAKi9P,eACzDlsG,EAAUG,sBAAsB,WAAYlxJ,KAAKowM,gBACjDr/C,EAAUG,sBAAsB,YAAavmG,EAA4C4kG,MAAM6B,MAAM,YAAapxJ,KAAKkiL,SACvHnxB,EAAUG,sBAAsB,iBAAkBvmG,EAA4C4kG,MAAM6B,MAAM,iBAAkBpxJ,KAAK8gL,QACjI/vB,EAAUG,sBAAsB,WAAYlxJ,KAAK46P,WACjD,IAAIsC,EAAel9P,KAAKm9P,kBACxBpsG,EAAUG,sBAAsB,eAAgBgsG,EAAaxzP,YAC7DqnJ,EAAUE,mBAAmB,aAC7B,IAAI31G,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKulC,iBACnE,MAAO+V,EAAOE,WAAY,CACtB,IAAIx/B,EAAOs/B,EAAOI,QAClB1/B,EAAKw/L,WAAWzqD,GAAW,EAC/B,CACAA,EAAUgB,mBACV,IAAIgrG,EAAa/8P,KAAKg9P,yBAGlBI,EAAmBp9P,KAAKq9P,yBAC5BtsG,EAAUE,mBAAmB,mBAC7B,IAAI9rC,EAASz6D,EAAoC9P,GAAGW,UAAU6hN,GAC9D,MAAOj4I,EAAO3pE,WAAY,CACtB,IAAIt0C,EAAOi+G,EAAOzpE,QAClBx0C,EAAK4pJ,UAAUC,EACnB,CACAA,EAAUgB,mBACVhB,EAAUE,mBAAmB,UAC7B,IAAI5rC,EAAS36D,EAAoC9P,GAAGW,UAAUwhN,GAC9D,MAAO13I,EAAO7pE,WAAY,CACtB,IAAIv0C,EAAKo+G,EAAO3pE,QAChB,GAAIgP,EAAoC9P,GAAGqgD,UAAUg+J,EAAuD77N,aAAaqD,gBAAiBx5B,GAAK,CAC3I,IAAIwb,EAAQw2O,EAAuD77N,aAAaqD,gBAAgBx5B,GAC5F0D,EAAO8X,EAAMnB,WACb8gB,EAAWojE,EAAgDolB,oBAAoBikG,qBAAqBlkN,GACxG,GAAgB,MAAZy3B,EAAkB,CAClB,IAAIs6N,EAAgB1D,EAAwDt4N,cAAcv+B,OAAOigC,GACjGs6N,EAAcz1P,GAAKA,EACnBy1P,EAAcn7O,SAAS5W,GACvB+xP,EAAc16O,mBAAmB,OACjC06O,EAAc5rG,UAAUC,EAC5B,MAEIkoG,EAAuD77N,aAAaqD,gBAAgBx5B,GAAI6pJ,UAAUC,EAE1G,CACJ,CAIA,OAHAA,EAAUgB,mBACVhB,EAAUo4F,uBACVp4F,EAAUq4F,SACHr4F,EAAUjtJ,IACrB,EAEAu5P,uBAAwB,WACpB,IAAIl0P,EAAO,GACPmyC,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,MAAK,EAAG62G,EAA8C3b,4BAC3J,MAAOpoD,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbve,GAAK,EAAGkiF,EAA8C3b,0BAA0BzkG,GACxD,KAAvBk+B,EAAG60I,MAAMyD,WAA2C,KAAvBt4I,EAAG60I,MAAMyD,WAAuBtsK,EAAK8P,QAAQkkB,EAAG60I,QAAU,GAAO70I,EAAG60I,MAAMyB,kBACxGtqK,EAAKxE,KAAKw4B,EAAG60I,MAErB,CACA,OAAO7oK,CACX,EAEA6zP,uBAAwB,WACpB,IAAID,EAAa,GACbzhN,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKulC,iBACnE,MAAO+V,EAAOE,WAAY,CACtB,IAAIx/B,EAAOs/B,EAAOI,QACdypE,EAASz6D,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKwT,EAAK0sB,SAC/G,MAAOy8E,EAAO3pE,WAAY,CACtB,IAAIv0C,EAAKk+G,EAAOzpE,QACVqhN,EAAW9jP,QAAQhS,IAAO,GACxByjD,EAAoC9P,GAAGqgD,UAAUg+J,EAAuD77N,aAAaqD,gBAAiBx5B,IACtI81P,EAAWp4P,KAAKsC,EAG5B,CACJ,CACA,OAAO81P,CACX,EAEAI,gBAAiB,WACb,OAAO,CACX,EAEAG,UAAW,WACP,OAAOt9P,KAAKy5P,MAChB,EAEA8D,UAAW,SAAU38P,GAEjB,OADAZ,KAAKy5P,OAAS74P,EACPA,CACX,EAEA48P,4BAA6B,WACzB,MAAO,YACX,EAEAC,0BAA2B,WACvB,OAAIz9P,KAAK05P,iCAAmC15P,KAAKi7P,WAAWt4P,OACjD3C,KAAKi7P,WAAWj7P,KAAK05P,kCAAkCgE,gCAEvD,IAEf,EAEAnxO,OAAQ,WACJ,OAAOvsB,KAAKg3C,GAChB,EAEAxqB,OAAQ,SAAU5rB,GAEd,OADAZ,KAAKg3C,IAAMp2C,EACJA,CACX,EAEA+8P,UAAW,WACP,OAAO39P,KAAK25P,MAChB,EAEAqC,UAAW,SAAUp7P,GAGjB,OAFAZ,KAAK25P,OAAS/4P,EACdZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAglC,YAAa,WAKT,OAJK5lC,KAAK45P,UAAY55P,KAAK65P,kBAAoB75P,KAAKu5P,aAChDv5P,KAAK45P,SAAW55P,KAAK49P,oBACrB59P,KAAK65P,gBAAkB75P,KAAKu5P,YAEzBv5P,KAAK45P,QAChB,EAEAtpD,gBAAiB,WACb,OAAOtwM,KAAK85P,YAChB,EAEAvpD,gBAAiB,SAAU3vM,GAGvB,OAFAZ,KAAK85P,aAAel5P,EACpBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAi9P,yBAA0B,WACtB,OAAO79P,KAAK+5P,qBAChB,EAEA+D,yBAA0B,SAAUl9P,GAGhC,OAFAZ,KAAK+5P,sBAAwBn5P,EAC7BZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAm9P,qBAAsB,WAClB,OAAO/9P,KAAKg6P,iBAChB,EAEAgE,qBAAsB,SAAUp9P,GAG5B,OAFAZ,KAAKg6P,kBAAoBp5P,EACzBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAq9P,gBAAiB,WACb,OAAOj+P,KAAKi6P,YAChB,EAEAiE,gBAAiB,SAAUt9P,GAGvB,OAFAZ,KAAKi6P,aAAer5P,EACpBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAu9P,cAAe,WACX,OAAOn+P,KAAKk6P,UAChB,EAEAkE,cAAe,SAAUx9P,GAGrB,OAFAZ,KAAKk6P,WAAat5P,EAClBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAy9P,gBAAiB,WACb,OAAOr+P,KAAKm6P,YAChB,EAEAmE,gBAAiB,SAAU19P,GAGvB,OAFAZ,KAAKm6P,aAAev5P,EACpBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEA29P,sBAAuB,WACnB,OAAOv+P,KAAKo6P,kBAChB,EAEAoE,sBAAuB,SAAU59P,GAG7B,OAFAZ,KAAKo6P,mBAAqBx5P,EAC1BZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAq8P,YAAa,WACT,OAAOj9P,KAAKq6P,QAChB,EAEA6B,YAAa,SAAUt7P,GAGnB,OAFAZ,KAAKq6P,SAAWz5P,EAChBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEA69P,WAAY,WACR,OAAOz+P,KAAKs6P,OAChB,EAEAoE,WAAY,SAAU99P,GAGlB,OAFAZ,KAAKs6P,QAAU15P,EACfZ,KAAK47P,eAAc,GACZh7P,CACX,EAEA+9P,WAAY,WACR,OAAO3+P,KAAKu6P,OAChB,EAEA0B,WAAY,SAAUr7P,GAGlB,OAFAZ,KAAKu6P,QAAU35P,EACfZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAg+P,mBAAoB,WAChB,OAAO5+P,KAAKw6P,eAChB,EAEAqE,mBAAoB,SAAUj+P,GAG1B,OAFAZ,KAAKw6P,gBAAkB55P,EACvBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAk+P,gBAAiB,WACb,OAAO9+P,KAAKy6P,YAChB,EAEAsE,gBAAiB,SAAUn+P,GAGvB,OAFAZ,KAAKy6P,aAAe75P,EACpBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAo+P,oBAAqB,WACjB,OAAOh/P,KAAK06P,gBAChB,EAEAuE,oBAAqB,SAAUr+P,GAG3B,OAFAZ,KAAK06P,iBAAmB95P,EACxBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAs+P,aAAc,WACV,OAAOl/P,KAAK26P,SAChB,EAEAwE,aAAc,SAAUv+P,GAEpB,OADAZ,KAAK26P,UAAY/5P,EACVA,CACX,EAEA8iL,UAAW,WACP,OAAO1jL,KAAKkiL,MAChB,EAEAyB,UAAW,SAAU/iL,GAGjB,OAFAZ,KAAKkiL,OAASthL,EACdZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAumH,SAAU,WACN,OAAOnnH,KAAK8gL,KAChB,EAEAv9I,SAAU,SAAU3iC,GAGhB,OAFAZ,KAAK8gL,MAAQlgL,EACbZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAw+P,aAAc,WACV,OAAOp/P,KAAK46P,SAChB,EAEAyE,aAAc,SAAUz+P,GAGpB,OAFAZ,KAAK46P,UAAYh6P,EACjBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEAwvM,aAAc,WACV,OAAOpwM,KAAK66P,SAChB,EAEAxqD,aAAc,SAAUzvM,GAGpB,OAFAZ,KAAK66P,UAAYj6P,EACjBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEA8sL,YAAa,WACT,OAAO1tL,KAAK8sL,QAChB,EAEAa,YAAa,SAAU/sL,GAGnB,OAFAZ,KAAK8sL,SAAWlsL,EAChBZ,KAAK47P,eAAc,GACZh7P,CACX,EAEA0+P,aAAc,WACV,OAAOt/P,KAAK86P,SAChB,EAEAyE,aAAc,SAAU3+P,GAEpB,OADAZ,KAAK86P,UAAYl6P,EACVA,CACX,EAEA2kC,cAAe,WACX,OAAOvlC,KAAKi7P,UAChB,EAEAuE,cAAe,SAAU5+P,GAErB,OADAZ,KAAKi7P,WAAar6P,EACXA,CACX,EAEAwkC,yBAA0B,WACtB,OAAOplC,KAAKk7P,qBAChB,EAEAuE,yBAA0B,SAAU7+P,GAEhC,OADAZ,KAAKk7P,sBAAwBt6P,EACtBA,CACX,EAEAy7P,YAAa,SAAU3vK,GACnBA,EAAGohK,UAAU9tP,MACbA,KAAKulC,gBAAgB5gC,KAAK+nF,GAC1B1sF,KAAKk7P,sBAAwBl7P,KAAKi7P,WAAWt4P,OAAS,EACtD3C,KAAK47P,eAAc,EACvB,EAEA8D,eAAgB,SAAUhzK,GACtBA,EAAGohK,UAAU9tP,MACTA,KAAKk7P,uBAAyB,EAC9Bl7P,KAAKulC,gBAAgB//B,OAAOxF,KAAKk7P,sBAAuB,EAAGxuK,IAE3D1sF,KAAKulC,gBAAgB5gC,KAAK+nF,GAC1B1sF,KAAKk7P,sBAAwBl7P,KAAKi7P,WAAWt4P,OAAS,GAE1D3C,KAAK47P,eAAc,EACvB,EAEA+D,oBAAqB,SAAUjzK,GAC3BA,EAAGohK,UAAU9tP,MACTA,KAAKk7P,uBAAyB,GAAKl7P,KAAKk7P,sBAAwBl7P,KAAKulC,gBAAgB5iC,OACrF3C,KAAKulC,gBAAgB//B,OAAOxF,KAAKk7P,sBAAwB,EAAG,EAAGxuK,IAE/D1sF,KAAKulC,gBAAgB5gC,KAAK+nF,GAC1B1sF,KAAKk7P,sBAAwBl7P,KAAKi7P,WAAWt4P,OAAS,GAE1D3C,KAAK47P,eAAc,EACvB,EAEAgE,eAAgB,SAAUlzK,GACtBhiC,EAAoC9P,GAAG46C,OAAOx1F,KAAKi7P,WAAYvuK,GAC3D1sF,KAAKk7P,sBAAwBl7P,KAAKi7P,WAAWt4P,OAAS,GACtD3C,KAAKk7P,wBAETl7P,KAAK47P,eAAc,EACvB,EAEAgC,kBAAmB,WAEf,IADA,IAAIiC,EAAY,EACPr9P,EAAI,EAAGA,EAAIxC,KAAKi7P,WAAWt4P,OAAQH,IAExC,GADAq9P,GAAa7/P,KAAKi7P,WAAWz4P,GAAGkjC,eAC5BljC,EAAI,EACJ,OAAQxC,KAAKi7P,WAAWz4P,GAAGs9P,mBACvB,KAAK,EACD,GAAgE,MAA5D9/P,KAAKi7P,WAAWz4P,GAAGg4M,aAAaztK,0BAAqC/sC,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaztK,yBAAyB9J,oBAAsBjjC,KAAKi7P,WAAWz4P,GAAGg4M,aAAaztK,yBAAyB9J,oBAAuBjjC,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaztK,yBAAyB9J,mBAAqByjI,EAA0ChoJ,aAAaguI,aAAiB1sJ,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaA,eAAiBx6M,KAAKi7P,WAAWz4P,GAAGg4M,aAAaA,cAAiB,CACxe,IAAI9zK,EAAmD,MAA1C1mC,KAAKi7P,WAAWz4P,EAAI,GAAGu9P,gBAA2B//P,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaN,gBAAkBl6M,KAAKi7P,WAAWz4P,EAAI,GAAGu9P,gBAAgB7lD,gBACxJ8lD,EAAOtH,EAA4CuH,cAAc99P,OAAOukC,EAAO1mC,KAAKi7P,WAAWz4P,GAAGg4M,aAAaN,iBACnH2lD,GAAmC,IAAtBG,EAAKE,cACtB,CACA,MACJ,KAAK,EACD,MACJ,KAAK,EACD,MACJ,KAAK,EACD,MACJ,QACI,MAIhB,OAAOx1M,EAAoC9P,GAAGyG,SAASw+M,EAC3D,EAEAv6N,wBAAyB,SAAUS,GAC/B,IAAKA,GAASA,GAAS/lC,KAAKi7P,WAAWt4P,OACnC,OAAO,EAGX,IADA,IAAIk9P,EAAY,EACPr9P,EAAI,EAAGA,EAAIujC,EAAOvjC,IAEvB,GADAq9P,GAAa7/P,KAAKi7P,WAAWz4P,GAAGkjC,eAC5BljC,EAAI,EACJ,OAAQxC,KAAKi7P,WAAWz4P,GAAGs9P,mBACvB,KAAK,EACD,IAAIp5N,EAAmD,MAA1C1mC,KAAKi7P,WAAWz4P,EAAI,GAAGu9P,gBAA2B//P,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaN,gBAAkBl6M,KAAKi7P,WAAWz4P,EAAI,GAAGu9P,gBAAgB7lD,gBAC5J,GAAIl6M,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaztK,yBAAyB9J,oBAAsBjjC,KAAKi7P,WAAWz4P,GAAGg4M,aAAaztK,yBAAyB9J,oBAAuBjjC,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaztK,yBAAyB9J,mBAAqByjI,EAA0ChoJ,aAAaguI,aAAiB1sJ,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaA,eAAiBx6M,KAAKi7P,WAAWz4P,GAAGg4M,aAAaA,cAAgB,CACla,IAAIwlD,EAAOtH,EAA4CuH,cAAc99P,OAAOukC,EAAO1mC,KAAKi7P,WAAWz4P,GAAGg4M,aAAaN,iBACnH2lD,GAAmC,IAAtBG,EAAKE,cACtB,CACA,MACJ,KAAK,EACD,MACJ,KAAK,EACD,MACJ,KAAK,EACD,MACJ,QACI,MAIhB,OAAOL,EAAY,GACvB,EAEAM,2BAA4B,SAAUp6N,GAClC,IAAIq6N,EAAY,KAChB,IAAKr6N,GAASA,GAAS/lC,KAAKi7P,WAAWt4P,OACnC,OAAO,KAGX,IADA,IAAIk9P,EAAY,EACPr9P,EAAI,EAAGA,EAAIujC,EAAOvjC,IAMvB,GALIxC,KAAKi7P,WAAWz4P,GAAG69P,oBACnBR,EAAY,EACZO,EAAYpgQ,KAAKi7P,WAAWz4P,IAEhCq9P,GAAa7/P,KAAKi7P,WAAWz4P,GAAGkjC,eAC5BljC,EAAI,EACJ,OAAQxC,KAAKi7P,WAAWz4P,GAAGs9P,mBACvB,KAAK,EACD,IAAIp5N,EAAmD,MAA1C1mC,KAAKi7P,WAAWz4P,EAAI,GAAGu9P,gBAA2B//P,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaN,gBAAkBl6M,KAAKi7P,WAAWz4P,EAAI,GAAGu9P,gBAAgB7lD,gBAC5J,GAAIl6M,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaztK,yBAAyB9J,oBAAsBjjC,KAAKi7P,WAAWz4P,GAAGg4M,aAAaztK,yBAAyB9J,oBAAuBjjC,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaztK,yBAAyB9J,mBAAqByjI,EAA0ChoJ,aAAaguI,aAAiB1sJ,KAAKi7P,WAAWz4P,EAAI,GAAGg4M,aAAaA,eAAiBx6M,KAAKi7P,WAAWz4P,GAAGg4M,aAAaA,cAAgB,CACla,IAAIwlD,EAAOtH,EAA4CuH,cAAc99P,OAAOukC,EAAO1mC,KAAKi7P,WAAWz4P,GAAGg4M,aAAaN,iBACnH2lD,GAAmC,IAAtBG,EAAKE,cACtB,CACA,MACJ,KAAK,EACD,MACJ,KAAK,EACD,MACJ,KAAK,EACD,MACJ,QACI,MAIhB,OAAO,IAAIpH,EAA8CwH,WAAWF,EAAWP,EAAY,IAC/F,EAEAU,uBAAwB,SAAUx6N,GAE9B,IADA,IAAIg2N,GAAU,EACLv5P,EAAI,EAAGA,EAAIujC,EAAOvjC,IACnBxC,KAAKi7P,WAAWz4P,GAAG69P,oBACnBtE,EAASv5P,GAGjB,OAAgB,IAAZu5P,EACO,KAEJ/7P,KAAKi7P,WAAWc,EAC3B,EAEAyE,qBAAsB,SAAUv5P,GAC5B,IAAKA,GAAa,SAAPA,EACP,OAAOjH,KAAKk7P,wBAEhB,IAAIn1N,EAAQ,EACRuV,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKi7P,YACnE,MAAO3/M,EAAOE,WAAY,CACtB,IAAIx/B,EAAOs/B,EAAOI,QAClB,GAAI1/B,EAAKuQ,WAAatlB,EAClB,OAAO8+B,EAEXA,GACJ,CACA,OAAQ,CACZ,EAEA6/F,QAAS,WAAc,EAEvB2qH,iBAAkB,SAAUv2F,EAAUuuF,GAIlC,GAHyB,MAArBvoP,KAAKm7P,eACLn7P,KAAKm7P,aAAe,CAAC,GAErBzwM,EAAoC9P,GAAGqgD,UAAUj7F,KAAKm7P,aAAcnhG,GAEpE,OADAuuF,IACOvoP,KAAKm7P,aAAanhG,GAE7B,IAAItvJ,EAAM1K,KAAKisK,cAAcjS,GAC7B,GAAKtvG,EAAoC9P,GAAGqwG,WAAWvgJ,GASnD,OAAO,KARP,IAAIuxG,EAAU36G,SAASkL,cAAc,OAMrC,OALAyvG,EAAQ16G,IAAMvB,KAAKisK,cAAcjS,GACjC/9C,EAAQ4N,iBAAiB,QAAQ,WAC7B0+H,GACJ,IAAG,GACHvoP,KAAKm7P,aAAanhG,GAAY/9C,EACvBA,CAIf,EAEAk3E,mBAAoB,SAAUn5B,GAI1B,GAH2B,MAAvBh6J,KAAKo7P,iBACLp7P,KAAKo7P,eAAiB,CAAC,GAEvB1wM,EAAoC9P,GAAGqgD,UAAUj7F,KAAKo7P,eAAgBphG,GACtE,OAAOh6J,KAAKo7P,eAAephG,GAE/B,IAAI/9C,EAAU,IAAIu8I,EAAkDn/H,QAGpE,OAFApd,EAAQ5jE,KAAKr4C,KAAKisK,cAAcjS,IAChCh6J,KAAKo7P,eAAephG,GAAY/9C,EACzBA,CACX,EAEAm0I,cAAe,SAAUp2F,EAAU1qJ,GAC/BtP,KAAKq7P,WAAWrhG,GAAY1qJ,EAIxBo7C,EAAoC9P,GAAGqgD,UAAUj7F,KAAKo7P,eAAgBphG,WAC/Dh6J,KAAKo7P,eAAephG,GAE3BtvG,EAAoC9P,GAAGqgD,UAAUj7F,KAAKm7P,aAAcnhG,WAC7Dh6J,KAAKm7P,aAAanhG,EAEjC,EAEAiS,cAAe,SAAUjS,GACrB,IAAI7vJ,EAAOnK,KAAK4oK,YAAY5O,GAC5B,OAAY,MAAR7vJ,EACO,KAEJ0C,IAAIC,gBAAgB3C,EAC/B,EAEAy+J,YAAa,SAAU5O,GACnB,OAAItvG,EAAoC9P,GAAGqgD,UAAUj7F,KAAKq7P,WAAYrhG,GAC3Dh6J,KAAKq7P,WAAWrhG,GACC,MAAjBh6J,KAAKw7P,SACLx7P,KAAKw7P,SAAS5yF,YAAY5oK,KAAKwwP,uBAAyBx2F,GAExD,IAEf,EAEAyc,oBAAqB,WACjB,OAAIz2K,KAAKk7P,uBAAyB,EACvBl7P,KAAKulC,gBAAgBvlC,KAAKk7P,uBAE1B,IAEf,EAEAuF,oBAAqB,SAAU7/P,GAC3B,IAAI4B,EAAI,EACJ84C,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKulC,iBACnE,MAAO+V,EAAOE,WAAY,CACtB,IAAIx/B,EAAOs/B,EAAOI,QAClB,GAAI1/B,IAASpb,EAAO,CACZZ,KAAKk7P,sBAETl7P,KAAKk7P,sBAAwB14P,EAC7B,KACJ,CACAA,GACJ,CACA,OAAO5B,CACX,EAEAopP,eAAgB,WAAc,IAGlC,EAAGr/L,EAA4CzS,cAAc,eAAgB,CAACogN,EAAcoD,EAAe,MAGpG,EAED;;;oCAIA,CAAE/8P,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCmhQ,YAAa,IAAM,IAErB,IAAIh2M,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1F00D,EAAgD,2BAA8C,yBAC9F7Z,EAAkD,6BAAgD,2BAClGkiB,EAA4C,uBAA0C,qBACtFoiG,EAA4C,uBAA0C,qBACtF9zH,EAAyC,oBAAuC,kBAChFyiK,EAA6D,wCAA2D,sCACxHkI,EAAgE,2CAA8D,yCAC9Htb,EAAwC,mBAAsC,iBAC9Eub,EAA0C,oBAAuC,kBACjFC,EAA0D,oCAAuD,kCACjHC,EAA6C,uBAA0C,qBACvFC,EAAyD,mCAAsD,iCAC/GC,EAA4C,qBAAwC,0BACpFC,EAAyC,kBAAqC,uBAC9EC,EAA8C,uBAA0C,4BACxFC,EAAgD,yBAA4C,8BAC5FC,EAAgD,yBAA4C,8BAgCrH,SAASV,IACL1gQ,KAAKqhQ,WAAa,IAAID,EAA8CE,YACpEthQ,KAAKuhQ,WAAa,IAAIH,EAA8CE,YACpEthQ,KAAKwhQ,MAAQ,KACbxhQ,KAAKyhQ,aAAe,IAAIL,EAA8CM,aACtE1hQ,KAAK2hQ,aAAe,IAAIP,EAA8CQ,WACtE5hQ,KAAK+4K,aAAe,IAAI4nF,EAA8D3nF,iBACtFh5K,KAAK6hQ,kBAAoB,KACzB7hQ,KAAK8hQ,SAAU,EACf9hQ,KAAKskC,QAAU,KACftkC,KAAK+hQ,aAAe/rK,EAAuCn+C,OAAOC,WACtE,CAEA,IAAIkqN,EAAe,CACfC,aAAc,WAAc,EAE5B98N,SAAU,WACN,OAAOnlC,KAAKwhQ,KAChB,EAEAU,SAAU,SAAUthQ,GAchB,OAbAZ,KAAKwhQ,MAAQ5gQ,EACbZ,KAAK2hQ,aAAaO,SAASliQ,KAAKwhQ,OAChCxhQ,KAAKyhQ,aAAav8N,KAAOllC,KAAKwhQ,MAC9BR,EAA0C1W,QAAQgD,cAAgB,EAC9DttP,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,IACpC08G,EAA8C5b,iBAAiBpkE,WAAWr/B,KAAKwhQ,MAAMj8N,gBAAgB,GAAGi1K,cAAc,GAAO,GAAM,GACnIx6M,KAAKwhQ,MAAM/B,yBAAyB,GACpCz/P,KAAKyhQ,aAAaU,aAAeniQ,KAAKwhQ,MAAMp8N,2BAC5CplC,KAAKqhQ,WAAWtiQ,OAASiB,KAAKwhQ,MAAM/qF,sBACpCz2K,KAAKuhQ,WAAWxiQ,OAASiB,KAAKwhQ,MAAM/qF,uBACpC,EAAGp3D,EAA8Cxb,4BAA4B7jG,KAAKwhQ,MAAM/qF,sBAAsB/tI,SAElH1oC,KAAKoiQ,YAAYpiQ,KAAKwhQ,MAAMlC,gBACrB1+P,CACX,EAEAyhQ,4BAA6B,WACzBjB,EAA8CkB,YAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAK2hQ,aAAaa,WACxG,MAArBxiQ,KAAK2hQ,cACL3hQ,KAAK2hQ,aAAavL,iBAEtBp2P,KAAKyhQ,aAAa58I,SACtB,EAEA49I,gBAAiB,WAAc,EAE/BC,cAAe,WACX1iQ,KAAKyhQ,aAAaU,aAAeniQ,KAAKwhQ,MAAMp8N,2BAC5CplC,KAAKyhQ,aAAa58I,SACtB,EAEA89I,cAAe,SAAU9kF,EAAQ39K,GAAK,EAEtC0iQ,QAAS,SAAUC,GACf7iQ,KAAK8hQ,SAAU,GACX9hQ,KAAKmlC,WAAWm6N,gBAAkBuD,IAClC7iQ,KAAKmlC,WAAWs6N,0BAA0B,GAE9Cz/P,KAAK8iQ,kBACT,EAEAC,sBAAuB,SAAUllF,EAAQ39K,GAAK,EAE9C8iQ,mBAAoB,SAAUnlF,EAAQ39K,GAAK,EAE3C+iQ,oBAAqB,SAAUplF,EAAQ39K,GACnCF,KAAK4iQ,SAAQ,EACjB,EAEAR,YAAa,SAAUr1G,GAAW,EAElCm2G,yBAA0B,SAAUrlF,EAAQ39K,GACpCF,KAAKwhQ,MAAM/qF,wBAA0Bv2K,IACrCF,KAAKwhQ,MAAMf,oBAAoBvgQ,GACtB,MAALA,GACAF,KAAKqhQ,WAAWtiQ,OAASiB,KAAKwhQ,MAAM/qF,sBACpCz2K,KAAKuhQ,WAAWxiQ,OAASiB,KAAKwhQ,MAAM/qF,wBAGpCz2K,KAAKqhQ,WAAWtiQ,OAAS,KACzBiB,KAAKuhQ,WAAWxiQ,OAAS,MAE7BiB,KAAK2hQ,aAAavL,kBAElBp2P,KAAK8hQ,SACL9hQ,KAAKmjQ,oBAAoBtlF,EAAQ,IAAInzH,EAAoC9P,GAAG8jI,UAEpF,EAEA0kF,+BAAgC,SAAUvlF,EAAQ39K,GAC9CF,KAAKqjQ,uBAAuBnjQ,EAChC,EAEAmjQ,uBAAwB,SAAU32K,GAC9B1sF,KAAKwhQ,MAAMf,oBAAoB/zK,GACrB,MAANA,GACA1sF,KAAKqhQ,WAAWtiQ,OAASiB,KAAKwhQ,MAAM/qF,sBACpCz2K,KAAKuhQ,WAAWxiQ,OAASiB,KAAKwhQ,MAAM/qF,wBAEpCz2K,KAAKqhQ,WAAWtiQ,OAAS,KACzBiB,KAAKuhQ,WAAWxiQ,OAAS,MAE7BiB,KAAK2hQ,aAAavL,iBACsB,MAApCp2P,KAAKwhQ,MAAM/qF,wBACXz2K,KAAKwhQ,MAAM/qF,sBAAsB6sF,eACjCzC,EAAwDvjO,oBAAoBoQ,QAAQ1tC,KAAKwhQ,MAAM/qF,sBAAsBx0J,iBACrH4+O,EAAwDvjO,oBAAoB4Q,iBAAgB,GAC5FmxE,EAA8C5b,iBAAiBpkE,WAAWqtD,EAAG8tH,cAAc,GAAO,GAAM,GACxGx6M,KAAKwhQ,MAAM/qF,sBAAsB8sF,kBAAkB,GACnDvjQ,KAAKwhQ,MAAM/qF,sBAAsBG,uBACjC,EAAGv3D,EAA8Cxb,4BAA4B7jG,KAAKwhQ,MAAM/qF,sBAAsB/tI,QAEtH,EAEA86N,wBAAyB,SAAU3lF,EAAQ39K,GAGvC,GAFKF,KAAKwhQ,MAAMlC,eAEZt/P,KAAKyhQ,aAAagC,kBAAmB,CAEZ,MAArBzjQ,KAAK+4K,cACL/4K,KAAK+4K,aAAa2qF,WAEtB1jQ,KAAK+4K,aAAe,IAAI4nF,EAA8D3nF,iBACtF,IAAI2qF,EAAgBhD,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,KAAM,eAC7KuwF,EAAUjD,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,QACtKgG,EAAWsnF,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,SACvKgJ,EAAYskF,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,UACxKiG,EAAaqnF,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,WAC7KuwF,EAAQn4P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,iBAAkBpV,MAC9Eq5K,EAAS5tK,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,kBAAmBpV,MAChFq8K,EAAU5wK,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,mBAAoBpV,MAClFs5K,EAAW7tK,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,oBAAqBpV,MACpF2jQ,EAAcl4P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MAC1F,IAAI6jQ,EAAO,IAAIlD,EAA8D5mF,mBAC7E/5K,KAAK+4K,aAAannD,MAAMjtH,KAAKg/P,GAC7B3jQ,KAAK+4K,aAAannD,MAAMjtH,KAAKk/P,GAC7B7jQ,KAAK+4K,aAAannD,MAAMjtH,KAAKi/P,GAC7B5jQ,KAAK+4K,aAAannD,MAAMjtH,KAAK00K,GAC7BgD,EAAU17J,QAA8C,6BAApC3gB,KAAK2hQ,aAAamC,cACtC9jQ,KAAK+4K,aAAannD,MAAMjtH,KAAK03K,GAC7Br8K,KAAK+4K,aAAannD,MAAMjtH,KAAK20K,GAC7Bt5K,KAAK+4K,aAAayC,MAAM6pE,EAAsC7lE,OAAOj4E,eACzE,MAAO,GAAwC,MAApCvnG,KAAKwhQ,MAAM/qF,sBAA+B,CAExB,MAArBz2K,KAAK+4K,cACL/4K,KAAK+4K,aAAa2qF,WAEtB1jQ,KAAK+4K,aAAe,IAAI4nF,EAA8D3nF,iBAClF2qF,EAAgBhD,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,KAAM,eAC7KgJ,EAAYskF,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,UACxKwwF,EAAO,IAAIlD,EAA8D5mF,mBAF7E,IAGIgqF,EAAO,IAAIpD,EAA8D5mF,mBACzEiqF,EAAcrD,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,kBAC9KgJ,EAAU5wK,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,mBAAoBpV,MAClF2jQ,EAAcl4P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MAC1FgkQ,EAAYv4P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,qBAAsBpV,MACtFq8K,EAAU17J,QAA8C,6BAApC3gB,KAAK2hQ,aAAamC,cACtC9jQ,KAAK+4K,aAAannD,MAAMjtH,KAAKg/P,GAC7B3jQ,KAAK+4K,aAAannD,MAAMjtH,KAAKk/P,GAC7B7jQ,KAAK+4K,aAAannD,MAAMjtH,KAAK03K,GAC7Br8K,KAAK+4K,aAAannD,MAAMjtH,KAAKo/P,GAC7B/jQ,KAAK+4K,aAAannD,MAAMjtH,KAAKq/P,GAC7BhkQ,KAAK+4K,aAAayC,MAAM6pE,EAAsC7lE,OAAOj4E,eACzE,KAAO,CACsB,MAArBvnG,KAAK+4K,cACL/4K,KAAK+4K,aAAa2qF,WAEtB1jQ,KAAK+4K,aAAe,IAAI4nF,EAA8D3nF,iBAClF2qF,EAAgBhD,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,KAAM,eAC7KuwF,EAAUjD,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,QACtKgG,EAAWsnF,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,SACvKgJ,EAAYskF,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,UACxKiG,EAAaqnF,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,WACzKwwF,EAAO,IAAIlD,EAA8D5mF,mBAL7E,IAMIkqF,EAAO,IAAItD,EAA8D5mF,mBACzEmqF,EAAO,IAAIvD,EAA8D5mF,mBACzEoqF,EAAO,IAAIxD,EAA8D5mF,mBACzEqqF,EAAO,IAAIzD,EAA8D5mF,mBACzEsqF,EAAO,IAAI1D,EAA8D5mF,mBAEzEuqF,GADAN,EAAcrD,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,qBACxJstF,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,qCAC9KkxF,EAAkB5D,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,8BAC9KmxF,EAAe7D,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,2BAE3KoxF,GADAV,EAAO,IAAIpD,EAA8D5mF,mBACtD4mF,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,2BAC/KqxF,EAAiB/D,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,8BAC7KsxF,EAAoBhE,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,4BAChLuxF,EAAkBjE,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,+BAC9KwxF,EAAqBlE,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,6BACjLyxF,EAAcnE,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,iBAG1K0xF,GAFepE,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,KAAM,oBAC7JstF,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,KAAM,kBAC/JrzK,KAAKwhQ,MAAM/qF,sBAAsBuuF,iBAClD,OAAQD,GACJ,IAAK,GACL,KAAK,KACL,IAAK,OACDA,EAAa,KAAO1f,EAAsCjyE,SAASC,iBAAiB,IAAK,cAAgB,IACzG,MACJ,IAAK,SACD0xF,EAAa,KAAO1f,EAAsCjyE,SAASC,iBAAiB,IAAK,oBAAsB,IAC/G,MACJ,QACI,IAAIttI,EAAQ/lC,KAAKmlC,WAAWq7N,qBAAqBuE,GAC7Ch/N,GAAS,IAELg/N,EADAr6M,EAAoC9P,GAAGC,YAAY76C,KAAKwhQ,MAAMj8N,gBAAgBQ,GAAOuqK,mBACxE5lJ,EAAoC9P,GAAGvU,OAAO,eAAgBN,GAG9D,KAAO/lC,KAAKwhQ,MAAMj8N,gBAAgBQ,GAAOuqK,kBAAoB,KAGlF,MAER,IAAI20D,EAAetE,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,kBAAoB0xF,GAC/LG,EAAiBvE,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,6BAC7K8xF,EAAiBxE,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,IAAK,2BAC7K+xF,EAAazE,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,GAAI,eACxKgyF,EAAgB1E,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,KAAM,yBAC7KiyF,EAAS3E,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,KAAM,WACtKkyF,EAAO5E,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,KAAM,gBACpKmyF,EAAS7E,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,KAAM,YACtKoyF,EAAU9E,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,KAAM,aACvKqyF,EAAc/E,EAA8DznF,kBAAkB/2K,OAAOkjP,EAAsCjyE,SAASC,iBAAiB,KAAM,gBAW/K,OAVAiyF,EAAOv4O,IAAM,EACbw4O,EAAKx4O,IAAM,EACXy4O,EAAOz4O,IAAM,EACb04O,EAAQ14O,IAAM,EACd24O,EAAY34O,IAAM,EAClBu4O,EAAO75P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MACnFulQ,EAAK95P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MACjFwlQ,EAAO/5P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MACnFylQ,EAAQh6P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MACpF0lQ,EAAYj6P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MAChFA,KAAKwhQ,MAAM/qF,sBAAsBo5E,yBACrC,KAAK,EACDyV,EAAO/pF,SAAU,EACjB,MACJ,KAAK,EACDiqF,EAAOjqF,SAAU,EACjB,MACJ,KAAK,EACDkqF,EAAQlqF,SAAU,EAClB,MACJ,KAAK,EACDgqF,EAAKhqF,SAAU,EACf,MACJ,KAAK,EACDmqF,EAAYnqF,SAAU,EACtB,MACJ,QACI,MAER8pF,EAAcvoF,cAAcn4K,KAAK2gQ,GACjCD,EAAcvoF,cAAcn4K,KAAK4gQ,GACjCF,EAAcvoF,cAAcn4K,KAAK6gQ,GACjCH,EAAcvoF,cAAcn4K,KAAK8gQ,GACjCJ,EAAcvoF,cAAcn4K,KAAK+gQ,GACjC/B,EAAcl4P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MAC1FskQ,EAAgB74P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,yBAA0BpV,MAC9F4jQ,EAAQn4P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,iBAAkBpV,MAC9Eq5K,EAAS5tK,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,kBAAmBpV,MAChFq8K,EAAU5wK,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,mBAAoBpV,MAClFs5K,EAAW7tK,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,oBAAqBpV,MACpFgkQ,EAAYv4P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,wBAAyBpV,MACzFolQ,EAAW35P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,oBAAqBpV,MACpFykQ,EAAiBh5P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,0BAA2BpV,MAChG0kQ,EAAej5P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,wBAAyBpV,MAC5F2kQ,EAAkBl5P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,2BAA4BpV,MAClG6kQ,EAAmBp5P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,4BAA6BpV,MACpG4kQ,EAAgBn5P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,yBAA0BpV,MAC9FwkQ,EAAa/4P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,sBAAuBpV,MACxF8kQ,EAAYr5P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,qBAAsBpV,MACtFilQ,EAAax5P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,sBAAuBpV,MACxFklQ,EAAez5P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,wBAAyBpV,MAC5FukQ,EAAgB94P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,yBAA0BpV,MAC9FmlQ,EAAe15P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,wBAAyBpV,MACxFA,KAAKwhQ,MAAM/qF,sBAAsB4pF,oBACjCyE,EAAYvpF,SAAU,GAEtBv7K,KAAKwhQ,MAAM/qF,sBAAsBkvF,gBACjCT,EAAe3pF,SAAU,GAE7B4pF,EAAe5pF,QAAUv7K,KAAKwhQ,MAAM/qF,sBAAsBmvF,qBAC1D5lQ,KAAK+4K,aAAannD,MAAMjtH,KAAKg/P,GAC7B3jQ,KAAK+4K,aAAannD,MAAMjtH,KAAK0/P,GAC7BrkQ,KAAK+4K,aAAannD,MAAMjtH,KAAKi/P,GAC7B5jQ,KAAK+4K,aAAannD,MAAMjtH,KAAK00K,GAC7BgD,EAAU17J,QAA8C,6BAApC3gB,KAAK2hQ,aAAamC,cACtC9jQ,KAAK+4K,aAAannD,MAAMjtH,KAAK03K,GAC7Br8K,KAAK+4K,aAAannD,MAAMjtH,KAAK20K,GAC7Bt5K,KAAK+4K,aAAannD,MAAMjtH,KAAKk/P,GAC7B7jQ,KAAK+4K,aAAannD,MAAMjtH,KAAKq/P,GAC7BhkQ,KAAK+4K,aAAannD,MAAMjtH,KAAK2/P,GAC7BtkQ,KAAK+4K,aAAannD,MAAMjtH,KAAK4/P,GAC7BvkQ,KAAK+4K,aAAannD,MAAMjtH,KAAKo/P,GAC7B/jQ,KAAK+4K,aAAannD,MAAMjtH,KAAK6/P,GAC7BxkQ,KAAK+4K,aAAannD,MAAMjtH,KAAKs/P,GAC7BjkQ,KAAK+4K,aAAannD,MAAMjtH,KAAK+/P,GAC7B1kQ,KAAK+4K,aAAannD,MAAMjtH,KAAKggQ,GAC7B3kQ,KAAK+4K,aAAannD,MAAMjtH,KAAKu/P,GAC7BlkQ,KAAK+4K,aAAannD,MAAMjtH,KAAKigQ,GAC7B5kQ,KAAK+4K,aAAannD,MAAMjtH,KAAKkgQ,GAC7B7kQ,KAAK+4K,aAAannD,MAAMjtH,KAAKw/P,GAC7BnkQ,KAAK+4K,aAAannD,MAAMjtH,KAAK8/P,GAC7BzkQ,KAAK+4K,aAAannD,MAAMjtH,KAAKy/P,GAC7BpkQ,KAAK+4K,aAAannD,MAAMjtH,KAAKmgQ,GAC7B9kQ,KAAK+4K,aAAannD,MAAMjtH,KAAKsgQ,GAC7BjlQ,KAAK+4K,aAAannD,MAAMjtH,KAAKwgQ,GAC7BnlQ,KAAK+4K,aAAannD,MAAMjtH,KAAKugQ,GAC7BllQ,KAAK+4K,aAAannD,MAAMjtH,KAAK0gQ,GAC7BrlQ,KAAK+4K,aAAayC,MAAM9zD,EAA0C7nB,SAAS19F,OAAOjC,EAAE2lQ,QAAS3lQ,EAAE4lQ,SACnG,CACJ,EAEAC,qBAAsB,SAAUloF,EAAQ39K,GACpCF,KAAKyhQ,aAAauE,WACtB,EAEAC,qBAAsB,SAAUpoF,EAAQ39K,GACpC,IAAIgH,EAAO22K,EACX79K,KAAKwhQ,MAAM/qF,sBAAsBq5E,sBAAsB5oP,EAAK6lB,IAChE,EAEAm5O,iBAAkB,WACVlmQ,KAAKmmQ,cAAcC,UACnBpmQ,KAAKwhQ,MAAM/qF,sBAAsB4vF,cAAcrmQ,KAAKmmQ,cAAc55O,SAE1E,EAEA+5O,oBAAqB,SAAUzoF,EAAQ39K,GACnCF,KAAKmmQ,cAAgB,IAAI9gB,EAAsCkhB,WAAW,MAC1EvmQ,KAAK6hQ,kBAAkB7hQ,KAAKmmQ,cAAez7M,EAAoC9P,GAAGxlC,KAAK,mBAAoBpV,MAC/G,EAEAwmQ,uBAAwB,SAAU3oF,EAAQ39K,GACtC+gQ,EAAuCwF,KAAK9hQ,KAAK,IAAIs8P,EAAuCyF,wBAAwBrhB,EAAsCjyE,SAASC,iBAAiB,IAAK,mCAAoCrzK,KAAKwhQ,QAClO,IAAI90K,EAAK1sF,KAAKwhQ,MAAM/qF,sBAAsBxtF,OAC1C,GAAU,MAANyD,EAAJ,CAG0B,MAAtBA,EAAGqzK,kBACHrzK,EAAGqzK,gBAAgBv8N,uBAAuBkpD,EAAG8tH,aAAaztK,0BAC1D2/C,EAAGqzK,gBAAgBt8N,kBAAkBipD,EAAG8tH,aAAa/gH,qBACrD/M,EAAG4sH,WAAW5sH,EAAGqzK,iBACjBrzK,EAAGvqE,cAAcuqE,EAAG7rE,eACpB6rE,EAAGi6K,cAAc,OAErB,IAAIrrN,EAASoP,EAAoC9P,GAAGW,UAAUmxC,EAAGshK,gBACjE,MAAO1yM,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ0B,gBAAgB,GACxB1B,EAAQwB,aAAaxB,EAAQuB,eAC7BvB,EAAQwB,aAAaxB,EAAQuB,cACjC,CACAriK,EAAG62K,kBAAkB,GACrB72K,EAAGk6K,oBAAmB,GACtB5mQ,KAAKwhQ,MAAM7B,oBAAoBjzK,GAC/B1sF,KAAKyhQ,aAAa58I,SAlBlB,CAmBJ,EAEAgiJ,sBAAuB,SAAUhpF,EAAQ39K,GACrCF,KAAKwhQ,MAAM/qF,sBAAsBmwF,oBAAoB5mQ,KAAKwhQ,MAAM/qF,sBAAsBmvF,qBAC1F,EAEAkB,uBAAwB,SAAUjpF,EAAQ39K,GAAK,EAE/C6mQ,sBAAuB,SAAUlpF,EAAQ39K,GACrC+gQ,EAAuCwF,KAAK9hQ,KAAK,IAAIu8P,EAA4C8F,mBAAmB3hB,EAAsCjyE,SAASC,iBAAiB,IAAK,mBAAoBrzK,KAAKwhQ,QAClNxhQ,KAAKwhQ,MAAM/qF,sBAAsBwwF,aAAajnQ,KAAKwhQ,MAAM/qF,sBAAsBkvF,cACnF,EAEAuB,mBAAoB,SAAUrpF,EAAQ39K,GAClC+gQ,EAAuCwF,KAAK9hQ,KAAK,IAAIu8P,EAA4C8F,mBAAmB3hB,EAAsCjyE,SAASC,iBAAiB,IAAK,2BAA4BrzK,KAAKwhQ,QAC1NxhQ,KAAKwhQ,MAAM/qF,sBAAsB0wF,iBAAiBnnQ,KAAKwhQ,MAAM/qF,sBAAsB4pF,mBACnFrgQ,KAAKyhQ,aAAa58I,SACtB,EAEAs+I,oBAAqB,SAAUtlF,EAAQ39K,GACnCF,KAAKonQ,yBACT,EAEAA,wBAAyB,WACrBpnQ,KAAK8hQ,SAAU,EACfziJ,EAA8C5b,iBAAiBpkE,WAAWr/B,KAAKwhQ,MAAM/qF,sBAAsB+jC,cAAc,GAAO,GAAM,GACtIqmD,EAAwDvjO,oBAAoBoQ,QAAQ1tC,KAAKwhQ,MAAM/qF,sBAAsBx0J,iBACrH4+O,EAAwDvjO,oBAAoB4Q,iBAAgB,GAC5FluC,KAAK8iQ,kBACT,EAEA78N,iBAAkB,SAAUymD,GACxB1sF,KAAKwhQ,MAAMf,oBAAoB/zK,GAC/B1sF,KAAKonQ,yBACT,EAEAC,uBAAwB,SAAUxpF,EAAQ39K,GACE,MAApCF,KAAKwhQ,MAAM/qF,wBACXp3D,EAA8C5b,iBAAiBpkE,WAAWr/B,KAAKwhQ,MAAM/qF,sBAAsB+jC,cAAc,GAAO,GAAM,GACtIx6M,KAAKwhQ,MAAM/qF,sBAAsB6sF,eACjCzC,EAAwDvjO,oBAAoBoQ,QAAQ1tC,KAAKwhQ,MAAM/qF,sBAAsBx0J,iBACrH4+O,EAAwDvjO,oBAAoB4Q,iBAAgB,GAC5FluC,KAAKwhQ,MAAM/qF,sBAAsB8sF,kBAAkB,IACnD,EAAGlkJ,EAA8Cxb,4BAA4B7jG,KAAKwhQ,MAAM/qF,sBAAsB/tI,QAC9G1oC,KAAKyhQ,aAAa58I,UAE1B,EAEAyiJ,0BAA2B,SAAUzpF,EAAQ39K,GACzCF,KAAKwhQ,MAAM/qF,sBAAsB8sF,kBAAkB,GACnDvjQ,KAAKwhQ,MAAM/qF,sBAAsBG,sBACO,MAApC52K,KAAKwhQ,MAAM/qF,uBAAqF,MAApDz2K,KAAKwhQ,MAAM/qF,sBAAsBspF,kBAC7E1gJ,EAA8C5b,iBAAiB8jK,gBAAe,GAAO,EAAMvnQ,KAAKwhQ,MAAM/qF,sBAAsBspF,gBAAgB7lD,gBAAiBl6M,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAa/gH,oBAAqBz5F,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAaztK,0BAC9Qy4D,EAAgDolB,oBAAoBz7E,qBAAqBnvC,KAAKwhQ,MAAM/qF,sBAAsBspF,gBAAgBvlD,cAC1IqmD,EAAwDvjO,oBAAoBoQ,QAAQ1tC,KAAKwhQ,MAAM/qF,sBAAsB51J,eACrH7gB,KAAKwhQ,MAAM/qF,sBAAsB6sF,gBACjC,EAAGjkJ,EAA8Cxb,4BAA4B7jG,KAAKwhQ,MAAM/qF,sBAAsB/tI,QAC9Gm4N,EAAwDvjO,oBAAoB4Q,iBAAgB,GAC5FluC,KAAKyhQ,aAAa58I,UAClB7kH,KAAK2hQ,aAAavL,iBAE1B,EAEAoR,yBAA0B,SAAU3pF,EAAQ39K,GACxC,GAAwC,MAApCF,KAAKwhQ,MAAM/qF,sBAA+B,CAC1CwqF,EAAuCwF,KAAK9hQ,KAAK,IAAIu8P,EAA4C8F,mBAAmB3hB,EAAsCjyE,SAASC,iBAAiB,IAAK,2BAA4BrzK,KAAKwhQ,QAC1N,IAAIjoD,EAAWqnD,EAAwCt9N,MAAM81K,mBAAmB,YAAa5zG,EAAgDolB,oBAAoBh+E,WAAWq8C,OAAQ,UAAWo2B,EAA8C5b,iBAAiBuc,cAAexa,EAAgDolB,oBAAoB79E,yBAAyB9J,kBAAmBuiE,EAAgDolB,oBAAoBylG,wBACjcrwN,KAAKwhQ,MAAM/qF,sBAAsBkwF,cAAcptD,GAC/Cv5M,KAAKwhQ,MAAM/qF,sBAAsBspF,gBAAgBplD,kBAAkBt7F,EAA8C5b,iBAAiBuc,eAClIhgH,KAAKwhQ,MAAM/qF,sBAAsB11J,YAAY8/O,EAAwDvjO,oBAAoB0P,WACzHhtC,KAAKwhQ,MAAM/qF,sBAAsB8sF,kBAAkB,GACnD,IAAIjoN,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKwhQ,MAAM/qF,sBAAsB/tI,SAC3I,MAAO4S,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb9kC,EAAO5W,KAAKwhQ,MAAM/qF,sBAAsB/tI,OAAOzpC,GAC/CyrD,EAAoC9P,GAAGqgD,UAAU8lK,EAAuD3jO,aAAaqD,gBAAiB7pB,EAAK3P,MAC3I2P,EAAKwhK,WAAa2oF,EAAuD3jO,aAAaqD,gBAAgB7pB,EAAK3P,IAAIua,cAC/G5K,EAAK0hK,UAAYyoF,EAAuD3jO,aAAaqD,gBAAgB7pB,EAAK3P,IAAIg+J,YAEtH,CACAjlK,KAAKwhQ,MAAM/qF,sBAAsBG,sBACjC52K,KAAKyhQ,aAAa58I,UAClBu8I,EAA8CqG,SAASC,YACvD1nQ,KAAK2hQ,aAAavL,gBACtB,CACJ,EAEAuR,sBAAuB,SAAU9pF,EAAQ39K,GACG,MAApCF,KAAKwhQ,MAAM/qF,wBACXwqF,EAAuCwF,KAAK9hQ,KAAK,IAAIu8P,EAA4C8F,mBAAmB3hB,EAAsCjyE,SAASC,iBAAiB,IAAK,6BAA8BrzK,KAAKwhQ,QAC5NxhQ,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAalB,WAAW9zG,EAAgDolB,oBAAoBylG,wBAC7HrwN,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAaj3K,SAASiiE,EAAgDolB,oBAAoB79E,yBAAyB9J,mBACpJjjC,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAaH,cAAc70G,EAAgDolB,oBAAoBh+E,WAAWq8C,QAC3IjpF,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAaG,kBAAkBt7F,EAA8C5b,iBAAiBuc,eAC/HhgH,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAa/2K,kBAAkB+hE,EAAgDolB,oBAAoB19E,0BACpIltC,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAaj3K,SAASiiE,EAAgDolB,oBAAoB79E,yBAAyB9J,mBACpJjjC,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAah3K,uBAAuBgiE,EAAgDolB,oBAAoB79E,yBAAyB2nH,qBAClK10J,KAAKwhQ,MAAM/qF,sBAAsBmxF,kBACjC5nQ,KAAKwhQ,MAAM/qF,sBAAsB/tI,OAASq4N,EAAuD3jO,aAAa46I,qBAAqBh4K,KAAKwhQ,MAAM/qF,sBAAsB/tI,QACpK1oC,KAAKwhQ,MAAM/qF,sBAAsB8sF,kBAAkB,GACnDvjQ,KAAKyhQ,aAAa58I,UAClBu8I,EAA8CqG,SAASC,YACvD1nQ,KAAK2hQ,aAAavL,iBAE1B,EAEAyR,wBAAyB,SAAUhqF,EAAQ39K,GACC,MAApCF,KAAKwhQ,MAAM/qF,uBACXz2K,KAAK8nQ,kBAAkB9nQ,KAAKwhQ,MAAM/qF,sBAE1C,EAEAqxF,kBAAmB,SAAU1L,GACzB,IAAIzxI,EAAQ3qH,KAEZq/G,EAA8C5b,iBAAiBghK,kBAAiB,SAAUt6P,GACtF,IAAI6vJ,EAAWtvG,EAAoC9P,GAAGvU,OAAO,gBAAiB+1N,EAAS7vO,UACvFo+F,EAAM62I,MAAMpR,cAAcp2F,EAAU7vJ,GACpCiyP,EAAS/3I,cAAcsG,EAAM62I,MAAMjR,iBAAiBv2F,GAAU,WAC1DrvC,EAAM82I,aAAa58I,SACvB,IACJ,GACJ,EAEAkjJ,kBAAmB,SAAUlqF,EAAQ39K,GACjC,MAAM,IAAIyN,MAAM,8CACpB,EAEAq6P,yBAA0B,SAAUnqF,EAAQ39K,GACxCF,KAAK8uC,UAAS,GACd9uC,KAAKyhQ,aAAawG,kBACtB,EAEAC,mBAAoB,SAAUrqF,EAAQ39K,GAClCF,KAAK8uC,UAAS,GACd9uC,KAAKyhQ,aAAawG,kBACtB,EAEAE,sBAAuB,SAAUtqF,EAAQ39K,GACrCF,KAAK8uC,UAAS,EAClB,EAEAA,SAAU,SAAUynM,GAChB0qB,EAAuCwF,KAAK9hQ,KAAK,IAAIs8P,EAAuCyF,wBAAwBrhB,EAAsCjyE,SAASC,iBAAiB,IAAK,iBAAkBrzK,KAAKwhQ,QAChNnc,EAAsC7lE,OAAO8L,YAAY+5D,EAAsC95D,QAAQ68E,kBACvG,IAAIC,EAAY,iBACZ9uD,EAAWqnD,EAAwCt9N,MAAM81K,mBAAmBivD,EAAW7iK,EAAgDolB,oBAAoBh+E,WAAWq8C,OAAQ,UAAWo2B,EAA8C5b,iBAAiBuc,cAAexa,EAAgDolB,oBAAoB79E,yBAAyB9J,kBAAmBuiE,EAAgDolB,oBAAoBylG,wBAC/b9W,EAAS91K,kBAAkB+hE,EAAgDolB,oBAAoB19E,0BAC/FqsK,EAAS/1K,uBAAuBgiE,EAAgDolB,oBAAoB79E,yBAAyB2nH,qBAC7H,IAAI4zG,EAAcpH,EAA4C5E,SAASn6P,OAAOo3M,GAC1Eg9B,EACAv2O,KAAKwhQ,MAAM9B,eAAe4I,GAE1BtoQ,KAAKwhQ,MAAMnF,YAAYiM,GAEa,MAApCtoQ,KAAKwhQ,MAAM/qF,uBACXz2K,KAAKqhQ,WAAWtiQ,OAASiB,KAAKwhQ,MAAM/qF,sBACpCz2K,KAAKuhQ,WAAWxiQ,OAASiB,KAAKwhQ,MAAM/qF,wBAEpCz2K,KAAKqhQ,WAAWtiQ,OAAS,KACzBiB,KAAKuhQ,WAAWxiQ,OAAS,MAE7BiB,KAAKwhQ,MAAM/qF,sBAAsB/tI,OAASq4N,EAAuD3jO,aAAa46I,qBAAqBh4K,KAAKwhQ,MAAM/qF,sBAAsB/tI,QACpK1oC,KAAK8nQ,kBAAkBQ,GACvBtoQ,KAAKyhQ,aAAaU,aAAeniQ,KAAKyhQ,aAAa8G,SAASD,GAC5DtoQ,KAAKyhQ,aAAa58I,UAClB7kH,KAAK2hQ,aAAavL,iBAClB/Q,EAAsC7lE,OAAO8L,YAAY+5D,EAAsC95D,QAAQi9E,gBACvGpH,EAA8CqG,SAASC,WAC3D,EAEA5sF,kBAAmB,SAAU+C,EAAQ39K,GACjC+gQ,EAAuCwF,KAAK9hQ,KAAK,IAAIs8P,EAAuCyF,wBAAwBrhB,EAAsCjyE,SAASC,iBAAiB,IAAK,gBAAiBrzK,KAAKwhQ,QAC/M,IAAIlmN,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKyhQ,aAAagH,gBAC5H,MAAOntN,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbx0C,EAAOlH,KAAKyhQ,aAAagH,cAAcxpQ,GAC3Ce,KAAKwhQ,MAAM5B,eAAe14P,EAC9B,CACAwjD,EAAoC9P,GAAG24H,UAAUvzK,KAAKyhQ,aAAagH,eACnEzoQ,KAAKyhQ,aAAaU,cAAgB,EAClCniQ,KAAKwhQ,MAAMf,oBAAoB,MAC/BzgQ,KAAKqhQ,WAAWtiQ,OAAS,KACzBiB,KAAKuhQ,WAAWxiQ,OAAS,KACzBiB,KAAKyhQ,aAAa58I,UAClB7kH,KAAK2hQ,aAAavL,gBACtB,EAEAsS,iBAAkB,SAAU7qF,EAAQ39K,GAChC,GAAwC,6BAApCF,KAAK2hQ,aAAamC,cAA8C,CAChE7C,EAAuCwF,KAAK9hQ,KAAK,IAAIs8P,EAAuCyF,wBAAwBrhB,EAAsCjyE,SAASC,iBAAiB,IAAK,eAAgBrzK,KAAKwhQ,QAC9M,IAAI10D,EAAU,IAAIC,UACd7pF,EAAM4pF,EAAQE,gBAAgBhtM,KAAK2hQ,aAAagH,cAAe,YAC/Dj9P,EAAOo+M,EAA0CpnK,KAAKuoC,iBAAiBi4B,EAAK,aAC5E0lJ,EAAa,IAAIl+M,EAAoC9P,GAAGm7I,MACxDz6I,EAASoP,EAAoC9P,GAAGW,UAAU7vC,EAAKy/E,YACnE,MAAO7vC,EAAOE,WAAY,CACtB,IAAI4vC,EAAQ9vC,EAAOI,QACnB,GAAuB,aAAnB0vC,EAAMC,SAAyB,CAC/B,IAAIqB,EAAKw0K,EAA4C5E,SAAS34I,SAAS3jH,KAAKwhQ,MAAOp2K,GACnFsB,EAAGlgE,OAAO64N,EAAsCr5M,KAAKw/H,UAAU9hK,YAC/Dk/P,EAAWjkQ,KAAK+nF,EACpB,CACJ,CACAhiC,EAAoC9P,GAAG24H,UAAUvzK,KAAKyhQ,aAAagH,eACnE,IAAII,EAAW7oQ,KAAKyhQ,aAAaU,aAAeyG,EAAWxsK,MAAQ,EACnE,MAAOwsK,EAAWxsK,MAAQ,EAAG,CACrB1P,EAAKk8K,EAAWlkQ,MACpB1E,KAAKwhQ,MAAM9B,eAAehzK,GAC1B1sF,KAAKyhQ,aAAagH,cAAcI,KAAcn8K,CAClD,CACA1sF,KAAKyhQ,aAAa58I,UAClB7kH,KAAK2hQ,aAAavL,gBACtB,CACJ,EAEAx7E,gBAAiB,SAAUiD,EAAQ39K,GAC/B,IAAI4oQ,EAAS,IAAIrQ,EAA2D1P,cAC5E+f,EAAO7f,4BAA4B,MAAO,kCAC1C6f,EAAO73G,mBAAmB,aAC1B,IAAI31G,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKyhQ,aAAagH,gBAC5H,MAAOntN,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbx0C,EAAOlH,KAAKyhQ,aAAagH,cAAcxpQ,GAC3CiI,EAAKs0M,WAAWstD,GAAQ,EAC5B,CACAA,EAAO/2G,mBACP/xJ,KAAK2hQ,aAAamC,cAAgB,2BAClC9jQ,KAAK2hQ,aAAagH,cAAgBG,EAAOhlQ,IAC7C,EAEAilQ,eAAgB,SAAUlrF,EAAQ39K,GAC9B+gQ,EAAuCwF,KAAK9hQ,KAAK,IAAIs8P,EAAuCyF,wBAAwBrhB,EAAsCjyE,SAASC,iBAAiB,IAAK,aAAcrzK,KAAKwhQ,QAC5MxhQ,KAAK46K,gBAAgBiD,EAAQ39K,GAC7B,IAAIo7C,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAKyhQ,aAAagH,gBAC5H,MAAOntN,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACbx0C,EAAOlH,KAAKyhQ,aAAagH,cAAcxpQ,GAC3Ce,KAAKwhQ,MAAM5B,eAAe14P,EAC9B,CACAwjD,EAAoC9P,GAAG24H,UAAUvzK,KAAKyhQ,aAAagH,eACnEzoQ,KAAKyhQ,aAAa58I,UAClB7kH,KAAK2hQ,aAAavL,gBACtB,EAEA9nN,UAAW,WACHtuC,KAAK8hQ,UACL9hQ,KAAK8hQ,SAAU,GAEnB9hQ,KAAK8iQ,kBACT,EAEAkG,cAAe,SAAUnrF,EAAQ39K,GAC7BF,KAAK8hQ,SAAW9hQ,KAAK8hQ,QACjB9hQ,KAAK8hQ,SAAW9hQ,KAAKwhQ,MAAMlC,gBAC3Bt/P,KAAKmlC,WAAWs6N,0BAA0B,GAE9Cz/P,KAAK8iQ,kBACT,EAEAA,iBAAkB,WACV9iQ,KAAKwhQ,MAAMlC,eACPt/P,KAAK8hQ,SACe,MAAhB9hQ,KAAKskC,UACLtkC,KAAKskC,QAAU,IAAI68N,EAA8ChjO,YAErEn+B,KAAKskC,QAAQ49N,SAASliQ,KAAKwhQ,OAC3BniJ,EAA8C5b,iBAAiBr/D,aAAepkC,KAAKskC,QACnFtkC,KAAKskC,QAAQ8J,OACbpuC,KAAKyhQ,aAAar4I,eAAgB,IAGlC/J,EAA8C5b,iBAAiBr/D,aAAepkC,KAAK2hQ,aAC/D,MAAhB3hQ,KAAKskC,SACLtkC,KAAKskC,QAAQtoB,MAAK,GAEtBhc,KAAKskC,QAAU,KACf+6E,EAA8C5b,iBAAiBwlK,WAAW,MAC1EjpQ,KAAKyhQ,aAAar4I,cAAgBppH,KAAKwhQ,MAAMlC,gBAG7Ct/P,KAAK8hQ,SACe,MAAhB9hQ,KAAKskC,UACLtkC,KAAKskC,QAAU,IAAI68N,EAA8ChjO,YAErEn+B,KAAKskC,QAAQ49N,SAASliQ,KAAKwhQ,OAC3BniJ,EAA8C5b,iBAAiBr/D,aAAepkC,KAAKskC,QACnFtkC,KAAKskC,QAAQ8J,OACbpuC,KAAKyhQ,aAAar4I,eAAgB,IAGlC/J,EAA8C5b,iBAAiBr/D,aAAe,KAC9EohE,EAAgDolB,oBAAoB+mG,aAChD,MAAhB3xN,KAAKskC,SACLtkC,KAAKskC,QAAQtoB,MAAK,GAEtBhc,KAAKskC,QAAU,KACf+6E,EAA8C5b,iBAAiBr/D,aAAe,KAC9Ei7E,EAA8C5b,iBAAiBwlK,WAAW,MAC1EjpQ,KAAKyhQ,aAAar4I,cAAgBppH,KAAKwhQ,MAAMlC,gBAGrDt/P,KAAKyhQ,aAAa58I,SACtB,EAEAqkJ,iBAAkB,SAAUrrF,EAAQ39K,GAC5BF,KAAK8hQ,SACe,MAAhB9hQ,KAAKskC,UACA68N,EAA8ChjO,WAAWoG,cAKtDvkC,KAAKyhQ,aAAaU,eAAiBniQ,KAAKwhQ,MAAMp8N,6BAC9CplC,KAAKyhQ,aAAaU,aAAeniQ,KAAKwhQ,MAAMp8N,6BALhDplC,KAAK8hQ,SAAU,EACf9hQ,KAAK8iQ,oBASrB,EAEAqG,wBAAyB,SAAUtrF,EAAQ39K,GACvCF,KAAK2hQ,aAAaznN,SAAS,GAAI,EACnC,EAEAkvN,2BAA4B,SAAUvrF,EAAQ39K,GAC1CF,KAAK2hQ,aAAaznN,SAAS,GAAI,EACnC,EAEAmvN,sBAAuB,SAAUxrF,EAAQ39K,GACrCF,KAAK2hQ,aAAaznN,SAAS,GAAI,EACnC,EAEAovN,kBAAmB,SAAUzrF,EAAQ39K,GACjCF,KAAK2hQ,aAAaznN,SAAS,GAAI,EACnC,EAEAqvN,gBAAiB,SAAU1rF,EAAQ39K,GAC/BF,KAAK2hQ,aAAaznN,SAAS,GAAI,EACnC,EAEAsvN,kBAAmB,SAAU3rF,EAAQ39K,GAAK,EAE1CupQ,kBAAmB,SAAU5rF,EAAQ39K,GAAK,EAE1CwpQ,sBAAuB,SAAU7rF,EAAQ39K,GAAK,EAE9CypQ,kBAAmB,SAAU9rF,EAAQ39K,GAAK,EAE1C0pQ,kBAAmB,SAAU/rF,EAAQ39K,GAAK,EAE1C2pQ,yBAA0B,SAAUhsF,EAAQ39K,GAAK,EAEjD4pQ,eAAgB,SAAUjsF,EAAQ39K,GAC9BF,KAAKo6C,MAAK,EACd,EAEAA,KAAM,SAAUlvC,GACZ,OAAO,CACX,EAEA6+P,eAAgB,SAAUlsF,EAAQ39K,GAAK,EAEvC8pQ,iBAAkB,SAAUnsF,EAAQ39K,GAAK,EAEzC+pQ,eAAgB,SAAUpsF,EAAQ39K,GAAK,EAEvCgqQ,wBAAyB,SAAUrsF,EAAQ39K,GACvCF,KAAK2hQ,aAAaznN,SAAS,GAAI,EACnC,EAEAiwN,eAAgB,SAAUtsF,EAAQ39K,GAC9BF,KAAK2hQ,aAAaznN,SAAS,GAAI,EACnC,EAEAkwN,cAAe,SAAUvsF,EAAQ39K,GAAK,EAEtCmqQ,uBAAwB,SAAUxsF,EAAQ39K,GAClCF,KAAK8hQ,OAGb,EAEAwI,mBAAoB,SAAUzsF,EAAQ39K,GAAK,EAE3CqqQ,mBAAoB,SAAU1sF,EAAQ39K,GAAK,EAE3CsqQ,gBAAiB,SAAU3sF,EAAQ39K,GAAK,EAExCuqQ,kBAAmB,SAAU5sF,EAAQ39K,GAAK,EAE1CwqQ,uBAAwB,SAAU7sF,EAAQ39K,GAAK,EAE/C2kH,QAAS,WAAc,EAEvB8lJ,SAAU,WACF1J,EAAuCwF,KAAKmE,eAC5C3J,EAAuCwF,KAAKoE,WAC5C7qQ,KAAKyhQ,aAAa58I,UAClB7kH,KAAKyhQ,aAAaU,aAAeniQ,KAAKwhQ,MAAMp8N,2BAC5CplC,KAAKqjQ,uBAAuBrjQ,KAAKwhQ,MAAM/qF,uBACvCz2K,KAAK6kH,UACLu8I,EAA8CkB,YAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAK2hQ,aAAaa,WAEzI,EAEAsI,SAAU,WACF7J,EAAuCwF,KAAKsE,mBAC5C9J,EAAuCwF,KAAKuE,cAC5ChrQ,KAAKyhQ,aAAa58I,UAClB7kH,KAAKyhQ,aAAaU,aAAeniQ,KAAKwhQ,MAAMp8N,2BAC5CplC,KAAKqjQ,uBAAuBrjQ,KAAKwhQ,MAAM/qF,uBACvCz2K,KAAK6kH,UACLu8I,EAA8CkB,YAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAK2hQ,aAAaa,WAEzI,EAEAyI,6BAA8B,SAAUptF,EAAQ39K,GAC5CF,KAAKsnQ,0BAA0BtnQ,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,UACpF,EAEAwsF,+BAAgC,SAAUrtF,EAAQ39K,GAC9CF,KAAKqjQ,uBAAuBrjQ,KAAKmlC,WAAWsxI,uBAC5Cz2K,KAAK2hQ,aAAavL,gBACtB,EAEA+U,qBAAsB,SAAUttF,EAAQ39K,GACpC,GAAIA,EAAEkrQ,QACF,OAAQlrQ,EAAEmrQ,SACN,KAAK,GACDrrQ,KAAK46K,gBAAgB,KAAM,IAAIlwH,EAAoC9P,GAAG8jI,WACtE,MACJ,KAAK,GACD1+K,KAAK0oQ,iBAAiB,KAAM,IAAIh+M,EAAoC9P,GAAG8jI,WACvE,MACJ,KAAK,GACD1+K,KAAK+oQ,eAAe,KAAM,IAAIr+M,EAAoC9P,GAAG8jI,WACrE,MACJ,KAAK,GACGuiF,EAAuCwF,KAAKmE,aAC5CxJ,EAA8CkK,SAASC,YAGvDzK,EAA2Cz6G,QAAQmlH,QAEvD,MACJ,KAAK,GACGvK,EAAuCwF,KAAKsE,iBAC5C3J,EAA8CkK,SAASG,YAGvD3K,EAA2Cz6G,QAAQmlH,QAEvD,MAGM,KAAdtrQ,EAAEmrQ,SACFrrQ,KAAK86K,kBAAkB,KAAM,IAAIpwH,EAAoC9P,GAAG8jI,UAEhF,EAEAgtF,uBAAwB,WACpB1rQ,KAAKyhQ,aAAakK,uBACtB,IAGJ,EAAGhhN,EAA4CzS,cAAc,cAAe,CAACwoN,EAAasB,EAAc,MAGjG,EAED;;;sCAIA,CAAErjQ,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC+iQ,YAAa,IAAM,EACnBhB,YAAa,IAAM,EACnBmG,SAAU,IAAM,EAChB6D,SAAU,IAAM,EAChB1J,WAAY,IAAM,EAClBF,aAAc,IAAM,IAEtB,IAAIh3M,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FnW,EAA4C,uBAA0C,qBACtF8qE,EAA4C,uBAA0C,qBACtFmrD,EAAyC,oBAAuC,kBAChFmhG,EAA0D,qCAAwD,mCAClHC,EAAgE,2CAA8D,yCAC9H79F,EAA0D,qCAAwD,mCAClH89F,EAA6D,wCAA2D,sCACxHC,EAA8C,yBAA4C,uBAC1FC,EAAmD,6BAAgD,2BACnGC,EAA6C,uBAA0C,qBACvFnL,EAA6C,uBAA0C,qBACvFl7E,EAAyC,mBAAsC,iBAC/Eo7E,EAA4C,qBAAwC,0BACpFkL,EAA8C,uBAA0C,4BACxFC,EAAyC,kBAAqC,uBAC9EC,EAA8C,uBAA0C,4BA+BjH,SAASxK,IACL5hQ,KAAKwiQ,UAAY,IAAI0J,EAA4CzW,UACjEz1P,KAAK+4K,aAAe,IAAI8yF,EAA8D7yF,iBACtFh5K,KAAKwhQ,MAAQ,KACbxhQ,KAAKmoH,YAAa,EAClBnoH,KAAKqsQ,iBAAmB,GACxBrsQ,KAAKssQ,gBAAiB,EACtBtsQ,KAAKusQ,cAAgB,IAAI/3N,EAA0CqrD,SACnE7/F,KAAKwsQ,cAAe,EACpBxsQ,KAAKysQ,iBAAkB,EACvBzsQ,KAAK6hQ,kBAAoB,KACzB7hQ,KAAK2oQ,cAAgB,GACrB3oQ,KAAK8jQ,cAAgB,GACrB9jQ,KAAK0sQ,iBAAmB,KACxB1sQ,KAAK2sQ,cAAgBliG,EAAuC5yH,OAAOC,WACvE,CAEA8pN,EAAWgL,WAAY,EACvBhL,EAAWiL,cAAgB,KAE3B,IAAIC,EAAc,CACdn8N,OAAQ,SAAU1O,GAEd,GADAA,EAAcyuL,wBACI,MAAd1wN,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBAArC,CAGA,IAAIn7H,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwhQ,MAAM/qF,sBAAsBu3E,gBAC/F,MAAO1yM,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACjB8xM,EAAQuB,eAAiB/uP,KAAKmlC,WAAWsxI,sBAAsBE,gBAC/D62E,EAAQ0B,gBAAgBlvP,KAAKwhQ,MAAM/qF,sBAAsBhxI,qBAEnDzlC,KAAKmlC,WAAWsxI,sBAAsBE,iBAC5C62E,EAAQ0B,gBAAiBlvP,KAAKwhQ,MAAM/qF,sBAAsBhxI,oBAAsB,GAAO,EAAI,GAE/F+nN,EAAQppG,OAAOniH,GAAe,EAClC,CACAjiC,KAAKwiQ,UAAUp+G,OAAOniH,EAAe,GACL,MAA5B2/N,EAAWiL,eACXjL,EAAWiL,cAAcl8N,OAAO1O,GAEpCgqO,EAA2CrzK,SAAS8tI,aAAe,IAhBnE,CAiBJ,EAEAvhM,SAAU,WACN,OAAOnlC,KAAKwhQ,KAChB,EAEAU,SAAU,SAAUthQ,GAEhB,OADAZ,KAAKwhQ,MAAQ5gQ,EACNA,CACX,EAEAomC,MAAO,WACe,MAAdhnC,KAAKwhQ,QAELxhQ,KAAKwhQ,MAAQ,KACbxhQ,KAAK82P,UAAU,MAEvB,EAEAV,eAAgB,WACZp2P,KAAKwiQ,UAAUpM,iBACfkM,EAAYyK,4BAA4B/sQ,KAAKwiQ,WAC7CxiQ,KAAK82P,UAAU,KACnB,EAEAD,UAAW,WACP,OAAO72P,KAAKwiQ,UAAU3L,WAC1B,EAEAC,UAAW,SAAUl2P,GAEjB,OADAZ,KAAKwiQ,UAAU1L,UAAUl2P,GAClBA,CACX,EAEA8pL,YAAa,SAAUjvI,GACnB,IAAIkvI,EAAeqhF,EAAiDphJ,oBAAoBxkF,OACpFwkJ,EAAcohF,EAAiDphJ,oBAAoBzkF,MACnF0kJ,EAAamhF,EAAiDphJ,oBAAoBzkF,MAAQ6lO,EAAiDphJ,oBAAoBxkF,OAAU,KACzK2E,EAAM0Q,EAAK,EAAI,EAAgBovI,GAAeA,EAAY,MAAQ,EAClE7mL,EAAKy3C,EAAK,EAAIkvI,EAAe,KACjC,OAAOn2I,EAA0CqrD,SAAS19F,OAAO4oC,EAAG/mC,EACxE,EAEAgnL,UAAW,SAAUnN,EAAQ39K,GACzBF,KAAKysQ,iBAAkB,EACvBzsQ,KAAKssQ,gBAAiB,EACtB,IAAI1/P,EAAW5M,KAAK0qL,YAAYl2I,EAA0CqrD,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,UACvG,GAAkB,MAAdvsG,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBAEjC,OADAz2K,KAAKssQ,gBAAiB,GACf,EAEX,GAAgC,MAA5B1K,EAAWiL,eACPjL,EAAWiL,cAAc7hF,UAAUnN,EAAQ39K,GAC3C,OAAO,EAGf,GAAwB,MAApBF,KAAK62P,YAAqB,CAC1B,GAAI72P,KAAKwiQ,UAAU7L,kBAAmB,CAClC,IAAIr7M,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB,GAAI8xM,EAAQr2M,QAAQvqC,GAQhB,OAPA5M,KAAKqsQ,iBAAmB,EACxBrsQ,KAAKmoH,YAAa,EAClBnoH,KAAKgtQ,WAAapgQ,EAClB5M,KAAK82P,UAAUtJ,GACXttP,EAAEkrQ,UACFprQ,KAAKwsQ,cAAe,IAEjB,CAEf,CACJ,MAEI,GAAIxsQ,KAAK62P,YAAY1/M,QAAQvqC,GAOzB,OANA5M,KAAKqsQ,iBAAmB,EACxBrsQ,KAAKmoH,YAAa,EAClBnoH,KAAKgtQ,WAAapgQ,EACd1M,EAAEkrQ,UACFprQ,KAAKwsQ,cAAe,IAEjB,EAGf,IAAIS,EAAMjtQ,KAAKwiQ,UAAUrrN,QAAQvqC,GACjC,GAAY,KAARqgQ,EASA,OARAjtQ,KAAKqsQ,iBAAmBY,EACxBjtQ,KAAKmoH,YAAa,EAEdnoH,KAAKgtQ,WADG,IAARC,EACkBrgQ,EAGA5M,KAAKwiQ,UAAUnL,sBAAsBzqP,IAEpD,CAEf,CACA,IAAK,IAAIpK,EAAIxC,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAerrP,OAAS,EAAGH,GAAK,EAAGA,IAC7E,GAAIxC,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAexrP,GAAG20C,QAAQvqC,GAY3D,OAXA5M,KAAKqsQ,iBAAmB,EACxBrsQ,KAAK82P,UAAU92P,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAexrP,IAC3DtC,EAAEkrQ,SAAWlrQ,EAAE+qL,SACfjrL,KAAKwiQ,UAAUnM,aAAar2P,KAAK62P,aAGjC72P,KAAKwiQ,UAAU9L,aAAa12P,KAAK62P,aAErCyL,EAAYyK,4BAA4B/sQ,KAAKwiQ,WAC7CxiQ,KAAKmoH,YAAa,EAClBnoH,KAAKgtQ,WAAapgQ,GACX,EAMf,OAHA5M,KAAK82P,UAAU,MACf92P,KAAKo2P,iBACLp2P,KAAKssQ,gBAAiB,GACf,CACX,EAEAphF,QAAS,SAAUrN,EAAQ39K,GAEvB,OADAF,KAAKysQ,iBAAkB,IACS,MAA5B7K,EAAWiL,gBACPjL,EAAWiL,cAAc3hF,QAAQrN,EAAQ39K,MAIjDF,KAAKusQ,cAAgB/3N,EAA0CqrD,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,SACxFvsG,KAAKmoH,YACLnoH,KAAKmoH,YAAa,EACD,IAAbjoH,EAAEgtQ,QACsB,MAApBltQ,KAAK62P,aACL72P,KAAKmtQ,yBAAyB34N,EAA0CqrD,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,WAGtG,GAEM,IAAbrsG,EAAEgtQ,SACsB,MAApBltQ,KAAK62P,aACL72P,KAAKotQ,4BAA4B54N,EAA0CqrD,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,WAErG,GAGf,EAEA4+E,UAAW,SAAUtN,EAAQ39K,GACzB,GAAgC,MAA5B0hQ,EAAWiL,eACPjL,EAAWiL,cAAc1hF,UAAUtN,EAAQ39K,GAC3C,OAAO,EAGf,IAAI0M,EAAW5M,KAAK0qL,YAAYl2I,EAA0CqrD,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,UACvG,GAAIvsG,KAAKmoH,YAAkC,MAApBnoH,KAAK62P,YAAqB,CAC7C,IAKIwW,EACAC,EANAC,EAAY,KACZC,EAAa5nF,EAAuCxS,SAASC,iBAAiB,IAAK,QAMvF,GALIrzK,KAAKssQ,iBACLiB,EAAY,IAAInB,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,QAASrzK,KAAKwhQ,QAIzI,IAA1BxhQ,KAAKqsQ,kBAAoD,IAA1BrsQ,KAAKqsQ,iBAAwB,CAC5D,IAAIzvK,EAAW58F,KAAKwiQ,UAAUnL,sBAAsBzqP,GACpDygQ,EAAQzwK,EAAS7xD,EAAI/qC,KAAKgtQ,WAAWjiO,EACrCuiO,EAAQ1wK,EAAS54F,EAAIhE,KAAKgtQ,WAAWhpQ,EACrChE,KAAKgtQ,WAAapwK,CACtB,KACK,CAGD,GAFAywK,EAAQzgQ,EAASm+B,EAAI/qC,KAAKgtQ,WAAWjiO,EACrCuiO,EAAQ1gQ,EAAS5I,EAAIhE,KAAKgtQ,WAAWhpQ,EACP,IAA1BhE,KAAKqsQ,mBAA2BrsQ,KAAKysQ,gBAAiB,CACtD,KAAInnQ,KAAKkjD,IAAI6kN,GAAS,GAAK/nQ,KAAKkjD,IAAI8kN,GAAS,GAIzC,OAAO,EAHPttQ,KAAKysQ,iBAAkB,CAK/B,CACAzsQ,KAAKgtQ,WAAapgQ,CACtB,CACA,GAAI5M,KAAKwsQ,aACL,GAAIxsQ,KAAKwiQ,UAAU7L,kBAAmB,CAClC,IAAI5hP,EAAM/U,KAAKwiQ,UAAUzM,aACzB/1P,KAAKo2P,iBACL,IAAI96M,EAASoP,EAAoC9P,GAAGW,UAAUxmC,GAC9D,MAAOumC,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACjBgyM,EAAa1tP,KAAKytQ,WAAWjgB,GACjCE,EAAW2B,MAAM7B,EAAQoB,SACzBlB,EAAW4B,MAAM9B,EAAQqB,SACzB7uP,KAAK82P,UAAUpJ,GACf1tP,KAAKwiQ,UAAUnM,aAAar2P,KAAK62P,YACrC,CACAyL,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,WACtExiQ,KAAKwsQ,cAAe,CACxB,KACK,CACG9e,EAAa1tP,KAAKytQ,WAAWztQ,KAAK62P,aACtCnJ,EAAW2B,MAAMrvP,KAAK62P,YAAYjI,SAClClB,EAAW4B,MAAMtvP,KAAK62P,YAAYhI,SAClC7uP,KAAK82P,UAAUpJ,GACf1tP,KAAKwiQ,UAAU9L,aAAa12P,KAAK62P,aACjCyL,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,WACtExiQ,KAAKwsQ,cAAe,CACxB,CAEJ,IAAIkB,EAAS1tQ,KAAK62P,YAAYhxF,YAAc7lK,KAAK62P,YAAYnrB,aACzDp0L,EAAS9C,EAA0CqrD,SAAS19F,OAAOnC,KAAK62P,YAAYjI,QAAS5uP,KAAK62P,YAAYhI,SAClH,GAAI3uP,EAAEkrQ,QAEF,OADAoC,EAAa5nF,EAAuCxS,SAASC,iBAAiB,IAAK,UAC3ErzK,KAAKqsQ,kBACT,KAAK,EACDrsQ,KAAK62P,YAAY/wF,UAAUxgK,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYhxF,YAAsB,EAARwnG,IACtErtQ,KAAK62P,YAAYtH,WAAWjqP,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYnrB,aAAgB2hC,EAAQK,EAAU,IAC3F,MACJ,KAAK,EACD1tQ,KAAK62P,YAAYtH,WAAWjqP,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYnrB,aAAuB,EAAR4hC,IACxE,MACJ,KAAK,EACDttQ,KAAK62P,YAAY/wF,UAAUxgK,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYhxF,YAAsB,EAARwnG,IACtErtQ,KAAK62P,YAAYtH,WAAWjqP,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYnrB,aAAgB2hC,EAAQK,EAAU,IAC3F,MACJ,KAAK,EACD1tQ,KAAK62P,YAAY/wF,UAAUxgK,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYhxF,YAAsB,EAARwnG,IACtE,MACJ,KAAK,EACDrtQ,KAAK62P,YAAY/wF,UAAUxgK,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYhxF,YAAsB,EAARwnG,IACtErtQ,KAAK62P,YAAYtH,WAAWjqP,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYnrB,aAAgB2hC,EAAQK,EAAU,IAC3F,MACJ,KAAK,EACD1tQ,KAAK62P,YAAYtH,WAAWjqP,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYnrB,aAAuB,EAAR4hC,IACxE,MACJ,KAAK,EACDttQ,KAAK62P,YAAY/wF,UAAUxgK,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYhxF,YAAsB,EAARwnG,IACtErtQ,KAAK62P,YAAYtH,WAAWjqP,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYnrB,aAAgB2hC,EAAQK,EAAU,IAC3F,MACJ,KAAK,EACD1tQ,KAAK62P,YAAY/wF,UAAUxgK,KAAKC,IAAI,EAAGvF,KAAK62P,YAAYhxF,YAAsB,EAARwnG,IACtE,MACJ,KAAK,EACDG,EAAa5nF,EAAuCxS,SAASC,iBAAiB,IAAK,UACnFrzK,KAAK62P,YAAYlH,kBAAkB3vP,KAAK62P,YAAY/H,oBAAsBue,EAAQ,IAClF,MACJ,KAAK,EACDG,EAAa5nF,EAAuCxS,SAASC,iBAAiB,IAAK,aACnF/7H,EAAOvM,GAAKsiO,EACZ/1N,EAAOtzC,GAAKspQ,EACZ,MACJ,KAAK,GACD,MACJ,KAAK,GACD,MACJ,QACI,WAaR,OAT8B,IAA1BttQ,KAAKqsQ,kBAAoD,IAA1BrsQ,KAAKqsQ,mBAChCgB,EAASrtQ,KAAK62P,YAAYhxF,YAAc,IACxCwnG,EAAQ,GAERC,EAASttQ,KAAK62P,YAAYnrB,aAAe,IACzC4hC,EAAQ,IAGhBE,EAAa5nF,EAAuCxS,SAASC,iBAAiB,IAAK,UAC3ErzK,KAAKqsQ,kBACT,KAAK,EACDrsQ,KAAK62P,YAAY/wF,UAAU9lK,KAAK62P,YAAYhxF,YAAcwnG,GAC1DrtQ,KAAK62P,YAAYtH,WAAWvvP,KAAK62P,YAAYnrB,aAAgB2hC,EAAQK,GACrEp2N,EAAOvM,GAAMsiO,EAAQ,EACrB/1N,EAAOtzC,GAAOqpQ,EAAQK,EAAU,EAChC,MACJ,KAAK,EACD1tQ,KAAK62P,YAAYtH,WAAWvvP,KAAK62P,YAAYnrB,aAAe4hC,GAC5Dh2N,EAAOtzC,GAAMspQ,EAAQ,EACrB,MACJ,KAAK,EACDttQ,KAAK62P,YAAY/wF,UAAU9lK,KAAK62P,YAAYhxF,YAAcwnG,GAC1DrtQ,KAAK62P,YAAYtH,WAAWvvP,KAAK62P,YAAYnrB,aAAgB2hC,EAAQK,GACrEp2N,EAAOvM,GAAMsiO,EAAQ,EACrB/1N,EAAOtzC,GAAOqpQ,EAAQK,EAAU,EAChC,MACJ,KAAK,EACD1tQ,KAAK62P,YAAY/wF,UAAU9lK,KAAK62P,YAAYhxF,YAAcwnG,GAC1D/1N,EAAOvM,GAAMsiO,EAAQ,EACrB,MACJ,KAAK,EACDrtQ,KAAK62P,YAAY/wF,UAAU9lK,KAAK62P,YAAYhxF,YAAcwnG,GAC1DrtQ,KAAK62P,YAAYtH,WAAWvvP,KAAK62P,YAAYnrB,aAAgB2hC,EAAQK,GACrEp2N,EAAOvM,GAAMsiO,EAAQ,EACrB/1N,EAAOtzC,GAAOqpQ,EAAQK,EAAU,EAChC,MACJ,KAAK,EACD1tQ,KAAK62P,YAAYtH,WAAWvvP,KAAK62P,YAAYnrB,aAAe4hC,GAC5Dh2N,EAAOtzC,GAAMspQ,EAAQ,EACrB,MACJ,KAAK,EACDttQ,KAAK62P,YAAY/wF,UAAU9lK,KAAK62P,YAAYhxF,YAAcwnG,GAC1DrtQ,KAAK62P,YAAYtH,WAAWvvP,KAAK62P,YAAYnrB,aAAgB2hC,EAAQK,GACrEp2N,EAAOvM,GAAMsiO,EAAQ,EACrB/1N,EAAOtzC,GAAOqpQ,EAAQK,EAAU,EAChC,MACJ,KAAK,EACD1tQ,KAAK62P,YAAY/wF,UAAU9lK,KAAK62P,YAAYhxF,YAAcwnG,GAC1D/1N,EAAOvM,GAAMsiO,EAAQ,EACrB,MACJ,KAAK,EACDG,EAAa5nF,EAAuCxS,SAASC,iBAAiB,IAAK,UACnFrzK,KAAK62P,YAAYlH,kBAAkB3vP,KAAK62P,YAAY/H,oBAAsBue,GAC1E,MACJ,KAAK,EACDG,EAAa5nF,EAAuCxS,SAASC,iBAAiB,IAAK,QACnF/7H,EAAOvM,GAAKsiO,EACZ/1N,EAAOtzC,GAAKspQ,EACZ,MACJ,KAAK,GACD,MACJ,KAAK,GACD,MACJ,QACI,MAMZ,GAH8B,IAA1BttQ,KAAKqsQ,kBAAoD,IAA1BrsQ,KAAKqsQ,mBACpC/0N,EAASt3C,KAAKwiQ,UAAUjL,mBAAmBjgN,IAE3Ct3C,KAAKwiQ,UAAU7L,kBAAmB,CAClC,IAAIxxI,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAO5wI,EAAO3pE,WAAY,CAClBgyM,EAAUroI,EAAOzpE,QACrB8xM,EAAQ6B,MAAM7B,EAAQoB,QAAUye,GAChC7f,EAAQ8B,MAAM9B,EAAQqB,QAAUye,EACpC,CACJ,MAEIttQ,KAAK62P,YAAYxH,MAAM/3M,EAAOvM,GAC9B/qC,KAAK62P,YAAYvH,MAAMh4M,EAAOtzC,GAE9BhE,KAAKssQ,iBACLtsQ,KAAKssQ,gBAAiB,EACtBiB,EAAUI,eAAeH,GACzBrB,EAAuC1F,KAAK9hQ,KAAK4oQ,GAEzD,MACI,GAAwB,MAApBvtQ,KAAK62P,YAAqB,CAC1B,GAAI72P,KAAK62P,YAAY1/M,QAAQvqC,GAEzB,OADAg5K,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQG,gBAClG,EAEX,IAAIuhF,EAAMjtQ,KAAKwiQ,UAAUrrN,QAAQvqC,GACjC,GAAY,KAARqgQ,EACA,OAAO,EAEX,OAAQA,GACJ,KAAK,EACDrnF,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQqiF,gBACzG,MACJ,KAAK,EACDhoF,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQC,cACzG,MACJ,KAAK,EACD5F,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQsiF,gBACzG,MACJ,KAAK,EACDjoF,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQE,cACzG,MACJ,KAAK,EACD7F,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQqiF,gBACzG,MACJ,KAAK,EACDhoF,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQC,cACzG,MACJ,KAAK,EACD5F,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQsiF,gBACzG,MACJ,KAAK,EACDjoF,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQE,cACzG,MACJ,KAAK,EACD7F,EAAuCpG,OAAO8L,YAAY1F,EAAuC2F,QAAQE,cACzG,MACJ,KAAK,GACD,MACJ,KAAK,GACD,MACJ,QACI,MAEZ,CAEJ,OAAO,CACX,EAEA2hF,4BAA6B,SAAUrnK,GAInC,GAHyB,MAArB/lG,KAAK+4K,cACL/4K,KAAK+4K,aAAa2qF,WAEkB,MAApC1jQ,KAAKwhQ,MAAM/qF,sBAAf,CAGAz2K,KAAK+4K,aAAe,IAAI8yF,EAA8D7yF,iBACtF,IAAIqD,EAAYwvF,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,UAC7KgJ,EAAU17J,QAAiC,+BAAvB3gB,KAAK8jQ,cACzBznF,EAAU5wK,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,mBAAoBpV,MAClFA,KAAK+4K,aAAannD,MAAMjtH,KAAK03K,GAC7Br8K,KAAK+4K,aAAayC,MAAMz1E,EANxB,CAOJ,EAEAmkK,wBAAyB,SAAUrsF,EAAQ39K,GACvCF,KAAKk6C,SAAS,GAAI,EACtB,EAEAiwN,eAAgB,SAAUtsF,EAAQ39K,GAC9BF,KAAKk6C,SAAS,GAAI,EACtB,EAEA4zN,yBAA0B,SAAUjwF,EAAQ39K,GACxCF,KAAKk6C,SAAS,GAAI,EACtB,EAEA6zN,4BAA6B,SAAUlwF,EAAQ39K,GAC3CF,KAAKk6C,SAAS,GAAI,EACtB,EAEA8zN,uBAAwB,SAAUnwF,EAAQ39K,GACtCF,KAAKk6C,SAAS,GAAI,EACtB,EAEA+zN,mBAAoB,SAAUpwF,EAAQ39K,GAClCF,KAAKk6C,SAAS,GAAI,EACtB,EAEAqvN,gBAAiB,SAAU1rF,EAAQ39K,GAC/BF,KAAKk6C,SAAS,GAAI,EACtB,EAEAizN,yBAA0B,SAAUpnK,GAChC,GAAwB,MAApB/lG,KAAK62P,YAAT,CAGA,IAAIqX,EAAcluQ,KAAKwiQ,UAAU7L,kBACR,MAArB32P,KAAK+4K,cACL/4K,KAAK+4K,aAAa2qF,WAEtB1jQ,KAAK+4K,aAAe,IAAI8yF,EAA8D7yF,iBACtF,IAAI4qF,EAAUiI,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,QACvKgG,EAAWwyF,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,SACxKgJ,EAAYwvF,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,UACzKiG,EAAauyF,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,WAC1KwwF,EAAO,IAAIgI,EAA8D9xF,mBACzEgqF,EAAO,IAAI8H,EAA8D9xF,mBACzEkqF,EAAO,IAAI4H,EAA8D9xF,mBACzEo0F,EAAetC,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,mBAC5K+6F,EAAavC,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,iBAC1Kg7F,EAAexC,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,kBAC5Ki7F,EAAezC,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,kBAC5K+xF,EAAayG,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,GAAI,eACzKk7F,EAAW1C,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,SACxK3oK,EAAMmhQ,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,cACnK0xF,EAAa/kQ,KAAK62P,YAAY5I,aAClC,OAAQjuP,KAAK62P,YAAY5I,cACrB,IAAK,GACL,KAAK,KACD8W,EAAa,KAAOn/E,EAAuCxS,SAASC,iBAAiB,IAAK,WAAa,IACvG,MACJ,IAAK,OACD0xF,EAAa,KAAOn/E,EAAuCxS,SAASC,iBAAiB,IAAK,cAAgB,IAC1G,MACJ,IAAK,SACD0xF,EAAa,KAAOn/E,EAAuCxS,SAASC,iBAAiB,IAAK,oBAAsB,IAChH,MACJ,QACI,IAAIttI,EAAQ/lC,KAAKmlC,WAAWq7N,qBAAqBxgQ,KAAK62P,YAAY5I,cAC9DloN,GAAS,IAELg/N,EADAr6M,EAAoC9P,GAAGC,YAAY76C,KAAKwhQ,MAAMj8N,gBAAgBQ,GAAOuqK,mBACxE5lJ,EAAoC9P,GAAGvU,OAAO,KAAOu/I,EAAuCxS,SAASC,iBAAiB,KAAM,SAAW,QAASttI,GAGhJ,KAAO/lC,KAAKwhQ,MAAMj8N,gBAAgBQ,GAAOuqK,kBAAoB,KAGlF,MAER,IAAIk+D,EAAc3C,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,YAC3Ko7F,EAAS5C,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,iBAAmB0xF,GACzL2J,EAAY7C,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,kBACzKs7F,EAAqB9C,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,wBAClLu7F,EAAkB/C,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,yBAChLiyF,EAASuG,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,WACvKkyF,EAAOsG,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,gBACrKmyF,EAASqG,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,YACvKoyF,EAAUoG,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,aACxKqyF,EAAcmG,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,gBAC5Kw7F,EAAUhD,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,kBACxKy7F,EAAQjD,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,IAAK,UACrK07F,EAAWlD,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,QACzK27F,EAAcnD,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,WAC5K47F,EAAYpD,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,SAC1K67F,EAAarD,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,UAC3K87F,EAAetD,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,eAC7K+7F,EAAgBvD,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,aAC9Kg8F,EAAcxD,EAA8D3yF,kBAAkB/2K,OAAOyjL,EAAuCxS,SAASC,iBAAiB,KAAM,aAoBhL,OAnBAy7F,EAAMhyF,cAAcn4K,KAAKoqQ,GACzBD,EAAMhyF,cAAcn4K,KAAKqqQ,GACzBF,EAAMhyF,cAAcn4K,KAAKsqQ,GACzBH,EAAMhyF,cAAcn4K,KAAKuqQ,GACzBJ,EAAMhyF,cAAcn4K,KAAKwqQ,GACzBL,EAAMhyF,cAAcn4K,KAAKyqQ,GACzBN,EAAMhyF,cAAcn4K,KAAK0qQ,GACzB/J,EAAOv4O,IAAM,EACbw4O,EAAKx4O,IAAM,EACXy4O,EAAOz4O,IAAM,EACb04O,EAAQ14O,IAAM,EACd24O,EAAY34O,IAAM,EAClB8hP,EAAQ9hP,IAAM,EACdu4O,EAAO75P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MACnFulQ,EAAK95P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MACjFwlQ,EAAO/5P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MACnFylQ,EAAQh6P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MACpF0lQ,EAAYj6P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MACxF6uQ,EAAQpjQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MAC5EA,KAAK62P,YAAYhH,yBACrB,KAAK,EACDyV,EAAO/pF,SAAU,EACjB,MACJ,KAAK,EACDiqF,EAAOjqF,SAAU,EACjB,MACJ,KAAK,EACDkqF,EAAQlqF,SAAU,EAClB,MACJ,KAAK,EACDgqF,EAAKhqF,SAAU,EACf,MACJ,KAAK,EACDmqF,EAAYnqF,SAAU,EACtB,MACJ,KAAK,EACDszF,EAAQtzF,SAAU,EAClB,MACJ,QACI,MAERqzF,EAAgB9xF,cAAcn4K,KAAKkqQ,GACnCD,EAAgB9xF,cAAcn4K,KAAK2gQ,GACnCsJ,EAAgB9xF,cAAcn4K,KAAK4gQ,GACnCqJ,EAAgB9xF,cAAcn4K,KAAK6gQ,GACnCoJ,EAAgB9xF,cAAcn4K,KAAK8gQ,GACnCmJ,EAAgB9xF,cAAcn4K,KAAK+gQ,GACnC9B,EAAQn4P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,iBAAkBpV,MAC9Eq5K,EAAS5tK,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,kBAAmBpV,MAChFs5K,EAAW7tK,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,oBAAqBpV,MACpFmuQ,EAAa1iQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,sBAAuBpV,MACxFouQ,EAAW3iQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,oBAAqBpV,MACpFsuQ,EAAa7iQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,sBAAuBpV,MACxFquQ,EAAa5iQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,sBAAuBpV,MACxFolQ,EAAW35P,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,oBAAqBpV,MACpFuuQ,EAAS9iQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,kBAAmBpV,MAChF0K,EAAIe,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,aAAcpV,MACtE0uQ,EAAUjjQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,mBAAoBpV,MAClFq8K,EAAU5wK,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,mBAAoBpV,MAClFwuQ,EAAY/iQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,qBAAsBpV,MACtF2uQ,EAAmBljQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,4BAA6BpV,MACpGyuQ,EAAOhjQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,gBAAiBpV,MAC5E+uQ,EAAStjQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,kBAAmBpV,MAChFgvQ,EAAYvjQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,qBAAsBpV,MACtFivQ,EAAUxjQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,mBAAoBpV,MAClFkvQ,EAAWzjQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,oBAAqBpV,MACpFmvQ,EAAa1jQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,sBAAuBpV,MACxFovQ,EAAc3jQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,uBAAwBpV,MAC1FqvQ,EAAY5jQ,MAAQi/C,EAAoC9P,GAAGxlC,KAAK,qBAAsBpV,MACtFA,KAAK+4K,aAAannD,MAAMjtH,KAAKi/P,GAC7B5jQ,KAAK+4K,aAAannD,MAAMjtH,KAAK00K,GAC7Br5K,KAAK+4K,aAAannD,MAAMjtH,KAAK03K,GAC7Br8K,KAAK+4K,aAAannD,MAAMjtH,KAAK20K,GAC7Bt5K,KAAK+4K,aAAannD,MAAMjtH,KAAKk/P,GAC7B7jQ,KAAK+4K,aAAannD,MAAMjtH,KAAKwpQ,GAC7BnuQ,KAAK+4K,aAAannD,MAAMjtH,KAAKypQ,GAC7BpuQ,KAAK+4K,aAAannD,MAAMjtH,KAAK0pQ,GAC7BruQ,KAAK+4K,aAAannD,MAAMjtH,KAAK2pQ,GAC7BtuQ,KAAK+4K,aAAannD,MAAMjtH,KAAKmqQ,GAC7B9uQ,KAAK+4K,aAAannD,MAAMjtH,KAAKo/P,GAC7B1nF,EAAU17J,SAAU,EACpB3gB,KAAK+4K,aAAannD,MAAMjtH,KAAK+pQ,GAC7B1uQ,KAAK+4K,aAAannD,MAAMjtH,KAAK+F,GAC7B1K,KAAK+4K,aAAannD,MAAMjtH,KAAK8pQ,GAC7BzuQ,KAAK+4K,aAAannD,MAAMjtH,KAAK6pQ,GAC7BxuQ,KAAK+4K,aAAannD,MAAMjtH,KAAKs/P,GAC7BjkQ,KAAK+4K,aAAannD,MAAMjtH,KAAKgqQ,GAC7BH,EAAYjzF,QAAUv7K,KAAK62P,YAAY9H,cACvC/uP,KAAK+4K,aAAannD,MAAMjtH,KAAKiqQ,GAC7BA,EAAgBjuP,QAAU3gB,KAAK62P,YAAY9H,cAC3C4f,EAAmB5hH,QAAWriG,EAAoC9P,GAAG21C,QAAQvwF,KAAK62P,YAAamK,EAA0C5W,iBACzI6Z,EAAKl3G,QAAWriG,EAAoC9P,GAAG21C,QAAQvwF,KAAK62P,YAAamK,EAA0C5W,iBACvH8jB,GACAxjQ,EAAIqiJ,SAAU,EACd0hH,EAAO1hH,SAAU,EACjBq4G,EAAWr4G,SAAU,EACrB4hH,EAAmB5hH,SAAU,EAC7BshH,EAAathH,SAAU,EACvBuhH,EAAavhH,SAAU,GAEvB+hH,EAAM/hH,SAAU,EAEpB/sJ,KAAK+4K,aAAannD,MAAMjtH,KAAKygQ,GACL,MAApBplQ,KAAK62P,aACDnsM,EAAoC9P,GAAGohM,OAAOh8O,KAAK62P,eAAiBmK,EAA0CtW,aAC9G1qP,KAAK+4K,aAAannD,MAAMjtH,KAAK4pQ,GAGrCvuQ,KAAK+4K,aAAayC,MAAMz1E,EA3KxB,CA4KJ,EAEAupK,gBAAiB,SAAUzxF,EAAQ39K,GACP,MAApBF,KAAK62P,aACDnsM,EAAoC9P,GAAGohM,OAAOh8O,KAAK62P,eAAiBmK,EAA0CtW,aAC9G1qP,KAAKuvQ,WAGjB,EAEAC,qBAAsB,SAAU3xF,EAAQ39K,GACpC,GAAwB,MAApBF,KAAK62P,YAAT,CAGAsV,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,KAAM,kBAAmBrzK,KAAKwhQ,QACnN,IAAIiO,EAAUzvQ,KAAK62P,YAAYjI,QAC3BtzM,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ6B,MAAMogB,EAClB,CAPA,CAQJ,EAEAC,oBAAqB,SAAU7xF,EAAQ39K,GACnC,GAAwB,MAApBF,KAAK62P,YAAT,CAGAsV,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,KAAM,oBAAqBrzK,KAAKwhQ,QACrN,IAAImO,EAAU3vQ,KAAK62P,YAAYhI,QAC3BvzM,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ8B,MAAMqgB,EAClB,CAPA,CAQJ,EAEAC,mBAAoB,SAAU/xF,EAAQ39K,GAClC,GAAwB,MAApBF,KAAK62P,YAAT,CAGAsV,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,KAAM,iBAAkBrzK,KAAKwhQ,QAClN,IAAImO,EAAU3vQ,KAAK62P,YAAYhI,QAC3B4gB,EAAUzvQ,KAAK62P,YAAYjI,QAC3BtzM,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ8B,MAAMqgB,GACdniB,EAAQ6B,MAAMogB,EAClB,CATA,CAUJ,EAEAI,kBAAmB,SAAUhyF,EAAQ39K,GACjC,GAAwB,MAApBF,KAAK62P,YAAT,CAGAsV,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,KAAM,eAAgBrzK,KAAKwhQ,QAChN,IAAI5xK,EAAO5vF,KAAK62P,YAAYjI,QAAU5uP,KAAK62P,YAAYhxF,YAAc,EACjEvqH,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ6B,MAAMz/J,EAAO49J,EAAQ3nF,YAAc,EAC/C,CAPA,CAQJ,EAEAiqG,iBAAkB,SAAUjyF,EAAQ39K,GAChC,GAAwB,MAApBF,KAAK62P,YAAT,CAGAsV,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,KAAM,cAAerzK,KAAKwhQ,QAC/M,IAAI1xK,EAAQ9vF,KAAK62P,YAAYjI,QAAU5uP,KAAK62P,YAAYhxF,YAAc,EAClEvqH,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ6B,MAAMv/J,EAAQ09J,EAAQ3nF,YAAc,EAChD,CAPA,CAQJ,EAEAkqG,mBAAoB,SAAUlyF,EAAQ39K,GAClC,GAAwB,MAApBF,KAAK62P,YAAT,CAGAsV,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,KAAM,iBAAkBrzK,KAAKwhQ,QAClN,IAAI57J,EAAM5lG,KAAK62P,YAAYhI,QAAU7uP,KAAK62P,YAAYnrB,aAAe,EACjEpwL,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ8B,MAAM1pJ,EAAM4nJ,EAAQ9hB,aAAe,EAC/C,CAPA,CAQJ,EAEAskC,gBAAiB,SAAUnyF,EAAQ39K,GAC/B,GAAwB,MAApBF,KAAK62P,YAAT,CAGAsV,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,KAAM,cAAerzK,KAAKwhQ,QAC/M,IAAI57J,EAAM5lG,KAAK62P,YAAYhI,QAAU7uP,KAAK62P,YAAYnrB,aAAe,EACjEpwL,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ8B,MAAM1pJ,EAAM4nJ,EAAQ9hB,aAAe,EAC/C,CAPA,CAQJ,EAEAu6B,qBAAsB,SAAUpoF,EAAQ39K,GACpC,IAAIgH,EAAO22K,EACX,GAAwB,MAApB79K,KAAK62P,YAAqB,CAC1B,IAAIv7M,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQsC,sBAAsB5oP,EAAK6lB,IACvC,CACJ,CACJ,EAEAkjP,iBAAkB,WACVjwQ,KAAKkwQ,aAAa9J,UAClBpmQ,KAAK62P,YAAY3I,WAAWluP,KAAKkwQ,aAAa3jP,SAEtD,EAEA4jP,cAAe,SAAUtyF,EAAQ39K,GAC7BF,KAAKkwQ,aAAe,IAAItqF,EAAuC2gF,WAAWvmQ,KAAK62P,YAAY5I,cAC3FjuP,KAAK6hQ,kBAAkB7hQ,KAAKkwQ,aAAcxlN,EAAoC9P,GAAGxlC,KAAK,mBAAoBpV,MAC9G,EAEAowQ,0BAA2B,SAAUvyF,EAAQ39K,GAAK,EAElDmwQ,mBAAoB,SAAUxyF,EAAQ39K,GAClC,GAAwB,MAApBF,KAAK62P,YAAqB,CAC1BsV,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,WAAYrzK,KAAKwhQ,QAC3M,IAAI8O,GAAWtwQ,KAAK62P,YAAY9H,cAC5BzzM,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQwB,YAAYshB,EACxB,CACJ,CACJ,EAEAC,WAAY,SAAU1yF,EAAQ39K,GAC1B,IAAIyqH,EAAQ3qH,KAEZ,GAAwB,MAApBA,KAAK62P,YAAqB,CAC1B,IAAIjkJ,EAAQ,IAAIo7D,EAAwD2Q,YAAYiH,EAAuCxS,SAASC,iBAAiB,IAAK,kBAAmBuS,EAAuCxS,SAASC,iBAAiB,IAAK,OAAQrzK,KAAK62P,YAAYlvN,UAAW,MACvRirE,EAAMwrE,KAAKwH,EAAuCpG,OAAOj4E,gBAAgB,WACrE4kK,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,kBAAmB1oD,EAAM62I,QACnN72I,EAAMksI,YAAYxwI,QAAQzT,EAAMrjG,KACpC,GACJ,CACJ,EAEAihQ,iBAAkB,SAAU3yF,EAAQ39K,GAChC,IAAIyqH,EAAQ3qH,KAER4+K,EAAS,IAAIgtF,EAAwD/sF,YACzED,EAAO/rK,MAAQ7S,KAAK62P,YAAYr2O,YAChCo+J,EAAOE,SAAW,WACdqtF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,cAAe1oD,EAAM62I,QAC/M,IAAIlmN,EAASoP,EAAoC9P,GAAGW,UAAUovE,EAAM63I,UAAUzM,cAC9E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ/sO,UAAUm+J,EAAO/rK,MAC7B,CACJ,EACA+rK,EAAOR,KAAKl+K,EAChB,EAEAuwQ,cAAe,SAAU5yF,EAAQ39K,GAC7B,IAAIwwQ,EAAM,IAAI9qF,EAAuC+qF,YACrDD,EAAI/c,OAAU3zP,KAAK62P,YAAanD,aAChCgd,EAAIpxF,aACHt/K,KAAK62P,YAAapD,WAAWid,EAAI/c,OACtC,EAEA74E,kBAAmB,SAAU+C,EAAQ39K,GACjC,GAAkB,MAAdF,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBAArC,CAGA01F,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,UAAWrzK,KAAKwhQ,QAC1M,IAAIlmN,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB17C,KAAKwhQ,MAAM/qF,sBAAsBm6F,cAAcpjB,EACnD,CACAxtP,KAAK82P,UAAU,MACf92P,KAAKo2P,iBACLkM,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,UATtE,CAUJ,EAEAuF,kBAAmB,SAAUlqF,EAAQ39K,GACf,MAAdF,KAAKwhQ,OAAiBxhQ,KAAKwhQ,MAAM/qF,sBAErC01F,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,mBAAoBrzK,KAAKwhQ,QACnN,IAAI1iQ,EAAQ,IAAI8mL,EAAuCirF,kBACvD/xQ,EAAM0uP,QAAUxtP,KAAK62P,YACrB/3P,EAAMwgL,aACNgjF,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,UAC1E,EAEAsO,oBAAqB,SAAUjzF,EAAQ39K,GACnC,GAAkB,MAAdF,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBAArC,CAGA01F,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,iBAAkBrzK,KAAKwhQ,QACjN,IAAIlmN,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK+wQ,qBAAoB,IACvF,MAAOz1N,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB17C,KAAKwhQ,MAAM/qF,sBAAsB43F,aAAa7gB,EAClD,CACA8U,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,UAPtE,CAQJ,EAEAwO,oBAAqB,SAAUnzF,EAAQ39K,GACnC,GAAkB,MAAdF,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBAArC,CAGA01F,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,iBAAkBrzK,KAAKwhQ,QACjN,IAAIlmN,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK+wQ,qBAAoB,IACvF,MAAOz1N,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB17C,KAAKwhQ,MAAM/qF,sBAAsB63F,aAAa9gB,EAClD,CACA8U,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,UAPtE,CAQJ,EAEAyO,kBAAmB,SAAUpzF,EAAQ39K,GACjC,GAAkB,MAAdF,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBAArC,CAGA01F,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,gBAAiBrzK,KAAKwhQ,QAChN,IAAIlmN,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK+wQ,qBAAoB,IACvF,MAAOz1N,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB17C,KAAKwhQ,MAAM/qF,sBAAsB23F,WAAW5gB,EAChD,CACA8U,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,UAPtE,CAQJ,EAEA0O,oBAAqB,SAAUrzF,EAAQ39K,GACnC,GAAkB,MAAdF,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBAArC,CAGA01F,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,kBAAmBrzK,KAAKwhQ,QAClN,IAAIlmN,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK+wQ,qBAAoB,IACvF,MAAOz1N,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB17C,KAAKwhQ,MAAM/qF,sBAAsB03F,aAAa3gB,EAClD,CACA8U,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,UAPtE,CAQJ,EAEAuO,oBAAqB,SAAUx3K,GAC3B,IAAI43K,EAAS,GACT71N,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIg7M,EAAKl7M,EAAOI,QAChBy1N,EAAOxsQ,KAAK6xP,EAChB,CAUA,OATIj9J,EACA43K,EAAOxhF,MAAK,SAAU9zE,EAAIC,GACtB,OAAQwD,EAA0C58D,KAAKmnC,QAAQgyB,EAAGkyI,aAAcjyI,EAAGiyI,aACvF,IAEAojB,EAAOxhF,MAAK,SAAU9zE,EAAIC,GACtB,OAAOwD,EAA0C58D,KAAKmnC,QAAQgyB,EAAGkyI,aAAcjyI,EAAGiyI,aACtF,IAEGojB,CACX,EAEAv2F,gBAAiB,SAAUiD,EAAQ39K,GAC/B,GAAkB,MAAdF,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBAArC,CAGA,IAAIqyF,EAAS,IAAIgD,EAA2D/iB,cAC5E+f,EAAO7f,4BAA4B,MAAO,kCAC1C6f,EAAO73G,mBAAmB,YAC1B,IAAI31G,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ18F,UAAUg4G,GAAQ,EAC9B,CACAA,EAAO/2G,mBACP/xJ,KAAK2oQ,cAAgBG,EAAOhlQ,KAC5B9D,KAAK8jQ,cAAgB,4BAXrB,CAYJ,EAEAiF,eAAgB,SAAUlrF,EAAQ39K,GAC9B,GAAkB,MAAdF,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBAArC,CAGA01F,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,OAAQrzK,KAAKwhQ,QACvMxhQ,KAAK46K,gBAAgBiD,EAAQ39K,GAC7B,IAAIo7C,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB17C,KAAKwhQ,MAAM/qF,sBAAsBm6F,cAAcpjB,EACnD,CACAxtP,KAAK82P,UAAU,MACf92P,KAAKo2P,iBACLkM,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,UAVtE,CAWJ,EAEAkG,iBAAkB,SAAU7qF,EAAQ39K,GAEhC,GADAisQ,EAAuC1F,KAAK9hQ,KAAK,IAAIwnQ,EAAuCzF,wBAAwB9gF,EAAuCxS,SAASC,iBAAiB,IAAK,gBAAiBrzK,KAAKwhQ,QACrL,+BAAvBxhQ,KAAK8jQ,cAAgD,CACrD,IAAIh3D,EAAU,IAAIC,UACd7pF,EAAM4pF,EAAQE,gBAAgBhtM,KAAK2oQ,cAAe,YACtD3oQ,KAAKo2P,iBACL,IAAIlrK,EAASo0B,EAA0C58D,KAAKuoC,iBAAiBi4B,EAAK,YAC9E5nE,EAASoP,EAAoC9P,GAAGW,UAAU2vC,EAAOC,YACrE,MAAO7vC,EAAOE,WAAY,CACtB,IAAI4vC,EAAQ9vC,EAAOI,QACnB,GAAuB,YAAnB0vC,EAAMC,SAAwB,CAC9B,IAAIpC,EAAO+3K,EAA0C1W,QAAQ3mI,SAAS3jH,KAAKwhQ,MAAM/qF,sBAAuBrrF,GACpG9B,GAAQ,EACRyjI,EAAO,EACPF,EAAO,EACP1nG,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAKwhQ,MAAM/qF,sBAAsBu3E,gBAC/F,MAAO7oI,EAAO3pE,WAAY,CACtB,IAAIt0C,EAAOi+G,EAAOzpE,QACdx0C,EAAKD,KAAOgiF,EAAKhiF,IAAMyjD,EAAoC9P,GAAGohM,OAAO90O,KAAUwjD,EAAoC9P,GAAGohM,OAAO/yJ,KAC7HK,GAAQ,GACJujI,EAAO3lN,EAAK2nP,SAAW9hC,EAAO7lN,EAAK0nP,WACnC7hC,EAAO7lN,EAAK0nP,QACZ/hC,EAAO3lN,EAAK2nP,SAGxB,CACIvlK,IACAL,EAAKomK,MAAMtiC,EAAO,IAClB9jI,EAAKqmK,MAAMziC,EAAO,KAEtB7sN,KAAKwhQ,MAAM/qF,sBAAsBg3F,WAAWxkL,GAC5CjpF,KAAK82P,UAAU7tK,GACfjpF,KAAKwiQ,UAAUnM,aAAar2P,KAAK62P,aACjCyL,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,UAC1E,CACJ,CACJ,CACJ,EAEA72E,WAAY,SAAU9N,EAAQ39K,GAC1B,QAAgC,MAA5B0hQ,EAAWiL,gBACPjL,EAAWiL,cAAclhF,WAAW9N,EAAQ39K,GAKxD,EAEAuL,MAAO,SAAUoyK,EAAQ39K,GACrB,QAAgC,MAA5B0hQ,EAAWiL,gBACPjL,EAAWiL,cAAcphQ,MAAMoyK,EAAQ39K,GAKnD,EAEA0rL,iBAAkB,SAAU/N,EAAQ39K,GAChC,QAAgC,MAA5B0hQ,EAAWiL,gBACPjL,EAAWiL,cAAcjhF,iBAAiB/N,EAAQ39K,MAIlC,MAApBF,KAAK62P,aACDnsM,EAAoC9P,GAAGohM,OAAOh8O,KAAK62P,eAAiBmK,EAA0CtW,cAC9G1qP,KAAKuvQ,aACE,GAInB,EAEA6B,aAAc,WACVjF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,aAAcrzK,KAAKwhQ,QAC5MxhQ,KAAK62P,YAAa/wF,UAAU,GAC5B9lK,KAAK62P,YAAatH,WAAW,GAC9BvvP,KAAK62P,YAAYp2O,UAAWzgB,KAAK62P,YAAazrB,WAAW0lB,iBACzD9wP,KAAK62P,YAAYjxH,SACrB,EAEA2pI,UAAW,WACP,IAAI8B,EAAWrxQ,KAAK62P,YAAazrB,WACjCprO,KAAK0sQ,iBAAiB2E,EAAS3mN,EAAoC9P,GAAGxlC,KAAK,eAAgBpV,MAC/F,EAEA6rL,QAAS,SAAUhO,EAAQ39K,GACvB,GAAgC,MAA5B0hQ,EAAWiL,eACPjL,EAAWiL,cAAchhF,QAAQhO,EAAQ39K,GACzC,OAAO,EAGf,IAAIoxQ,EAAY,EAIhB,OAHIpxQ,EAAEkrQ,UACFkG,EAAY,IAERpxQ,EAAEmrQ,SACN,KAAK,GACGnrQ,EAAEkrQ,UACFprQ,KAAKo2P,iBACLp2P,KAAKwiQ,UAAUlM,kBAAkBt2P,KAAKwhQ,MAAM/qF,sBAAsBu3E,gBAClEsU,EAAYyK,4BAA4B/sQ,KAAKwiQ,WACzCxiQ,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAerrP,OAAS,GACzD3C,KAAK82P,UAAU92P,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAe,KAGvE,MACJ,KAAK,GACG9tP,EAAEkrQ,UACEe,EAAuC1F,KAAKmE,aAC5CU,EAASC,YAGTzK,EAA2Cz6G,QAAQmlH,SAG3D,MACJ,KAAK,GACGtrQ,EAAEkrQ,UACEe,EAAuC1F,KAAKsE,iBAC5CO,EAASG,YAGT3K,EAA2Cz6G,QAAQmlH,SAG3D,MACJ,KAAK,GACGtrQ,EAAEkrQ,SACFprQ,KAAK46K,gBAAgB56K,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,WAE1E,MACJ,KAAK,GACGx+K,EAAEkrQ,SACFprQ,KAAK0oQ,iBAAiB1oQ,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,WAE3E,MACJ,KAAK,GACGx+K,EAAEkrQ,SACFprQ,KAAK+oQ,eAAe/oQ,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,WAEzE,MACJ,KAAK,GAED,OADA1+K,KAAK86K,kBAAkB,KAAM,OACtB,EACX,KAAK,EAOD,OANI56K,EAAE+qL,SACFjrL,KAAKuxQ,cAGLvxQ,KAAKwxQ,eAEF,EACX,KAAK,GACD,GAAwB,MAApBxxQ,KAAK62P,YAAqB,CAC1B,IAAIv7M,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOz6M,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB,GAAIx7C,EAAE+qL,SACF,GAAI/qL,EAAEuxQ,OACEjkB,EAAQ3nF,YAAcyrG,IACtBnF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,UAAWrzK,KAAKwhQ,QAC1MhU,EAAQ1nF,UAAU0nF,EAAQ3nF,YAAcyrG,QAG3C,CACD,IAAI5D,EAASlgB,EAAQ3nF,YAAc2nF,EAAQ9hB,aACvC8hB,EAAQ3nF,YAAcyrG,GAAa9jB,EAAQ9hB,aAAgB4lC,EAAY5D,IACvEvB,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,UAAWrzK,KAAKwhQ,QAC1MhU,EAAQ1nF,UAAU0nF,EAAQ3nF,YAAcyrG,GACxC9jB,EAAQ+B,WAAW/B,EAAQ9hB,aAAe4lC,EAAY5D,GAE9D,MAEKxtQ,EAAEuxQ,QACPtF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,UAAWrzK,KAAKwhQ,QAC1MhU,EAAQmC,kBAAkBnC,EAAQsB,oBAAsBwiB,KAGxDnF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,QAASrzK,KAAKwhQ,QACxMhU,EAAQ6B,MAAM7B,EAAQoB,QAAU0iB,GAExC,CACA,OAAO,CACX,CACA,MACJ,KAAK,GACD,GAAwB,MAApBtxQ,KAAK62P,YAAqB,CAC1B,IAAI1xI,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAO5wI,EAAO3pE,WAAY,CAClBgyM,EAAUroI,EAAOzpE,QACrB,GAAIx7C,EAAE+qL,SAEF,GADAkhF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,UAAWrzK,KAAKwhQ,QACtMthQ,EAAEuxQ,OACFjkB,EAAQ1nF,UAAU0nF,EAAQ3nF,YAAcyrG,OAEvC,CACG5D,EAASlgB,EAAQ3nF,YAAc2nF,EAAQ9hB,aAC3C8hB,EAAQ1nF,UAAU0nF,EAAQ3nF,YAAcyrG,GACxC9jB,EAAQ+B,WAAW/B,EAAQ9hB,aAAe4lC,EAAY5D,EAC1D,MAEKxtQ,EAAEuxQ,QACPtF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,UAAWrzK,KAAKwhQ,QAC1MhU,EAAQmC,kBAAkBnC,EAAQsB,oBAAsBwiB,KAGxDnF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,QAASrzK,KAAKwhQ,QACxMhU,EAAQ6B,MAAM7B,EAAQoB,QAAU0iB,GAExC,CACA,OAAO,CACX,CACA,MACJ,KAAK,GACD,GAAwB,MAApBtxQ,KAAK62P,YAAqB,CAC1B,IAAIxxI,EAAS36D,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAO1wI,EAAO7pE,WAAY,CAClBgyM,EAAUnoI,EAAO3pE,QACrB,GAAIx7C,EAAE+qL,SAEF,GADAkhF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,UAAWrzK,KAAKwhQ,QACtMthQ,EAAEuxQ,OACFjkB,EAAQ+B,WAAW/B,EAAQ9hB,aAAe4lC,OAEzC,CACG5D,EAASlgB,EAAQ3nF,YAAc2nF,EAAQ9hB,aAC3C8hB,EAAQ1nF,UAAU0nF,EAAQ3nF,YAAcyrG,GACxC9jB,EAAQ+B,WAAW/B,EAAQ9hB,aAAe4lC,EAAY5D,EAC1D,MAEMxtQ,EAAEuxQ,SACRtF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,QAASrzK,KAAKwhQ,QACxMhU,EAAQ8B,MAAM9B,EAAQqB,QAAUyiB,GAExC,CACA,OAAO,CACX,CACA,MACJ,KAAK,GACD,GAAwB,MAApBtxQ,KAAK62P,YAAqB,CAC1B,IAAIvxI,EAAS56D,EAAoC9P,GAAGW,UAAUv7C,KAAKwiQ,UAAUzM,cAC7E,MAAOzwI,EAAO9pE,WAAY,CAClBgyM,EAAUloI,EAAO5pE,QACrB,GAAIx7C,EAAE+qL,SACF,GAAI/qL,EAAEuxQ,OACEjkB,EAAQ9hB,aAAe4lC,IACvBnF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,UAAWrzK,KAAKwhQ,QAC1MhU,EAAQ+B,WAAW/B,EAAQ9hB,aAAe4lC,QAG7C,CACG5D,EAASlgB,EAAQ3nF,YAAc2nF,EAAQ9hB,aACvC8hB,EAAQ3nF,YAAcyrG,GAAa9jB,EAAQ9hB,aAAgB4lC,EAAY5D,IACvEvB,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,UAAWrzK,KAAKwhQ,QAC1MhU,EAAQ1nF,UAAU0nF,EAAQ3nF,YAAcyrG,GACxC9jB,EAAQ+B,WAAW/B,EAAQ9hB,aAAe4lC,EAAY5D,GAE9D,MAEMxtQ,EAAEuxQ,SACRtF,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,QAASrzK,KAAKwhQ,QACxMhU,EAAQ8B,MAAM9B,EAAQqB,QAAUyiB,GAExC,CACA,OAAO,CACX,CACA,MACJ,KAAK,GAED,GAAIpxQ,EAAEuxQ,OAMF,OALIzxQ,KAAKwhQ,MAAMp8N,2BAA8BplC,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,IAC7E3C,KAAKwhQ,MAAM/B,yBAAyBz/P,KAAKwhQ,MAAMp8N,2BAA6B,GAC5EkmO,EAASoG,iBACTpG,EAASI,2BAEN,EAEX,MACJ,KAAK,GAED,GAAIxrQ,EAAEuxQ,OAMF,OALIzxQ,KAAKwhQ,MAAMp8N,2BAA6B,IACxCplC,KAAKwhQ,MAAM/B,yBAAyBz/P,KAAKwhQ,MAAMp8N,2BAA6B,GAC5EkmO,EAASoG,iBACTpG,EAASI,2BAEN,EAEX,MAER,OAAO,CACX,EAEA8F,YAAa,WACS,MAAdxxQ,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,wBAGrCz2K,KAAK82P,UAAU92P,KAAKwhQ,MAAM/qF,sBAAsBk7F,eAAe3xQ,KAAK62P,cACpE72P,KAAKwiQ,UAAU9L,aAAa12P,KAAK62P,aACjCyL,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,WAC1E,EAEA+O,YAAa,WACS,MAAdvxQ,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,wBAGrCz2K,KAAK82P,UAAU92P,KAAKwhQ,MAAM/qF,sBAAsBm7F,mBAAmB5xQ,KAAK62P,cACxE72P,KAAKwiQ,UAAU9L,aAAa12P,KAAK62P,aACjCyL,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,WAC1E,EAEA12E,MAAO,SAAUjO,EAAQ39K,GACrB,QAAgC,MAA5B0hQ,EAAWiL,gBACPjL,EAAWiL,cAAc/gF,MAAMjO,EAAQ39K,GAKnD,EAEA2xQ,WAAY,SAAUviQ,GAClB,GAAkB,MAAdtP,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBACjC,OAAO,EAEX01F,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,kBAAmBrzK,KAAKwhQ,QAClN,IAAIrgG,EAAM6/F,EAA0C7W,cAAchoP,OAAOnC,KAAKwhQ,MAAM/qF,sBAAuBnnK,GAK3G,OAJA6xJ,EAAIkuF,MAAM,KACVluF,EAAImuF,MAAM,KACVtvP,KAAKwhQ,MAAM/qF,sBAAsBg3F,WAAWtsG,GAC5CmhG,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,YAC/D,CACX,EAEAsP,YAAa,SAAU93G,GACnB,OAAO,CACX,EAEA+3G,SAAU,SAAUziQ,EAAM27O,GACtB,GAAkB,MAAdjrP,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBACjC,OAAO,EAEX,IAAIs9E,EAAQiN,EAA0C/W,aAAa9nP,OAAOnC,KAAKwhQ,MAAM/qF,sBAAuBnnK,GAQ5G,OAPAykP,EAAM1E,MAAM,KACZ0E,EAAMzE,MAAM,KACRrE,EACAjrP,KAAKwhQ,MAAM/qF,sBAAsBu7F,eAAeje,GAEhD/zP,KAAKwhQ,MAAM/qF,sBAAsBw7F,eAAele,IAE7C,CACX,EAEAme,SAAU,SAAUl4G,GAChB,OAAO,CACX,EAEAm4G,QAAS,SAAUtxQ,EAAGuqO,GAClB,GAAkB,MAAdprO,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBACjC,OAAO,EAEX,IAAIlnK,EAAOyxP,EAA0CtW,YAAYvoP,OAAOipO,GAOxE,OANA77N,EAAKkR,UAAU2qN,EAAW0lB,iBAC1BvhP,EAAK8/O,MAAM,KACX9/O,EAAK+/O,MAAM,KACX6c,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,eAAgBrzK,KAAKwhQ,QAC/MxhQ,KAAKwhQ,MAAM/qF,sBAAsBg3F,WAAWl+P,GAC5C+yP,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,YAC/D,CACX,EAEAiL,WAAY,SAAU2E,GAClB,GAAkB,MAAdpyQ,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBACjC,OAAO,KAEX,GAAI/rH,EAAoC9P,GAAGohM,OAAOo2B,KAAQpR,EAA0CxW,aAAc,CAC9G,IAAI6nB,EAAkBD,EACtB,GAAuB,MAAnBC,EAAyB,CACzB,IAAIh6I,EAAQ2oI,EAA0CxW,aAAatvL,QAAQl7D,KAAKwhQ,MAAM/qF,sBAAuB47F,EAAgB3gB,iBAQ7H,OAPAr5H,EAAMytC,UAAUusG,EAAgBxsG,aAChCxtC,EAAMk3H,WAAW8iB,EAAgB3mC,cACjCrzG,EAAMg3H,MAAMrvP,KAAKusQ,cAAcxhO,GAC/BstF,EAAMi3H,MAAMtvP,KAAKusQ,cAAcvoQ,GAC/Bq0H,EAAM53G,UAAU4xP,EAAgB7xP,aAChC63G,EAAMs3H,kBAAkB0iB,EAAgBvjB,qBACxC9uP,KAAKwhQ,MAAM/qF,sBAAsBg3F,WAAWp1I,GACrCA,CACX,CACJ,MAAO,GAAI3tE,EAAoC9P,GAAGohM,OAAOo2B,KAAQpR,EAA0CtW,YAAa,CACpH,IAAI4nB,EAAgBF,EACpB,GAAqB,MAAjBE,EAAuB,CACvB,IAAI/iQ,EAAOyxP,EAA0CtW,YAAYvoP,OAAOmwQ,EAAclnC,YAKtF,OAJA77N,EAAK8/O,MAAMrvP,KAAKusQ,cAAcxhO,GAC9Bx7B,EAAK+/O,MAAMtvP,KAAKusQ,cAAcvoQ,GAC9BuL,EAAKkR,UAAU6xP,EAAc9xP,aAC7BxgB,KAAKwhQ,MAAM/qF,sBAAsBg3F,WAAWl+P,GACrCA,CACX,CACJ,MAAO,GAAIm7C,EAAoC9P,GAAGohM,OAAOo2B,KAAQpR,EAA0C7W,cAAe,CACtH,IAAIooB,EAAgBH,EACpB,GAAqB,MAAjBG,EAAuB,CACvB,IAAI9hB,EAAS8hB,EAActpL,KAAKjpF,KAAKwhQ,MAAM/qF,uBAI3C,OAHAg6E,EAAOpB,MAAMrvP,KAAKusQ,cAAcxhO,GAChC0lN,EAAOnB,MAAMtvP,KAAKusQ,cAAcvoQ,GAChChE,KAAKwhQ,MAAM/qF,sBAAsBg3F,WAAWhd,GACrCA,CACX,CACJ,MAAO,GAAI/lM,EAAoC9P,GAAGohM,OAAOo2B,KAAQpR,EAA0C5W,gBAAiB,CACxH,IAAIooB,EAAqBJ,EACzB,GAA0B,MAAtBI,EAA4B,CACxB/hB,EAAS+hB,EAAmBvpL,KAAKjpF,KAAKwhQ,MAAM/qF,uBAIhD,OAHAg6E,EAAOpB,MAAMrvP,KAAKusQ,cAAcxhO,GAChC0lN,EAAOnB,MAAMtvP,KAAKusQ,cAAcvoQ,GAChChE,KAAKwhQ,MAAM/qF,sBAAsBg3F,WAAWhd,GACrCA,CACX,CACJ,CACA,OAAO,IACX,EAEAv2M,SAAU,SAAUr5C,EAAG2wP,GACnB,GAAkB,MAAdxxP,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBACjC,OAAO,EAEX01F,EAAuC1F,KAAK9hQ,KAAK,IAAIynQ,EAA4CpF,mBAAmBphF,EAAuCxS,SAASC,iBAAiB,IAAK,gBAAiBrzK,KAAKwhQ,QAChN,IAAInpI,EAAQ2oI,EAA0CxW,aAAatvL,QAAQl7D,KAAKwhQ,MAAM/qF,sBAAuB+6E,GAe7G,OAdAn5H,EAAMytC,UAAU,KAChBztC,EAAMk3H,WAAW,KACC,IAAdiC,GACAn5H,EAAMk3H,WAAWl3H,EAAMqzG,aAAe,GAExB,IAAd8lB,GACAn5H,EAAMk3H,WAAW,IAErBl3H,EAAMg3H,MAAM,KACZh3H,EAAMi3H,MAAM,KACZtvP,KAAKwhQ,MAAM/qF,sBAAsBg3F,WAAWp1I,GAC5Cr4H,KAAK82P,UAAUz+H,GACfr4H,KAAKwiQ,UAAU9L,aAAa12P,KAAK62P,aACjCyL,EAAYC,mBAAmBviQ,KAAKwhQ,MAAM/qF,sBAAuBz2K,KAAKwiQ,YAC/D,CACX,EAEAiQ,gBAAiB,WACb,OAAkB,MAAdzyQ,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBAC1Bz2K,KAAK2sQ,cAEQ,MAApB3sQ,KAAK62P,YACE72P,KAAK62P,YAAYr2O,YAEjBxgB,KAAK2sQ,aAEpB,EAEA+F,gBAAiB,SAAU7/P,GACvB7S,KAAK2sQ,cAAgB95P,EACH,MAAd7S,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,uBAGb,MAApBz2K,KAAK62P,aACL72P,KAAK62P,YAAYp2O,UAAU5N,EAEnC,EAEAm+G,QAAS,WACoB,MAArBhxH,KAAK+4K,eACL/4K,KAAK+4K,aAAa2qF,WAClB1jQ,KAAK+4K,aAAe,KAE5B,EAEAgT,MAAO,SAAUtwI,GACb,OAAgC,MAA5BmmN,EAAWiL,eACPjL,EAAWiL,cAAc9gF,MAAMtwI,IACxB,CAInB,GAQJ,SAAS6mN,IAAgB,EALzB,EAAG33M,EAA4CzS,cAAc,aAAc,CAAC0pN,EAAYkL,EAAa,KAAMf,EAA4Cn1G,gBAOvJ0rG,EAAYC,mBAAqB,SAAUhR,EAAiBiR,GAAa,EAEzEF,EAAYyK,4BAA8B,SAAUvK,GAAa,EAEjE,IAAImQ,EAAe,CAAC,EAOpB,SAASrH,IAAa,EALtB,EAAG3gN,EAA4CzS,cAAc,cAAe,CAACoqN,EAAaqQ,EAAc,OAOxGrH,EAASI,uBAAyB,WAAc,EAEhDJ,EAASoG,eAAiB,WAAc,EAExCpG,EAASC,UAAY,WACbY,EAAuC1F,KAAKmE,cAC5CuB,EAAuC1F,KAAKoE,UAEpD,EAEAS,EAASG,UAAY,WACbU,EAAuC1F,KAAKsE,kBAC5CoB,EAAuC1F,KAAKuE,aAEpD,EAEA,IAAI4H,EAAY,CAAC,EAOjB,SAAStR,IACLthQ,KAAKjB,OAAS,IAClB,EAPA,EAAG4rD,EAA4CzS,cAAc,WAAY,CAACozN,EAAUsH,EAAW,OAS/F,IAAIC,EAAe,CAAC,EAOpB,SAASnR,IACL1hQ,KAAKklC,KAAO,KACZllC,KAAKopH,eAAgB,EACrBppH,KAAKyoQ,cAAgB,KACrBzoQ,KAAKmiQ,cAAgB,EACrBniQ,KAAK8yQ,gBAAkB,KACvB9yQ,KAAKyjQ,mBAAoB,EACzBzjQ,KAAK+yQ,SAAU,CACnB,EAbA,EAAGpoN,EAA4CzS,cAAc,cAAe,CAACopN,EAAauR,EAAc,OAexG,IAAIG,EAAgB,CAChBhN,UAAW,WACPhmQ,KAAKyoQ,cAAgB,CAAC,EACtB,IAAK,IAAIjmQ,EAAI,EAAGA,EAAIxC,KAAKklC,KAAKK,gBAAgB5iC,OAAQH,IAClDxC,KAAKyoQ,cAAcjmQ,GAAKxC,KAAKklC,KAAKK,gBAAgB/iC,EAE1D,EAEAqiH,QAAS,WACuB,MAAxB7kH,KAAK8yQ,iBACL9yQ,KAAK8yQ,iBAEb,EAEAvK,SAAU,SAAU77K,GAChB,OAAQ,CACZ,EAEAi/K,sBAAuB,WAAc,EAErC1D,iBAAkB,WAAc,GAQpC,SAASR,IAAa,EALtB,EAAG98M,EAA4CzS,cAAc,eAAgB,CAACwpN,EAAcsR,EAAe,OAO3GvL,EAASC,UAAY,WAAc,EAEnC,IAAIuL,EAAY,CAAC,GAEjB,EAAGtoN,EAA4CzS,cAAc,WAAY,CAACuvN,EAAUwL,EAAW,MAGxF,EAED;;;sCAIA,CAAEt0Q,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC+gQ,WAAY,IAAM,EAClBniO,WAAY,IAAM,IAEpB,IAAIusB,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FnW,EAA4C,uBAA0C,qBACtF8qE,EAA4C,uBAA0C,qBACtF4zJ,EAA+C,0BAA6C,wBAC5Fr9D,EAAqD,gCAAmD,8BACxGC,EAA8C,yBAA4C,uBAC1Fq9D,EAAgD,2BAA8C,yBAC9FC,EAA4C,uBAA0C,qBACtFtoB,EAAyD,oCAAuD,kCAChHuoB,EAA+C,yBAA4C,uBAC3FC,EAA4C,qBAAwC,0BAsB7G,SAASn1O,IACLn+B,KAAKuzQ,cAAgBL,EAA6ChnL,WAAW/pF,QAAO,EAAO,KAC3FnC,KAAKwhQ,MAAQ,KACbxhQ,KAAKwzQ,WAAY,EACjBxzQ,KAAKyzQ,oBAAsB,KAC3BzzQ,KAAK0zQ,WAAa,IAAIhpN,EAAoC9P,GAAGm7I,MAC7D/1L,KAAK2zQ,2BAA4B,CACrC,CAEAx1O,EAAWy1O,UAAW,EACtBz1O,EAAW01O,uBAAwB,EACnC11O,EAAW21O,mBAAoB,EAE/B31O,EAAWoG,YAAc,WACrB,OAAOpG,EAAWy1O,QACtB,EAEAz1O,EAAW41O,YAAc,SAAUnzQ,GAE/B,OADAu9B,EAAWy1O,SAAWhzQ,EACfA,CACX,EAEAu9B,EAAWC,cAAgB,SAAUx9B,GACjCu9B,EAAWq9L,YAAc9wK,EAAoC9P,GAAGgnI,QAAQzjJ,EAAWq9L,YAAa56N,EACpG,EAEAu9B,EAAWs9L,iBAAmB,SAAU76N,GACpCu9B,EAAWq9L,YAAc9wK,EAAoC9P,GAAGknI,QAAQ3jJ,EAAWq9L,YAAa56N,EACpG,EAEA,IAAIozQ,EAAc,CACdrjO,OAAQ,SAAU1O,GACd,GAAkB,MAAdjiC,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,uBAAkCt4I,EAAWy1O,SAAlF,CAKA,GAFA3xO,EAAcmY,OACdp6C,KAAKi0Q,qBACAj0Q,KAAKwzQ,YACNxzQ,KAAKk0Q,gBAAkBxpN,EAAoC9P,GAAGp0C,MAC1Dy7B,EAAc4rL,SAAS7tN,KAAKmlC,WAAWsxI,sBAAsB+jC,eAAe,CAC5Ex6M,KAAKwzQ,WAAY,EACjBxzQ,KAAKuzQ,cAAc5mL,WAAW3sF,KAAKmlC,WAAWsxI,sBAAsBmvF,sBACpE5lQ,KAAKuzQ,cAAc1mL,iBAAgB,GACsB,MAArD7sF,KAAKwhQ,MAAM/qF,sBAAsB09F,mBACjCn0Q,KAAKwhQ,MAAM/qF,sBAAsB09F,iBAAiB/lB,KAAK,GACvDpuP,KAAKwhQ,MAAM/qF,sBAAsB09F,iBAAiB/lO,QAEG,MAArDpuC,KAAKwhQ,MAAM/qF,sBAAsB29F,mBACjCp0Q,KAAKwhQ,MAAM/qF,sBAAsB29F,iBAAiBhmB,KAAK,GACvDpuP,KAAKwhQ,MAAM/qF,sBAAsB29F,iBAAiBhmO,QAEtD,IAAImpL,EAAU,GACVj8K,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwhQ,MAAM/qF,sBAAsBu3E,gBAC/F,MAAO1yM,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB,GAAyC,YAArC8xM,EAAQlsO,WAAW/S,cAA6B,CAChD,IAAIgB,EAAOm7C,EAAoC9P,GAAGw7G,SAASo3F,EAAS8lB,EAA0C5oB,aAClG,MAARn7O,IACAgoN,EAAUhoN,EAAK67N,WAAW77N,KAElC,CACAi+O,EAAQp/M,MACZ,EACA,EAAG+kO,EAA8CtvK,4BAA4B7jG,KAAKwhQ,MAAM/qF,sBAAsB/tI,QACtD,MAApD1oC,KAAKwhQ,MAAM/qF,sBAAsBspF,kBAAiG,IAAtE//P,KAAKwhQ,MAAM/qF,sBAAsBspF,gBAAgB/kD,kBACzGh7M,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAarzF,WAKlDllF,EAAc0oL,UAAY,IAAI0oD,EAA6CgB,uBAAuBr0Q,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAaN,gBAAiBl6M,KAAKwhQ,MAAM/qF,sBAAsBspF,gBAAgB7lD,gBAAiBl6M,KAAKwhQ,MAAM/qF,sBAAsB/wI,eAAiB,IAAM1lC,KAAKwhQ,MAAM/qF,sBAAsBx0J,gBAAiBjiB,KAAKwhQ,MAAM/qF,sBAAsB51J,cAAe7gB,KAAKwhQ,MAAM/qF,sBAAsBo5E,0BAElaujB,EAA0Cx6K,SAAS8tI,aAAe1mO,KAAKwhQ,MAAM/qF,sBAC7Eq0E,EAAuDxtN,oBAAoBoQ,QAAQ1tC,KAAKwhQ,MAAM/qF,sBAAsBx0J,iBACpH6oO,EAAuDxtN,oBAAoB4Q,iBAAgB,GAC3FilO,EAA8C3vK,sBAAsBu5H,kBAAkBxF,EAC1F,CAEJ,GAAwB,MAApBt1L,EAAc6T,GAAY,CAE1B,GADA7T,EAAcyuL,wBACkB,MAA5B1wN,KAAKyzQ,oBAA6B,CAClC,IAAItuJ,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAKyzQ,oBAAoBzlB,gBACvF,MAAO7oI,EAAO3pE,WAAY,CAClBgyM,EAAUroI,EAAOzpE,QACrB8xM,EAAQ0B,gBAAgB,GACxB1B,EAAQppG,OAAOniH,GAAe,EAClC,CACJ,CACA,GAAIjiC,KAAKwzQ,UAAW,CAChB,IAAInuJ,EAAS36D,EAAoC9P,GAAGW,UAAUv7C,KAAKwhQ,MAAM/qF,sBAAsBu3E,gBAC/F,MAAO3oI,EAAO7pE,WAAY,CAClBgyM,EAAUnoI,EAAO3pE,SACoB,YAArC8xM,EAAQlsO,WAAW/S,eAA+B4kQ,EAA8C3vK,sBAAsBm7H,sBACtH6uB,EAAQ0B,gBAAgBr5C,EAAmD7oH,iBAAiBuC,UAAUvvF,KAAKwhQ,MAAM/qF,sBAAsBhxI,oBAA0D,IAApC+nN,EAAQqC,wBAAiC7vP,KAAKwhQ,MAAM/qF,sBAAsBo5E,wBAA0BrC,EAAQqC,0BACzQrC,EAAQppG,OAAOniH,GAAe,GAEtC,CACJ,CACAA,EAAc0Y,SAKlB,KAAO,CACH1Y,EAAckY,OAAO6F,MAAM/d,EAAcmE,OAAS,KAAMnE,EAAcmE,OAAS,MAC/E,IACIkuO,EAAYryO,EAAckE,MAAQlE,EAAcmE,OAEpD,GADAnE,EAAckY,OAAOk4D,YAAa,KAAoB,KAAZiiK,GAAqB,EAAI,GACnC,MAA5Bt0Q,KAAKyzQ,oBAA6B,CAClC,IAAInuJ,EAAS56D,EAAoC9P,GAAGW,UAAUv7C,KAAKyzQ,oBAAoBzlB,gBACvF,MAAO1oI,EAAO9pE,WAAY,CAClBgyM,EAAUloI,EAAO5pE,QACrB8xM,EAAQ0B,gBAAgB,GACxB1B,EAAQppG,OAAOniH,GAAe,EAClC,CACJ,CACA,GAAIjiC,KAAKwzQ,UAAW,CAChB,IAAI59E,EAASlrI,EAAoC9P,GAAGW,UAAUv7C,KAAKwhQ,MAAM/qF,sBAAsBu3E,gBAC/F,MAAOp4D,EAAOp6I,WAAY,CAClBgyM,EAAU53D,EAAOl6I,SACoB,YAArC8xM,EAAQlsO,WAAW/S,eAA+B4kQ,EAA8C3vK,sBAAsBm7H,sBACtH6uB,EAAQ0B,gBAAgBr5C,EAAmD7oH,iBAAiBuC,UAAUvvF,KAAKwhQ,MAAM/qF,sBAAsBhxI,oBAA0D,IAApC+nN,EAAQqC,wBAAiC7vP,KAAKwhQ,MAAM/qF,sBAAsBo5E,wBAA0BrC,EAAQqC,0BACzQrC,EAAQppG,OAAOniH,GAAe,GAEtC,CACJ,MAIAA,EAAc0Y,SAClB,CAhGA,CAiGJ,EAEAxV,SAAU,WACN,OAAOnlC,KAAKwhQ,KAChB,EAEAU,SAAU,SAAUthQ,GAEhB,OADAZ,KAAKwhQ,MAAQ5gQ,EACNA,CACX,EAEA2zQ,UAAW,WACP,GAAwC,MAApCv0Q,KAAKwhQ,MAAM/qF,sBACX,GAAKz2K,KAAKwhQ,MAAM/qF,sBAAsB4pF,kBAclCrgQ,KAAKyzQ,oBAAsBzzQ,KAAKwhQ,MAAM/qF,0BAde,CACI,MAArDz2K,KAAKwhQ,MAAM/qF,sBAAsB09F,kBACjCn0Q,KAAKwhQ,MAAM/qF,sBAAsB09F,iBAAiBn4P,OAEG,MAArDhc,KAAKwhQ,MAAM/qF,sBAAsB29F,kBACjCp0Q,KAAKwhQ,MAAM/qF,sBAAsB29F,iBAAiBp4P,OAEtD,IAAIs/B,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwhQ,MAAM/qF,sBAAsBu3E,gBAC/F,MAAO1yM,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQxxO,MACZ,CACJ,CAKJ,GAAIhc,KAAKwhQ,MAAMp8N,2BAA8BplC,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,GAAM3C,KAAKwhQ,MAAM/qF,sBAAsB+9F,eAAgB,CAMpI,GALwD,MAApDx0Q,KAAKwhQ,MAAM/qF,sBAAsBspF,kBACjCoT,EAA8C1vK,iBAAiB8jK,gBAAe,GAAO,EAAMvnQ,KAAKwhQ,MAAM/qF,sBAAsBspF,gBAAgB7lD,gBAAiBl6M,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAa/gH,oBAAqBz5F,KAAKwhQ,MAAM/qF,sBAAsB+jC,aAAaztK,0BAC9QomO,EAA8C1vK,iBAAiBwlK,WAAW,OAE9EjpQ,KAAKwzQ,WAAY,EACbxzQ,KAAKwhQ,MAAM/qF,sBAAsB+9F,eACjC,IACI,OAAQx0Q,KAAKwhQ,MAAM/qF,sBAAsBuuF,iBACrC,IAAK,SACGhlQ,KAAK0zQ,WAAWt3K,MAAQ,EACxBp8F,KAAKimC,iBAAiBjmC,KAAKwhQ,MAAMj8N,gBAAgBvlC,KAAK0zQ,WAAWhvQ,QAGjE1E,KAAKwhQ,MAAM/B,yBAAyBz/P,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,GAE5E,MACJ,QACI3C,KAAKimC,iBAAiBjmC,KAAKwhQ,MAAMj8N,gBAAgBvlC,KAAKwhQ,MAAMhB,qBAAqBxgQ,KAAKwhQ,MAAM/qF,sBAAsBuuF,mBAClH,MAEZ,CACA,MAAOnpK,GACC77F,KAAKwhQ,MAAMp8N,2BAA8BplC,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,GAC7E3C,KAAKwhQ,MAAM/B,yBAAyBz/P,KAAKwhQ,MAAMp8N,2BAA6B,EAEpF,MAGAplC,KAAKwhQ,MAAM/B,yBAAyBz/P,KAAKwhQ,MAAMp8N,2BAA6B,GAEhD,MAA5BplC,KAAKyzQ,qBAA+BzzQ,KAAKwhQ,MAAM/qF,sBAAsB4pF,mBACrErgQ,KAAKy0Q,qBAET,IAAIv1O,GAAU,EACd,OAAQl/B,KAAKwhQ,MAAM/qF,sBAAsBqpF,mBACrC,KAAK,EACD,MACJ,KAAK,EACD5gO,GAAU,EACV,MACJ,KAAK,EACDA,GAAU,EACV,MACJ,KAAK,EACDA,GAAU,EACV,MACJ,KAAK,EACDA,GAAU,EACV,MACJ,KAAK,EACDA,GAAU,EACV,MACJ,QACI,MAERi0O,EAA8C1vK,iBAAiBpkE,WAAWr/B,KAAKwhQ,MAAM/qF,sBAAsB+jC,cAAc,EAAOt7K,GAAS,GACzIl/B,KAAKk0Q,gBAAkBxpN,EAAoC9P,GAAGp0C,MAE9D4sQ,EAA0Cx6K,SAAS8tI,aAAe1mO,KAAKwhQ,MAAM/qF,sBAC7Eq0E,EAAuDxtN,oBAAoBoQ,QAAQ1tC,KAAKwhQ,MAAM/qF,sBAAsBx0J,iBACpH6oO,EAAuDxtN,oBAAoB4Q,iBAAgB,EAC/F,MACIluC,KAAKy0Q,qBACLt2O,EAAWy1O,UAAW,EAClBR,EAA0Cx6K,SAASmgG,cAAc+oC,gBACjE9hO,KAAKwhQ,MAAM/B,0BAA0B,GACrCz/P,KAAKouC,SAGL+kO,EAA8C1vK,iBAAiBuqH,cACjC,MAA1B7vL,EAAWq9L,aACXr9L,EAAWq9L,YAAYx7N,KAAM,IAAI0qD,EAAoC9P,GAAG8jI,WAE5Ey0F,EAA8C1vK,iBAAiBixK,SAAQ,GACvEvB,EAA8C3vK,sBAAsBi5H,iBAGhF,EAEAg4C,mBAAoB,WAChB,GAAgC,MAA5Bz0Q,KAAKyzQ,oBAA6B,CACe,MAA7CzzQ,KAAKyzQ,oBAAoBU,kBACzBn0Q,KAAKyzQ,oBAAoBU,iBAAiBn4P,OAEG,MAA7Chc,KAAKyzQ,oBAAoBW,kBACzBp0Q,KAAKyzQ,oBAAoBW,iBAAiBp4P,OAE9C,IAAIs/B,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKyzQ,oBAAoBzlB,gBACvF,MAAO1yM,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQxxO,MACZ,CACAhc,KAAKyzQ,oBAAsB,IAC/B,CACJ,EAEAkB,6BAA8B,WAC1B,OAAO30Q,KAAK2zQ,yBAChB,EAEAnlO,6BAA8B,SAAU5tC,GAEpC,OADAZ,KAAK2zQ,0BAA4B/yQ,EAC1BA,CACX,EAEAwtC,KAAM,WACF,GAAkB,MAAdpuC,KAAKwhQ,MAAT,CAUA,GAPIrjO,EAAWy1O,SACX5zQ,KAAKgc,MAAK,GAEVmiB,EAAWy1O,UAAW,EAE1BT,EAA8C1vK,iBAAiBixK,SAAQ,GACvEv2O,EAAWy1O,UAAW,EAClB5zQ,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,EAAG,CACvC3C,KAAKwzQ,WAAY,GAC8B,IAA3CxzQ,KAAKwhQ,MAAMp8N,4BACXplC,KAAKwhQ,MAAMf,oBAAoBzgQ,KAAKwhQ,MAAMj8N,gBAAgB,IAW9D,IAAI+V,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwhQ,MAAMj8N,iBACzE,MAAO+V,EAAOE,WAAY,CACtB,IAAIx/B,EAAOs/B,EAAOI,QACW,MAAzB1/B,EAAKm4P,kBACLn4P,EAAKm4P,iBAAiBzlB,iBAEG,MAAzB1yO,EAAKo4P,kBACLp4P,EAAKo4P,iBAAiB1lB,iBAE1B,IAAIvpI,EAASz6D,EAAoC9P,GAAGW,UAAUv/B,EAAKgyO,gBACnE,MAAO7oI,EAAO3pE,WAAY,CACtB,IAAIgyM,EAAUroI,EAAOzpE,QACrB8xM,EAAQkB,gBACZ,CACJ,CACI1uP,KAAKwhQ,MAAMp8N,2BAA6B,GACxCplC,KAAK40Q,wBAETzB,EAA8C1vK,iBAAiBpkE,WAAWr/B,KAAKwhQ,MAAM/qF,sBAAsB+jC,cAAc,GAAO,GAAM,EAC1I,CACAx6M,KAAKk0Q,gBAAkBxpN,EAAoC9P,GAAGp0C,MAC9D23B,EAAWy1O,UAAW,CA3CtB,CA4CJ,EAEAgB,sBAAuB,WACnB,IAAK50Q,KAAKwhQ,MAAM/qF,sBAAsB4pF,kBAAmB,CACrD,IAAIwU,EAAgB70Q,KAAKwhQ,MAAMrB,2BAA2BngQ,KAAKwhQ,MAAMp8N,4BACrE,GAAqB,MAAjByvO,EAAuB,CACvB,IAAIC,EAAUD,EAAcxqL,SAC5BrqF,KAAKyzQ,oBAAsBoB,EAAc9Y,OACQ,MAA7C/7P,KAAKyzQ,oBAAoBU,mBACzBn0Q,KAAKyzQ,oBAAoBU,iBAAiB/lB,KAAK0mB,GAC/C90Q,KAAKyzQ,oBAAoBU,iBAAiB/lO,QAEG,MAA7CpuC,KAAKyzQ,oBAAoBW,mBACzBp0Q,KAAKyzQ,oBAAoBW,iBAAiBhmB,KAAK0mB,GAC/C90Q,KAAKyzQ,oBAAoBW,iBAAiBhmO,QAE9C,IAAIkN,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKyzQ,oBAAoBzlB,gBACvF,MAAO1yM,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQY,KAAK0mB,GACbtnB,EAAQp/M,MACZ,CACJ,CACJ,CACJ,EAEApyB,KAAM,SAAU+4P,GAaZ,GAZI52O,EAAW01O,sBAQV7zQ,KAAK2zQ,4BACNP,EAA0Cx6K,SAAS8tI,aAAe,MAEtEvoM,EAAWy1O,UAAW,EACkB,MAApC5zQ,KAAKwhQ,MAAM/qF,sBAA+B,CACe,MAArDz2K,KAAKwhQ,MAAM/qF,sBAAsB09F,kBACjCn0Q,KAAKwhQ,MAAM/qF,sBAAsB09F,iBAAiBn4P,OAEG,MAArDhc,KAAKwhQ,MAAM/qF,sBAAsB29F,kBACjCp0Q,KAAKwhQ,MAAM/qF,sBAAsB29F,iBAAiBp4P,OAEtD,IAAIs/B,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKwhQ,MAAM/qF,sBAAsBu3E,gBAC/F,MAAO1yM,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQxxO,MACZ,CACJ,CACA,GAAgC,MAA5Bhc,KAAKyzQ,oBAA6B,CACe,MAA7CzzQ,KAAKyzQ,oBAAoBU,kBACzBn0Q,KAAKyzQ,oBAAoBU,iBAAiBn4P,OAEG,MAA7Chc,KAAKyzQ,oBAAoBW,kBACzBp0Q,KAAKyzQ,oBAAoBW,iBAAiBp4P,OAE9C,IAAImpG,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAKyzQ,oBAAoBzlB,gBACvF,MAAO7oI,EAAO3pE,WAAY,CAClBgyM,EAAUroI,EAAOzpE,QACrB8xM,EAAQxxO,MACZ,CACJ,CACAm3P,EAA8C1vK,iBAAiBixK,QAAQv2O,EAAW21O,mBAClFX,EAA8C3vK,sBAAsBi5H,gBACxE,EAEAw3C,kBAAmB,WACf,IAAIe,GAAgB,EAChBC,EAAmBvqN,EAAoC9P,GAAGp0C,MAAQxG,KAAKk0Q,gBAM3E,GALIe,EAAmBj1Q,KAAKwhQ,MAAM/qF,sBAAsB/wI,gBAAkBvH,EAAWy1O,WACjF5zQ,KAAKu0Q,YACLS,GAAgB,GAEpBC,EAAmBvqN,EAAoC9P,GAAGp0C,MAAQxG,KAAKk0Q,gBAC/B,MAApCl0Q,KAAKwhQ,MAAM/qF,sBAA+B,CAC1Cz2K,KAAKwhQ,MAAM/qF,sBAAsB8sF,kBAAkBj+P,KAAKilF,IAAI,EAAI0qL,EAAmBj1Q,KAAKwhQ,MAAM/qF,sBAAsB/wI,iBACpH1lC,KAAKwhQ,MAAM/qF,sBAAsBy+F,aAAe,EAChD,IAAIC,EAAiBn1Q,KAAKwhQ,MAAM/qF,sBAAsBhxI,oBAAsBzlC,KAAKwhQ,MAAM/qF,sBAAsB/wI,eAAiB,IAI9H,OAHIsvO,GACA7B,EAA8C1vK,iBAAiB2xK,oBAAmB,GAE9Ep1Q,KAAKwhQ,MAAM/qF,sBAAsBqpF,mBACrC,KAAK,EACD9/P,KAAKwhQ,MAAM/qF,sBAAsBy+F,aAAe,EAChD/B,EAA8C1vK,iBAAiB2xK,oBAAmB,GAClF,MACJ,KAAK,EAGGD,EAAkBA,EAAiBn1Q,KAAKwhQ,MAAM/qF,sBAAsB4+F,2BACpElC,EAA8C1vK,iBAAiB2xK,oBAAmB,GAClFp1Q,KAAKwhQ,MAAM/qF,sBAAsBy+F,aAAe,IAGhDl1Q,KAAKwhQ,MAAM/qF,sBAAsBy+F,aAAe,EAChD/B,EAA8C1vK,iBAAiB2xK,oBAAmB,IAEtF,MACJ,KAAK,EACDjC,EAA8C1vK,iBAAiB2xK,oBAAmB,GAClF,IAAI3zP,EAAUnc,KAAKC,IAAI,EAAG,EAAID,KAAKilF,IAAI,GAAI4qL,EAAiBn1Q,KAAKwhQ,MAAM/qF,sBAAsB4+F,2BAA6Br1Q,KAAKwhQ,MAAM/qF,sBAAsB6+F,wBAC3Jt1Q,KAAKwhQ,MAAM/qF,sBAAsBy+F,aAAezzP,EAGhD,MACJ,KAAK,EACL,KAAK,EACD0xP,EAA8C1vK,iBAAiB2xK,oBAAmB,GAC9E3zP,EAAUnc,KAAKC,IAAI,EAAG,EAAID,KAAKC,IAAI,EAAG4vQ,EAAiBn1Q,KAAKwhQ,MAAM/qF,sBAAsB4+F,2BAA6Br1Q,KAAKwhQ,MAAM/qF,sBAAsB6+F,uBAC1Jt1Q,KAAKwhQ,MAAM/qF,sBAAsBy+F,aAAezzP,EAChD,MACJ,KAAK,EACD0xP,EAA8C1vK,iBAAiB2xK,oBAAmB,GAClF,MACJ,QACI,MAER,IAAKp1Q,KAAKwhQ,MAAM/qF,sBAAsB+9F,gBAAkBx0Q,KAAKwhQ,MAAMp8N,2BAA8BplC,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,EAAI,CACrI,IAAI4yQ,EAAYv1Q,KAAKwhQ,MAAMj8N,gBAAgBvlC,KAAKwhQ,MAAMp8N,2BAA6B,GAAG06N,kBAClF0V,EAAgBx1Q,KAAKwhQ,MAAMj8N,gBAAgBvlC,KAAKwhQ,MAAMp8N,2BAA6B,GAAGqwO,yBAC1F,OAAQF,GACJ,KAAK,EACL,KAAK,EACD,IAAKv1Q,KAAKwhQ,MAAM/qF,sBAAsBy+F,aAAc,CAChD/B,EAA8C1vK,iBAAiB2xK,oBAAmB,GAC9E3zP,EAAUnc,KAAKC,IAAI,EAAG,EAAID,KAAKilF,IAAI,GAAKvqF,KAAKwhQ,MAAM/qF,sBAAsB/wI,eAAiB,IAAQyvO,GAAkBK,IACxHx1Q,KAAKwhQ,MAAM/qF,sBAAsBy+F,aAAezzP,CACpD,CACA,MACJ,QACI,MAEZ,CACJ,CACJ,EAEAi1J,oBAAqB,SAAUg/F,GAC3B,IAAIT,EAAmBvqN,EAAoC9P,GAAGp0C,MAAQxG,KAAKk0Q,gBAC3E,OAAIwB,GAAS,EACF11Q,KAAKwhQ,MAAM/qF,sBAAsB8sF,kBAAkBj+P,KAAKilF,IAAI,EAAGmrL,IAE/D11Q,KAAKwhQ,MAAM/qF,sBAAsB8sF,kBAAkBj+P,KAAKilF,IAAI,EAAI0qL,EAAmBj1Q,KAAKwhQ,MAAM/qF,sBAAsB/wI,gBAEnI,EAEAsB,MAAO,WACe,MAAdhnC,KAAKwhQ,QACDrjO,EAAWoG,eACXvkC,KAAKgc,KAAKmiB,EAAW01O,uBAEzB7zQ,KAAKwhQ,MAAQ,KAErB,EAEAx2E,UAAW,SAAUnN,EAAQ39K,GACzB,IAAI0M,EAEJ,GADAA,EAAW5M,KAAK0qL,YAAYl2I,EAA0CqrD,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,UACjF,MAAdvsG,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBACjC,OAAO,EAEX,IAAK,IAAIj0K,EAAIxC,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAerrP,OAAS,EAAGH,GAAK,EAAGA,IAC7E,GAAIxC,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAexrP,GAAG20C,QAAQvqC,GAAW,CACtE,IAAK89C,EAAoC9P,GAAGC,YAAY76C,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAexrP,GAAGmlC,WAAY,CACnH,IAAIguO,EAAW31Q,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAexrP,GAE/D,OADA88G,EAA0C58D,KAAKspC,SAAS2pL,EAAShuO,YAC1D,CACX,CACA,IAAK+iB,EAAoC9P,GAAGC,YAAY76C,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAexrP,GAAGyrP,cAGvG,OAFAjuP,KAAK0zQ,WAAW/uQ,KAAK3E,KAAKwhQ,MAAMp8N,4BAChCplC,KAAKimC,iBAAiBjmC,KAAKwhQ,MAAMj8N,gBAAgBvlC,KAAKwhQ,MAAMhB,qBAAqBxgQ,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAexrP,GAAGyrP,iBAC7H,CAEf,CAEJ,OAAO,CACX,EAEA/iE,QAAS,SAAUrN,EAAQ39K,GACvB,OAAO,CACX,EAEAirL,UAAW,SAAUtN,EAAQ39K,GACzB,IAAI0M,EACJ,IACIA,EAAW5M,KAAK0qL,YAAYl2I,EAA0CqrD,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,SACvG,CACA,MAAOhY,GACH,OAAO,CACX,CACA,GAAkB,MAAdv0F,KAAKwhQ,OAAqD,MAApCxhQ,KAAKwhQ,MAAM/qF,sBACjC,OAAO,EAEX,IAAK,IAAIj0K,EAAIxC,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAerrP,OAAS,EAAGH,GAAK,EAAGA,IAC7E,GAAIxC,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAexrP,GAAG20C,QAAQvqC,MAAe89C,EAAoC9P,GAAGC,YAAY76C,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAexrP,GAAGmlC,aAAe+iB,EAAoC9P,GAAGC,YAAY76C,KAAKwhQ,MAAM/qF,sBAAsBu3E,eAAexrP,GAAGyrP,eACrS,OAAO,EAGf,OAAO,CACX,EAEAtiE,WAAY,SAAU9N,EAAQ39K,GAC1B,OAAO,CACX,EAEAuL,MAAO,SAAUoyK,EAAQ39K,GACrB,OAAO,CACX,EAEA0rL,iBAAkB,SAAU/N,EAAQ39K,GAChC,OAAO,CACX,EAEA2rL,QAAS,SAAUhO,EAAQ39K,GACvB,OAAQA,EAAEmrQ,SACN,KAAK,GAGD,OAFArrQ,KAAKgc,KAAKmiB,EAAW01O,uBACrBV,EAA8C1vK,iBAAiBmyK,cACxD,EACX,KAAK,GAED,OADA51Q,KAAKsuC,aACE,EACX,KAAK,GAED,OADAtuC,KAAK61Q,kBACE,EACX,KAAK,GAED,OADA71Q,KAAK81Q,sBACE,EACX,KAAK,GAID,OAHI91Q,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,GACpC3C,KAAKimC,iBAAiBjmC,KAAKwhQ,MAAMj8N,gBAAgBvlC,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,KAElF,EACX,KAAK,GAID,OAHI3C,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,GACpC3C,KAAKimC,iBAAiBjmC,KAAKwhQ,MAAMj8N,gBAAgB,KAE9C,EAEf,OAAO,CACX,EAEAswO,eAAgB,WACP71Q,KAAKwhQ,MAAMp8N,2BAA6BplC,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,GAAM3C,KAAKwhQ,MAAMj8N,gBAAgB5iC,OAAS,GACvH3C,KAAKimC,iBAAiBjmC,KAAKwhQ,MAAMj8N,gBAAgBvlC,KAAKwhQ,MAAMp8N,2BAA6B,GAEjG,EAEA0wO,mBAAoB,WACZ91Q,KAAKwhQ,MAAMp8N,2BAA6B,GACxCplC,KAAKimC,iBAAiBjmC,KAAKwhQ,MAAMj8N,gBAAgBvlC,KAAKwhQ,MAAMp8N,2BAA6B,GAEjG,EAEAa,iBAAkB,SAAUm2N,GACxBp8P,KAAKgc,MAAK,GACVhc,KAAKwhQ,MAAMf,oBAAoBrE,GAC/B+W,EAA8C1vK,iBAAiBpkE,WAAWr/B,KAAKwhQ,MAAM/qF,sBAAsB+jC,cAAc,GAAO,GAAM,GACtIswC,EAAuDxtN,oBAAoBoQ,QAAQ1tC,KAAKwhQ,MAAM/qF,sBAAsBx0J,iBACpH6oO,EAAuDxtN,oBAAoB4Q,iBAAgB,GAC3FluC,KAAKouC,MACT,EAEAE,UAAW,WACHnQ,EAAWy1O,UACX5zQ,KAAKgc,KAAKmiB,EAAW01O,uBACrBV,EAA8C1vK,iBAAiBuqH,cAC/DmlD,EAA8C3vK,sBAAsB+4H,oBAEpEv8N,KAAKouC,OACL+kO,EAA8C3vK,sBAAsBg5H,kBAE5E,EAEA1wC,MAAO,SAAUjO,EAAQ39K,GACrB,OAAO,CACX,EAEA6rL,MAAO,SAAUtwI,GACb,QAAItd,EAAWy1O,QAInB,EAEAlpF,YAAa,SAAUjvI,GACnB,IAAIkvI,EAAewoF,EAA8C1vK,iBAAiBimB,OAAOtjF,OACrFwkJ,EAAcuoF,EAA8C1vK,iBAAiBimB,OAAOvjF,MACpF0kJ,EAAaD,EAAcD,EAAgB,KAC3C5/I,EAAM0Q,EAAK,EAAI,EAAgBovI,GAAeA,EAAY,MAAQ,EAClE7mL,EAAKy3C,EAAK,EAAIkvI,EAAe,KACjC,OAAOn2I,EAA0CqrD,SAAS19F,OAAO4oC,EAAG/mC,EACxE,GAOJ,SAASs8P,EAAWvE,EAAQ1xK,GACxBrqF,KAAKqqF,SAAW,EAChBrqF,KAAK+7P,OAASA,EACd/7P,KAAKqqF,SAAWA,CACpB,EARA,EAAG1/B,EAA4CzS,cAAc,aAAc,CAAC/Z,EAAY61O,EAAa,KAAMl+D,EAA4Cl/C,gBAUvJ,IAAIm/G,EAAc,CAAC,GAEnB,EAAGprN,EAA4CzS,cAAc,aAAc,CAACooN,EAAYyV,EAAa,MAG9F,EAED;;;oCAIA,CAAEp3Q,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC24K,UAAW,IAAM,EACjBokF,SAAU,IAAM,EAChB0Z,eAAgB,IAAM,EACtBhP,mBAAoB,IAAM,IAE5B,IAAIt8M,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1F00D,EAAgD,2BAA8C,yBAC9F6oI,EAA6D,wCAA2D,sCACxH58F,EAA4C,uBAA0C,qBACtF32G,EAAyC,oBAAuC,kBAChFshO,EAAwD,mCAAsD,iCAC9GC,EAA8C,yBAA4C,uBAC1Fv2J,EAAyC,oBAAuC,kBAChFxpB,EAA4C,uBAA0C,qBACtFggL,EAA0D,oCAAuD,kCACjHruJ,EAAyC,mBAAsC,iBAC/EsuJ,EAA4C,qBAAwC,0BAuBzGJ,EAAiB,CACjBhW,KAAM,EACNqW,UAAW,EACXC,SAAU,EACVC,UAAW,EACXprG,OAAQ,EACRC,QAAS,GASb,SAASkxF,IACLt8P,KAAKw2Q,cAAgB,EACrBx2Q,KAAKy2Q,YAAa,EAClBz2Q,KAAK02Q,eAAiB,EACtB12Q,KAAKk1Q,aAAe,EACpBl1Q,KAAK+rP,OAAS,KACd/rP,KAAK22Q,YAAc,EACnB32Q,KAAK42Q,gBAAkB,EACvB52Q,KAAK62Q,oBAAsB,EAC3B72Q,KAAK82Q,mBAAqB,EAC1B92Q,KAAK+2Q,WAAa,OAClB/2Q,KAAKg3Q,iBAAkB,EACvBh3Q,KAAKi3Q,cAAe,EACpBj3Q,KAAKg3C,IAAM,GACXh3C,KAAK85P,aAAe,GACpB95P,KAAKy2F,MAAQ,GACbz2F,KAAKk3Q,UAAY,IACjBl3Q,KAAKqtP,mBAAqB,EAC1BrtP,KAAKm3Q,cAAe,EACpBn3Q,KAAKo3Q,UAAW,EAChBp3Q,KAAK2rK,WAAawqG,EAAwD74O,oBAAoB0P,UAC9FhtC,KAAK4rK,SAAWuqG,EAAwD74O,oBAAoB0P,UAC5FhtC,KAAK8iO,mBAAqB3sI,EAA0CyC,SAASmgG,cAAclqK,wBAC3F7uB,KAAK4iO,kBAAoBzsI,EAA0CyC,SAASmgG,cAAcxnK,uBAC1FvxB,KAAK0iO,aAAevsI,EAA0CyC,SAASmgG,cAAcrnK,kBACrF1xB,KAAK2iO,aAAexsI,EAA0CyC,SAASmgG,cAAclnK,kBACrF7xB,KAAKkjO,YAAc/sI,EAA0CyC,SAASmgG,cAAcguC,iBACpF/mO,KAAKqiO,4BAA8BlsI,EAA0CyC,SAASmgG,cAAchmK,iCACpG/yB,KAAKoiO,0BAA4BjsI,EAA0CyC,SAASmgG,cAAc7lK,+BAClGlzB,KAAKsiO,4BAA8BnsI,EAA0CyC,SAASmgG,cAAcjlK,iCACpG9zB,KAAKyiO,cAAgBtsI,EAA0CyC,SAASmgG,cAAcxkK,mBACtFv0B,KAAKikO,oBAAsB9tI,EAA0CyC,SAASmgG,cAAc5jK,yBAC5Fn1B,KAAKq3Q,iBAAmBlhL,EAA0CyC,SAASmgG,cAAciuC,sBACzFhnO,KAAKmjO,UAAYhtI,EAA0CyC,SAASmgG,cAAchjK,eAClF/1B,KAAKojO,aAAejtI,EAA0CyC,SAASmgG,cAAc7iK,kBACrFl2B,KAAKqjO,qBAAuBltI,EAA0CyC,SAASmgG,cAAckuC,0BAC7FjnO,KAAKsjO,wBAA0BntI,EAA0CyC,SAASmgG,cAAc4pB,6BAChG3iN,KAAKujO,iBAAmBptI,EAA0CyC,SAASmgG,cAAcxhK,sBACzFv3B,KAAKijO,cAAgB9sI,EAA0CyC,SAASmgG,cAAc+tC,mBACtF9mO,KAAKgjO,aAAe7sI,EAA0CyC,SAASmgG,cAAc8tC,kBACrF7mO,KAAK+iO,WAAa5sI,EAA0CyC,SAASmgG,cAAc6tC,gBACnF5mO,KAAK+hO,kBAAoB5rI,EAA0CyC,SAASmgG,cAAc3nK,uBAC1FpxB,KAAKgiO,cAAgB7rI,EAA0CyC,SAASmgG,cAAc9nK,mBACtFjxB,KAAKwjO,kBAAoBrtI,EAA0CyC,SAASmgG,cAAcp/J,uBAC1F35B,KAAKyjO,qBAAuBttI,EAA0CyC,SAASmgG,cAAczgK,0BAC7Ft4B,KAAK0jO,mBAAqBvtI,EAA0CyC,SAASmgG,cAAc/gK,wBAC3Fh4B,KAAK2jO,mBAAqBxtI,EAA0CyC,SAASmgG,cAAchgK,wBAC3F/4B,KAAK4jO,qBAAuBztI,EAA0CyC,SAASmgG,cAAc7/J,0BAC7Fl5B,KAAK6jO,qBAAuB1tI,EAA0CyC,SAASmgG,cAAc5gK,0BAC7Fn4B,KAAK+jO,kBAAoB5tI,EAA0CyC,SAASmgG,cAAcv/J,uBAC1Fx5B,KAAK8jO,qBAAuB3tI,EAA0CyC,SAASmgG,cAAcngK,0BAC7F54B,KAAKkkO,wBAA0B/tI,EAA0CyC,SAASmgG,cAAczjK,6BAChGt1B,KAAKmkO,kBAAoBhuI,EAA0CyC,SAASmgG,cAActjK,uBAC1Fz1B,KAAKokO,sBAAwBjuI,EAA0CyC,SAASmgG,cAAcnjK,2BAC9F51B,KAAKqkO,kBAAoBluI,EAA0CyC,SAASmgG,cAAcrkK,uBAC1F10B,KAAKskO,sBAAwBnuI,EAA0CyC,SAASmgG,cAAclkK,2BAC9F70B,KAAKukO,0BAA4BpuI,EAA0CyC,SAASmgG,cAAc/jK,+BAClGh1B,KAAKwkO,eAAiBruI,EAA0CyC,SAASmgG,cAActmK,oBACvFzyB,KAAK+kO,mBAAqB5uI,EAA0CyC,SAASmgG,cAAcnmK,wBAC3F5yB,KAAKglO,qBAAuB7uI,EAA0CyC,SAASmgG,cAAcviK,0BAC7Fx2B,KAAKilO,2BAA6B9uI,EAA0CyC,SAASmgG,cAAcvlK,gCACnGxzB,KAAKklO,yBAA2B/uI,EAA0CyC,SAASmgG,cAAc1lK,8BACjGrzB,KAAKolO,gBAAkBjvI,EAA0CyC,SAASmgG,cAAclhK,qBACxF73B,KAAKqlO,yBAA2BlvI,EAA0CyC,SAASmgG,cAActgK,8BACjGz4B,KAAKslO,oBAAsBnvI,EAA0CyC,SAASmgG,cAAc1/J,yBAC5Fr5B,KAAKulO,cAAgBpvI,EAA0CyC,SAASmgG,cAAc3kK,mBACtFp0B,KAAKwlO,wBAA0BrvI,EAA0CyC,SAASmgG,cAAcj/J,6BAChG95B,KAAKylO,uBAAyB,GAC9BzlO,KAAK0lO,4BAA8BvvI,EAA0CyC,SAASmgG,cAActpK,iCAAiC4lE,QACrIr1F,KAAK2lO,+BAAiCxvI,EAA0CyC,SAASmgG,cAAc5pK,oCAAoCkmE,QAC3Ir1F,KAAK4lO,0BAA4BzvI,EAA0CyC,SAASmgG,cAAchpK,+BAA+BslE,QACjIr1F,KAAK6lO,wBAA0B1vI,EAA0CyC,SAASmgG,cAAc/pK,6BAA6BqmE,QAC7Hr1F,KAAK8lO,iBAAmB3vI,EAA0CyC,SAASmgG,cAAcjiK,sBACzF92B,KAAK+lO,oBAAsB5vI,EAA0CyC,SAASmgG,cAAcplK,yBAC5F3zB,KAAKgmO,aAAe7vI,EAA0CyC,SAASmgG,cAAc3hK,kBACrFp3B,KAAKimO,cAAgB9vI,EAA0CyC,SAASmgG,cAAcpiK,mBACtF32B,KAAKkmO,qBAAuB/vI,EAA0CyC,SAASmgG,cAAc9hK,0BAC7Fj3B,KAAKmmO,kBAAoBhwI,EAA0CyC,SAASmgG,cAAcjoK,uBAC1F9wB,KAAKomO,cAAgBjwI,EAA0CyC,SAASmgG,cAAc1iK,mBACtFr2B,KAAKqmO,eAAiBlwI,EAA0CyC,SAASmgG,cAAc/mK,oBACvFhyB,KAAKsmO,oBAAsBnwI,EAA0CyC,SAASmgG,cAAc5mK,yBAC5FnyB,KAAKumO,oBAAsBpwI,EAA0CyC,SAASmgG,cAAczmK,yBAC5FtyB,KAAKs3Q,iBAAmB,GACxBt3Q,KAAK+gH,WAAa,KAClB/gH,KAAK0oC,OAAS,CAAC,EACf1oC,KAAKu3Q,UAAY,GACjBv3Q,KAAKw3Q,YAAc,KACnBx3Q,KAAKy3Q,YAAc,KACnBz3Q,KAAKykO,mBAAqB9vL,EAAuCkD,OAAO25C,YACxExxF,KAAK0kO,mBAAqB/vL,EAAuCkD,OAAOw5C,WACxErxF,KAAK2kO,gBAAkBhwL,EAAuCkD,OAAO65C,cACrE1xF,KAAK4kO,sBAAwBjwL,EAAuCkD,OAAO85C,aAC3E3xF,KAAK6kO,eAAiBlwL,EAAuCkD,OAAOs5C,WACpEnxF,KAAK8kO,qBAAuBnwL,EAAuCkD,OAAOC,YAC1E93C,KAAKmlO,2BAA6B,GAClCnlO,KAAKg3C,IAAM8wE,EAAuC97E,KAAKw/H,UAAU9hK,UACrE,EAtGA,EAAGihD,EAA4CzS,cAAc,iBAAkB89N,IAC/E,EAAGrrN,EAA4C4jC,cAAc,iBAAkBynL,GAuG/E1Z,EAAS/O,gBAAkB,2BAE3B+O,EAASn6P,OAAS,SAAUpD,GACxB,IAAI2tF,EAAK,IAAI4vK,EAEb,OADA5vK,EAAGtkF,QAAUrJ,EACN2tF,CACX,EAEA4vK,EAASob,WAAa,SAAUhrL,GAC5B,IAAIo8K,EAAS,IAAI5gB,EAA2Da,cAI5E,OAHA+f,EAAO7f,4BAA4B,MAAO,kCAC1Cv8J,EAAG8uH,WAAWstD,GAAQ,GACtBA,EAAO1f,SACA0f,EAAOhlQ,IAClB,EAEAw4P,EAAS34I,SAAW,SAAU+pF,EAAO0uD,GACjC,IACI,IAAIkM,EAAc,IAAIhM,EACtBgM,EAAYvc,OAASr+C,EACrB46D,EAAY97O,OAAO4vO,EAAS94I,WAAWC,aAAa,MAAMC,WAC1D8kJ,EAAY/mP,SAAS66O,EAAS94I,WAAWC,aAAa,QAAQC,WAC9D8kJ,EAAY/3D,gBAAgB6rD,EAAS94I,WAAWC,aAAa,eAAeC,WAC5E8kJ,EAAYgP,iBAAmBlb,EAAS94I,WAAWC,aAAa,aAAaC,UAC7E8kJ,EAAY4O,UAAY5rH,EAA0C5oG,KAAKsnC,cAAcoyK,EAAS94I,WAAWC,aAAa,YAAYC,WAChF,MAA9C44I,EAAS94I,WAAWC,aAAa,YACjC+kJ,EAAY2O,aAAevsN,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,UAAUC,YAEpE,MAAjD44I,EAAS94I,WAAWC,aAAa,eACjC+kJ,EAAYyO,WAAa3a,EAAS94I,WAAWC,aAAa,aAAaC,WAEd,MAAzD44I,EAAS94I,WAAWC,aAAa,sBACjC+kJ,EAAYxY,sBAAsBnlM,EAA4C4kG,MAAM5nJ,MAAM,oBAAqBy0P,EAAS94I,WAAWC,aAAa,qBAAqBC,YAEzK8kJ,EAAY0O,iBAAkB,EAC4B,MAAtD5a,EAAS94I,WAAWC,aAAa,oBACjC+kJ,EAAY0O,gBAAkBtsN,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,kBAAkBC,YAE9E,MAAlD44I,EAAS94I,WAAWC,aAAa,gBACjC+kJ,EAAYqO,YAAchsN,EAA4C4kG,MAAM5nJ,MAAM,iBAAkBy0P,EAAS94I,WAAWC,aAAa,cAAcC,YAEhG,MAAnD44I,EAAS94I,WAAWC,aAAa,iBACjC+kJ,EAAY6O,aAAezsN,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,eAAeC,YAE1H8kJ,EAAY6O,eACgD,MAAxD/a,EAAS94I,WAAWC,aAAa,sBACjC+kJ,EAAY1lC,kBAAoBz4I,WAAWiyK,EAAS94I,WAAWC,aAAa,oBAAoBC,YAE7C,MAAnD44I,EAAS94I,WAAWC,aAAa,iBACjC+kJ,EAAY5lC,aAAev4I,WAAWiyK,EAAS94I,WAAWC,aAAa,eAAeC,YAEnC,MAAnD44I,EAAS94I,WAAWC,aAAa,iBACjC+kJ,EAAY3lC,aAAex4I,WAAWiyK,EAAS94I,WAAWC,aAAa,eAAeC,aAG3C,MAA/C44I,EAAS94I,WAAWC,aAAa,aACjC+kJ,EAAY8O,SAAW1sN,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,WAAWC,WAC9G8kJ,EAAY8O,WACyC,MAAjDhb,EAAS94I,WAAWC,aAAa,eACjC+kJ,EAAY38F,WAAajhH,EAAoC9P,GAAGsT,KAAKkuM,EAAS94I,WAAWC,aAAa,aAAaC,UAAY,SAEhF,MAA/C44I,EAAS94I,WAAWC,aAAa,aACjC+kJ,EAAY18F,SAAWlhH,EAAoC9P,GAAGsT,KAAKkuM,EAAS94I,WAAWC,aAAa,WAAWC,UAAY,WAI1E,MAAzD44I,EAAS94I,WAAWC,aAAa,uBACjC+kJ,EAAYxlC,mBAAqBp4K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,qBAAqBC,YAEpF,MAAlD44I,EAAS94I,WAAWC,aAAa,gBACjC+kJ,EAAYplC,YAAcx4K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,cAAcC,YAEtD,MAAlE44I,EAAS94I,WAAWC,aAAa,gCACjC+kJ,EAAYjmC,4BAA8B33K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,8BAA8BC,YAExF,MAAhE44I,EAAS94I,WAAWC,aAAa,8BACjC+kJ,EAAYlmC,0BAA4B13K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,4BAA4BC,YAElF,MAAlE44I,EAAS94I,WAAWC,aAAa,gCACjC+kJ,EAAYhmC,4BAA8B53K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,8BAA8BC,YAEpG,MAApD44I,EAAS94I,WAAWC,aAAa,kBACjC+kJ,EAAY7lC,cAAgB/3K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,gBAAgBC,YAEvE,MAArD44I,EAAS94I,WAAWC,aAAa,mBACjC+kJ,EAAYzjC,eAAiBlwL,EAAuCyD,MAAMC,KAAK+jN,EAAS94I,WAAWC,aAAa,iBAAiBC,YAEvE,MAA1D44I,EAAS94I,WAAWC,aAAa,wBACjC+kJ,EAAYrkC,oBAAsBv5K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,sBAAsBC,YAEjF,MAAvD44I,EAAS94I,WAAWC,aAAa,qBACjC+kJ,EAAY+O,iBAAmB3sN,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,mBAAmBC,YAElF,MAAhD44I,EAAS94I,WAAWC,aAAa,cACjC+kJ,EAAYnlC,UAAYz4K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,YAAYC,YAEjE,MAAnD44I,EAAS94I,WAAWC,aAAa,iBACjC+kJ,EAAYllC,aAAe14K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,eAAeC,YAE/D,MAA3D44I,EAAS94I,WAAWC,aAAa,yBACjC+kJ,EAAYjlC,qBAAuB34K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,uBAAuBC,YAE5E,MAA9D44I,EAAS94I,WAAWC,aAAa,4BACjC+kJ,EAAYhlC,wBAA0B54K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,0BAA0BC,YAEzF,MAAvD44I,EAAS94I,WAAWC,aAAa,qBACjC+kJ,EAAY/kC,iBAAmB74K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,mBAAmBC,YAE9E,MAApD44I,EAAS94I,WAAWC,aAAa,kBACjC+kJ,EAAYrlC,cAAgB/4I,SAASkyK,EAAS94I,WAAWC,aAAa,gBAAgBC,YAEnC,MAAnD44I,EAAS94I,WAAWC,aAAa,iBACjC+kJ,EAAYtlC,aAAe94I,SAASkyK,EAAS94I,WAAWC,aAAa,eAAeC,YAEnC,MAAjD44I,EAAS94I,WAAWC,aAAa,eACjC+kJ,EAAYvlC,WAAa74I,SAASkyK,EAAS94I,WAAWC,aAAa,aAAaC,YAExB,MAAxD44I,EAAS94I,WAAWC,aAAa,sBACjC+kJ,EAAYvmC,kBAAoBr3K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,oBAAoBC,YAEhF,MAApD44I,EAAS94I,WAAWC,aAAa,kBACjC+kJ,EAAYtmC,cAAgBt3K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,gBAAgBC,YAEpE,MAAxD44I,EAAS94I,WAAWC,aAAa,sBACjC+kJ,EAAY9kC,kBAAoB94K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,oBAAoBC,YAEzE,MAA3D44I,EAAS94I,WAAWC,aAAa,yBACjC+kJ,EAAY7kC,qBAAuB/4K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,uBAAuBC,YAEjF,MAAzD44I,EAAS94I,WAAWC,aAAa,uBACjC+kJ,EAAY5kC,mBAAqBh5K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,qBAAqBC,YAE7E,MAAzD44I,EAAS94I,WAAWC,aAAa,uBACjC+kJ,EAAY3kC,mBAAqBj5K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,qBAAqBC,YAE3E,MAA3D44I,EAAS94I,WAAWC,aAAa,yBACjC+kJ,EAAY1kC,qBAAuBl5K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,uBAAuBC,YAE/E,MAA3D44I,EAAS94I,WAAWC,aAAa,yBACjC+kJ,EAAYzkC,qBAAuBn5K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,uBAAuBC,YAElF,MAAxD44I,EAAS94I,WAAWC,aAAa,sBACjC+kJ,EAAYvkC,kBAAoB75I,SAASkyK,EAAS94I,WAAWC,aAAa,oBAAoBC,YAEnC,MAA3D44I,EAAS94I,WAAWC,aAAa,yBACjC+kJ,EAAYxkC,qBAAuBp5K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,uBAAuBC,YAE5E,MAA9D44I,EAAS94I,WAAWC,aAAa,4BACjC+kJ,EAAYpkC,wBAA0Bx5K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,0BAA0BC,YAErF,MAA3D44I,EAAS94I,WAAWC,aAAa,yBACjC+kJ,EAAYxjC,qBAAuBnwL,EAAuCyD,MAAMC,KAAK+jN,EAAS94I,WAAWC,aAAa,uBAAuBC,YAErF,MAAxD44I,EAAS94I,WAAWC,aAAa,sBACjC+kJ,EAAYnkC,kBAAoBz5K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,oBAAoBC,YAExE,MAA5D44I,EAAS94I,WAAWC,aAAa,0BACjC+kJ,EAAYlkC,sBAAwB15K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,wBAAwBC,YAEnF,MAAzD44I,EAAS94I,WAAWC,aAAa,uBACjC+kJ,EAAY5jC,mBAAqB/vL,EAAuCyD,MAAMC,KAAK+jN,EAAS94I,WAAWC,aAAa,qBAAqBC,YAEjF,MAAxD44I,EAAS94I,WAAWC,aAAa,sBACjC+kJ,EAAYjkC,kBAAoB35K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,oBAAoBC,YAExE,MAA5D44I,EAAS94I,WAAWC,aAAa,0BACjC+kJ,EAAYhkC,sBAAwB55K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,wBAAwBC,YAEnF,MAAzD44I,EAAS94I,WAAWC,aAAa,uBACjC+kJ,EAAY7jC,mBAAqB9vL,EAAuCyD,MAAMC,KAAK+jN,EAAS94I,WAAWC,aAAa,qBAAqBC,YAEzE,MAAhE44I,EAAS94I,WAAWC,aAAa,8BACjC+kJ,EAAY/jC,0BAA4B75K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,4BAA4BC,YAE/F,MAArD44I,EAAS94I,WAAWC,aAAa,mBACjC+kJ,EAAY9jC,eAAiB95K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,iBAAiBC,YAErE,MAAzD44I,EAAS94I,WAAWC,aAAa,uBACjC+kJ,EAAYvjC,mBAAqBr6K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,qBAAqBC,YAEhF,MAAtD44I,EAAS94I,WAAWC,aAAa,oBACjC+kJ,EAAY3jC,gBAAkBhwL,EAAuCyD,MAAMC,KAAK+jN,EAAS94I,WAAWC,aAAa,kBAAkBC,YAExE,MAA3D44I,EAAS94I,WAAWC,aAAa,yBACjC+kJ,EAAYtjC,qBAAuBt6K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,uBAAuBC,YAE9E,MAA5D44I,EAAS94I,WAAWC,aAAa,0BACjC+kJ,EAAY1jC,sBAAwBjwL,EAAuCyD,MAAMC,KAAK+jN,EAAS94I,WAAWC,aAAa,wBAAwBC,YAE9E,MAAjE44I,EAAS94I,WAAWC,aAAa,+BACjC+kJ,EAAYrjC,2BAA6Bv6K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,6BAA6BC,YAEvF,MAA/D44I,EAAS94I,WAAWC,aAAa,6BACjC+kJ,EAAYpjC,yBAA2Bx6K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,2BAA2BC,YAE5F,MAAtD44I,EAAS94I,WAAWC,aAAa,oBACjC+kJ,EAAYljC,gBAAkB16K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,kBAAkBC,YAEjE,MAA/D44I,EAAS94I,WAAWC,aAAa,6BACjC+kJ,EAAYjjC,yBAA2B36K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,2BAA2BC,YAExF,MAA1D44I,EAAS94I,WAAWC,aAAa,wBACjC+kJ,EAAYhjC,oBAAsB56K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,sBAAsBC,YAEpF,MAApD44I,EAAS94I,WAAWC,aAAa,kBACjC+kJ,EAAY/iC,cAAgB76K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,gBAAgBC,YAE9D,MAA9D44I,EAAS94I,WAAWC,aAAa,4BACjC+kJ,EAAY9iC,wBAA0B96K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,0BAA0BC,YAEzF,MAAvD44I,EAAS94I,WAAWC,aAAa,mBACjC+kJ,EAAYxiC,iBAAmBp7K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,mBAAmBC,WAElI8kJ,EAAYxiC,kBAAmB,EAE2B,MAA1Ds2B,EAAS94I,WAAWC,aAAa,sBACjC+kJ,EAAYviC,oBAAsBr7K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,sBAAsBC,WAExI8kJ,EAAYviC,qBAAsB,EAEiB,MAAnDq2B,EAAS94I,WAAWC,aAAa,eACjC+kJ,EAAYtiC,aAAet7K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,eAAeC,WAE1H8kJ,EAAYtiC,cAAe,EAEyB,MAApDo2B,EAAS94I,WAAWC,aAAa,gBACjC+kJ,EAAYriC,cAAgBv7K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,gBAAgBC,WAE5H8kJ,EAAYriC,eAAgB,EAE+B,MAA3Dm2B,EAAS94I,WAAWC,aAAa,yBACjC+kJ,EAAYpiC,qBAAuBx7K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,uBAAuBC,YAElF,MAAxD44I,EAAS94I,WAAWC,aAAa,sBACjC+kJ,EAAYniC,kBAAoBz7K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,oBAAoBC,YAEhF,MAApD44I,EAAS94I,WAAWC,aAAa,kBACjC+kJ,EAAYliC,cAAgB17K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,gBAAgBC,YAEvE,MAArD44I,EAAS94I,WAAWC,aAAa,mBACjC+kJ,EAAYjiC,eAAiB37K,EAAoC9P,GAAG80G,QAAQ0sG,EAAS94I,WAAWC,aAAa,iBAAiBC,YAEzD,MAArE44I,EAAS94I,WAAWC,aAAa,iCACjC+kJ,EAAY3iC,+BAAiCswC,EAAsDhkL,oBAAoBtqF,MAAMy0P,EAAS94I,WAAWC,aAAa,iCAAiCC,WAE/L8kJ,EAAY3iC,+BAAiCswC,EAAsDhkL,oBAAoBW,uBAElD,MAArEwpK,EAAS94I,WAAWC,aAAa,iCACjC+kJ,EAAY5iC,4BAA8BuwC,EAAsDhkL,oBAAoBtqF,MAAMy0P,EAAS94I,WAAWC,aAAa,iCAAiCC,WAE5L8kJ,EAAY5iC,4BAA8B,IAAIuwC,EAAsDhkL,oBAEpC,MAAhEmqK,EAAS94I,WAAWC,aAAa,4BACjC+kJ,EAAY1iC,0BAA4BqwC,EAAsDhkL,oBAAoBtqF,MAAMy0P,EAAS94I,WAAWC,aAAa,4BAA4BC,WAErL8kJ,EAAY1iC,0BAA4B,IAAIqwC,EAAsDhkL,oBAEpC,MAA9DmqK,EAAS94I,WAAWC,aAAa,0BACjC+kJ,EAAYziC,wBAA0BowC,EAAsDhkL,oBAAoBtqF,MAAMy0P,EAAS94I,WAAWC,aAAa,0BAA0BC,WAEjL8kJ,EAAYziC,wBAA0B,IAAIowC,EAAsDhkL,oBAEtC,MAA1DmqK,EAAS94I,WAAWC,aAAa,wBACjC+kJ,EAAYhiC,oBAAsBp8I,SAASkyK,EAAS94I,WAAWC,aAAa,sBAAsBC,YAExC,MAA1D44I,EAAS94I,WAAWC,aAAa,wBACjC+kJ,EAAY/hC,oBAAsBr8I,SAASkyK,EAAS94I,WAAWC,aAAa,sBAAsBC,YAEtG,IAAIlkF,EAAQgsH,EAA0C5oG,KAAKuoC,iBAAiBmxK,EAAU,SACtFkM,EAAYlgQ,QAAUu3G,EAAuCr8E,MAAMqgF,SAASrkF,GAC5E,IAAIq4O,EAAYrsH,EAA0C5oG,KAAKuoC,iBAAiBmxK,EAAU,aACzE,MAAbub,IACArP,EAAYsP,WAAaj4J,EAAuCr8E,MAAMqgF,SAASg0J,IAEnF,IAAIphB,EAAWjrG,EAA0C5oG,KAAKuoC,iBAAiBmxK,EAAU,YACrF9gN,EAASoP,EAAoC9P,GAAGW,UAAUg7M,EAASprK,YACvE,MAAO7vC,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACI,YAArB8xM,EAAQniK,UACRi9K,EAAYmF,WAAW2I,EAA0C9rB,QAAQ3mI,SAAS2kJ,EAAa9a,GAEvG,CACA,IAAIqqB,EAAYvsH,EAA0C5oG,KAAKuoC,iBAAiBmxK,EAAU,cACzE,MAAbyb,IACAvP,EAAYkP,YAAcpB,EAA0C9rB,QAAQ3mI,SAAS2kJ,EAAah9G,EAA0C5oG,KAAKuoC,iBAAiB4sL,EAAW,aAEjL,IAAIC,EAAYxsH,EAA0C5oG,KAAKuoC,iBAAiBmxK,EAAU,cACzE,MAAb0b,IACAxP,EAAYmP,YAAcrB,EAA0C9rB,QAAQ3mI,SAAS2kJ,EAAah9G,EAA0C5oG,KAAKuoC,iBAAiB6sL,EAAW,aAEjL,IAAI90G,EAAY1X,EAA0C5oG,KAAKuoC,iBAAiBmxK,EAAU,iBAO1F,OANiB,MAAbp5F,GACAslG,EAAYyP,eAAe/0G,GAE/BslG,EAAYvnJ,WAAa2sF,EAAM6iD,iBAAiB7lM,EAAoC9P,GAAGvU,OAAO,gBAAiBiiO,EAAYtxN,MAAM,WAEjI,IACOsxN,CACX,CACA,MAAOhsC,GAEH,OADAj9G,EAA8C7b,sBAAsB64H,eAAeC,GAC5E,IACX,CACJ,EAEA,IAAI07C,EAAY,CACZrhG,cAAe,WACX,OAAO32K,KAAKy2Q,UAChB,EAEAwB,iBAAkB,WACd,OAA6C,MAAzCj4Q,KAAKoI,QAAQ2kC,yBACN/sC,KAAKoI,QAAQ2kC,yBAAyB9J,kBAEtCjjC,KAAKw2Q,aAEpB,EAEA0B,iBAAkB,SAAUt3Q,GAOxB,OAN6C,MAAzCZ,KAAKoI,QAAQ2kC,0BACT/sC,KAAKoI,QAAQ2kC,yBAAyB9J,oBAAsBriC,GAC5DZ,KAAKoI,QAAQo7B,uBAAuB,MAG5CxjC,KAAKw2Q,cAAgB51Q,EACdA,CACX,EAEA6kC,kBAAmB,WACf,OAAOzlC,KAAK02Q,cAChB,EAEAnT,kBAAmB,SAAU3iQ,GAKzB,OAJIZ,KAAK02Q,iBAAmB91Q,IACxBZ,KAAK02Q,eAAiBpxQ,KAAKC,IAAI,EAAGD,KAAKilF,IAAI,EAAG3pF,IAC9CZ,KAAK02K,uBAEF91K,CACX,EAEA81K,oBAAqB,WACb12K,KAAK22K,eAEb,EAEA1tF,KAAM,WACF,IAAI6/K,EAAS,IAAI5gB,EAA2Da,cAC5E+f,EAAO7f,4BAA4B,MAAO,kCAC1CjpP,KAAKw7M,WAAWstD,GAAQ,GACxB,IACI,IAAIh8D,EAAU,IAAIC,UACd7pF,EAAM4pF,EAAQE,gBAAgB87D,EAAOhlQ,KAAM,YAC3C4H,EAAO4/I,EAA0C5oG,KAAKuoC,iBAAiBi4B,EAAK,YAC5Ex2B,EAAK4vK,EAAS34I,SAAS3jH,KAAK6tP,YAAaniP,GAE7C,OADAghF,EAAGlgE,OAAOs7F,EAAuC97E,KAAKw/H,UAAU9hK,YACzDgjF,CACX,CACA,MAAO6H,GACP,CACA,OAAO,IACX,EAEAs5J,UAAW,WACP,OAAO7tP,KAAK+rP,MAChB,EAEA+B,UAAW,SAAUltP,GAEjB,OADAZ,KAAK+rP,OAASnrP,EACPA,CACX,EAEAk/P,gBAAiB,WACb,OAAO9/P,KAAK22Q,WAChB,EAEAwB,gBAAiB,SAAUv3Q,GAOvB,OANIZ,KAAK22Q,cAAgB/1Q,IACrBZ,KAAK22Q,YAAc/1Q,EACA,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEA00Q,oBAAqB,WACjB,OAAOt1Q,KAAK42Q,eAChB,EAEAwB,oBAAqB,SAAUx3Q,GAO3B,OANIZ,KAAK42Q,kBAAoBh2Q,IACzBZ,KAAK42Q,gBAAkBh2Q,EACJ,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEAy0Q,wBAAyB,WACrB,OAAOr1Q,KAAK62Q,mBAChB,EAEAwB,wBAAyB,SAAUz3Q,GAO/B,OANIZ,KAAK62Q,sBAAwBj2Q,IAC7BZ,KAAK62Q,oBAAsBj2Q,EACR,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEA60Q,uBAAwB,WACpB,OAAOz1Q,KAAK82Q,kBAChB,EAEAwB,uBAAwB,SAAU13Q,GAO9B,OANIZ,KAAK82Q,qBAAuBl2Q,IAC5BZ,KAAK82Q,mBAAqBl2Q,EACP,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEAokQ,cAAe,WACX,OAAOhlQ,KAAK+2Q,UAChB,EAEA1Q,cAAe,SAAUzlQ,GAErB,OADAZ,KAAK+2Q,WAAan2Q,EACXA,CACX,EAEA4zQ,aAAc,WACV,QAAuB,MAAnBx0Q,KAAK+2Q,YAA0C,SAApB/2Q,KAAK+2Q,aAA0B/2Q,KAAK+2Q,WAIvE,EAEAnR,mBAAoB,WAChB,OAAO5lQ,KAAKg3Q,eAChB,EAEApQ,mBAAoB,SAAUhmQ,GAE1B,OADAZ,KAAKg3Q,gBAAkBp2Q,EAChBA,CACX,EAEAy/P,gBAAiB,WACb,OAAOrgQ,KAAKi3Q,YAChB,EAEA9P,gBAAiB,SAAUvmQ,GAOvB,OANIZ,KAAKi3Q,eAAiBr2Q,IACtBZ,KAAKi3Q,aAAer2Q,EACD,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEA2rB,OAAQ,WACJ,OAAOvsB,KAAKg3C,GAChB,EAEAxqB,OAAQ,SAAU5rB,GAKd,OAJAZ,KAAKg3C,IAAMp2C,EACQ,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,GAEvBh7P,CACX,EAEA8I,SAAU,WACN,OAAoB,MAAhB1J,KAAKoI,QACEpI,KAAKw6M,aAAal5L,WAElBthB,KAAK85P,YAEpB,EAEAxpD,gBAAiB,WACb,OAAOtwM,KAAK85P,YAChB,EAEAvpD,gBAAiB,SAAU3vM,GAOvB,OANIZ,KAAK85P,eAAiBl5P,IACtBZ,KAAK85P,aAAel5P,EACD,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEA0gB,SAAU,WACN,OAAoB,MAAhBthB,KAAKoI,QACEpI,KAAKoI,QAAQkZ,WAEjBthB,KAAKy2F,KAChB,EAEAl1E,SAAU,SAAU3gB,GAOhB,OANIZ,KAAKy2F,QAAU71F,IACfZ,KAAKy2F,MAAQ71F,EACM,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEA8kC,aAAc,WACV,OAAO1lC,KAAKk3Q,SAChB,EAEAqB,aAAc,SAAU33Q,GAOpB,OANIZ,KAAKk3Q,YAAct2Q,IACnBZ,KAAKk3Q,UAAYt2Q,EACE,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEA45M,WAAY,WACR,OAAOx6M,KAAKoI,OAChB,EAEAkxM,WAAY,SAAU14M,GAOlB,OANIZ,KAAKoI,UAAYxH,IACjBZ,KAAKoI,QAAUxH,EACI,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEAm/P,cAAe,WACX,OAAO//P,KAAK43Q,UAChB,EAEAjR,cAAe,SAAU/lQ,GAOrB,OANIZ,KAAK43Q,aAAeh3Q,IACpBZ,KAAK43Q,WAAah3Q,EACC,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEAivP,sBAAuB,WACnB,OAAO7vP,KAAKqtP,kBAChB,EAEAyC,sBAAuB,SAAUlvP,GAE7B,OADAZ,KAAKqtP,mBAAqBzsP,EACnBA,CACX,EAEA43Q,gBAAiB,WACb,OAAOx4Q,KAAKo3Q,QAChB,EAEAqB,gBAAiB,SAAU73Q,GAOvB,OANIZ,KAAKm3Q,eAAiBv2Q,IACtBZ,KAAKm3Q,aAAev2Q,EACD,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEA+kQ,YAAa,WACT,OAAO3lQ,KAAKo3Q,QAChB,EAEAnQ,YAAa,SAAUrmQ,GAOnB,OANIZ,KAAKo3Q,WAAax2Q,IAClBZ,KAAKo3Q,SAAWp3Q,KAAKm3Q,aAAev2Q,EACjB,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEAqhB,cAAe,WACX,OAAOjiB,KAAK2rK,UAChB,EAEAxpJ,cAAe,SAAUvhB,GAQrB,OAPAZ,KAAK2rK,WAAa/qK,EACb8pD,EAAoC9P,GAAGsxH,aAAalsK,KAAK2rK,WAAY/qK,KACtEZ,KAAK2rK,WAAa/qK,EACC,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEAigB,YAAa,WACT,OAAO7gB,KAAK4rK,QAChB,EAEA7qJ,YAAa,SAAUngB,GAOnB,OANK8pD,EAAoC9P,GAAGsxH,aAAalsK,KAAK4rK,SAAUhrK,KACpEZ,KAAK4rK,SAAWhrK,EACG,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEAgnQ,gBAAiB,WACb5nQ,KAAK2rK,WAAawqG,EAAwD74O,oBAAoB0P,UAC9FhtC,KAAK8iO,mBAAqB3sI,EAA0CyC,SAASmgG,cAAclqK,wBAC3F7uB,KAAK4iO,kBAAoBzsI,EAA0CyC,SAASmgG,cAAcxnK,uBAC1FvxB,KAAK0iO,aAAevsI,EAA0CyC,SAASmgG,cAAcrnK,kBACrF1xB,KAAK2iO,aAAexsI,EAA0CyC,SAASmgG,cAAclnK,kBACrF7xB,KAAKkjO,YAAc/sI,EAA0CyC,SAASmgG,cAAcguC,iBACpF/mO,KAAKqiO,4BAA8BlsI,EAA0CyC,SAASmgG,cAAchmK,iCACpG/yB,KAAKoiO,0BAA4BjsI,EAA0CyC,SAASmgG,cAAc7lK,+BAClGlzB,KAAKsiO,4BAA8BnsI,EAA0CyC,SAASmgG,cAAcjlK,iCACpG9zB,KAAKyiO,cAAgBtsI,EAA0CyC,SAASmgG,cAAcxkK,mBACtFv0B,KAAKikO,oBAAsB9tI,EAA0CyC,SAASmgG,cAAc5jK,yBAC5Fn1B,KAAKq3Q,iBAAmBlhL,EAA0CyC,SAASmgG,cAAciuC,sBACzFhnO,KAAKmjO,UAAYhtI,EAA0CyC,SAASmgG,cAAchjK,eAClF/1B,KAAKojO,aAAejtI,EAA0CyC,SAASmgG,cAAc7iK,kBACrFl2B,KAAKqjO,qBAAuBltI,EAA0CyC,SAASmgG,cAAckuC,0BAC7FjnO,KAAKsjO,wBAA0BntI,EAA0CyC,SAASmgG,cAAc4pB,6BAChG3iN,KAAKujO,iBAAmBptI,EAA0CyC,SAASmgG,cAAcxhK,sBACzFv3B,KAAKijO,cAAgB9sI,EAA0CyC,SAASmgG,cAAc+tC,mBACtF9mO,KAAKgjO,aAAe7sI,EAA0CyC,SAASmgG,cAAc8tC,kBACrF7mO,KAAK+iO,WAAa5sI,EAA0CyC,SAASmgG,cAAc6tC,gBACnF5mO,KAAK+hO,kBAAoB5rI,EAA0CyC,SAASmgG,cAAc3nK,uBAC1FpxB,KAAKgiO,cAAgB7rI,EAA0CyC,SAASmgG,cAAc9nK,mBACtFjxB,KAAKwjO,kBAAoBrtI,EAA0CyC,SAASmgG,cAAcp/J,uBAC1F35B,KAAKyjO,qBAAuBttI,EAA0CyC,SAASmgG,cAAczgK,0BAC7Ft4B,KAAK0jO,mBAAqBvtI,EAA0CyC,SAASmgG,cAAc/gK,wBAC3Fh4B,KAAK2jO,mBAAqBxtI,EAA0CyC,SAASmgG,cAAchgK,wBAC3F/4B,KAAK4jO,qBAAuBztI,EAA0CyC,SAASmgG,cAAc7/J,0BAC7Fl5B,KAAK6jO,qBAAuB1tI,EAA0CyC,SAASmgG,cAAc5gK,0BAC7Fn4B,KAAK+jO,kBAAoB5tI,EAA0CyC,SAASmgG,cAAcv/J,uBAC1Fx5B,KAAK8jO,qBAAuB3tI,EAA0CyC,SAASmgG,cAAcngK,0BAC7F54B,KAAKkkO,wBAA0B/tI,EAA0CyC,SAASmgG,cAAczjK,6BAChGt1B,KAAKmkO,kBAAoBhuI,EAA0CyC,SAASmgG,cAActjK,uBAC1Fz1B,KAAKokO,sBAAwBjuI,EAA0CyC,SAASmgG,cAAcnjK,2BAC9F51B,KAAKqkO,kBAAoBluI,EAA0CyC,SAASmgG,cAAcrkK,uBAC1F10B,KAAKskO,sBAAwBnuI,EAA0CyC,SAASmgG,cAAclkK,2BAC9F70B,KAAKukO,0BAA4BpuI,EAA0CyC,SAASmgG,cAAc/jK,+BAClGh1B,KAAKwkO,eAAiBruI,EAA0CyC,SAASmgG,cAActmK,oBACvFzyB,KAAK+kO,mBAAqB5uI,EAA0CyC,SAASmgG,cAAcnmK,wBAC3F5yB,KAAKglO,qBAAuB7uI,EAA0CyC,SAASmgG,cAAcviK,0BAC7Fx2B,KAAKilO,2BAA6B9uI,EAA0CyC,SAASmgG,cAAcvlK,gCACnGxzB,KAAKklO,yBAA2B/uI,EAA0CyC,SAASmgG,cAAc1lK,8BACjGrzB,KAAKolO,gBAAkBjvI,EAA0CyC,SAASmgG,cAAclhK,qBACxF73B,KAAKqlO,yBAA2BlvI,EAA0CyC,SAASmgG,cAActgK,8BACjGz4B,KAAKslO,oBAAsBnvI,EAA0CyC,SAASmgG,cAAc1/J,yBAC5Fr5B,KAAKulO,cAAgBpvI,EAA0CyC,SAASmgG,cAAc3kK,mBACtFp0B,KAAKwlO,wBAA0BrvI,EAA0CyC,SAASmgG,cAAcj/J,6BAChG95B,KAAK0lO,4BAA8BvvI,EAA0CyC,SAASmgG,cAActpK,iCAAiC4lE,QACrIr1F,KAAK2lO,+BAAiCxvI,EAA0CyC,SAASmgG,cAAc5pK,oCAAoCkmE,QAC3Ir1F,KAAK4lO,0BAA4BzvI,EAA0CyC,SAASmgG,cAAchpK,+BAA+BslE,QACjIr1F,KAAK6lO,wBAA0B1vI,EAA0CyC,SAASmgG,cAAc/pK,6BAA6BqmE,QAC7Hr1F,KAAK8lO,iBAAmB3vI,EAA0CyC,SAASmgG,cAAcjiK,sBACzF92B,KAAK+lO,oBAAsB5vI,EAA0CyC,SAASmgG,cAAcplK,yBAC5F3zB,KAAKgmO,aAAe7vI,EAA0CyC,SAASmgG,cAAc3hK,kBACrFp3B,KAAKimO,cAAgB9vI,EAA0CyC,SAASmgG,cAAcpiK,mBACtF32B,KAAKkmO,qBAAuB/vI,EAA0CyC,SAASmgG,cAAc9hK,0BAC7Fj3B,KAAKmmO,kBAAoBhwI,EAA0CyC,SAASmgG,cAAcjoK,uBAC1F9wB,KAAKomO,cAAgBjwI,EAA0CyC,SAASmgG,cAAc1iK,mBACtFr2B,KAAKqmO,eAAiBlwI,EAA0CyC,SAASmgG,cAAc/mK,oBACvFhyB,KAAKsmO,oBAAsBnwI,EAA0CyC,SAASmgG,cAAc5mK,yBAC5FnyB,KAAKumO,oBAAsBpwI,EAA0CyC,SAASmgG,cAAczmK,wBAChG,EAEAgxO,aAAc,WACVntK,EAA0CyC,SAAS4D,qBAAqBztE,sBAAsB/uB,KAAK8iO,oBACnG3sI,EAA0CyC,SAAS4D,qBAAqB/qE,qBAAqBzxB,KAAK4iO,mBAClGzsI,EAA0CyC,SAAS4D,qBAAqB5qE,gBAAgB5xB,KAAK0iO,cAC7FvsI,EAA0CyC,SAAS4D,qBAAqBzqE,gBAAgB/xB,KAAK2iO,cAC7FxsI,EAA0CyC,SAAS4D,qBAAqBxrE,qBAAqBhxB,KAAKmmO,mBAClGhwI,EAA0CyC,SAAS4D,qBAAqBvpE,+BAA+BjzB,KAAKqiO,6BAC5GlsI,EAA0CyC,SAAS4D,qBAAqBppE,6BAA6BpzB,KAAKoiO,2BAC1GjsI,EAA0CyC,SAAS4D,qBAAqBxoE,+BAA+Bh0B,KAAKsiO,6BAC5GnsI,EAA0CyC,SAAS4D,qBAAqB/nE,iBAAiBz0B,KAAKyiO,eAC9FtsI,EAA0CyC,SAAS4D,qBAAqBnnE,uBAAuBr1B,KAAKikO,qBACpG9tI,EAA0CyC,SAAS4D,qBAAqBvmE,aAAaj2B,KAAKmjO,WAC1FhtI,EAA0CyC,SAAS4D,qBAAqBpmE,gBAAgBp2B,KAAKojO,cAC7FjtI,EAA0CyC,SAAS4D,qBAAqB/kE,oBAAoBz3B,KAAKujO,kBACjGptI,EAA0CyC,SAAS4D,qBAAqBlrE,qBAAqBtxB,KAAK+hO,mBAClG5rI,EAA0CyC,SAAS4D,qBAAqBrrE,iBAAiBnxB,KAAKgiO,eAC9F7rI,EAA0CyC,SAAS4D,qBAAqB3iE,qBAAqB75B,KAAKwjO,mBAClGrtI,EAA0CyC,SAAS4D,qBAAqBhkE,wBAAwBx4B,KAAKyjO,sBACrGttI,EAA0CyC,SAAS4D,qBAAqBtkE,sBAAsBl4B,KAAK0jO,oBACnGvtI,EAA0CyC,SAAS4D,qBAAqBzkE,mBAAmB/3B,KAAKolO,iBAChGjvI,EAA0CyC,SAAS4D,qBAAqBvjE,sBAAsBj5B,KAAK2jO,oBACnGxtI,EAA0CyC,SAAS4D,qBAAqBxiE,2BAA2Bh6B,KAAKwlO,yBACxGrvI,EAA0CyC,SAAS4D,qBAAqB7jE,4BAA4B34B,KAAKqlO,0BACzGlvI,EAA0CyC,SAAS4D,qBAAqBpjE,wBAAwBp5B,KAAK4jO,sBACrGztI,EAA0CyC,SAAS4D,qBAAqBnkE,wBAAwBr4B,KAAK6jO,sBACrG1tI,EAA0CyC,SAAS4D,qBAAqBjmE,iBAAiBv2B,KAAKomO,eAC9FjwI,EAA0CyC,SAAS4D,qBAAqB9iE,qBAAqB15B,KAAK+jO,mBAClG5tI,EAA0CyC,SAAS4D,qBAAqB1jE,wBAAwB94B,KAAK8jO,sBACrG3tI,EAA0CyC,SAAS4D,qBAAqBloE,iBAAiBt0B,KAAKulO,eAC9FpvI,EAA0CyC,SAAS4D,qBAAqBnqE,uBAAuBryB,KAAKsmO,qBACpGnwI,EAA0CyC,SAAS4D,qBAAqBhqE,uBAAuBxyB,KAAKumO,qBACpGpwI,EAA0CyC,SAAS4D,qBAAqBhnE,2BAA2Bx1B,KAAKkkO,yBACxG/tI,EAA0CyC,SAAS4D,qBAAqB7mE,qBAAqB31B,KAAKmkO,mBAClGhuI,EAA0CyC,SAAS4D,qBAAqB1mE,yBAAyB91B,KAAKokO,uBACtGjuI,EAA0CyC,SAAS4D,qBAAqB5nE,qBAAqB50B,KAAKqkO,mBAClGluI,EAA0CyC,SAAS4D,qBAAqBznE,yBAAyB/0B,KAAKskO,uBACtGnuI,EAA0CyC,SAAS4D,qBAAqBtnE,6BAA6Bl1B,KAAKukO,2BAC1GpuI,EAA0CyC,SAAS4D,qBAAqB7pE,kBAAkB3yB,KAAKwkO,gBAC/FruI,EAA0CyC,SAAS4D,qBAAqB1pE,sBAAsB9yB,KAAK+kO,oBACnG5uI,EAA0CyC,SAAS4D,qBAAqB9lE,wBAAwB12B,KAAKglO,sBACrG7uI,EAA0CyC,SAAS4D,qBAAqB9oE,8BAA8B1zB,KAAKilO,4BAC3G9uI,EAA0CyC,SAAS4D,qBAAqB9rE,0BAA0B1wB,KAAKylO,wBACvGtvI,EAA0CyC,SAAS4D,qBAAqBxlE,oBAAoBh3B,KAAK8lO,kBACjG3vI,EAA0CyC,SAAS4D,qBAAqBpsE,mBAAmBpwB,KAAK+lO,qBAChG5vI,EAA0CyC,SAAS4D,qBAAqBllE,gBAAgBt3B,KAAKgmO,cAC7F7vI,EAA0CyC,SAAS4D,qBAAqB3lE,iBAAiB72B,KAAKimO,eAC9F9vI,EAA0CyC,SAAS4D,qBAAqB7sE,+BAA+B3vB,KAAK0lO,4BAA4BrwI,SACxIc,EAA0CyC,SAAS4D,qBAAqBntE,kCAAkCrvB,KAAK2lO,+BAA+BtwI,SAC9Ic,EAA0CyC,SAAS4D,qBAAqBvsE,6BAA6BjwB,KAAK4lO,0BAA0BvwI,SACpIc,EAA0CyC,SAAS4D,qBAAqBttE,2BAA2BlvB,KAAK6lO,wBAAwBxwI,QACpI,EAEA17D,qBAAsB,WAClB,OAAO35B,KAAKwjO,iBAChB,EAEA5qM,wBAAyB,WACrB,OAAO54B,KAAK8jO,oBAChB,EAEAxrM,wBAAyB,WACrB,OAAOt4B,KAAKyjO,oBAChB,EAEAzrM,sBAAuB,WACnB,OAAOh4B,KAAK0jO,kBAChB,EAEA3qM,sBAAuB,WACnB,OAAO/4B,KAAK2jO,kBAChB,EAEAzqM,wBAAyB,WACrB,OAAOl5B,KAAK4jO,oBAChB,EAEAzrM,wBAAyB,WACrB,OAAOn4B,KAAK6jO,oBAChB,EAEArqM,qBAAsB,WAClB,OAAOx5B,KAAK+jO,iBAChB,EAEAl1M,sBAAuB,WACnB,OAAO7uB,KAAK8iO,kBAChB,EAEA8D,cAAe,WACX,OAAO5mO,KAAK+iO,UAChB,EAEA8D,gBAAiB,WACb,OAAO7mO,KAAKgjO,YAChB,EAEA8D,iBAAkB,WACd,OAAO9mO,KAAKijO,aAChB,EAEA1xM,qBAAsB,WAClB,OAAIvxB,KAAKm3Q,aACEn3Q,KAAK4iO,kBAELzsI,EAA0CyC,SAASmgG,cAAcxnK,sBAEhF,EAEAG,gBAAiB,WACb,OAAI1xB,KAAKm3Q,aACEn3Q,KAAK0iO,aAELvsI,EAA0CyC,SAASmgG,cAAcrnK,iBAEhF,EAEAG,gBAAiB,WACb,OAAI7xB,KAAKm3Q,aACEn3Q,KAAK2iO,aAELxsI,EAA0CyC,SAASmgG,cAAclnK,iBAEhF,EAEAk1M,eAAgB,WACZ,OAAO/mO,KAAKkjO,WAChB,EAEAnwM,+BAAgC,WAC5B,OAAO/yB,KAAKqiO,2BAChB,EAEAnvM,6BAA8B,WAC1B,OAAOlzB,KAAKoiO,yBAChB,EAEAtuM,+BAAgC,WAC5B,OAAO9zB,KAAKsiO,2BAChB,EAEA/tM,iBAAkB,WACd,OAAOv0B,KAAKyiO,aAChB,EAEAttM,uBAAwB,WACpB,OAAOn1B,KAAKikO,mBAChB,EAEA+C,oBAAqB,WACjB,OAAOhnO,KAAKq3Q,gBAChB,EAEAthP,aAAc,WACV,OAAO/1B,KAAKmjO,SAChB,EAEAjtM,gBAAiB,WACb,OAAOl2B,KAAKojO,YAChB,EAEA6D,wBAAyB,WACrB,OAAOjnO,KAAKqjO,oBAChB,EAEA1gB,2BAA4B,WACxB,OAAO3iN,KAAKsjO,uBAChB,EAEA/rM,oBAAqB,WACjB,OAAOv3B,KAAKujO,gBAChB,EAEAnyM,qBAAsB,WAClB,OAAOpxB,KAAK+hO,iBAChB,EAEA9wM,iBAAkB,WACd,OAAOjxB,KAAKgiO,aAChB,EAEA59G,cAAe,WACX,OAAoB,MAAhBpkH,KAAKoI,SAAsC,MAAnBpI,KAAK+gH,WACtB,KAEJ/gH,KAAK+gH,UAChB,EAEAsD,cAAe,SAAUzjH,GAKrB,OAJAZ,KAAK+gH,WAAangH,EACC,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,GAEvBh7P,CACX,EAEAotP,aAAc,WACV,OAAOhuP,KAAKu3Q,SAChB,EAEApD,eAAgB,WACZ,OAAOn0Q,KAAKw3Q,WAChB,EAEAxF,eAAgB,SAAUpxQ,GAOtB,OANIZ,KAAKw3Q,cAAgB52Q,IACrBZ,KAAKw3Q,YAAc52Q,EACA,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEAwzQ,eAAgB,WACZ,OAAOp0Q,KAAKy3Q,WAChB,EAEAxF,eAAgB,SAAUrxQ,GAOtB,OANIZ,KAAKy3Q,cAAgB72Q,IACrBZ,KAAKy3Q,YAAc72Q,EACA,MAAfZ,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,IAG3Bh7P,CACX,EAEA6sQ,WAAY,SAAUjgB,GACH,MAAXA,IAGJA,EAAQM,UAAU9tP,MAClBA,KAAKu3Q,UAAU5yQ,KAAK6oP,GACD,MAAfxtP,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,GAElC,EAEAgV,cAAe,SAAUpjB,GACrB9iM,EAAoC9P,GAAG46C,OAAOx1F,KAAKu3Q,UAAW/pB,GAC3C,MAAfxtP,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,EAElC,EAEAh2H,QAAS,WAEL,IAAItqF,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKguP,gBACnE,MAAO1yM,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ5nH,SACZ,CACwB,MAApB5lI,KAAKy3Q,aACLz3Q,KAAKy3Q,YAAY7xI,UAEG,MAApB5lI,KAAKw3Q,aACLx3Q,KAAKw3Q,YAAY5xI,SAEzB,EAEAwoI,WAAY,SAAUrvQ,GAClB2rD,EAAoC9P,GAAG46C,OAAOx1F,KAAKu3Q,UAAWx4Q,GAC9DiB,KAAKu3Q,UAAU/xQ,OAAO,EAAG,EAAGzG,GACT,MAAfiB,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,EAElC,EAEAuS,aAAc,SAAUpvQ,GACpB2rD,EAAoC9P,GAAG46C,OAAOx1F,KAAKu3Q,UAAWx4Q,GAC9DiB,KAAKu3Q,UAAU5yQ,KAAK5F,GACD,MAAfiB,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,EAElC,EAEAyS,aAAc,SAAUtvQ,GACpB,IAAIgnC,EAAQ/lC,KAAKu3Q,UAAUt+P,QAAQla,GAC/BgnC,EAAQ/lC,KAAKu3Q,UAAU50Q,OAAS,IAChC+nD,EAAoC9P,GAAG46C,OAAOx1F,KAAKu3Q,UAAWx4Q,GAC9DiB,KAAKu3Q,UAAU/xQ,OAAOugC,EAAQ,EAAG,EAAGhnC,IAErB,MAAfiB,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,EAElC,EAEA0S,aAAc,SAAUvvQ,GACpB,IAAIgnC,EAAQ/lC,KAAKu3Q,UAAUt+P,QAAQla,GAC/BgnC,EAAQ,IACR2kB,EAAoC9P,GAAG46C,OAAOx1F,KAAKu3Q,UAAWx4Q,GAC9DiB,KAAKu3Q,UAAU/xQ,OAAOugC,EAAQ,EAAG,EAAGhnC,IAErB,MAAfiB,KAAK+rP,QACL/rP,KAAK+rP,OAAO6P,eAAc,EAElC,EAEA+V,eAAgB,SAAUj2N,GACtB,GAAe,MAAXA,EACA,OAAI17C,KAAKu3Q,UAAU50Q,OAAS,EACjB3C,KAAKu3Q,UAAU,GAGf,KAGf,IAAIxxO,EAAQ/lC,KAAKu3Q,UAAUt+P,QAAQyiC,GACnC,OAAI3V,EAAQ/lC,KAAKu3Q,UAAU50Q,OAAS,EACzB3C,KAAKu3Q,UAAUxxO,EAAQ,GAEvB/lC,KAAKu3Q,UAAU,EAE9B,EAEA3F,mBAAoB,SAAUl2N,GAC1B,GAAe,MAAXA,EACA,OAAI17C,KAAKu3Q,UAAU50Q,OAAS,EACjB3C,KAAKu3Q,UAAU,GAGf,KAGf,IAAIxxO,EAAQ/lC,KAAKu3Q,UAAUt+P,QAAQyiC,GACnC,OAAI3V,EAAQ,EACD/lC,KAAKu3Q,UAAUxxO,EAAQ,GAEvB/lC,KAAKu3Q,UAAUv3Q,KAAKu3Q,UAAU50Q,OAAS,EAEtD,EAEA+1Q,eAAgB,SAAUzxQ,GACtB,IAAIq0C,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKu3Q,WACnE,MAAOj8N,EAAOE,WAAY,CACtB,IAAI42N,EAAK92N,EAAOI,QAChB,GAAI02N,EAAGnrQ,KAAOA,EACV,OAAOmrQ,CAEf,CACA,OAAO,IACX,EAEA1U,8BAA+B,WAC3B,OAAOhzM,EAAoC9P,GAAGvU,OAAO,gBAAiBrmC,KAAKg3C,IAC/E,EAEAwkK,WAAY,SAAUzqD,EAAW4nH,GACzBA,GACI34Q,KAAK+gH,WAGbgwC,EAAUE,mBAAmB,YAC7BF,EAAUG,sBAAsB,KAAMlxJ,KAAKg3C,KAC3C+5G,EAAUG,sBAAsB,OAAQlxJ,KAAKy2F,OAC7Cs6D,EAAUG,sBAAsB,cAAelxJ,KAAK85P,cACpD/oG,EAAUG,sBAAsB,YAAalxJ,KAAKs3Q,kBAClDvmH,EAAUG,sBAAsB,WAAY5F,EAA0C5oG,KAAK0nC,YAAYpqF,KAAKk3Q,YAC5GnmH,EAAUG,sBAAsB,SAAUlxJ,KAAKi3Q,aAAavtQ,YAC5DqnJ,EAAUG,sBAAsB,iBAAkBvmG,EAA4C4kG,MAAM6B,MAAM,iBAAkBpxJ,KAAK22Q,cACjI5lH,EAAUG,sBAAsB,iBAAkBlxJ,KAAK42Q,gBAAgBltQ,YACvEqnJ,EAAUG,sBAAsB,oBAAqBlxJ,KAAK82Q,mBAAmBptQ,YAC7EqnJ,EAAUG,sBAAsB,qBAAsBlxJ,KAAK62Q,oBAAoBntQ,YAC/EqnJ,EAAUG,sBAAsB,YAAalxJ,KAAK+2Q,YAClDhmH,EAAUG,sBAAsB,oBAAqBvmG,EAA4C4kG,MAAM6B,MAAM,oBAAqBpxJ,KAAKqtP,qBACvIt8F,EAAUG,sBAAsB,cAAelxJ,KAAKm3Q,aAAaztQ,YAC7D1J,KAAKm3Q,eACLpmH,EAAUG,sBAAsB,mBAAoBlxJ,KAAK4iO,kBAAkBl5N,YAC3EqnJ,EAAUG,sBAAsB,cAAelxJ,KAAK0iO,aAAah5N,YACjEqnJ,EAAUG,sBAAsB,cAAelxJ,KAAK2iO,aAAaj5N,aAErEqnJ,EAAUG,sBAAsB,UAAWlxJ,KAAKo3Q,SAAS1tQ,YACrD1J,KAAKo3Q,WACLrmH,EAAUG,sBAAsB,YAAa5F,EAA0C5oG,KAAK+nC,QAAQzqF,KAAK2rK,aACzG5a,EAAUG,sBAAsB,UAAW5F,EAA0C5oG,KAAK+nC,QAAQzqF,KAAK4rK,YAE3G7a,EAAUG,sBAAsB,oBAAqBlxJ,KAAK8iO,mBAAmBp5N,YAC7EqnJ,EAAUG,sBAAsB,aAAclxJ,KAAKkjO,YAAYx5N,YAC/DqnJ,EAAUG,sBAAsB,mBAAoBlxJ,KAAKmmO,kBAAkBz8N,YAC3EqnJ,EAAUG,sBAAsB,6BAA8BlxJ,KAAKqiO,4BAA4B34N,YAC/FqnJ,EAAUG,sBAAsB,2BAA4BlxJ,KAAKoiO,0BAA0B14N,YAC3FqnJ,EAAUG,sBAAsB,6BAA8BlxJ,KAAKsiO,4BAA4B54N,YAC/FqnJ,EAAUG,sBAAsB,eAAgBlxJ,KAAKyiO,cAAc/4N,YACnEqnJ,EAAUG,sBAAsB,gBAAiBlxJ,KAAK6kO,eAAezqL,QACrE22G,EAAUG,sBAAsB,qBAAsBlxJ,KAAKikO,oBAAoBv6N,YAC/E1J,KAAKq3Q,kBAAmB,EACxBtmH,EAAUG,sBAAsB,kBAAmBlxJ,KAAKq3Q,iBAAiB3tQ,YACzEqnJ,EAAUG,sBAAsB,WAAYlxJ,KAAKmjO,UAAUz5N,YAC3DqnJ,EAAUG,sBAAsB,cAAelxJ,KAAKojO,aAAa15N,YACjEqnJ,EAAUG,sBAAsB,sBAAuBlxJ,KAAKqjO,qBAAqB35N,YACjFqnJ,EAAUG,sBAAsB,yBAA0BlxJ,KAAKsjO,wBAAwB55N,YACvFqnJ,EAAUG,sBAAsB,kBAAmBlxJ,KAAKujO,iBAAiB75N,YACzEqnJ,EAAUG,sBAAsB,eAAgBlxJ,KAAKijO,cAAcv5N,YACnEqnJ,EAAUG,sBAAsB,cAAelxJ,KAAKgjO,aAAat5N,YACjEqnJ,EAAUG,sBAAsB,YAAalxJ,KAAK+iO,WAAWr5N,YAC7DqnJ,EAAUG,sBAAsB,mBAAoBlxJ,KAAK+hO,kBAAkBr4N,YAC3EqnJ,EAAUG,sBAAsB,eAAgBlxJ,KAAKgiO,cAAct4N,YACnEqnJ,EAAUG,sBAAsB,iBAAkBlxJ,KAAKg3Q,gBAAgBttQ,YACvEqnJ,EAAUG,sBAAsB,mBAAoBlxJ,KAAKwjO,kBAAkB95N,YAC3EqnJ,EAAUG,sBAAsB,sBAAuBlxJ,KAAKyjO,qBAAqB/5N,YACjFqnJ,EAAUG,sBAAsB,oBAAqBlxJ,KAAK0jO,mBAAmBh6N,YAC7EqnJ,EAAUG,sBAAsB,iBAAkBlxJ,KAAKolO,gBAAgB17N,YACvEqnJ,EAAUG,sBAAsB,oBAAqBlxJ,KAAK2jO,mBAAmBj6N,YAC7EqnJ,EAAUG,sBAAsB,yBAA0BlxJ,KAAKwlO,wBAAwB97N,YACvFqnJ,EAAUG,sBAAsB,sBAAuBlxJ,KAAK4jO,qBAAqBl6N,YACjFqnJ,EAAUG,sBAAsB,sBAAuBlxJ,KAAK6jO,qBAAqBn6N,YACjFqnJ,EAAUG,sBAAsB,eAAgBlxJ,KAAKomO,cAAc18N,YACnEqnJ,EAAUG,sBAAsB,mBAAoBlxJ,KAAK+jO,kBAAkBr6N,YAC3EqnJ,EAAUG,sBAAsB,qBAAsBlxJ,KAAKsmO,oBAAoB58N,YAC/EqnJ,EAAUG,sBAAsB,qBAAsBlxJ,KAAKumO,oBAAoB78N,YAC/EqnJ,EAAUG,sBAAsB,sBAAuBlxJ,KAAK8jO,qBAAqBp6N,YACjFqnJ,EAAUG,sBAAsB,0BAA2BlxJ,KAAKqlO,yBAAyB37N,YACzFqnJ,EAAUG,sBAAsB,qBAAsBlxJ,KAAKslO,oBAAoB57N,YAC/EqnJ,EAAUG,sBAAsB,eAAgBlxJ,KAAKulO,cAAc77N,YACnEqnJ,EAAUG,sBAAsB,yBAA0BlxJ,KAAKs1B,6BAA6B5rB,YAC5FqnJ,EAAUG,sBAAsB,sBAAuBlxJ,KAAK4nO,0BAA0BxtL,QACtF22G,EAAUG,sBAAsB,mBAAoBlxJ,KAAKy1B,uBAAuB/rB,YAChFqnJ,EAAUG,sBAAsB,uBAAwBlxJ,KAAK41B,2BAA2BlsB,YACxFqnJ,EAAUG,sBAAsB,oBAAqBlxJ,KAAKonO,wBAAwBhtL,QAClF22G,EAAUG,sBAAsB,mBAAoBlxJ,KAAK00B,uBAAuBhrB,YAChFqnJ,EAAUG,sBAAsB,uBAAwBlxJ,KAAK60B,2BAA2BnrB,YACxFqnJ,EAAUG,sBAAsB,oBAAqBlxJ,KAAKknO,wBAAwB9sL,QAClF22G,EAAUG,sBAAsB,2BAA4BlxJ,KAAKg1B,+BAA+BtrB,YAChGqnJ,EAAUG,sBAAsB,gBAAiBlxJ,KAAKyyB,oBAAoB/oB,YAC1EqnJ,EAAUG,sBAAsB,oBAAqBlxJ,KAAK4yB,wBAAwBlpB,YAClFqnJ,EAAUG,sBAAsB,iBAAkBlxJ,KAAKsnO,qBAAqBltL,QAC5E22G,EAAUG,sBAAsB,sBAAuBlxJ,KAAKw2B,0BAA0B9sB,YACtFqnJ,EAAUG,sBAAsB,uBAAwBlxJ,KAAKwnO,2BAA2BptL,QACxF22G,EAAUG,sBAAsB,wBAAyBlxJ,KAAKwzB,gCAAgC9pB,YAC9FqnJ,EAAUG,sBAAsB,wBAAyBlxJ,KAAKwwB,6BAC9DugI,EAAUG,sBAAsB,0BAA2BlxJ,KAAKqzB,8BAA8B3pB,YAC9FqnJ,EAAUG,sBAAsB,kBAAmBlxJ,KAAK82B,sBAAsBptB,YAC9EqnJ,EAAUG,sBAAsB,qBAAsBlxJ,KAAK2zB,yBAAyBjqB,YACpFqnJ,EAAUG,sBAAsB,cAAelxJ,KAAKo3B,kBAAkB1tB,YACtEqnJ,EAAUG,sBAAsB,eAAgBlxJ,KAAK22B,mBAAmBjtB,YACxEqnJ,EAAUG,sBAAsB,kBAAmBlxJ,KAAKi3B,0BAA0BvtB,YAClFqnJ,EAAUG,sBAAsB,6BAA8BlxJ,KAAK0lO,4BAA4Bh8N,YAC/FqnJ,EAAUG,sBAAsB,gCAAiClxJ,KAAK2lO,+BAA+Bj8N,YACrGqnJ,EAAUG,sBAAsB,2BAA4BlxJ,KAAK4lO,0BAA0Bl8N,YAC3FqnJ,EAAUG,sBAAsB,yBAA0BlxJ,KAAK6lO,wBAAwBn8N,YACvF1J,KAAKoI,QAAQozM,WAAWzqD,EAAW,SACZ,MAAnB/wJ,KAAK43Q,YACL53Q,KAAK43Q,WAAWp8D,WAAWzqD,EAAW,aAE1CA,EAAUE,mBAAmB,YAC7B,IAAI31G,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKu3Q,WACnE,MAAOj8N,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQ18F,UAAUC,GAAW,EACjC,CACAA,EAAUgB,mBACc,MAApB/xJ,KAAKw3Q,cACLzmH,EAAUE,mBAAmB,cAC7BjxJ,KAAKw3Q,YAAY1mH,UAAUC,GAAW,GACtCA,EAAUgB,oBAEU,MAApB/xJ,KAAKy3Q,cACL1mH,EAAUE,mBAAmB,cAC7BjxJ,KAAKy3Q,YAAY3mH,UAAUC,GAAW,GACtCA,EAAUgB,oBAEd/xJ,KAAK44Q,gBAAgB7nH,GACrBA,EAAUgB,kBACd,EAEA6mH,gBAAiB,SAAU7nH,GACvB,GAAIrmG,EAAoC9P,GAAGu8H,SAASn3K,KAAK0oC,QAAU,EAAG,CAClEqoH,EAAUE,mBAAmB,iBAC7B,IAAI31G,EAASoP,EAAoC9P,GAAGW,UAAUmP,EAAoC9P,GAAGpyC,KAAKxI,KAAK0oC,SAC/G,MAAO4S,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACb9kC,EAAO5W,KAAK0oC,OAAOzpC,GACvB8xJ,EAAUE,mBAAmB,SAC7BF,EAAUG,sBAAsB,eAAgBt6I,EAAKuhK,aAAazuK,YAClEqnJ,EAAUG,sBAAsB,aAAct6I,EAAKwhK,WAAW1uK,YAC9D,IAAI60F,EAAM3nF,EAAKyhK,YAAY11K,OAC3BouJ,EAAUG,sBAAsB,aAAc3yD,EAAI70F,YAClD,IAAK,IAAIlH,EAAI,EAAGA,EAAI+7F,EAAK/7F,IACrBuuJ,EAAUG,sBAAsBxmG,EAAoC9P,GAAGvU,OAAO,gBAAiB7jC,GAAIoU,EAAKyhK,YAAY71K,GAAGkH,YACvHqnJ,EAAUG,sBAAsBxmG,EAAoC9P,GAAGvU,OAAO,cAAe7jC,GAAIoU,EAAK0hK,UAAU91K,GAAGkH,YAEvHqnJ,EAAU8nH,YAAYjiQ,EAAK3P,GAAGyC,YAC9BqnJ,EAAUgB,kBACd,CACAhB,EAAUgB,kBACd,CACJ,EAEA+qG,mBAAoB,SAAUt1F,EAAIo1F,GAC9B,GAAuB,MAAnB58P,KAAK+gH,WAAoB,CACzB,IAAIi5C,EAAWtvG,EAAoC9P,GAAGvU,OAAO,gBAAiBrmC,KAAKg3C,KAC/E7sC,EAAOnK,KAAK+rP,OAAOnjF,YAAY5O,GACnCwN,EAAGK,QAAQ7nK,KAAK+rP,OAAOyE,uBAAyBx2F,EAAU7vJ,EAC9D,CACKyyP,IACuB,MAApB58P,KAAKw3Q,aACLx3Q,KAAKw3Q,YAAYjwG,kBAAkBC,GAEf,MAApBxnK,KAAKy3Q,aACLz3Q,KAAKy3Q,YAAYlwG,kBAAkBC,IAG3C,IAAIlsH,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKu3Q,WACnE,MAAOj8N,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB8xM,EAAQjmF,kBAAkBC,EAC9B,CACJ,EAEA2oF,mBAAoB,SAAU2oB,GAC1B,IAAIC,EAAW,EACXz9N,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKu3Q,WACnE,MAAOj8N,EAAOE,WAAY,CACtB,IAAIgyM,EAAUlyM,EAAOI,QACrB,GAAIgP,EAAoC9P,GAAG3lC,WAAWu4O,EAAQlsO,WAAYw3P,GAAW,CACjF,IAAI7xQ,EAAK,EACT,IACIA,EAAKijF,SAASsjK,EAAQlsO,WAAWuqE,OAAOitL,EAASn2Q,QACrD,CACA,MAAOk5F,GACP,CACI50F,GAAM8xQ,IACNA,EAAW9xQ,EAAK,EAExB,CACJ,CACA,OAAOyjD,EAAoC9P,GAAGvU,OAAO,UAAWyyO,EAAUC,EAC9E,EAEAhB,eAAgB,SAAUiB,GACtB,IAAI19N,EAASoP,EAAoC9P,GAAGW,UAAUy9N,EAAW7tL,YACzE,MAAO7vC,EAAOE,WAAY,CACtB,IAAI/4B,EAAQ64B,EAAOI,QACnB,GAAuB,UAAnBj5B,EAAM4oE,SAAsB,CAC5B,IAAIz0E,EAAO,IAAIshK,EACXjxK,EAAKwb,EAAMw2P,UACfriQ,EAAK3P,GAAK6gH,EAAuC97E,KAAKuD,WAAWtoC,GACjE2P,EAAKuhK,aAAehuF,WAAW1nE,EAAM6gG,WAAWC,aAAa,gBAAgBC,WAC7E5sG,EAAKwhK,WAAajuF,WAAW1nE,EAAM6gG,WAAWC,aAAa,cAAcC,WACzE,IAAIjlB,EAAM,EACyC,MAA/C97E,EAAM6gG,WAAWC,aAAa,gBAC9BhlB,EAAMrU,SAASznE,EAAM6gG,WAAWC,aAAa,cAAcC,YAE/D5sG,EAAKyhK,YAAc,IAAIx2K,MAAM08F,GAC7B3nF,EAAK0hK,UAAY,IAAIz2K,MAAM08F,GAC3B3nF,EAAKkgK,YAAc,IAAIj1K,MAAM08F,GAC7B,IAAK,IAAI/7F,EAAI,EAAGA,EAAI+7F,EAAK/7F,IACrBoU,EAAKyhK,YAAY71K,GAAK2nF,WAAW1nE,EAAM6gG,WAAWC,aAAa74D,EAAoC9P,GAAGvU,OAAO,gBAAiB7jC,IAAIghH,WAClI5sG,EAAK0hK,UAAU91K,GAAK2nF,WAAW1nE,EAAM6gG,WAAWC,aAAa74D,EAAoC9P,GAAGvU,OAAO,cAAe7jC,IAAIghH,WAC9H5sG,EAAKkgK,YAAYt0K,GAAKoU,EAAKyhK,YAAY71K,GAE3CxC,KAAK0oC,OAAO9xB,EAAK3P,IAAM2P,CAC3B,CACJ,CACJ,EAEAggK,oBAAqB,WACZ52K,KAAK22K,iBAEN32K,KAAK02K,qBAEb,EAEAphJ,2BAA4B,WACxB,OAAOt1B,KAAKkkO,uBAChB,EAEA1uM,2BAA4B,SAAU50B,GAElC,OADAZ,KAAKkkO,wBAA0BtjO,EACxBA,CACX,EAEA60B,qBAAsB,WAClB,OAAOz1B,KAAKmkO,iBAChB,EAEAxuM,qBAAsB,SAAU/0B,GAE5B,OADAZ,KAAKmkO,kBAAoBvjO,EAClBA,CACX,EAEAg1B,yBAA0B,WACtB,OAAO51B,KAAKokO,qBAChB,EAEAtuM,yBAA0B,SAAUl1B,GAEhC,OADAZ,KAAKokO,sBAAwBxjO,EACtBA,CACX,EAEA8zB,qBAAsB,WAClB,OAAO10B,KAAKqkO,iBAChB,EAEAzvM,qBAAsB,SAAUh0B,GAE5B,OADAZ,KAAKqkO,kBAAoBzjO,EAClBA,CACX,EAEAi0B,yBAA0B,WACtB,OAAO70B,KAAKskO,qBAChB,EAEAvvM,yBAA0B,SAAUn0B,GAEhC,OADAZ,KAAKskO,sBAAwB1jO,EACtBA,CACX,EAEAo0B,6BAA8B,WAC1B,OAAOh1B,KAAKukO,yBAChB,EAEArvM,6BAA8B,SAAUt0B,GAEpC,OADAZ,KAAKukO,0BAA4B3jO,EAC1BA,CACX,EAEA6xB,kBAAmB,WACf,OAAOzyB,KAAKwkO,cAChB,EAEA7xM,kBAAmB,SAAU/xB,GAEzB,OADAZ,KAAKwkO,eAAiB5jO,EACfA,CACX,EAEAgyB,sBAAuB,WACnB,OAAO5yB,KAAK+kO,kBAChB,EAEAjyM,sBAAuB,SAAUlyB,GAE7B,OADAZ,KAAK+kO,mBAAqBnkO,EACnBA,CACX,EAEA41B,wBAAyB,WACrB,OAAOx2B,KAAKglO,oBAChB,EAEAtuM,wBAAyB,SAAU91B,GAE/B,OADAZ,KAAKglO,qBAAuBpkO,EACrBA,CACX,EAEA4yB,8BAA+B,WAC3B,OAAOxzB,KAAKilO,0BAChB,EAEAvxM,8BAA+B,SAAU9yB,GAErC,OADAZ,KAAKilO,2BAA6BrkO,EAC3BA,CACX,EAEAyyB,4BAA6B,WACzB,OAAOrzB,KAAKklO,wBAChB,EAEA3xM,4BAA6B,SAAU3yB,GAEnC,OADAZ,KAAKklO,yBAA2BtkO,EACzBA,CACX,EAEAi3B,mBAAoB,WAChB,OAAO73B,KAAKolO,eAChB,EAEArtM,mBAAoB,SAAUn3B,GAE1B,OADAZ,KAAKolO,gBAAkBxkO,EAChBA,CACX,EAEA63B,4BAA6B,WACzB,OAAOz4B,KAAKqlO,wBAChB,EAEA1sM,4BAA6B,SAAU/3B,GAEnC,OADAZ,KAAKqlO,yBAA2BzkO,EACzBA,CACX,EAEAy4B,uBAAwB,WACpB,OAAOr5B,KAAKslO,mBAChB,EAEA/rM,uBAAwB,SAAU34B,GAE9B,OADAZ,KAAKslO,oBAAsB1kO,EACpBA,CACX,EAEAwzB,iBAAkB,WACd,OAAOp0B,KAAKulO,aAChB,EAEAjxM,iBAAkB,SAAU1zB,GAExB,OADAZ,KAAKulO,cAAgB3kO,EACdA,CACX,EAEAk5B,2BAA4B,WACxB,OAAO95B,KAAKwlO,uBAChB,EAEAxrM,2BAA4B,SAAUp5B,GAElC,OADAZ,KAAKwlO,wBAA0B5kO,EACxBA,CACX,EAEA4vB,0BAA2B,WACvB,OAAOxwB,KAAKylO,sBAChB,EAEA/0M,0BAA2B,SAAU9vB,GAEjC,OADAZ,KAAKylO,uBAAyB7kO,EACvBA,CACX,EAEA6uB,+BAAgC,WAC5B,OAAOzvB,KAAK0lO,2BAChB,EAEA/1M,+BAAgC,SAAU/uB,GAEtC,OADAZ,KAAK0lO,4BAA8B9kO,EAC5BA,CACX,EAEAuuB,kCAAmC,WAC/B,OAAOnvB,KAAK2lO,8BAChB,EAEAt2M,kCAAmC,SAAUzuB,GAEzC,OADAZ,KAAK2lO,+BAAiC/kO,EAC/BA,CACX,EAEAmvB,6BAA8B,WAC1B,OAAO/vB,KAAK4lO,yBAChB,EAEA31M,6BAA8B,SAAUrvB,GAEpC,OADAZ,KAAK4lO,0BAA4BhlO,EAC1BA,CACX,EAEAouB,2BAA4B,WACxB,OAAOhvB,KAAK6lO,uBAChB,EAEA32M,2BAA4B,SAAUtuB,GAElC,OADAZ,KAAK6lO,wBAA0BjlO,EACxBA,CACX,EAEAk2B,oBAAqB,WACjB,OAAO92B,KAAK8lO,gBAChB,EAEA9uM,oBAAqB,SAAUp2B,GAE3B,OADAZ,KAAK8lO,iBAAmBllO,EACjBA,CACX,EAEA+yB,uBAAwB,WACpB,OAAO3zB,KAAK+lO,mBAChB,EAEAlyM,uBAAwB,SAAUjzB,GAE9B,OADAZ,KAAK+lO,oBAAsBnlO,EACpBA,CACX,EAEAw2B,gBAAiB,WACb,OAAOp3B,KAAKgmO,YAChB,EAEA1uM,gBAAiB,SAAU12B,GAEvB,OADAZ,KAAKgmO,aAAeplO,EACbA,CACX,EAEA+1B,iBAAkB,WACd,OAAO32B,KAAKimO,aAChB,EAEApvM,iBAAkB,SAAUj2B,GAExB,OADAZ,KAAKimO,cAAgBrlO,EACdA,CACX,EAEAq2B,wBAAyB,WACrB,OAAOj3B,KAAKkmO,oBAChB,EAEA/uM,wBAAyB,SAAUv2B,GAE/B,OADAZ,KAAKkmO,qBAAuBtlO,EACrBA,CACX,EAEAkwB,qBAAsB,WAClB,OAAO9wB,KAAKmmO,iBAChB,EAEAn1M,qBAAsB,SAAUpwB,GAE5B,OADAZ,KAAKmmO,kBAAoBvlO,EAClBA,CACX,EAEAy1B,iBAAkB,WACd,OAAOr2B,KAAKomO,aAChB,EAEA7vM,iBAAkB,SAAU31B,GAExB,OADAZ,KAAKomO,cAAgBxlO,EACdA,CACX,EAEAoxB,kBAAmB,WACf,OAAOhyB,KAAKqmO,cAChB,EAEAn0M,kBAAmB,SAAUtxB,GAEzB,OADAZ,KAAKqmO,eAAiBzlO,EACfA,CACX,EAEAuxB,uBAAwB,WACpB,OAAOnyB,KAAKsmO,mBAChB,EAEAj0M,uBAAwB,SAAUzxB,GAE9B,OADAZ,KAAKsmO,oBAAsB1lO,EACpBA,CACX,EAEA0xB,uBAAwB,WACpB,OAAOtyB,KAAKumO,mBAChB,EAEA/zM,uBAAwB,SAAU5xB,GAE9B,OADAZ,KAAKumO,oBAAsB3lO,EACpBA,CACX,EAEAmnO,WAAY,SAAUz9N,GAClB,OAAa,KAATA,EACO,IAAI6rF,EAA0C6oI,kBAAiB,EAAMh/N,KAAKk1Q,eAAgBl1Q,KAAKk1Q,aAAc,MAEjH,IAAI/+K,EAA0C6oI,kBAAiB,EAAO,GAAG,EAAO,KAC3F,EAEAkI,sBAAuB,WACnB,OAAOlnO,KAAKykO,kBAChB,EAEA0C,sBAAuB,SAAUvmO,GAE7B,OADAZ,KAAKykO,mBAAqB7jO,EACnBA,CACX,EAEAwmO,sBAAuB,WACnB,OAAOpnO,KAAK0kO,kBAChB,EAEA2C,sBAAuB,SAAUzmO,GAE7B,OADAZ,KAAK0kO,mBAAqB9jO,EACnBA,CACX,EAEA0mO,mBAAoB,WAChB,OAAOtnO,KAAK2kO,eAChB,EAEA4C,mBAAoB,SAAU3mO,GAE1B,OADAZ,KAAK2kO,gBAAkB/jO,EAChBA,CACX,EAEA4mO,yBAA0B,WACtB,OAAOxnO,KAAK4kO,qBAChB,EAEA6C,yBAA0B,SAAU7mO,GAEhC,OADAZ,KAAK4kO,sBAAwBhkO,EACtBA,CACX,EAEA8mO,kBAAmB,WACf,OAAO1nO,KAAK6kO,cAChB,EAEA8C,kBAAmB,SAAU/mO,GAEzB,OADAZ,KAAK6kO,eAAiBjkO,EACfA,CACX,EAEAgnO,wBAAyB,WACrB,OAAO5nO,KAAK8kO,oBAChB,EAEA+C,wBAAyB,SAAUjnO,GAE/B,OADAZ,KAAK8kO,qBAAuBlkO,EACrBA,CACX,EAEAk4F,8BAA+B,WAC3B,OAAO94F,KAAKmlO,0BAChB,EAEA2C,8BAA+B,SAAUlnO,GAErC,OADAZ,KAAKmlO,2BAA6BvkO,EAC3BA,CACX,GAQJ,SAASs3K,IACLl4K,KAAKiH,GAAK6gH,EAAuC97E,KAAKw/H,UACtDxrK,KAAKm4K,aAAe,EACpBn4K,KAAKo4K,WAAa,EAClBp4K,KAAK62K,aAAe,EACpB72K,KAAKq4K,YAAc,IAAIx2K,MAAM,GAC7B7B,KAAKs4K,UAAY,IAAIz2K,MAAM,GAC3B7B,KAAK82K,YAAc,IAAIj1K,MAAM,EACjC,EAbA,EAAG8oD,EAA4CzS,cAAc,WAAY,CAACokN,EAAU0b,EAAW,KAAM9B,EAA4Cx/G,YAejJ,IAAIwiH,EAAa,CAAC,EAOlB,SAASlS,EAAmBz3P,EAAM21B,GAC9BllC,KAAKm5Q,SAAW,GAChBn5Q,KAAKo5Q,SAAW,GAChBp5Q,KAAKq5Q,cAAgB,EACrBr5Q,KAAKs5Q,YAAc,GACnBt5Q,KAAKu5Q,YAAc,KACnBv5Q,KAAKq5Q,cAAgBn0O,EAAKE,2BAC1BplC,KAAKs5Q,YAAc/pQ,EACnBvP,KAAKu5Q,YAAcr0O,EACnBllC,KAAKm5Q,SAAW7c,EAASob,WAAWxyO,EAAKuxI,uBACzCz2K,KAAKu5Q,YAAY3d,eAAc,EACnC,EAhBA,EAAGjxM,EAA4CzS,cAAc,YAAa,CAACggI,EAAWghG,EAAY,OAkBlG,IAAIM,EAAsB,CACtBC,eAAgB,WACZ,OAAOz5Q,KAAKs5Q,WAChB,EAEA3L,eAAgB,SAAU/sQ,GAEtB,OADAZ,KAAKs5Q,YAAc14Q,EACZA,CACX,EAEA84Q,KAAM,WACF,IAAIC,EAAS35Q,KAAKu5Q,YAAYh0O,gBAAgBvlC,KAAKq5Q,eAC/CO,EAAS,IAAI7sE,UACb7pF,EAAM02J,EAAO5sE,gBAAgBhtM,KAAKm5Q,SAAU,YAC5CztQ,EAAO4/I,EAA0C5oG,KAAKuoC,iBAAiBi4B,EAAK,YAChFljH,KAAKu5Q,YAAYh0O,gBAAgBvlC,KAAKq5Q,eAAiB/c,EAAS34I,SAAS3jH,KAAKu5Q,YAAa7tQ,GAC3F1L,KAAKu5Q,YAAY9Z,yBAAyBz/P,KAAKq5Q,eAC3C3uN,EAAoC9P,GAAGC,YAAY76C,KAAKo5Q,YACxDp5Q,KAAKo5Q,SAAW9c,EAASob,WAAWiC,IAExC35Q,KAAKu5Q,YAAY3d,eAAc,EACnC,EAEAie,KAAM,WACF,IAAID,EAAS,IAAI7sE,UACb7pF,EAAM02J,EAAO5sE,gBAAgBhtM,KAAKo5Q,SAAU,YAC5C1tQ,EAAO4/I,EAA0C5oG,KAAKuoC,iBAAiBi4B,EAAK,YAChFljH,KAAKu5Q,YAAYh0O,gBAAgBvlC,KAAKq5Q,eAAiB/c,EAAS34I,SAAS3jH,KAAKu5Q,YAAa7tQ,GAC3F1L,KAAKu5Q,YAAY9Z,yBAAyBz/P,KAAKq5Q,eAC/Cr5Q,KAAKu5Q,YAAY3d,eAAc,EACnC,EAEAlyP,SAAU,WACN,OAAO1J,KAAKs5Q,WAChB,IAGJ,EAAG3uN,EAA4CzS,cAAc,qBAAsB,CAAC8uN,EAAoBwS,EAAqB,KAAMtD,EAA4Cr/G,WAGxK,EAED;;;+BAIA,CAAEl4J,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCknQ,KAAM,IAAM,EACZqT,SAAU,IAAM,EAChBC,yBAA0B,IAAM,EAChCrT,wBAAyB,IAAM,IAEjC,IAAIh8M,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FqvN,EAA8C,yBAA4C,uBAC1FrsJ,EAAwC,mBAAsC,iBAcvG,SAAS84I,IAAS,CAElBA,EAAKwT,WAAa,IAAIvvN,EAAoC9P,GAAGm7I,MAC7D0wE,EAAKyT,WAAa,IAAIxvN,EAAoC9P,GAAGm7I,MAE7D0wE,EAAK/xI,MAAQ,WACT+xI,EAAKwT,WAAa,IAAIvvN,EAAoC9P,GAAGm7I,MAC7D0wE,EAAKyT,WAAa,IAAIxvN,EAAoC9P,GAAGm7I,KACjE,EAEA0wE,EAAK9hQ,KAAO,SAAUpB,GAClBkjQ,EAAKwT,WAAWt1Q,KAAKpB,GACrBkjQ,EAAKyT,WAAa,IAAIxvN,EAAoC9P,GAAGm7I,KACjE,EAEA0wE,EAAK0T,iBAAmB,WACpB,OAAI1T,EAAKwT,WAAW79K,MAAQ,EACjBqqK,EAAKwT,WAAW/jF,OAAOxsL,WAGvBikH,EAAsCylD,SAASC,iBAAiB,IAAK,kBAEpF,EAEAozF,EAAK2T,qBAAuB,WACxB,OAAI3T,EAAKyT,WAAW99K,MAAQ,EACjBqqK,EAAKyT,WAAWhkF,OAAOxsL,WAGvB,EAEf,EAEA+8P,EAAKmE,WAAa,WACd,OAAQnE,EAAKwT,WAAW79K,MAAQ,CACpC,EAEAqqK,EAAKsE,eAAiB,WAClB,OAAQtE,EAAKyT,WAAW99K,MAAQ,CACpC,EAEAqqK,EAAKoE,SAAW,WACZ,IAAItnQ,EAAOkjQ,EAAKwT,WAAWv1Q,MAC3BnB,EAAKm2Q,OACLjT,EAAKyT,WAAWv1Q,KAAKpB,EACzB,EAEAkjQ,EAAKuE,YAAc,WACf,IAAIznQ,EAAOkjQ,EAAKyT,WAAWx1Q,MAC3BnB,EAAKs2Q,OACLpT,EAAKwT,WAAWt1Q,KAAKpB,EACzB,EAEA,IAAI82Q,EAAQ,CAAC,EAOb,SAASP,IAAa,EALtB,EAAGnvN,EAA4CzS,cAAc,OAAQ,CAACuuN,EAAM4T,EAAO,OAOnF,IAAIC,EAAY,CACZZ,KAAM,WAAc,EAEpBG,KAAM,WAAc,EAEpBnwQ,SAAU,WACN,OAAOikH,EAAsCylD,SAASC,iBAAiB,IAAK,kBAChF,GAQJ,SAASqzF,EAAwBn3P,EAAM21B,GACnCllC,KAAKq5Q,cAAgB,EACrBr5Q,KAAKs5Q,YAAc,GACnBt5Q,KAAKu5Q,YAAc,KACnBv5Q,KAAKu6Q,UAAY,GACjB,IAAK,IAAI/3Q,EAAI,EAAGA,EAAI0iC,EAAKK,gBAAgB5iC,OAAQH,IAC7CxC,KAAKu6Q,UAAU51Q,KAAKugC,EAAKK,gBAAgB/iC,IAE7CxC,KAAKq5Q,cAAgBn0O,EAAKE,2BAC1BplC,KAAKs5Q,YAAc/pQ,EACnBvP,KAAKu5Q,YAAcr0O,EACnBllC,KAAKu5Q,YAAY3d,eAAc,EACnC,EAjBA,EAAGjxM,EAA4CzS,cAAc,WAAY,CAAC4hO,EAAUQ,EAAW,KAAMN,EAA4CnjH,YAmBjJ,IAAI2jH,EAA2B,CAC3Bf,eAAgB,WACZ,OAAOz5Q,KAAKs5Q,WAChB,EAEA3L,eAAgB,SAAU/sQ,GAEtB,OADAZ,KAAKs5Q,YAAc14Q,EACZA,CACX,EAEA84Q,KAAM,WACF15Q,KAAKy6Q,UAAYz6Q,KAAKu5Q,YAAYh0O,gBAClCvlC,KAAKu5Q,YAAY/Z,cAAcx/P,KAAKu6Q,WACpCv6Q,KAAKu5Q,YAAY9Z,yBAAyBz/P,KAAKq5Q,eAC/Cr5Q,KAAKu5Q,YAAY3d,eAAc,EACnC,EAEAie,KAAM,WACF75Q,KAAKu6Q,UAAYv6Q,KAAKu5Q,YAAYh0O,gBAClCvlC,KAAKu5Q,YAAY/Z,cAAcx/P,KAAKy6Q,WACpCz6Q,KAAKu5Q,YAAY9Z,yBAAyBz/P,KAAKq5Q,eAC/Cr5Q,KAAKu5Q,YAAY3d,eAAc,EACnC,EAEAlyP,SAAU,WACN,OAAO1J,KAAKs5Q,WAChB,GAQJ,SAASS,EAAyBxqQ,EAAM21B,GACpCllC,KAAKs5Q,YAAc,GACnBt5Q,KAAKu5Q,YAAc,KACnBv5Q,KAAK06Q,eAAgB,EACrB16Q,KAAK26Q,WAAa,EAClB36Q,KAAK46Q,eAAgB,EACrB56Q,KAAK66Q,WAAa,EAClB76Q,KAAK86Q,WAAa51O,EAAKy4N,YACvB39P,KAAK+6Q,YAAc71O,EAAKy5N,aACxB3+P,KAAKg7Q,iBAAmB91O,EAAK+4N,kBAC7Bj+P,KAAKi7Q,iBAAmB/1O,EAAKorK,kBAC7BtwM,KAAKk7Q,iBAAmBh2O,EAAK45N,kBAC7B9+P,KAAKm7Q,qBAAuBj2O,EAAK85N,sBACjCh/P,KAAKo7Q,aAAel2O,EAAK+3N,cACzBj9P,KAAKq7Q,cAAgBn2O,EAAKkrK,eAC1BpwM,KAAKs7Q,cAAgBp2O,EAAKk6N,eAC1Bp/P,KAAK26Q,WAAaz1O,EAAKw+I,YACvB1jL,KAAKs5Q,YAAc/pQ,EACnBvP,KAAKu5Q,YAAcr0O,EACnBllC,KAAKu5Q,YAAY3d,eAAc,EACnC,EAzBA,EAAGjxM,EAA4CzS,cAAc,0BAA2B,CAACwuN,EAAyB8T,EAA0B,KAAMR,EAA4CnjH,YA2B9L,IAAI0kH,EAA4B,CAC5B9B,eAAgB,WACZ,OAAOz5Q,KAAKs5Q,WAChB,EAEA3L,eAAgB,SAAU/sQ,GAEtB,OADAZ,KAAKs5Q,YAAc14Q,EACZA,CACX,EAEA84Q,KAAM,WACF15Q,KAAKw7Q,WAAax7Q,KAAKu5Q,YAAY5b,YACnC39P,KAAKy7Q,YAAcz7Q,KAAKu5Q,YAAY5a,aACpC3+P,KAAK07Q,iBAAmB17Q,KAAKu5Q,YAAYtb,kBACzCj+P,KAAK27Q,iBAAmB37Q,KAAKu5Q,YAAYjpE,kBACzCtwM,KAAK47Q,iBAAmB57Q,KAAKu5Q,YAAYza,kBACzC9+P,KAAK67Q,qBAAuB77Q,KAAKu5Q,YAAYva,sBAC7Ch/P,KAAK87Q,aAAe97Q,KAAKu5Q,YAAYtc,cACrCj9P,KAAK+7Q,cAAgB/7Q,KAAKu5Q,YAAYnpE,eACtCpwM,KAAKg8Q,cAAgBh8Q,KAAKu5Q,YAAYna,eACtCp/P,KAAK66Q,WAAa76Q,KAAKu5Q,YAAY71F,YACnC1jL,KAAKu5Q,YAAYvd,UAAUh8P,KAAK86Q,YAChC96Q,KAAKu5Q,YAAYtd,WAAWj8P,KAAK+6Q,aACjC/6Q,KAAKu5Q,YAAYrb,gBAAgBl+P,KAAKg7Q,kBACtCh7Q,KAAKu5Q,YAAYhpE,gBAAgBvwM,KAAKi7Q,kBACtCj7Q,KAAKu5Q,YAAYxa,gBAAgB/+P,KAAKk7Q,kBACtCl7Q,KAAKu5Q,YAAYta,oBAAoBj/P,KAAKm7Q,sBAC1Cn7Q,KAAKu5Q,YAAYrd,YAAYl8P,KAAKo7Q,cAClCp7Q,KAAKu5Q,YAAYlpE,aAAarwM,KAAKq7Q,eACnCr7Q,KAAKu5Q,YAAYla,aAAar/P,KAAKs7Q,eACnCt7Q,KAAKu5Q,YAAY51F,UAAU3jL,KAAK26Q,YAChC36Q,KAAKu5Q,YAAY3d,eAAc,EACnC,EAEAie,KAAM,WACF75Q,KAAKu5Q,YAAYvd,UAAUh8P,KAAKw7Q,YAChCx7Q,KAAKu5Q,YAAYtd,WAAWj8P,KAAKy7Q,aACjCz7Q,KAAKu5Q,YAAYrb,gBAAgBl+P,KAAK07Q,kBACtC17Q,KAAKu5Q,YAAYhpE,gBAAgBvwM,KAAK27Q,kBACtC37Q,KAAKu5Q,YAAYxa,gBAAgB/+P,KAAK47Q,kBACtC57Q,KAAKu5Q,YAAYta,oBAAoBj/P,KAAK67Q,sBAC1C77Q,KAAKu5Q,YAAYrd,YAAYl8P,KAAK87Q,cAClC97Q,KAAKu5Q,YAAYlpE,aAAarwM,KAAK+7Q,eACnC/7Q,KAAKu5Q,YAAYla,aAAar/P,KAAKg8Q,eACnCh8Q,KAAKu5Q,YAAY51F,UAAU3jL,KAAK66Q,YAChC76Q,KAAKu5Q,YAAY3d,eAAc,EACnC,EAEAlyP,SAAU,WACN,OAAO1J,KAAKs5Q,WAChB,IAGJ,EAAG3uN,EAA4CzS,cAAc,2BAA4B,CAAC6hO,EAA0BwB,EAA2B,KAAMvB,EAA4CnjH,WAG1L,EAED;;;6BAIA,CAAEl4J,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC2nN,SAAU,IAAM,IAElB,IAAI5yK,EAA8C,wBAA2C,uBACzFq0C,EAA4C,sBAAyC,qBAY9G,SAASu+H,IAELlnN,KAAKuM,GAAK,EACVvM,KAAK0B,GAAK,EACV1B,KAAKpB,GAAK,CACd,CAEAsoN,EAAS/kN,OAAS,SAAUoK,EAAG7K,EAAG9C,GAC9B,IAAI2tF,EAAO,IAAI26H,EAIf,OAHA36H,EAAKhgF,EAAIA,EACTggF,EAAK7qF,EAAIA,EACT6qF,EAAK3tF,EAAIA,EACF2tF,CACX,EAEA,IAAI0vL,EAAY,CACZx1B,UAAW,SAAUy1B,EAASziO,GAC1B,IAAI6vK,EAAK3gI,EAA0C3vC,SAAS02C,KAAKj2C,EAAWz5C,KAAK0B,GAAGqkG,SAAUtsD,EAAWz5C,KAAKpB,GAAGmnG,SAAU,IACvH+uF,EAAKnsG,EAA0C3vC,SAAS02C,KAAKj2C,EAAWz5C,KAAKpB,GAAGmnG,SAAUtsD,EAAWz5C,KAAKuM,GAAGw5F,SAAU,IACvHzH,EAAK3V,EAA0C3vC,SAAS02C,KAAKj2C,EAAWz5C,KAAKuM,GAAGw5F,SAAUtsD,EAAWz5C,KAAK0B,GAAGqkG,SAAU,IACvHwjH,EAAO5gI,EAA0CkX,SAASnQ,KAAK/G,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAK0B,GAAGmkG,GAAIpsD,EAAWz5C,KAAK0B,GAAGokG,IAAKnd,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAKpB,GAAGinG,GAAIpsD,EAAWz5C,KAAKpB,GAAGknG,IAAK,IACjRq2K,EAAOxzL,EAA0CkX,SAASnQ,KAAK/G,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAKpB,GAAGinG,GAAIpsD,EAAWz5C,KAAKpB,GAAGknG,IAAKnd,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAKuM,GAAGs5F,GAAIpsD,EAAWz5C,KAAKuM,GAAGu5F,IAAK,IACjRs2K,EAAOzzL,EAA0CkX,SAASnQ,KAAK/G,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAKuM,GAAGs5F,GAAIpsD,EAAWz5C,KAAKuM,GAAGu5F,IAAKnd,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAK0B,GAAGmkG,GAAIpsD,EAAWz5C,KAAK0B,GAAGokG,IAAK,IACrRwjH,EAAGlhH,YACH0sF,EAAG1sF,YACH9J,EAAG8J,YACH,IAAIi0K,EAAS5iO,EAAW92C,OACpB25Q,EAAS7iO,EAAW92C,OAAS,EAC7B45Q,EAAS9iO,EAAW92C,OAAS,EACjC82C,EAAW90C,KAAKgkF,EAA0Cyc,gBAAgBc,aAAaojH,EAAIC,EAAKx+K,EAAGw+K,EAAKvlN,IACxGy1C,EAAW90C,KAAKgkF,EAA0Cyc,gBAAgBc,aAAa4uF,EAAIqnF,EAAKpxO,EAAGoxO,EAAKn4Q,IACxGy1C,EAAW90C,KAAKgkF,EAA0Cyc,gBAAgBc,aAAa5H,EAAI89K,EAAKrxO,EAAGqxO,EAAKp4Q,IACxGk4Q,EAAQv3Q,KAAKuiN,EAAS/kN,OAAOnC,KAAKuM,EAAGgwQ,EAAQD,IAC7CJ,EAAQv3Q,KAAKuiN,EAAS/kN,OAAOnC,KAAK0B,EAAG26Q,EAAQE,IAC7CL,EAAQv3Q,KAAKuiN,EAAS/kN,OAAOnC,KAAKpB,EAAG09Q,EAAQD,IAC7CH,EAAQv3Q,KAAKuiN,EAAS/kN,OAAOk6Q,EAAQC,EAAQC,GACjD,EAEAn1D,qBAAsB,SAAU80D,EAASziO,GACrC,IAAI6vK,EAAK3gI,EAA0C3vC,SAAS02C,KAAKj2C,EAAWz5C,KAAK0B,GAAGqkG,SAAUtsD,EAAWz5C,KAAKpB,GAAGmnG,SAAU,IACvH+uF,EAAKnsG,EAA0C3vC,SAAS02C,KAAKj2C,EAAWz5C,KAAKpB,GAAGmnG,SAAUtsD,EAAWz5C,KAAKuM,GAAGw5F,SAAU,IACvHzH,EAAK3V,EAA0C3vC,SAAS02C,KAAKj2C,EAAWz5C,KAAKuM,GAAGw5F,SAAUtsD,EAAWz5C,KAAK0B,GAAGqkG,SAAU,IACvHwjH,EAAO5gI,EAA0CkX,SAASnQ,KAAK/G,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAK0B,GAAGmkG,GAAIpsD,EAAWz5C,KAAK0B,GAAGokG,IAAKnd,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAKpB,GAAGinG,GAAIpsD,EAAWz5C,KAAKpB,GAAGknG,IAAK,IACjRq2K,EAAOxzL,EAA0CkX,SAASnQ,KAAK/G,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAKpB,GAAGinG,GAAIpsD,EAAWz5C,KAAKpB,GAAGknG,IAAKnd,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAKuM,GAAGs5F,GAAIpsD,EAAWz5C,KAAKuM,GAAGu5F,IAAK,IACjRs2K,EAAOzzL,EAA0CkX,SAASnQ,KAAK/G,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAKuM,GAAGs5F,GAAIpsD,EAAWz5C,KAAKuM,GAAGu5F,IAAKnd,EAA0CkX,SAAS19F,OAAOs3C,EAAWz5C,KAAK0B,GAAGmkG,GAAIpsD,EAAWz5C,KAAK0B,GAAGokG,IAAK,IACjRu2K,EAAS5iO,EAAW92C,OACpB25Q,EAAS7iO,EAAW92C,OAAS,EAC7B45Q,EAAS9iO,EAAW92C,OAAS,EACjC82C,EAAW90C,KAAKgkF,EAA0Cyc,gBAAgBc,aAAaojH,EAAIC,EAAKx+K,EAAGw+K,EAAKvlN,IACxGy1C,EAAW90C,KAAKgkF,EAA0Cyc,gBAAgBc,aAAa4uF,EAAIqnF,EAAKpxO,EAAGoxO,EAAKn4Q,IACxGy1C,EAAW90C,KAAKgkF,EAA0Cyc,gBAAgBc,aAAa5H,EAAI89K,EAAKrxO,EAAGqxO,EAAKp4Q,IACxGk4Q,EAAQv3Q,KAAKuiN,EAAS/kN,OAAOnC,KAAKuM,EAAGgwQ,EAAQD,IAC7CJ,EAAQv3Q,KAAKuiN,EAAS/kN,OAAOnC,KAAK0B,EAAG26Q,EAAQE,IAC7CL,EAAQv3Q,KAAKuiN,EAAS/kN,OAAOnC,KAAKpB,EAAG09Q,EAAQD,IAC7CH,EAAQv3Q,KAAKuiN,EAAS/kN,OAAOk6Q,EAAQC,EAAQC,GACjD,IAGJ,EAAGjoO,EAA4C4D,cAAc,WAAY,CAACgvK,EAAU+0D,EAAW,MAGxF,EAED;;;+BAIA,CAAEt9Q,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCgwJ,MAAO,IAAM,EACbhhE,aAAc,IAAM,EACpBr2C,aAAc,IAAM,IAEtB,IAAIwS,EAAsC,gBAAmC,eASlG,MAAMoyL,EAAWpyL,EAAoC9P,GAAGmiM,eAAe,UACjEy/B,EAAY,CAAC,EAQnB,SAAStkO,EAAavtC,EAAM8xQ,GAGxB/xN,EAAoC9P,GAAGygM,WAAW1wO,EAAM8xQ,EAAU3/B,EACtE,CAMA,SAASvuJ,EAAa5jF,EAAML,GACxBkyQ,EAAU7xQ,GAAQL,CACtB,CAKA,SAASilJ,IAAU,CAEnBA,EAAM5nJ,MAAQ,SAAU+0Q,EAAU97Q,GAK9B,GAJc,YAAVA,IACAA,EAAQ,YAGE,MAAVA,EACA,OAAO,EAGX,IAAI1B,EAAM0B,EAAMirF,OAAO,EAAG,GAAGt9E,cAAgB3N,EAAMirF,OAAO,GAC1D,OAAO2wL,EAAUE,GAAUx9Q,EAC/B,EAEAqwJ,EAAM6B,MAAQ,SAAUsrH,EAAU97Q,GAC9B,IAAImqC,EAAI,IACJlqC,EAAInB,OAAO8I,KAAKg0Q,EAAUE,IAE9B,IAAK,IAAIl6Q,KAAK3B,EACV,GAAI27Q,EAAUE,GAAU77Q,EAAE2B,KAAO5B,EAAO,CACpCmqC,EAAIlqC,EAAE2B,GACN,KACJ,CAGJ,IAAItD,EAAM6rC,EACN4xO,EAAaz9Q,EAAI2sF,OAAO,EAAG,GAAGE,cAAgB7sF,EAAI2sF,OAAO,GAK7D,MAJmB,aAAf8wL,IACAA,EAAa,WAGVA,CACX,EAEA,MAAMC,EAAS,CAAC,EAEhB1kO,EAAa,QAAS,CAACq3G,EAAOqtH,EAAQ,MAG/B,EAED;;;6BAIA,CAAEj+Q,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC8mJ,QAAS,IAAM,IAEjB,IAAI37F,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBAYlH,SAAS07F,IAAY,CAErBA,EAAQw2H,gBAAkB,SAC1Bx2H,EAAQy2H,YAAc,WACtBz2H,EAAQ02H,eAAiB,WACzB12H,EAAQ22H,kBAAoB,IAE5B32H,EAAQuG,MAAQ,SAAU1tJ,EAAK0tJ,GAC3B,OAAOtnJ,KAAKilF,IAAI,IAAK7/B,EAAoC9P,GAAGyG,SAAW,IAAM/7C,KAAKo8D,IAAIxiE,EAAM,IAAK,EAAI0tJ,GAAU,IACnH,EAEAvG,EAAQ4zD,wBAA0B,SAAUvoG,GACxC,IAAIurK,EAAQ,GACRC,EAAQ,GACR5hO,EAASoP,EAAoC9P,GAAGW,UAAUm2D,GAC9D,MAAOp2D,EAAOE,WAAY,CACtB,IAAI7wC,EAAO2wC,EAAOI,QAClBuhO,GAASC,EACTD,GAAStyQ,EACTuyQ,EAAQ,GACZ,CACA,OAAOD,CACX,EAEA52H,EAAQi+D,oBAAsB,SAAU64D,GACpC,OAAmC,SAA5BA,EAAwC,GACnD,EAEA92H,EAAQ+2H,4BAA8B,SAAUrtO,GAC5C,OAAOA,EAAS,IAAM,QAC1B,EAEAs2G,EAAQg3H,aAAe,SAAUttO,GAC7B,OAASA,EAAS,IAAO,IAAO,MAAS,EAAI,CACjD,EAGAs2G,EAAQ4qG,eAAiB,SAAU3zM,GAC/B,GAAIA,EAAW,GAAK,CAChB,IAAIggO,EAAiB,SAAXhgO,EACV,GAAIggO,EAAK,GAAI,CACT,IAAIz4Q,EAAI6lD,EAAoC9P,GAAGyG,SAAe,IAALi8N,GACzD,OAAO5yN,EAAoC9P,GAAGvU,OAAO,QAASxhC,EAClE,CAEI,OADAy4Q,EAAK5yN,EAAoC9P,GAAGyG,SAASi8N,GAC9C5yN,EAAoC9P,GAAGvU,OAAO,SAAUi3O,EAEvE,CACK,GAAIhgO,EAAW,GAAM,CACtB,IAAImgD,EAAK/yC,EAAoC9P,GAAGyG,SAAqB,GAAX/D,GAAkB,GAC5E,OAAOoN,EAAoC9P,GAAGvU,OAAO,SAAUo3D,EACnE,CACK,GAAIngD,EAAW,WAAmB,CAC/BmgD,EAAK/yC,EAAoC9P,GAAGyG,SAAS/D,GACzD,OAAOoN,EAAoC9P,GAAGvU,OAAO,SAAUo3D,EACnE,CACK,GAAIngD,EAAW,WAAmB,CACnC,IAAIigO,EAAK7yN,EAAoC9P,GAAGyG,SAAsB,GAAX/D,EAAiB,YAAe,GAC3F,OAAOoN,EAAoC9P,GAAGvU,OAAO,SAAUk3O,EACnE,CACK,GAAIjgO,EAAW,YAAwB,CACpCigO,EAAK7yN,EAAoC9P,GAAGyG,SAAU/D,EAAW,YACrE,OAAOoN,EAAoC9P,GAAGvU,OAAO,SAAUk3O,EACnE,CACK,GAAIjgO,EAAW,YAAyB,CACzC,IAAIkgO,EAAM9yN,EAAoC9P,GAAGyG,SAAsB,GAAX/D,EAAiB,aAA2B,GACxG,OAAOoN,EAAoC9P,GAAGvU,OAAO,UAAWm3O,EACpE,CACK,GAAIlgO,EAAW,YAA2B,CACvCkgO,EAAM9yN,EAAoC9P,GAAGyG,SAAU/D,EAAW,aACtE,OAAOoN,EAAoC9P,GAAGvU,OAAO,UAAWm3O,EACpE,CAEQA,EAAM9yN,EAAoC9P,GAAGyG,SAAsB,GAAX/D,EAAiB,aAA8B,GAC3G,OAAOoN,EAAoC9P,GAAGvU,OAAO,UAAWm3O,EAExE,EAEAn3H,EAAQo3H,mBAAqB,SAAUC,GACnC,IAAIttC,EAAQ1lL,EAAoC9P,GAAGp0C,MAC/CkmF,EAAK0jJ,EAAM6K,oBAAsB,GACrCvuJ,EAAK,EACL,IAAIxrC,EAAOw8N,EAAchxL,EAAM,YAC/B,MAAOxrC,EAAM,GACTA,GAAO,GAEX,MAAOA,EAAM,EACTA,GAAO,GAEX,IAAIopC,EAAQ5/B,EAAoC9P,GAAGyG,SAASH,GACxDigD,EAAUz2C,EAAoC9P,GAAGyG,SAAiB,GAANH,EAAqB,GAARopC,GACzE8W,EAAU12C,EAAoC9P,GAAGyG,SAAiB,KAANH,GAAwB,KAARopC,EAA2B,GAAV6W,IACjG,OAAOz2C,EAAoC9P,GAAGvU,OAAO,UAAWikD,EAAO6W,EAASC,EACpF,EAEAilD,EAAQn9D,YAAc,SAAUzhF,EAAM8+I,GAClC,IAAI1zC,EAAS,GACT8qK,EAAe,EACfjiO,EAAU,EACV0gD,EAAQ,EACR11D,EAAQ,EACZ,MAAOgV,EAAUj0C,EAAK9E,OAAQ,CAO1B,GANgC,MAA5B8E,EAAKokF,OAAOnwC,EAAS,IACrBiiO,IAE4B,MAA5Bl2Q,EAAKokF,OAAOnwC,EAAS,IACrBiiO,IAEAjiO,IAAaj0C,EAAK9E,OAAS,EAAI,CAC/B,GAAI8E,EAAKokF,OAAOnwC,EAAS,KAAO6qG,EAG5B,OAFA1zC,EAAOluG,KAAK8C,EAAKokF,OAAOnlD,EAAO01D,IAC/ByW,EAAOluG,KAAK,IACLkuG,EAGPzW,GAER,CACI1gD,IAAaj0C,EAAK9E,OAAS,GAAO8E,EAAKokF,OAAOnwC,EAAS,KAAO6qG,GAA2B,OAAdA,IAAyBo3H,GAAgBl2Q,EAAKokF,OAAOnwC,EAAS,KAAO6qG,GAChJ1zC,EAAOluG,KAAK8C,EAAKokF,OAAOnlD,EAAO01D,IAC/B11D,EAAQgV,EAAU,EAClB0gD,EAAQ,GAERA,IAEJ1gD,GACJ,CACA,OAAOm3D,CACX,EAEAwzC,EAAQl9D,MAAQ,SAAU1hF,EAAMm2Q,GAC5B,IAAI/qK,EAAS,GAETn3D,EAAU,EACV0gD,EAAQ,EACR11D,EAAQ,EACZ,MAAOgV,EAAUj0C,EAAK9E,OACd+4C,IAAaj0C,EAAK9E,OAAS,GAC3By5F,IAEA1gD,IAAaj0C,EAAK9E,OAAS,GAAMi7Q,EAAW3kQ,QAAQxR,EAAKokF,OAAOnwC,EAAS,KAAO,GAChFm3D,EAAOluG,KAAK8C,EAAKokF,OAAOnlD,EAAO01D,IAC/B11D,EAAQgV,EAAU,EAClB0gD,EAAQ,GAERA,IAEJ1gD,IAEJ,OAAOm3D,CACX,EAEAwzC,EAAQmlH,MAAQ,WAAc,EAE9B,IAAIqS,EAAW,CAAC,GAEhB,EAAGlzN,EAA4CzS,cAAc,UAAW,CAACmuG,EAASw3H,EAAU,MAGrF,EAED;;;gCAIA,CAAEl/Q,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCq6F,WAAY,IAAM,EAClBkkL,eAAgB,IAAM,IAExB,IAAIxpO,EAA8C,wBAA2C,uBACzFC,EAAsC,gBAAmC,eACzE8qE,EAAgD,0BAA6C,yBAalH0+J,EAAiB,CACjBC,YAAa,EACbC,UAAW,EACXC,WAAY,EACZC,WAAY,EACZj1Q,MAAO,GAKP40Q,EAAiB,CACjBM,aAAc,EACdC,eAAgB,GASpB,SAASzkL,IAwBL,OAtBA55F,KAAKs+Q,iBAAqC,qBAAXn+Q,OAAyB,SAAWA,OAAOyM,SAAS2xQ,SACnFv+Q,KAAKw+Q,aAA0C,WAA1Bx+Q,KAAKs+Q,iBAG1Bt+Q,KAAKy+Q,eAAmC,qBAAXt+Q,OAAyB,GAAKA,OAAOyM,SAAS8xQ,SAG3E1+Q,KAAK2+Q,iBAAmB,CAAC,EACzB3+Q,KAAK2+Q,iBAAiB,0BAA4BZ,EAAeC,YACjEh+Q,KAAK2+Q,iBAAiB,8BAAgCZ,EAAeC,YACrEh+Q,KAAK2+Q,iBAAiB,8BAAgCZ,EAAeC,YACrEh+Q,KAAK2+Q,iBAAiB,kCAAoCZ,EAAeC,YACzEh+Q,KAAK2+Q,iBAAiB,+BAAiCZ,EAAeC,YACtEh+Q,KAAK2+Q,iBAAiB,mCAAqCZ,EAAeC,YAC1Eh+Q,KAAK2+Q,iBAAiB,gCAAkCZ,EAAeC,YACvEh+Q,KAAK2+Q,iBAAiB,kCAAoCZ,EAAeG,WACzEl+Q,KAAK2+Q,iBAAiB,kCAAoCZ,EAAeG,WACzEl+Q,KAAK2+Q,iBAAiB,qBAAuBZ,EAAeG,WAC5Dl+Q,KAAK2+Q,iBAAiB,uBAAyBZ,EAAeG,WAC9Dl+Q,KAAK2+Q,iBAAiB,aAAeZ,EAAeE,UACpDj+Q,KAAK2+Q,iBAAiB,aAAeZ,EAAeE,UAE5Cj+Q,KAAKy+Q,gBACT,IAAK,yBACL,IAAK,6BACL,IAAK,6BACDz+Q,KAAK4+Q,qBAAuB5+Q,KAAKs+Q,iBAAmB,+BACpDt+Q,KAAK6+Q,sBAAwB7+Q,KAAKs+Q,iBAAmB,2BACrD,MACJ,IAAK,8BACL,IAAK,kCACDt+Q,KAAK4+Q,qBAAuB5+Q,KAAKs+Q,iBAAmB,oCACpDt+Q,KAAK6+Q,sBAAwB7+Q,KAAKs+Q,iBAAmB,gCACrD,MACJ,QACIt+Q,KAAK4+Q,qBAAuB5+Q,KAAKs+Q,iBAAmB,+BACpDt+Q,KAAK6+Q,sBAAwB7+Q,KAAKs+Q,iBAAmB,2BACrD,MAGRt+Q,KAAK8+Q,sBAAwB9+Q,KAAKs+Q,iBAAmB,oCAGrDt+Q,KAAK++Q,yBAA2B,CAAC,EACjC/+Q,KAAK++Q,yBAAyB,0BAA2B,EACzD/+Q,KAAK++Q,yBAAyB,6BAA8B,EAC5D/+Q,KAAK++Q,yBAAyB,8BAA+B,EAC7D/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,0BAA2B,EACzD/+Q,KAAK++Q,yBAAyB,qBAAsB,EACpD/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,qBAAsB,EACpD/+Q,KAAK++Q,yBAAyB,0BAA2B,EACzD/+Q,KAAK++Q,yBAAyB,2BAA4B,EAC1D/+Q,KAAK++Q,yBAAyB,4BAA6B,EAC3D/+Q,KAAK++Q,yBAAyB,8BAA+B,EAC7D/+Q,KAAK++Q,yBAAyB,sCAAuC,EACrE/+Q,KAAK++Q,yBAAyB,sBAAuB,EACrD/+Q,KAAK++Q,yBAAyB,2BAA4B,EAC1D/+Q,KAAK++Q,yBAAyB,4BAA6B,EAC3D/+Q,KAAK++Q,yBAAyB,4BAA6B,EAC3D/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,6BAA8B,EAC5D/+Q,KAAK++Q,yBAAyB,0BAA2B,EACzD/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,6BAA8B,EAC5D/+Q,KAAK++Q,yBAAyB,wBAAyB,EACvD/+Q,KAAK++Q,yBAAyB,4BAA6B,EAC3D/+Q,KAAK++Q,yBAAyB,4BAA6B,EAC3D/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,wBAAyB,EACvD/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,sBAAuB,EACrD/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,4BAA6B,EAC3D/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,6BAA8B,EAC5D/+Q,KAAK++Q,yBAAyB,8BAA+B,EAC7D/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,2BAA4B,EAC1D/+Q,KAAK++Q,yBAAyB,8BAA+B,EAC7D/+Q,KAAK++Q,yBAAyB,0BAA2B,EACzD/+Q,KAAK++Q,yBAAyB,6BAA8B,EAC5D/+Q,KAAK++Q,yBAAyB,8BAA+B,EAC7D/+Q,KAAK++Q,yBAAyB,2BAA4B,EAC1D/+Q,KAAK++Q,yBAAyB,2BAA4B,EAC1D/+Q,KAAK++Q,yBAAyB,4BAA6B,EAC3D/+Q,KAAK++Q,yBAAyB,4BAA6B,EAC3D/+Q,KAAK++Q,yBAAyB,2BAA4B,EAC1D/+Q,KAAK++Q,yBAAyB,uBAAwB,EACtD/+Q,KAAK++Q,yBAAyB,wBAAyB,EACvD/+Q,KAAK++Q,yBAAyB,4BAA6B,EAC3D/+Q,KAAK++Q,yBAAyB,8BAA+B,EAC7D/+Q,KAAK++Q,yBAAyB,0BAA2B,EACzD/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,2BAA4B,EAC1D/+Q,KAAK++Q,yBAAyB,sBAAuB,EACrD/+Q,KAAK++Q,yBAAyB,yBAA0B,EACxD/+Q,KAAK++Q,yBAAyB,0BAA2B,CAC7D,EAhHA,EAAGzqO,EAA4C4D,cAAc,iBAAkB4lO,IAC/E,EAAGxpO,EAA4Ci6C,cAAc,iBAAkBuvL,GAiH/E,IAAIkB,EAAc,CACdC,qBAAsB,SAAUC,GAC5Bl/Q,KAAK8+Q,sBAAwBI,CACjC,EAEAn8J,QAAS,SAAUr4G,EAAKy0Q,GAKpB,IACIC,EACAC,EAkDAC,EACAC,EArDA3/H,EAAKl1I,EAAI6D,cAIb,GAAIgmC,EAAoCqG,GAAG3lC,WAAW2qI,EAAI,WACtDw/H,EAAU,QACVC,EAAkB30Q,EAAI6+E,UAAU,QAC7B,GAAIh1C,EAAoCqG,GAAG3lC,WAAW2qI,EAAI,YAC7Dw/H,EAAU,SACVC,EAAkB30Q,EAAI6+E,UAAU,QAC7B,GAAIh1C,EAAoCqG,GAAG3lC,WAAW2qI,EAAI,MAC7Dw/H,EAAU,GACVC,EAAkB30Q,EAAI6+E,UAAU,OAC7B,IAAIh1C,EAAoCqG,GAAG3lC,WAAW2qI,EAAI,SAK7D,OAAOl1I,EAEP,OAAQy0Q,GACJ,KAAKrB,EAAeM,aACpB,QAQIgB,EAAU,GACVC,EAAkB30Q,EAClB,MAEJ,KAAKozQ,EAAeO,eAMhB,OADA3zQ,EAAM,IAAKmC,IAAInC,EAAKvK,OAAOyM,SAASF,MAAOhD,WACpC1J,KAAK+iH,QAAQr4G,EAAK,GAErC,CAMA,GAAI20G,EAA8C9iF,iBAC9C,OAAO7xB,EAKX,IAAI80Q,EAAcH,EAAgBpmQ,QAAQ,KAEtCumQ,EAAc,GACdF,EAASD,EACTE,EAAO,MAEPD,EAASD,EAAgB91L,UAAU,EAAGi2L,GACtCD,EAAOF,EAAgB91L,UAAUi2L,IAGrC,IAAIC,EAAWH,EAAO/wQ,cAClBmxQ,EAASH,EAAKhxQ,cAAc46E,MAAM,KAAK,GAEtC50C,EAAoCqG,GAAGqgD,UAAUj7F,KAAK2+Q,iBAAkBc,KAIrElrO,EAAoCqG,GAAG3lC,WAAWwqQ,EAAU,eAAiBlrO,EAAoCqG,GAAG3lC,WAAWwqQ,EAAU,cACzIz/Q,KAAK2+Q,iBAAiBc,GAAY1B,EAAeE,UAEjDj+Q,KAAK2+Q,iBAAiBc,GAAY1B,EAAeI,YAIzD,IAAI/9O,EAAOpgC,KAAK2+Q,iBAAiBc,GAEjC,OAAQr/O,GACJ,KAAK29O,EAAeE,UAChB,OAAOvzQ,EAEX,KAAKqzQ,EAAeG,WACpB,KAAKH,EAAeI,WACpB,QACI,GAAIn+Q,KAAKw+Q,cAA4B,WAAZY,EAAsB,CAiB3C,IAAIO,EAAiBL,EAErB,GAAI/qO,EAAoCqG,GAAG6vI,SAAS60F,EAAQ,OACxDK,EAAiBL,EAAO/1L,UAAU,EAAG+1L,EAAO38Q,OAAS,QAClD,GAAI28Q,EAAOrmQ,QAAQ,MAAQ,EAC9B,OAAOvO,EAGX,MAAO,WAAai1Q,EAAiBJ,CACzC,CACA,OAAO70Q,EAEX,KAAKqzQ,EAAe70Q,MAgBhB,OAfKk2Q,IAID10Q,EAAM,UAAYA,GAUtBA,EAAM6pC,EAAoCqG,GAAGq+C,cAAc1kD,EAAoCqG,GAAGq+C,cAAc2mL,mBAAmBl1Q,GAAM,MAAO,KAAM,MAAO,KACtJ1K,KAAK6+Q,sBAAwB,mCAAqCn0Q,EAE7E,KAAKqzQ,EAAeC,YAIhB,IAAI6B,GAAY,EAYhB,OAVItrO,EAAoCqG,GAAG3lC,WAAWyqQ,EAAQ,WAEnDnrO,EAAoCqG,GAAGqgD,UAAUj7F,KAAK++Q,yBAA0BW,IAEhFnrO,EAAoCqG,GAAG3lC,WAAWyqQ,EAAQ,cAE1DnrO,EAAoCqG,GAAG3lC,WAAWyqQ,EAAQ,sBALjEG,GAAY,GASZA,EACO7/Q,KAAK4+Q,qBAAuBW,EAGhCv/Q,KAAK6+Q,sBAAwBU,EAEhD,EAOAp5I,cAAe,SAAUz7H,GAErB,GAAI20G,EAA8C9iF,iBAC9C,OAAO,KAKX,IACI8iP,EAYAI,EAbA7/H,EAAKl1I,EAAI6D,cAIT8wQ,EADA9qO,EAAoCqG,GAAG3lC,WAAW2qI,EAAI,WACpCl1I,EAAI6+E,UAAU,GACzBh1C,EAAoCqG,GAAG3lC,WAAW2qI,EAAI,YAC3Cl1I,EAAI6+E,UAAU,GACzBh1C,EAAoCqG,GAAG3lC,WAAW2qI,EAAI,MAC3Cl1I,EAAI6+E,UAAU,GAEd7+E,EAItB,IAAI80Q,EAAcH,EAAgBpmQ,QAAQ,KAGtCwmQ,EADAD,EAAc,EACHH,EAEAA,EAAgB91L,UAAU,EAAGi2L,GAAajxQ,cAKpDgmC,EAAoCqG,GAAGqgD,UAAUj7F,KAAK2+Q,iBAAkBc,KACrElrO,EAAoCqG,GAAG3lC,WAAWwqQ,EAAU,eAAiBlrO,EAAoCqG,GAAG3lC,WAAWwqQ,EAAU,cACzIz/Q,KAAK2+Q,iBAAiBc,GAAY1B,EAAeE,UAGjDj+Q,KAAK2+Q,iBAAiBc,GAAY1B,EAAeI,YAIzD,IAAI/9O,EAAOpgC,KAAK2+Q,iBAAiBc,GACjC,OAAIr/O,IAAS29O,EAAeC,aAAe59O,IAAS29O,EAAeG,YAAc99O,IAAS29O,EAAeE,UAC9F,MAIXj+Q,KAAK2+Q,iBAAiBc,GAAY1B,EAAe70Q,MAC1ClJ,KAAK+iH,QAAQr4G,EAAK,GAC7B,EAEAyvF,eAAgB,SAAU2lL,GACtB,OAAOvrO,EAAoCqG,GAAGvU,OAAO,UAAWrmC,KAAK8+Q,sBAAuBgB,EAChG,EAEAhtG,eAAgB,SAAUgtG,GACtB,OAAOvrO,EAAoCqG,GAAGvU,OAAO,UAAWrmC,KAAK6+Q,sBAAuBiB,EAChG,EAEAjmL,cAAe,SAAUimL,GACrB,OAAOvrO,EAAoCqG,GAAGvU,OAAO,UAAWrmC,KAAK4+Q,qBAAsBkB,EAC/F,IAGJ,EAAGxrO,EAA4C4D,cAAc,aAAc,CAAC0hD,EAAYolL,EAAa,OAErGplL,EAAW18D,UAAY,IAAI08D,CAGpB,EAED;;;yBAIA,CAAEj7F,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCigL,OAAQ,IAAM,EACd+L,QAAS,IAAM,EACfw0F,aAAc,IAAM,EACpBt4H,aAAc,IAAM,EACpBz7G,KAAM,IAAM,EACZg0O,KAAM,IAAM,EACZ5sG,SAAU,IAAM,EAChBloD,MAAO,IAAM,EACb2lJ,kBAAmB,IAAM,EACzBoP,iBAAkB,IAAM,EACxBtP,YAAa,IAAM,EACnBhkJ,UAAW,IAAM,EACjB45I,WAAY,IAAM,EAClB7jN,KAAM,IAA2Bq6C,EAA8C,KAC/EulJ,WAAY,IAAM,IAEpB,IAAI49B,EAAoC,aAAgC,+CACpE5rO,EAA8C,wBAA2C,uBACzFC,EAAsC,gBAAmC,eACzEwoD,EAA4C,sBAAyC,qBACrF61B,EAAyC,mBAAsC,kBAC/ElL,EAA4C,sBAAyC,qBAiB9G,SAASiF,IACL3sH,KAAK+qC,EAAI,EACT/qC,KAAKgE,EAAI,EACThE,KAAKmmC,MAAQ,EACbnmC,KAAKomC,OAAS,CAClB,CAEAumF,EAAUxqH,OAAS,SAAU4oC,EAAG/mC,EAAGmiC,EAAOC,GACtC,IAAImmD,EAAO,IAAIogC,EAKf,OAJApgC,EAAKxhD,EAAIA,EACTwhD,EAAKvoF,EAAIA,EACTuoF,EAAKpmD,MAAQA,EACbomD,EAAKnmD,OAASA,EACPmmD,CACX,EAEA,IAAI4zL,EAAa,CACb3zC,SAAU,WACN,OAAOxsO,KAAK+qC,CAChB,EAEA0hM,UAAW,WACP,OAAOzsO,KAAK+qC,EAAI/qC,KAAKmmC,KACzB,EAEAumM,QAAS,WACL,OAAO1sO,KAAKgE,CAChB,EAEA2oO,WAAY,WACR,OAAO3sO,KAAKgE,EAAIhE,KAAKomC,MACzB,EAEAsrM,SAAU,SAAU5zI,GAChB,OAAQ99F,KAAKogR,SAAStiL,EAAM/yD,EAAG/qC,KAAK+qC,EAAG/qC,KAAK+qC,EAAI/qC,KAAKmmC,QAAUnmC,KAAKogR,SAAStiL,EAAM95F,EAAGhE,KAAKgE,EAAGhE,KAAKgE,EAAIhE,KAAKomC,OAChH,EAEAg6O,SAAU,SAAU39Q,EAAG49Q,EAAIC,GACvB,OAAID,EAAKC,IACI79Q,EAAI49Q,MAAS59Q,EAAI69Q,KAGjB79Q,EAAI49Q,MAAS59Q,EAAI69Q,EAElC,EAEAr3L,KAAM,WACF,IAAIsD,EAAO,IAAIogC,EAKf,OAJApgC,EAAKxhD,EAAI/qC,KAAK+qC,EACdwhD,EAAKvoF,EAAIhE,KAAKgE,EACduoF,EAAKpmD,MAAQnmC,KAAKmmC,MAClBomD,EAAKnmD,OAASpmC,KAAKomC,OACZmmD,CACX,GAQJ,SAASvgD,IACLhsC,KAAKugR,MAAQv0O,EAAK7pC,QACtB,EAPA,EAAGmyC,EAA4C4D,cAAc,YAAa,CAACy0E,EAAWwzJ,EAAY,OASlGn0O,EAAKw/H,QAAU,WACX,OAAO,IAAIx/H,CACf,EAEAA,EAAKuD,WAAa,SAAUtoC,GACxB,IAAIslF,EAAO,IAAIvgD,EAEf,OADAugD,EAAKg0L,MAAQhsO,EAAoCqG,GAAG+gD,KAAK10F,GAClDslF,CACX,EAEAvgD,EAAK7pC,OAAS,WACV,MAAO,uCAAuCyL,QAAQ,SAAS,SAAUhP,GAAK,IAAI6B,EAAoB,GAAhB6E,KAAKk7Q,SAAgB,EAAGh8Q,EAAS,KAAL5F,EAAW6B,EAAS,EAAJA,EAAU,EAAM,OAAO+D,EAAEkF,SAAS,GAAK,GAC7K,EAMAsiC,EAAKC,WAAa,SAAUrrC,GACxB,IAAI+xO,EAAMutC,EAAkC,WAAWt/Q,EAAO,wCAC9D,OAAOorC,EAAKuD,WAAWojM,EAC3B,EAEA,IAAI8tC,EAAQ,CACR/2Q,SAAU,WACN,OAAO1J,KAAKugR,KAChB,GAUJ,SAASr1J,IAAU,CA+BnB,SAASkoD,IAAa,EAtCtB,EAAG9+H,EAA4C4D,cAAc,OAAQ,CAAClM,EAAMy0O,EAAO,OASnFv1J,EAAM5e,QAAU,SAAUod,EAAQxpH,GAC9B,IAAI6qC,EAAI,EACJ21O,EAAUh3J,EACVi3J,EAAKzgR,EACT,GAA4B,MAAxBwgR,EAAQE,aACR,GACI71O,GAAK21O,EAAQG,iBAC4B,OAAnCH,EAAUA,EAAQE,eAEhC,OAAOD,EAAGz2J,MAAQn/E,CACtB,EAEAmgF,EAAM3e,QAAU,SAAUmd,EAAQxpH,GAC9B,IAAI8D,EAAI,EACJ08Q,EAAUh3J,EACVi3J,EAAKzgR,EACT,GAA4B,MAAxBwgR,EAAQE,aACR,GACI58Q,GAAK08Q,EAAQI,gBAC4B,OAAnCJ,EAAUA,EAAQE,eAEhC,OAAOD,EAAGx2J,MAAQnmH,CACtB,GAEA,EAAGswC,EAA4C4D,cAAc,QAAS,CAACgzE,EAAO,KAAM,OAOpFkoD,EAASC,iBAAmB,SAAUpsK,EAAIsI,GACtC,OAAOA,CACX,EAEA,IAAIwxQ,EAAY,CAAC,EAOjB,SAASvhG,IAAW,EALpB,EAAGlrI,EAA4C4D,cAAc,WAAY,CAACk7H,EAAU2tG,EAAW,OAO/FvhG,EAAOj4E,aAAe,WAClB,OAAO,IAAImgB,EAA0C7nB,QACzD,EAEA2/E,EAAOuZ,YAAc,WACjB,OAAOz3L,SAASwC,KAAKk9Q,MAAM10G,MAC/B,EAEAkT,EAAO8L,YAAc,SAAU1qL,GAE3B,OADAU,SAASwC,KAAKk9Q,MAAM10G,OAAS1rK,EACtBA,CACX,EAEA,IAAIqgR,EAAU,CAAC,EAOf,SAAS11F,IAAY,EALrB,EAAGj3I,EAA4C4D,cAAc,SAAU,CAACsnI,EAAQyhG,EAAS,OAOzF11F,EAAQ21F,UAAY,WAChB,MAAO,SACX,EAEA31F,EAAQ41F,UAAY,WAChB,MAAO,WACX,EAEA51F,EAAQi9E,aAAe,WACnB,MAAO,SACX,EAEAj9E,EAAQ61F,SAAW,WACf,MAAO,MACX,EAEA71F,EAAQ81F,SAAW,WACf,MAAO,MACX,EAEA91F,EAAQ+1F,WAAa,WACjB,MAAO,YACX,EAEA/1F,EAAQg2F,UAAY,WAChB,MAAO,MACX,EAEAh2F,EAAQi2F,OAAS,WACb,MAAO,aACX,EAEAj2F,EAAQG,YAAc,WAClB,MAAO,MACX,EAEAH,EAAQsiF,aAAe,WACnB,MAAO,aACX,EAEAtiF,EAAQC,WAAa,WACjB,MAAO,WACX,EAEAD,EAAQqiF,aAAe,WACnB,MAAO,aACX,EAEAriF,EAAQE,WAAa,WACjB,MAAO,WACX,EAEAF,EAAQk2F,YAAc,WAClB,MAAO,MACX,EAEAl2F,EAAQm2F,WAAa,WACjB,MAAO,YACX,EAEAn2F,EAAQ68E,eAAiB,WACrB,MAAO,MACX,EAEA,IAAIuZ,EAAW,CAAC,GAEhB,EAAGrtO,EAA4C4D,cAAc,UAAW,CAACqzI,EAASo2F,EAAU,OAK5F,IAAI3B,EAAO,CACP4B,WAAY,MACZ1uJ,KAAM,EACN2uJ,QAAS,EACTC,QAAS,EACTxtC,OAAQ,EACRytC,QAAS,EACTC,SAAU,EACVC,SAAU,EACVt1D,KAAM,EACNu1D,IAAK,EACLC,SAAU,GACVC,SAAU,GACVC,UAAW,GACXC,MAAO,GACPr3F,SAAU,GACVs3F,WAAY,GACZC,KAAM,GACNr0B,MAAO,GACPs0B,QAAS,GACTC,SAAU,GACVC,SAAU,GACVC,YAAa,GACbC,WAAY,GACZC,UAAW,GACXC,UAAW,GACXC,UAAW,GACXC,UAAW,GACXC,OAAQ,GACRC,WAAY,GACZC,cAAe,GACfC,UAAW,GACXC,UAAW,GACXC,cAAe,GACfpmJ,MAAO,GACPqmJ,MAAO,GACPC,OAAQ,GACRjgR,KAAM,GACNkgR,SAAU,GACVr6L,IAAK,GACLs6L,KAAM,GACN/zL,KAAM,GACNz2C,GAAI,GACJ22C,MAAO,GACPkqF,KAAM,GACN4pG,OAAQ,GACRC,MAAO,GACPC,QAAS,GACTC,SAAU,GACVC,YAAa,GACbC,UAAW,GACXC,UAAW,GACXC,KAAM,GACNC,GAAI,GACJt6K,GAAI,GACJE,GAAI,GACJq6K,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJp4Q,EAAG,GACH7K,EAAG,GACH9C,EAAG,GACHW,EAAG,GACHW,EAAG,GACH6D,EAAG,GACHjE,EAAG,GACH4wG,EAAG,GACHluG,EAAG,GACHk3C,EAAG,GACHuM,EAAG,GACH1E,EAAG,GACH18C,EAAG,GACHpC,EAAG,GACHhD,EAAG,GACHoB,EAAG,GACHw+D,EAAG,GACH5+D,EAAG,GACH8B,EAAG,GACHD,EAAG,GACHk+D,EAAG,GACHh8D,EAAG,GACHkuD,EAAG,GACH3nB,EAAG,GACH/mC,EAAG,GACHwyC,EAAG,GACHouO,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,MAAO,GACPC,QAAS,GACTC,QAAS,GACTC,QAAS,GACTC,QAAS,GACTC,QAAS,IACTC,QAAS,IACTC,QAAS,IACTC,QAAS,IACTC,QAAS,IACTC,QAAS,IACTp9K,SAAU,IACV1uF,IAAK,IACL+rQ,UAAW,IACX38K,SAAU,IACVoxI,QAAS,IACTwrC,OAAQ,IACRC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,GAAI,IACJC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,QAAS,IACTC,OAAQ,IACRC,UAAW,IACXC,UAAW,IACXC,YAAa,IACbC,YAAa,IACbC,MAAO,IACPC,MAAO,IACPC,YAAa,IACbC,eAAgB,IAChBC,eAAgB,IAChBC,YAAa,IACbC,cAAe,IACfC,iBAAkB,IAClBC,YAAa,IACbC,WAAY,IACZC,WAAY,IACZC,SAAU,IACVC,eAAgB,IAChBC,mBAAoB,IACpBC,UAAW,IACXC,eAAgB,IAChBC,WAAY,IACZC,YAAa,IACbC,mBAAoB,IACpBC,mBAAoB,IACpBC,aAAc,IACdC,KAAM,IACNC,QAAS,IACTC,SAAU,IACVC,SAAU,IACVC,UAAW,IACXC,YAAa,IACbC,KAAM,IACNC,SAAU,IACVC,KAAM,IACNC,gBAAiB,IACjBC,KAAM,IACNC,QAAS,IACTC,KAAM,IACNC,iBAAkB,IAClBC,KAAM,IACNC,UAAW,IACXC,KAAM,IACNC,KAAM,IACNC,aAAc,IACdC,OAAQ,IACRC,WAAY,IACZC,OAAQ,IACRC,KAAM,IACNC,MAAO,IACPC,MAAO,IACPC,SAAU,IACVp8O,KAAM,IACN1R,KAAM,IACN+tP,OAAQ,IACRC,IAAK,IACLC,SAAU,IACVtf,QAAS,MACT16B,MAAO,MACPi6C,QAAS,OACTroO,IAAK,QAQT,SAASgkN,EAAWt/P,GAChBjH,KAAK6qR,SAAU,EACf7qR,KAAK8qR,OAAQ,EACb9qR,KAAK+qR,YAAa,EAClB/qR,KAAKgrR,OAAS,KACdhrR,KAAKirR,KAAM,EACD,MAANhkR,EACAjH,KAAKwsB,OAAOvlB,GAGZjH,KAAKkrR,UAAS,EAEtB,EAjBA,EAAG52O,EAA4C4D,cAAc,OAAQ8nO,GAmBrE,IAAImL,EAAc,CACdC,iBAAkB,WACd,OAAOprR,KAAK6qR,OAChB,EAEAQ,iBAAkB,SAAUzqR,GAKxB,OAJIA,IACAZ,KAAKgrR,OAAS,UAElBhrR,KAAK6qR,QAAUjqR,EACRA,CACX,EAEA0qR,SAAU,WACN,OAAOtrR,KAAK8qR,KAChB,EAEAI,SAAU,SAAUtqR,GAKhB,OAJIA,IACAZ,KAAKgrR,OAAS,QAElBhrR,KAAK8qR,MAAQlqR,EACNA,CACX,EAEA2qR,gBAAiB,WACb,OAAOvrR,KAAK+qR,UAChB,EAEAS,gBAAiB,SAAU5qR,GAKvB,OAJIA,IACAZ,KAAKgrR,OAAS,QAElBhrR,KAAK+qR,WAAanqR,EACXA,CACX,EAEA2rB,OAAQ,WACJ,OAAOvsB,KAAKgrR,MAChB,EAEAx+P,OAAQ,SAAU5rB,GAKd,OAJAZ,KAAK6qR,SAAU,EACf7qR,KAAK8qR,OAAQ,EACb9qR,KAAK+qR,YAAa,EAClB/qR,KAAKgrR,OAASpqR,EACPA,CACX,EAEAwlQ,OAAQ,WACJ,OAAOpmQ,KAAKirR,GAChB,EAEAQ,OAAQ,SAAU7qR,GAEd,OADAZ,KAAKirR,IAAMrqR,EACJA,CACX,GAQJ,SAAS+vQ,IACL3wQ,KAAK2zP,OAAS,CAClB,EAPA,EAAGr/M,EAA4C4D,cAAc,aAAc,CAACquN,EAAY4kB,EAAa,OASrG,IAAIO,EAAe,CACfpsG,WAAY,WACR,OAAO,CACX,GAQJ,SAAS2gG,IACLjgR,KAAK2zP,OAAS,EACd3zP,KAAK4M,SAAW,IAAI86G,EAA0C7nB,SAC9D7/F,KAAK6S,MAAQ,IAAI+/G,EAAuCx6E,KAC5D,EATA,EAAG9D,EAA4C4D,cAAc,cAAe,CAACy4N,EAAa+a,EAAc,OAWxG,IAAIC,EAAoB,CACpBrsG,WAAY,WACR,OAAO,CACX,GAQJ,SAASuxF,IACL7wQ,KAAK2zP,OAAS,EACd3zP,KAAK4M,SAAW,IAAI86G,EAA0C7nB,SAC9D7/F,KAAKwtP,QAAU,IACnB,EATA,EAAGl5M,EAA4C4D,cAAc,mBAAoB,CAAC+nO,EAAkB0L,EAAmB,OAWvH,IAAIC,EAAqB,CACrBtsG,WAAY,WACR,OAAO,CACX,GASJ,SAASgjE,EAAWlgN,EAAUy3E,EAAO9uE,EAAG/mC,EAAGknF,GACvC,GAAkC,IAA9B9oD,EAAS66F,kBAAoC,MAAV/xC,EAAgB,CACnD,IAAI22D,EAAuB,EAAhB,EAASA,KAAe,EAAJ79I,EAAQ+mC,EACvC,OAAO3I,EAAS6wH,iBAAiBvpJ,WAAa,KAAOmwG,EAAMnwG,WAAa,KAAOm4I,EAAKn4I,UACxF,CAEA,OAAO04B,EAAS6wH,iBAAiBvpJ,WAAa,KAAOmwG,EAAMnwG,WAAa,KAAO1F,EAAE0F,WAAa,IAAMqhC,EAAErhC,UAC1G,CAQA,SAAS+9I,IAAiB,EArB1B,EAAGnzG,EAA4C4D,cAAc,oBAAqB,CAAC24N,EAAmB+a,EAAoB,OAuB1HnkI,EAAaokI,YAAc,SAAUtvM,EAAI1W,EAAIhlE,GACzC,IAAI2D,EAAIkjH,EAA0C1uE,SAASsqD,gBAAgBz9B,EAAI0W,GAC3E7pB,EAAIg1D,EAA0C1uE,SAASsqD,gBAAgBziG,EAAG07E,GAC1Ep/B,EAAOuqE,EAA0C1uE,SAASK,MAAMqZ,EAAGluD,GAAG7B,SAAW6B,EAAE7B,SACvF,OAAOw6C,CACX,EAEAsqG,EAAaC,oBAAsB,SAAUO,EAAIC,EAAIC,EAAIC,EAAI3sG,GACzDwsG,EAAG7/C,YACH8/C,EAAG9/C,YACH+/C,EAAG//C,YACHggD,EAAGhgD,YACH3sD,EAAI2sD,YACJ,IAAI0jL,EAASrkI,EAAaokI,YAAY5jI,EAAIC,EAAIzsG,GAC1CswO,EAAStkI,EAAaokI,YAAY1jI,EAAIC,EAAI3sG,GAC1CuwO,EAAQF,EAASC,EACjBE,EAASxkI,EAAaokI,YAAY3jI,EAAIE,EAAI3sG,GAC1CywO,EAAQzkI,EAAaokI,YAAY5jI,EAAIE,EAAI1sG,GACzC0wO,EAASF,EAASC,EACtB,OAAOxkK,EAA0C7nB,SAAS19F,OAAO+pR,EAAQC,EAAQL,EAASE,EAC9F,EAEA,IAAII,EAAgB,CAAC,GAErB,EAAG93O,EAA4C4D,cAAc,eAAgB,CAACuvG,EAAc2kI,EAAe,OAK3G,IAAIrM,EAAe,CACfr7F,GAAI,IAGR,EAAGpwI,EAA4C4D,cAAc,eAAgB6nO,IAC7E,EAAGzrO,EAA4Ci6C,cAAc,eAAgBwxL,EAGtE,EAED;;;4CAIA,CAAEphR,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC88I,aAAc,IAAM,IAEtB,IAAI/nG,EAA8C,yBAA4C,uBAWnH,SAAS+nG,EAAagwI,GAClBrsR,KAAK+lG,SAAW,EAChB/lG,KAAKssR,MAAQ,KACbtsR,KAAKssR,MAAQD,CACjB,CAEAhwI,EAAap1I,GAAK,EAElB,IAAIslR,EAAgB,CAChBhlL,aAAc,WACV,OAAOvnG,KAAK+lG,QAChB,EAEAqoJ,KAAM,SAAUn0M,GACZj6C,KAAK+lG,SAAW9rD,CACpB,EAEAu7I,aAAc,SAAUv7I,GACpBj6C,KAAK+lG,UAAY9rD,CACrB,EAEAuwD,WAAY,WACR,OAAOxqG,KAAKssR,MAAM3pR,MACtB,EAEA6pR,gBAAiB,WACb,OAAOxsR,KAAK+lG,UAAY/lG,KAAKwqG,YACjC,EAEA81D,SAAU,WACN,IAAI58J,EAGJ,OAFAA,EAAS1D,KAAKssR,MAAMtsR,KAAK+lG,UACzB/lG,KAAK+lG,UAAY,EACVriG,CACX,EAEA68J,UAAW,WACP,IAAI78J,EAGJ,OAFAA,EAAS1D,KAAKssR,MAAMtsR,KAAK+lG,UACzB/lG,KAAK+lG,UAAY,EACVriG,CACX,EAEAmuL,UAAW,SAAUz1F,GAEjB,IADA,IAAIolE,EAAM,IAAI3/J,MAAMu6F,GACX55F,EAAI,EAAGA,EAAI45F,EAAO55F,IACvBg/J,EAAIh/J,GAAKxC,KAAKssR,MAAMtsR,KAAK+lG,SAAWvjG,GAGxC,OADAxC,KAAK+lG,UAAY3J,EACVolE,CACX,EAEAirH,iBAAkB,SAAUC,GAExB,IADA,IAAIjlR,EAAO,IAAIg1G,aAAaiwK,GACnBlqR,EAAI,EAAGA,EAAIkqR,EAAclqR,IAC9BiF,EAAKjF,GAAKxC,KAAK2sR,WAAU,GAE7B,OAAOllR,CACX,EAEAmlR,eAAgB,SAAUxwL,GAEtB,IADA,IAAI30F,EAAO,GACFjF,EAAI,EAAGA,EAAI45F,EAAO55F,IACvBiF,GAAQzF,OAAOwI,aAAaxK,KAAKssR,MAAMtsR,KAAK+lG,SAAWvjG,IAG3D,OADAxC,KAAK+lG,UAAY3J,EACV30F,CACX,EAEA4zD,WAAY,WACR,IAAID,EAAM,IAAImqE,WAAW,GACzBnqE,EAAI,GAAKp7D,KAAKssR,MAAMtsR,KAAK+lG,UACzB3qC,EAAI,GAAKp7D,KAAKssR,MAAMtsR,KAAK+lG,SAAW,GACpC3qC,EAAI,GAAKp7D,KAAKssR,MAAMtsR,KAAK+lG,SAAW,GACpC3qC,EAAI,GAAKp7D,KAAKssR,MAAMtsR,KAAK+lG,SAAW,GACpC,IAAIriG,EAAS,IAAI+4G,aAAarhD,EAAIshD,OAAQ,EAAG,GAAG,GAEhD,OADA18G,KAAK+lG,UAAY,EACVriG,CACX,EAEAkuL,WAAY,WACR,IAAIluL,EAAU1D,KAAKssR,MAAMtsR,KAAK+lG,WAAa/lG,KAAKssR,MAAMtsR,KAAK+lG,SAAW,IAAM,IAAM/lG,KAAKssR,MAAMtsR,KAAK+lG,SAAW,IAAM,KAAO/lG,KAAKssR,MAAMtsR,KAAK+lG,SAAW,IAAM,IAE3J,OADA/lG,KAAK+lG,UAAY,EACVriG,CACX,EAEAguL,WAAY,WACR,IAAIhuL,EAAU1D,KAAKssR,MAAMtsR,KAAK+lG,WAAa/lG,KAAKssR,MAAMtsR,KAAK+lG,SAAW,IAAM,GAE5E,OADA/lG,KAAK+lG,UAAY,EACVriG,CACX,EAEAmpR,uBAAwB,WACpB,IAAInpR,GAAW1D,KAAKssR,MAAMtsR,KAAK+lG,WAAa,GAAK/lG,KAAKssR,MAAMtsR,KAAK+lG,SAAW,GAE5E,OADA/lG,KAAK+lG,UAAY,EACVriG,CACX,EAEAipR,UAAW,SAAUG,GACjB,IAAIppR,EAAS,EAAiB1D,KAAK6sR,yBAA2B7sR,KAAK0xL,aACnE,OAAgB,MAAThuL,IACQA,EAAS,EAAK,OAEtBA,CACX,EAEAqpR,UAAW,WACP,IAAIrpR,EAAS1D,KAAK4xL,aAClB,OAAgB,WAATluL,IACQA,EAAS,EAAK,YAEtBA,CACX,EAEAm6O,UAAW,WAEP,OADA79O,KAAK+lG,UAAY,EACVs2C,EAAap1I,IACxB,EAEA+/B,MAAO,WAAc,IAGzB,EAAGsN,EAA4C4D,cAAc,eAAgB,CAACmkG,EAAckwI,EAAe,MAGpG,EAED;;;qCAIA,CAAE5tR,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC0hK,OAAQ,IAAM,IAEhB,IAAI3sH,EAA8C,yBAA4C,uBAC1F04O,EAAkD,6BAAgD,2BAClGC,EAA4D,uCAA0D,qCACtHC,EAAoD,+BAAkD,6BAc/H,SAASjsH,IACLjhK,KAAKmmC,MAAQ,EACbnmC,KAAKomC,OAAS,CAClB,CAEA66H,EAAO9+J,OAAS,SAAUgkC,EAAOC,GAC7BA,EAAS8mP,EAAkD7zJ,QAAQqM,cAAct/F,GACjFD,EAAQ+mP,EAAkD7zJ,QAAQqM,cAAcv/F,GAChF,IAAIg7H,EAAM,IAAIF,EAId,OAHAE,EAAI/6H,OAASA,EACb+6H,EAAIh7H,MAAQA,EACZg7H,EAAIgsH,QAAU,IAAI5nJ,WAAWp/F,EAAQC,EAAS,GACvC+6H,CACX,EAEA,IAAIisH,EAAU,CACV9rH,SAAU,SAAUv2H,EAAG/mC,EAAGvD,EAAGX,EAAG4B,EAAG6K,GAC/B,IAAIw5B,EAA+B,GAAtBgF,EAAI/mC,EAAIhE,KAAKmmC,OAC1BnmC,KAAKmtR,QAAQpnP,KAAWtlC,EACxBT,KAAKmtR,QAAQpnP,KAAWjmC,EACxBE,KAAKmtR,QAAQpnP,KAAWrkC,EACxB1B,KAAKmtR,QAAQpnP,KAAWx5B,CAC5B,EAEA+xO,WAAY,WACR,IAAI94G,EAAMwnJ,EAAgD7wK,eAAegpB,gBAQzE,OAPA6nJ,EAAgD7wK,eAAe+iB,YAAY+tJ,EAA0D3wK,MAAM6iB,WAAYqG,GACvJwnJ,EAAgD7wK,eAAekqB,cAAc4mJ,EAA0D3wK,MAAM6iB,WAAY8tJ,EAA0D3wK,MAAMgqB,eAAgB2mJ,EAA0D3wK,MAAMiqB,eACzSymJ,EAAgD7wK,eAAekqB,cAAc4mJ,EAA0D3wK,MAAM6iB,WAAY8tJ,EAA0D3wK,MAAMkqB,eAAgBymJ,EAA0D3wK,MAAMiqB,eACzSymJ,EAAgD7wK,eAAeipB,WAAW6nJ,EAA0D3wK,MAAM6iB,WAAY,EAAG8tJ,EAA0D3wK,MAAM+oB,KAAMrlI,KAAKmmC,MAAOnmC,KAAKomC,OAAQ,EAAG6mP,EAA0D3wK,MAAM+oB,KAAM4nJ,EAA0D3wK,MAAMgpB,cAAetlI,KAAKmtR,SACrZH,EAAgD7wK,eAAekqB,cAAc4mJ,EAA0D3wK,MAAM6iB,WAAY8tJ,EAA0D3wK,MAAMmqB,mBAAoBwmJ,EAA0D3wK,MAAMoqB,uBAC7SsmJ,EAAgD7wK,eAAewqB,eAAesmJ,EAA0D3wK,MAAM6iB,YAC9I6tJ,EAAgD7wK,eAAe+iB,YAAY+tJ,EAA0D3wK,MAAM6iB,WAAY,MAChJqG,CACX,IAGJ,EAAGlxF,EAA4C4D,cAAc,SAAU,CAAC+oH,EAAQmsH,EAAS,MAGlF,EAED;;;2CAIA,CAAEzuR,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCs/K,YAAa,IAAM,IAErB,IAAIvqI,EAA8C,yBAA4C,uBAC1F4qL,EAAyC,oBAAuC,kBAChF7/G,EAAgD,2BAA8C,yBAavH,SAASw/D,IACL7+K,KAAK8+K,SAAW,KAChB9+K,KAAK6S,MAAQqsN,EAAuCrnL,OAAOC,WAC/D,CAEA,IAAIu1O,EAAe,CACfC,aAAc,SAAUptR,GAAK,EAE7Bk+K,KAAM,SAAUl+K,GACZm/G,EAA8C7b,sBAAsB04H,gBAAgBl8N,KAAME,EAC9F,EAEAqtR,kBAAmB,SAAUrtR,GACzB,IAAIi/G,EAAQ79G,SAASksR,eAAe,YAChC9jK,EAASpoH,SAASkL,cAAc,UACpCk9G,EAAOvjF,MAAQg5E,EAAMh5E,MACrBujF,EAAOtjF,OAAS+4E,EAAM/4E,OACtB,IAAIzyB,EAAM+1G,EAAO4C,WAAW,MAC5B34G,EAAIi5G,UAAUzN,EAAO,EAAG,GACxB,IAAIsuK,EAAS95Q,EAAI+5Q,aAAaxtR,EAAEosG,QAASpsG,EAAEqsG,QAAS,EAAG,GAAG9kG,KAE1D,OADAzH,KAAK6S,MAAQqsN,EAAuC9mL,MAAMq4C,SAASg9L,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IACpGztR,KAAK6S,KAChB,EAEA67P,UAAW,SAAUxuQ,GACjBF,KAAK8+K,SAAS9+K,KAAK6S,MACvB,IAGJ,EAAGyhC,EAA4C4D,cAAc,cAAe,CAAC2mI,EAAawuG,EAAc,MAGjG,EAED;;;iDAIA,CAAE1uR,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCy5K,iBAAkB,IAAM,EACxB20G,MAAO,IAAM,EACbz0G,kBAAmB,IAAM,EACzBa,mBAAoB,IAAM,IAE5B,IAAIzlI,EAA8C,yBAA4C,uBAC1FC,EAAsC,iBAAoC,eAC1EC,EAA4C,uBAA0C,qBAa/G,SAASwkI,IACLh5K,KAAK4xH,MAAQ,EACjB,CAEA,IAAIg8J,EAAoB,CACpBlqB,SAAU,WAAc,EAExBmqB,cAAe,SAAU3tR,GACrB,IAAIsiR,EAAOlhR,SAASksR,eAAe,eACnChL,EAAKxB,MAAMnxQ,QAAU,OACrB1P,OAAO2tR,oBAAoB,QAASv5O,EAAoCqG,GAAGxlC,KAAK,gBAAiBpV,OAAO,GACxG,IAAIkN,EAAQ5L,SAASksR,eAAe,cACpC,MAA2B,MAApBtgR,EAAM6gR,WACT7gR,EAAMy0O,YAAYz0O,EAAM6gR,YAE5B7gR,EAAM8zQ,MAAMnxQ,QAAU,MAC1B,EAEAm+Q,iBAAkB,SAAU9tR,GACxB,IAAIygR,EAAKzgR,EAAE+tR,cACXtN,EAAGuN,QAAQziR,MAAMk1Q,EAAGuN,QAAS,IAAI35O,EAAoCqG,GAAG8jI,UAC5E,EAEAlD,MAAO,SAAUz1E,GACb,IAAIy8K,EAAOlhR,SAASksR,eAAe,eACnC,MAA0B,MAAnBhL,EAAKuL,WACRvL,EAAK7gC,YAAY6gC,EAAKuL,YAE1BvL,EAAK2L,UAAY,cACjB3L,EAAKxB,MAAMnxQ,QAAU,QACrB2yQ,EAAKxB,MAAMpxL,KAAOmW,EAASh7D,EAAErhC,WAAa,KAC1C84Q,EAAKxB,MAAMp7K,IAAMG,EAAS/hG,EAAE0F,WAAa,KACzCvJ,OAAO0pH,iBAAiB,QAASt1E,EAAoCqG,GAAGxlC,KAAK,gBAAiBpV,OAAO,GACrG,IAAIs7C,EAAS/G,EAAoCqG,GAAGW,UAAUv7C,KAAK4xH,OACnE,MAAOt2E,EAAOE,WAAY,CACtB,IAAIt0C,EAAOo0C,EAAOI,QAClB,GAAIx0C,EAAK6lJ,QAAS,CACd,IAAIqhI,EAAK9sR,SAASkL,cAAc,OAC5BtF,EAAK41K,cAAcn6K,OAAS,EAC5ByrR,EAAGD,UAAY,0BAGXjnR,EAAKq0K,QACL6yG,EAAGD,UAAY,8BAGfC,EAAGD,UAAY,kBAGvBC,EAAGhhR,UAAYlG,EAAKyD,KACpB,IAAI0jR,EAAKD,EACTC,EAAGH,QAAUhnR,EACbknR,EAAGvkK,iBAAiB,YAAat1E,EAAoCqG,GAAGxlC,KAAK,eAAgBpV,OAAO,GAClF,MAAdkH,EAAKuE,OACL2iR,EAAGvkK,iBAAiB,QAASt1E,EAAoCqG,GAAGxlC,KAAK,mBAAoBpV,OAAO,GAExGwiR,EAAK5uB,YAAYw6B,EACrB,CACJ,CACJ,EAEAE,aAAc,SAAUpuR,GACpB,IAAIygR,EAAKzgR,EAAE+tR,cACP7iM,EAAQu1L,EAAGuN,QACX1L,EAAOlhR,SAASksR,eAAe,cACnC,MAA0B,MAAnBhL,EAAKuL,WACRvL,EAAK7gC,YAAY6gC,EAAKuL,YAG1B,GADAvL,EAAKxB,MAAMnxQ,QAAU,OAChBu7E,EAAM0xF,cAAcn6K,OAAzB,CAGA,IAAIojG,EAAW,IAAIvxD,EAA0CqrD,SAC7DkG,EAASh7D,EAAI7qC,EAAE+tR,cAAcM,WAAW1N,WAAa3gR,EAAE+tR,cAAcM,WAAW3jG,YAChF7kF,EAAS/hG,EAAI9D,EAAE+tR,cAAcM,WAAWzN,UAAY5gR,EAAE+tR,cAAcnN,UACpE0B,EAAK2L,UAAY,cACjB3L,EAAKxB,MAAMnxQ,QAAU,QACrB2yQ,EAAKxB,MAAMpxL,KAAOmW,EAASh7D,EAAErhC,WAAa,KAC1C84Q,EAAKxB,MAAMp7K,IAAMG,EAAS/hG,EAAE0F,WAAa,KACzCvJ,OAAO0pH,iBAAiB,QAASt1E,EAAoCqG,GAAGxlC,KAAK,gBAAiBpV,OAAO,GACrG,IAAIs7C,EAAS/G,EAAoCqG,GAAGW,UAAU6vC,EAAM0xF,eACpE,MAAOxhI,EAAOE,WAAY,CACtB,IAAIt0C,EAAOo0C,EAAOI,QAClB,GAAIx0C,EAAK6lJ,QAAS,CACd,IAAIqhI,EAAK9sR,SAASkL,cAAc,OAChC4hR,EAAGD,UAAajnR,EAAY,QAAI,8BAAgC,kBAChEknR,EAAGhhR,UAAYlG,EAAKyD,KACpB,IAAI0jR,EAAKD,EACTC,EAAGH,QAAUhnR,EACbknR,EAAGvkK,iBAAiB,QAASt1E,EAAoCqG,GAAGxlC,KAAK,mBAAoBpV,OAAO,GACpGwiR,EAAK5uB,YAAYw6B,EACrB,CACJ,CArBA,CAsBJ,GAQJ,SAASl1G,IACLl5K,KAAK+sB,IAAM,KACX/sB,KAAK88K,cAAgB,GACrB98K,KAAKu7K,SAAU,EACfv7K,KAAK2gB,SAAU,EACf3gB,KAAK+sJ,SAAU,CACnB,EAXA,EAAGz4G,EAA4C4D,cAAc,mBAAoB,CAAC8gI,EAAkB40G,EAAmB,OAavH10G,EAAkB/2K,OAAS,SAAUwI,GACjC,IAAI6jR,EAAO,IAAIt1G,EAEf,OADAs1G,EAAK7jR,KAAOA,EACL6jR,CACX,EAEA,IAAIC,EAAqB,CAAC,EAO1B,SAAS10G,IACLb,EAAkB14K,KAAKR,MACvBA,KAAK2K,KAAO,wCAChB,EARA,EAAG2pC,EAA4C4D,cAAc,oBAAqB,CAACghI,EAAmBu1G,EAAoB,OAU1H,IAAIC,EAAsB,CAAC,EAO3B,SAASf,IAAU,EALnB,EAAGr5O,EAA4C4D,cAAc,qBAAsB,CAAC6hI,EAAoB20G,EAAqBx1G,IAO7H,IAAIy1G,EAAS,CAAC,GAEd,EAAGr6O,EAA4C4D,cAAc,QAAS,CAACy1O,EAAOgB,EAAQ,MAG/E,EAED;;;qCAIA,CAAEhwR,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCilL,OAAQ,IAAM,IAEhB,IAAI95H,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAYnH,SAAS65H,IAAW,CAEpB,IAAIoqG,EAAU,CACVC,mBAAoB,SAAUjuR,GAC1BZ,KAAK8uR,iBAAmBpkO,EAAoC9P,GAAGgnI,QAAQ5hL,KAAK8uR,iBAAkBluR,EAClG,EAEAmuR,sBAAuB,SAAUnuR,GAC7BZ,KAAK8uR,iBAAmBpkO,EAAoC9P,GAAGknI,QAAQ9hL,KAAK8uR,iBAAkBluR,EAClG,EAEAw9K,KAAM,SAAU4wG,EAAY9uR,GACK,MAAzBF,KAAK8uR,kBACL9uR,KAAK8uR,iBAAiBE,EAAY9uR,EAE1C,IAGJ,EAAGyqD,EAA4CzS,cAAc,SAAU,CAACssI,EAAQoqG,EAAS,MAGlF,EAED;;;wCAIA,CAAEjwR,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCyoK,UAAW,IAAM,IAEnB,IAAIt9G,EAAsC,iBAAoC,eAC1EC,EAA8C,yBAA4C,uBAC1FnW,EAA4C,uBAA0C,qBACtFgxD,EAAkD,6BAAgD,2BAClG47C,EAAwC,mBAAsC,iBAC9E6tI,EAAwD,mCAAsD,iCAgBvI,SAASjnH,IACLhoK,KAAKm/G,MAAQ,KACbn/G,KAAKyiB,MAAQ,KACbziB,KAAKwuN,KAAO,KACZxuN,KAAKkvR,UAAY,KACjBlvR,KAAKmvR,cAAgB,EACrBnvR,KAAKovR,aAAe,EACpBpvR,KAAKqvR,cAAgB,IACrBrvR,KAAKsvR,QAAU,IACftvR,KAAKuvR,kBAAmB,EACxBvvR,KAAKwvR,UAAY,EACjBxvR,KAAKs2O,UAAW,EAChBt2O,KAAKyvR,mBAAqB,CAC9B,CAEAznH,EAAUK,YAAc,SAAUrB,EAAKxwH,GACnC,IAAKgvD,EAAgD8iE,cAAe,CAChE,IAAInpD,EAAQz0D,EAAoC9P,GAAGw7G,SAAS4Q,EAAI/lI,eAAe2xH,eAAgBq8H,EAAsDxxH,aACjJ7jD,GAAO,EAAGpU,EAAgD4/C,kBAAkB,EAAG,EAAG,EAAG4hB,EAAI/lI,eAAgB,MAC7G24E,EAAKggB,UAAYza,EAAMshD,YAAY69E,YACvC,CACJ,EAEAt2E,EAAUC,YAAc,SAAUjB,EAAKhnH,EAAO0vO,EAAKC,GAI/C,GAHA3oH,EAAI/lI,eAAeC,qBAAqBgH,UAAY8X,EACpDgnH,EAAI/lI,eAAeC,qBAAqBiH,SAAWunP,EACnD1oH,EAAI/lI,eAAeC,qBAAqBkH,SAAWunP,GAC9CnqL,EAAgD8iE,cAAe,CAChE,IAAInpD,EAAQz0D,EAAoC9P,GAAGw7G,SAAS4Q,EAAI/lI,eAAe2xH,eAAgBq8H,EAAsDxxH,aACjJ7jD,GAAO,EAAGpU,EAAgD4/C,kBAAkB,EAAG,EAAG,EAAG4hB,EAAI/lI,eAAgB,MAC7G24E,EAAKggB,UAAYza,EAAMshD,YAAY69E,YACvC,CACJ,EAEAt2E,EAAUO,kBAAoB,SAAUvB,EAAK7jJ,GAEzC,GADA6jJ,EAAI/lI,eAAeC,qBAAqBoH,aAAenlB,GAClDqiF,EAAgD8iE,cAAe,CAChE,IAAInpD,EAAQz0D,EAAoC9P,GAAGw7G,SAAS4Q,EAAI/lI,eAAe2xH,eAAgBq8H,EAAsDxxH,aACjJ7jD,GAAO,EAAGpU,EAAgD4/C,kBAAkB,EAAG,EAAG,EAAG4hB,EAAI/lI,eAAgB,MAC7G24E,EAAKggB,UAAYza,EAAMshD,YAAY69E,YACvC,CACJ,EAEA,IAAIsxC,EAAa,CACb5oP,MAAO,SAAU9mC,GACb,IAAIsiR,EAAOlhR,SAASksR,eAAe,aACpBlsR,SAASksR,eAAe,kBACvChL,EAAKxB,MAAMnxQ,QAAU,OACrB1P,OAAO2tR,oBAAoB,QAASpjO,EAAoC9P,GAAGxlC,KAAK,QAASpV,OAAO,GAChG,IAAIm/G,EAAQ79G,SAASksR,eAAe,SACpCruK,EAAM2uK,oBAAoB,YAAapjO,EAAoC9P,GAAGxlC,KAAK,gBAAiBpV,OAAO,GAC3Gm/G,EAAM2uK,oBAAoB,YAAapjO,EAAoC9P,GAAGxlC,KAAK,gBAAiBpV,OAAO,GAC3Gm/G,EAAM2uK,oBAAoB,UAAWpjO,EAAoC9P,GAAGxlC,KAAK,cAAepV,OAAO,GACvGA,KAAKkvR,UAAUpB,oBAAoB,SAAUpjO,EAAoC9P,GAAGxlC,KAAK,qBAAsBpV,OAAO,GACtHA,KAAKkvR,UAAUpB,oBAAoB,QAASpjO,EAAoC9P,GAAGxlC,KAAK,WAAYpV,OAAO,EAC/G,EAEAo+K,KAAM,SAAUr4E,GACZ/lG,KAAKwuN,MAAO,EAAGhpH,EAAgD4/C,kBAAkB,EAAG,EAAG,EAAGplJ,KAAKyiB,MAAMwe,eAAgB,MACrH,IAAI29I,EAASt9K,SAASksR,eAAe,aACjCqC,EAAWvuR,SAASksR,eAAe,kBACvC5uG,EAAOoiG,MAAMnxQ,QAAU,QACvB+uK,EAAOoiG,MAAMpxL,KAAOmW,EAASh7D,EAAErhC,WAAa,KAC5Ck1K,EAAOoiG,MAAMp7K,IAAMG,EAAS/hG,EAAE0F,WAAa,KAC3C1J,KAAKyvR,mBAAqBzvR,KAAKyiB,MAAMwe,eAAeC,qBAAqBgH,UACzEloC,KAAKkvR,UAAY5tR,SAASksR,eAAe,mBACzCxtR,KAAKkvR,UAAUrlK,iBAAiB,SAAUn/D,EAAoC9P,GAAGxlC,KAAK,qBAAsBpV,OAAO,GACnHA,KAAKkvR,UAAUrlK,iBAAiB,QAASn/D,EAAoC9P,GAAGxlC,KAAK,WAAYpV,OAAO,GACxG,IAAI0pH,EAASpoH,SAASksR,eAAe,SACrC9jK,EAAOG,iBAAiB,cAAen/D,EAAoC9P,GAAGxlC,KAAK,gBAAiBpV,OAAO,GAC3G0pH,EAAOG,iBAAiB,cAAen/D,EAAoC9P,GAAGxlC,KAAK,gBAAiBpV,OAAO,GAC3G0pH,EAAOG,iBAAiB,YAAan/D,EAAoC9P,GAAGxlC,KAAK,cAAepV,OAAO,GACvG6vR,EAAShmK,iBAAiB,QAASn/D,EAAoC9P,GAAGxlC,KAAK,QAASpV,OAAO,GAC/FA,KAAK+1C,MACT,EAEA+5O,SAAU,SAAU5vR,GAChBF,KAAKuvR,kBAAmB,CAC5B,EAEAQ,mBAAoB,SAAU7vR,GAC1BF,KAAKyvR,mBAAqBzvR,KAAKkvR,UAAUc,cACzChwR,KAAKiwR,iBACLjwR,KAAKyiB,MAAMwe,eAAeC,qBAAqBgH,UAAYloC,KAAKyvR,mBAChEzvR,KAAK+1C,OACL/1C,KAAKuvR,kBAAmB,CAC5B,EAEAW,cAAe,SAAUhwR,GACrB,IAAIwpH,EAASpoH,SAASksR,eAAe,SACjCziP,EAAIq2G,EAAsCl2B,MAAM5e,QAAQod,EAAQxpH,GAChE8D,EAAIo9I,EAAsCl2B,MAAM3e,QAAQmd,EAAQxpH,GACpEwpH,EAAOymK,kBAAkBjwR,EAAEkwR,WACtB9qR,KAAKkjD,IAAIzd,EAAI/qC,KAAKsvR,SAAW,IAAOhqR,KAAKkjD,IAAIxkD,EAAI,IAAM,GACxDhE,KAAKwvR,UAAY,EACVlqR,KAAKkjD,IAAIzd,EAAI/qC,KAAKovR,cAAgB,GACzCpvR,KAAKwvR,UAAY,EACVlqR,KAAKkjD,IAAIzd,EAAI/qC,KAAKqvR,eAAiB,GAC1CrvR,KAAKwvR,UAAY,GAEjBxvR,KAAKwvR,UAAY,EACjBxvR,KAAKmvR,cAAgB7pR,KAAKilF,IAAI,IAAKjlF,KAAKC,IAAI,EAAGwlC,IAC/C/qC,KAAK+1C,QAET71C,EAAEmwR,cAAe,CACrB,EAEAC,cAAe,SAAUpwR,GACrB,IAAIwpH,EAASpoH,SAASksR,eAAe,SACjCziP,EAAIq2G,EAAsCl2B,MAAM5e,QAAQod,EAAQxpH,GAC5DkhJ,EAAsCl2B,MAAM3e,QAAQmd,EAAQxpH,GACpE,OAAQF,KAAKwvR,WACT,KAAK,EACDxvR,KAAKovR,aAAe9pR,KAAKilF,IAAI,IAAKjlF,KAAKC,IAAI,EAAGwlC,IAC9C,MACJ,KAAK,EACD/qC,KAAKqvR,cAAgB/pR,KAAKilF,IAAI,IAAKjlF,KAAKC,IAAI,EAAGwlC,IAC/C,MACJ,KAAK,EACD/qC,KAAKovR,aAAepvR,KAAKmvR,cACzBnvR,KAAKqvR,cAAgB/pR,KAAKilF,IAAI,IAAKjlF,KAAKC,IAAI,EAAGwlC,IAC/C,MACJ,KAAK,EACD,IAAIwlP,EAASjrR,KAAKkjD,IAAIxoD,KAAKqvR,cAAgBrvR,KAAKovR,cAAgB,EAC5DoB,EAAWlrR,KAAKilF,IAAI,IAAMgmM,EAAQjrR,KAAKC,IAAIgrR,EAAQxlP,IACnD0lP,EAAQzwR,KAAKsvR,QAAUkB,EAC3BxwR,KAAKovR,cAAgBqB,EACrBzwR,KAAKqvR,eAAiBoB,EACtB,MACJ,KAAK,EACD,OACJ,QACI,MAERzwR,KAAKsvR,SAAWtvR,KAAKovR,aAAepvR,KAAKqvR,eAAiB,EAC1DrvR,KAAK+1C,OACL,IAAI1I,GAAUrtC,KAAKyiB,MAAMwe,eAAeC,qBAAqB09E,OAAS5+G,KAAKyiB,MAAMwe,eAAeC,qBAAqB29E,QAAU,IAC3H6wK,EAAM1vR,KAAKyiB,MAAMwe,eAAeC,qBAAqB29E,OAAU7+G,KAAKovR,aAAe/hP,EACnFsiP,EAAK3vR,KAAKyiB,MAAMwe,eAAeC,qBAAqB29E,OAAU7+G,KAAKqvR,cAAgBhiP,EACvFrtC,KAAKiwR,iBACLjwR,KAAKyiB,MAAMwe,eAAeC,qBAAqBkH,SAAWunP,EAC1D3vR,KAAKyiB,MAAMwe,eAAeC,qBAAqBiH,SAAWunP,EAC1D1vR,KAAKyiB,MAAMwe,eAAeC,qBAAqBgH,UAAYloC,KAAKyvR,mBAChEvvR,EAAEmwR,cAAe,CACrB,EAEAK,YAAa,SAAUxwR,GACnBA,EAAEywR,WAAWC,sBAAsB1wR,EAAEkwR,WACd,IAAnBpwR,KAAKwvR,YACLxvR,KAAKwvR,UAAY,EACjBxvR,KAAKiwR,iBACLjwR,KAAKuvR,kBAAmB,GAE5BrvR,EAAEmwR,cAAe,CACrB,EAEAJ,eAAgB,WACZ,IAAItlK,EAAQ3qH,KAEPwlG,EAAgD8iE,gBACjDv7J,YAAW,WACP49G,EAAMiZ,QACV,GAAG,KACH5jI,KAAKs2O,UAAW,EAExB,EAEA1yG,OAAQ,WACJ,IAAI5jI,KAAKs2O,SAAT,CAGA,GAAI5rL,EAAoC9P,GAAG21C,QAAQvwF,KAAKm/G,MAAO8vK,EAAsDxxH,aAAc,CAC/H,IAAIpwH,GAAUrtC,KAAKyiB,MAAMwe,eAAeC,qBAAqB09E,OAAS5+G,KAAKyiB,MAAMwe,eAAeC,qBAAqB29E,QAAU,IAC3H6wK,EAAM1vR,KAAKyiB,MAAMwe,eAAeC,qBAAqB29E,OAAU7+G,KAAKovR,aAAe/hP,EACnFsiP,EAAK3vR,KAAKyiB,MAAMwe,eAAeC,qBAAqB29E,OAAU7+G,KAAKqvR,cAAgBhiP,EACvFrtC,KAAKwuN,KAAK50F,UAAa55H,KAAU,MAAE0gK,gBAAgBgvH,EAAKC,EAAI3vR,KAAKyvR,mBAAoB,EAAG,MAAMnxC,YAClG,CACAt+O,KAAKs2O,UAAW,CAPhB,CAQJ,EAEAvgM,KAAM,WACF,IAAI2zE,EAASpoH,SAASksR,eAAe,SACjC75Q,EAAM+1G,EAAO4C,WAAW,MACV,MAAdtsH,KAAKm/G,OACLn/G,KAAKm/G,MAAMm+C,cAAc3pJ,GAE7B,IAAI67O,EAAM,oBACNC,EAAQ,oBACRC,EAAO,oBACX/7O,EAAI8mC,YAAc+0M,EAClB77O,EAAI2mC,YACJ3mC,EAAIgoC,OAAO37C,KAAKovR,aAAc,GAC9Bz7Q,EAAIioC,OAAO57C,KAAKovR,aAAc,KAC9Bz7Q,EAAI+mC,SACJ/mC,EAAI8mC,YAAcg1M,EAClB97O,EAAI2mC,YACJ3mC,EAAIgoC,OAAO37C,KAAKqvR,cAAe,GAC/B17Q,EAAIioC,OAAO57C,KAAKqvR,cAAe,KAC/B17Q,EAAI+mC,SACJ/mC,EAAI8mC,YAAci1M,EAClB/7O,EAAI2mC,YACJ3mC,EAAI4mC,IAAIv6C,KAAKsvR,QAAS,GAAI,GAAI,EAAa,EAAVhqR,KAAK8Z,IAAQ,GAC9CzL,EAAIkoC,YACJloC,EAAI+mC,SACJ,IAAIm2O,EAAQ,GACZ,OAAQ7wR,KAAKyvR,oBACT,KAAK,EACDoB,EAAMluR,OAAS,EACfkuR,EAAMlsR,KAAK6vC,EAA0CqrD,SAAS19F,OAAOnC,KAAKovR,aAAc,MACxFyB,EAAMlsR,KAAK6vC,EAA0CqrD,SAAS19F,OAAOnC,KAAKqvR,cAAe,IACzF,MACJ,KAAK,EACDwB,EAAMluR,OAAS,EAMf,IALA,IAAI0qC,EAAS,IAAM/nC,KAAK6I,IAAI,KACxB2iR,EAAQ9wR,KAAKqvR,cAAgBrvR,KAAKovR,aAClC2B,EAAQD,EAAO,GAAM,EAAI,EACzBvtR,EAAO+B,KAAKkjD,IAAI,KAASsoO,GAAQ,OACjC5xR,EAAM,KACDsD,EAAIxC,KAAKovR,aAAc5sR,IAAMxC,KAAKqvR,cAAe7sR,GAAKuuR,EAC3DF,EAAMlsR,KAAK6vC,EAA0CqrD,SAAS19F,OAAOK,EAAI,IAAO8C,KAAK6I,IAAIjP,GAAOmuC,IAChGnuC,GAAOqE,EAEX,MACJ,KAAK,EACDstR,EAAMluR,OAAS,EAMf,IALI0qC,EAAS,IAAM/nC,KAAKo8D,IAAI,IAAK,GAC7BovN,EAAQ9wR,KAAKqvR,cAAgBrvR,KAAKovR,aAClC2B,EAAQD,EAAO,GAAM,EAAI,EACzBvtR,EAAO+B,KAAKkjD,IAAI,KAASsoO,GAAQ,OACjC5xR,EAAM,KACDsD,EAAIxC,KAAKovR,aAAc5sR,IAAMxC,KAAKqvR,cAAe7sR,GAAKuuR,EAC3DF,EAAMlsR,KAAK6vC,EAA0CqrD,SAAS19F,OAAOK,EAAI,IAAO8C,KAAKo8D,IAAIxiE,EAAK,GAAKmuC,IACnGnuC,GAAOqE,EAEX,MACJ,KAAK,EACDstR,EAAMluR,OAAS,EAMf,IALI0qC,EAAS,IAAM/nC,KAAKqxC,KAAK,KACzBm6O,EAAQ9wR,KAAKqvR,cAAgBrvR,KAAKovR,aAClC2B,EAAQD,EAAO,GAAM,EAAI,EACzBvtR,EAAO+B,KAAKkjD,IAAI,KAASsoO,GAAQ,OACjC5xR,EAAM,KACDsD,EAAIxC,KAAKovR,aAAc5sR,IAAMxC,KAAKqvR,cAAe7sR,GAAKuuR,EAC3DF,EAAMlsR,KAAK6vC,EAA0CqrD,SAAS19F,OAAOK,EAAI,IAAO8C,KAAKqxC,KAAKz3C,GAAOmuC,IACjGnuC,GAAOqE,EAEX,MAER,GAAIstR,EAAMluR,OAAS,EAAG,CAClBgR,EAAI2mC,YACJ3mC,EAAI8mC,YAAci1M,EAClB/7O,EAAIgoC,OAAOk1O,EAAM,GAAG9lP,EAAG8lP,EAAM,GAAG7sR,GAChC,IAASxB,EAAI,EAAGA,EAAIquR,EAAMluR,OAAQH,IAC9BmR,EAAIioC,OAAOi1O,EAAMruR,GAAGuoC,EAAG8lP,EAAMruR,GAAGwB,GAEpC2P,EAAI+mC,QACR,CACJ,IAGJ,EAAGiQ,EAA4CzS,cAAc,YAAa,CAAC8vH,EAAW4nH,EAAY,MAG3F,EAED;;;2CAIA,CAAEjxR,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCo/K,YAAa,IAAM,IAErB,IAAIrqI,EAA8C,yBAA4C,uBAC1FC,EAAsC,iBAAoC,eAYnG,SAASoqI,EAAYxxK,EAAOjJ,EAAOqL,EAAMsnH,GACrC72H,KAAKmN,MAAQ,OACbnN,KAAKkE,MAAQ,mBACblE,KAAKuP,KAAO,GACZvP,KAAKgxR,aAAe,KACpBhxR,KAAKuvR,kBAAmB,EACxBvvR,KAAKmN,MAAQA,EACbnN,KAAKkE,MAAQA,EACblE,KAAKuP,KAAOA,CAChB,CAEA,IAAI0hR,EAAe,CACf3xG,WAAY,WACR,OAAO,CACX,EAEAguG,aAAc,SAAUptR,GACfF,KAAKuvR,kBACNvvR,KAAKopP,SAETppP,KAAKuvR,kBAAmB,CAC5B,EAEAnxG,KAAM,SAAUr4E,EAAUltF,GACtB,IAAIq4Q,EAAqB5vR,SAASksR,eAAe,eAC7C2D,EAAe7vR,SAASksR,eAAe,eAC3C2D,EAAanQ,MAAMnxQ,QAAU,QAC7BqhR,EAAmBlQ,MAAMnxQ,QAAU,QACnCqhR,EAAmBlQ,MAAMoQ,WAAarrL,EAASh7D,EAAErhC,WAAa,KAC9DwnR,EAAmBlQ,MAAMqQ,UAAYtrL,EAAS/hG,EAAE0F,WAAa,KAC7D1J,KAAKgxR,aAAe1vR,SAASksR,eAAe,aAC5CxtR,KAAKgxR,aAAapwR,MAAQZ,KAAKuP,KAC/B,IAAI+hR,EAAWhwR,SAASksR,eAAe,eACnC+D,EAAWjwR,SAASksR,eAAe,cACvC8D,EAASlkR,UAAYpN,KAAKmN,MAC1BokR,EAASnkR,UAAYpN,KAAKkE,MAC1BlE,KAAKgxR,aAAannK,iBAAiB,SAAUt1E,EAAoCqG,GAAGxlC,KAAK,cAAepV,OAAO,GAC/GA,KAAKgxR,aAAannK,iBAAiB,QAASt1E,EAAoCqG,GAAGxlC,KAAK,WAAYpV,OAAO,GAC3G,IAAIwxR,EAAWlwR,SAASksR,eAAe,iBACnCiE,EAAenwR,SAASksR,eAAe,qBAC3CgE,EAAS3nK,iBAAiB,QAASt1E,EAAoCqG,GAAGxlC,KAAK,YAAapV,OAAO,GACnGyxR,EAAa5nK,iBAAiB,QAASt1E,EAAoCqG,GAAGxlC,KAAK,gBAAiBpV,OAAO,GAC3GA,KAAK0xR,YAAc74Q,CACvB,EAEA84Q,UAAW,SAAUzxR,GACjBF,KAAKopP,SACmB,MAApBppP,KAAK0xR,aACL1xR,KAAK0xR,aAEb,EAEAE,cAAe,SAAU1xR,GACrBF,KAAKopP,QACT,EAEAA,OAAQ,WACJ,IAAI8nC,EAAqB5vR,SAASksR,eAAe,eACjD0D,EAAmBlQ,MAAMnxQ,QAAU,OACnC7P,KAAKgxR,aAAalD,oBAAoB,SAAUv5O,EAAoCqG,GAAGxlC,KAAK,cAAepV,OAAO,GAClH,IAAIwxR,EAAWlwR,SAASksR,eAAe,iBACnCiE,EAAenwR,SAASksR,eAAe,qBAC3CgE,EAAS1D,oBAAoB,QAASv5O,EAAoCqG,GAAGxlC,KAAK,YAAapV,OAAO,GACtGyxR,EAAa3D,oBAAoB,QAASv5O,EAAoCqG,GAAGxlC,KAAK,gBAAiBpV,OAAO,EAClH,EAEA8vR,SAAU,SAAU5vR,GAChBF,KAAKuvR,kBAAmB,CAC5B,EAEAsC,YAAa,SAAU3xR,GACnBF,KAAKuP,KAAOvP,KAAKgxR,aAAapwR,MAC9BZ,KAAKuvR,kBAAmB,CAC5B,IAGJ,EAAGj7O,EAA4C4D,cAAc,cAAe,CAACymI,EAAasyG,EAAc,MAGjG,EAED;;;8CAIA,CAAEtyR,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCuyR,WAAY,IAAM,EAClB/oC,cAAe,IAAM,IAEvB,IAAIz0M,EAA8C,yBAA4C,uBAC1FC,EAAsC,iBAAoC,eAY/Fu9O,EAAa,CACbC,SAAU,GASd,SAAShpC,IACL/oP,KAAK8D,KAAO,6CACZ9D,KAAKgpP,WAAa,EAClBhpP,KAAKgyR,cAAgB,IAAIz9O,EAAoCqG,GAAGm7I,MAChE/1L,KAAKiyR,UAAW,EAChBjyR,KAAKkyR,aAAe,GACpBlyR,KAAKmyR,YAAc,CAAC,EACpBnyR,KAAK2vO,OAAS,EAClB,EAdA,EAAGr7L,EAA4C4D,cAAc,aAAc45O,IAC3E,EAAGx9O,EAA4Ci6C,cAAc,aAAcujM,GAe3E,IAAIM,EAAiB,CACjBC,gBAAiB,SAAU1nR,GAEvB3K,KAAKsyR,eAAc,GAGnBtyR,KAAKgyR,cAAcrtR,KAAKgG,GAGxB3K,KAAKiyR,UAAW,EAChBjyR,KAAKkyR,aAAevnR,CACxB,EAEA2nR,cAAe,SAAUC,GACrB,IAAIC,GAAS,EACb,GAAIxyR,KAAKiyR,SAAU,CACf,IAAK,IAAIzvR,EAAI,EAAGA,EAAIxC,KAAKgyR,cAAc51L,MAAO55F,IAC1CxC,KAAK8D,MAAQ,KAGjB,GADA9D,KAAK8D,MAAQ,IAAM9D,KAAKkyR,aACpB39O,EAAoCqG,GAAGu8H,SAASn3K,KAAKmyR,aAAe,EAAG,CACvE,IAAI72O,EAAS/G,EAAoCqG,GAAGW,UAAUhH,EAAoCqG,GAAGpyC,KAAKxI,KAAKmyR,cAC/G,MAAO72O,EAAOE,WAAY,CACtB,IAAIv8C,EAAMq8C,EAAOI,QACjB17C,KAAK8D,MAAQywC,EAAoCqG,GAAGvU,OAAO,aAAcpnC,EAAKe,KAAKmyR,YAAYlzR,GACnG,CACJ,CAqBA,OApBKs1C,EAAoCqG,GAAGC,YAAY76C,KAAK2vO,QAQrD4iD,GACAvyR,KAAK8D,MAAQ,UACb0uR,GAAS,GAGTxyR,KAAK8D,MAAQ,SAZjB9D,KAAK8D,MAAQ,IACb0uR,GAAS,EACJj+O,EAAoCqG,GAAGC,YAAY76C,KAAK2vO,UACzD3vO,KAAK8D,MAAQ9D,KAAK2vO,SAY1B3vO,KAAKiyR,UAAW,EAChBjyR,KAAKkyR,aAAe,GACpBlyR,KAAK2vO,OAAS,GACd3vO,KAAKmyR,YAAc,CAAC,EACbK,CACX,CACA,OAAO,CACX,EAEAvpC,4BAA6B,SAAUlyI,EAAIyd,GAAM,EAEjDy8B,mBAAoB,SAAUtmJ,GAC1B3K,KAAKqyR,gBAAgB1nR,EACzB,EAEAumJ,sBAAuB,SAAUjyJ,EAAK2B,GAE9BZ,KAAKmyR,YAAYlzR,GADR,MAAT2B,EACwB2zC,EAAoCqG,GAAGq+C,cAAcr4F,EAAM8I,WAAY,IAAK,SAE5E,EAEhC,EAEAqoJ,iBAAkB,WACd,GAAK/xJ,KAAKsyR,eAAc,GAMpBtyR,KAAKgyR,cAActtR,UANQ,CAC3B,IAAK,IAAIlC,EAAI,EAAGA,EAAIxC,KAAKgyR,cAAc51L,MAAO55F,IAC1CxC,KAAK8D,MAAQ,KAEjB9D,KAAK8D,MAAQywC,EAAoCqG,GAAGvU,OAAO,aAAcrmC,KAAKgyR,cAActtR,MAChG,CAGJ,EAEA2zP,aAAc,SAAU9oP,GACpBvP,KAAK2vO,OAASp7L,EAAoCqG,GAAGq+C,cAAc1pF,EAAM,IAAK,QAClF,EAEA45O,qBAAsB,WAClBnpP,KAAKsyR,eAAc,GACnB,IAAK,IAAI9vR,EAAI,EAAGA,EAAIxC,KAAKgyR,cAAc51L,MAAO55F,IAC1CxC,KAAK8D,MAAQ,KAEjB9D,KAAK8D,MAAQywC,EAAoCqG,GAAGvU,OAAO,aAAcrmC,KAAKgyR,cAActtR,MAChG,EAEA0kP,OAAQ,WAAc,EAEtBt3F,oBAAqB,SAAUnnJ,EAAM/J,GACjCZ,KAAKixJ,mBAAmBtmJ,GACxB3K,KAAK64Q,YAAYtkO,EAAoCqG,GAAGq+C,cAAcr4F,EAAO,IAAK,UAClFZ,KAAK+xJ,kBACT,EAEA8mH,YAAa,SAAU35Q,GACnBc,KAAK2vO,OAASp7L,EAAoCqG,GAAGq+C,cAAc/5F,EAAK,IAAK,QACjF,EAEAw8M,YAAa,SAAUrD,GACnBr4M,KAAK2vO,OAASp7L,EAAoCqG,GAAGvU,OAAO,kBAAmBgyK,EACnF,IAGJ,EAAG/jK,EAA4C4D,cAAc,gBAAiB,CAAC6wM,EAAeqpC,EAAgB,MAGvG,EAED;;;sCAIA,CAAEzzR,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCkzR,gBAAiB,IAAM,IAEzB,IAAIn+O,EAA8C,wBAA2C,uBAWlH,SAASm+O,EAAgBtsP,EAAOC,EAAQssP,EAAKrsP,EAAQssP,GACjD3yR,KAAK0yR,IAAM,EACX1yR,KAAKmmC,MAAQ,EACbnmC,KAAKomC,OAAS,EACdpmC,KAAK+mC,YAAc,EACnB/mC,KAAK2yR,cAAe,EACpB3yR,KAAKqmC,OAAS,aACdrmC,KAAKmmC,MAAQA,EACbnmC,KAAKomC,OAASA,EACdpmC,KAAK0yR,IAAMA,EACX1yR,KAAKqmC,OAASA,EACdrmC,KAAK2yR,aAAeA,CACxB,CAEA,IAAIC,EAAmB,CAAC,GAExB,EAAGt+O,EAA4C4D,cAAc,kBAAmB,CAACu6O,EAAiBG,EAAkB,MAG7G,EAED;;;+BAIA,CAAEj0R,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC80Q,uBAAwB,IAAM,EAC9BpU,cAAe,IAAM,IAEvB,IAAIv1M,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFoyC,EAA4C,sBAAyC,qBACrF81L,EAAqD,+BAAkD,8BACvGtzK,EAA8C,wBAA2C,uBACzFw/E,EAAkD,4BAA+C,2BACjG+zF,EAA4C,sBAAyC,qBACrFC,EAAyD,mCAAsD,kCAwBxI,SAAS1e,EAAuB/jQ,EAAM8+E,EAAIx5E,EAAMo9Q,EAAcC,EAAY3oR,GACtEtK,KAAKkzR,kBAAoB,EACzBlzR,KAAKsvF,mBAAoB,EACzBtvF,KAAKmzR,cAAgB,EACrBnzR,KAAKozR,cAAgB,EACrBpzR,KAAKqzR,WAAY,EACjBrzR,KAAKszR,gBAAiB,EACtBtzR,KAAKkzR,kBAAoB5oR,EACrBhF,KAAKkjD,IAAIl4C,EAAK4uC,IAAMkwC,EAAGlwC,KAAO,MAC1B5uC,EAAK4uC,IAAMkwC,EAAGlwC,IACd5uC,EAAK4uC,KAAO,IAEZ5uC,EAAK4uC,KAAO,KAGpBl/C,KAAKuzR,cAAgBP,EACrBhzR,KAAKwzR,YAAcP,EACnBjzR,KAAKozR,cAAgBH,EAAaD,EAClChzR,KAAKyzR,MAAQnjR,EAAK24E,OAClBjpF,KAAK0zR,IAAMtkM,EAAGnG,OACdjpF,KAAK2zR,UAAYZ,EAAuDz1P,oBAAoBqwM,cAC5F3tO,KAAKmzR,cAAgBv9Q,CACzB,CAEA,IAAIg+Q,EAA0B,CAC1BC,aAAc,WACV,OAAO7zR,KAAKqzR,SAChB,EAEAS,oBAAqB,WACjB,IAAIhf,EAAUie,EAAuDz1P,oBAAoBqwM,cAAgB3tO,KAAK2zR,UAC1Gxe,EAAiB,EAAY,IAC7B/nN,EAAQ+nN,EAAiBn1Q,KAAKmzR,cAOlC,OANKnzR,KAAKszR,gBAAkBlmO,GAAS,KACjCptD,KAAKszR,gBAAiB,EACA,MAAlBtzR,KAAK+zR,WACL/zR,KAAK+zR,aAGT3mO,GAAS,GACTA,EAAQ,EACRptD,KAAKqzR,WAAY,EACVrzR,KAAK0zR,IAAIzqM,QAEhB6pM,EAA0Cl6L,SAASC,aAAa5nE,oBAAsB8tK,EAAgDn0E,oBAAoBuS,MACnJ01J,EAAmD7lM,iBAAiB2C,uBAAuB3vF,KAAKyzR,MAAOzzR,KAAK0zR,IAAKtmO,EAAOptD,KAAKkzR,kBAAmBlzR,KAAKsvF,mBAEzJujM,EAAmD7lM,iBAAiBrgB,YAAY3sE,KAAKyzR,MAAOzzR,KAAK0zR,IAAKtmO,EAAOptD,KAAKkzR,kBAAmBlzR,KAAKsvF,kBACrJ,EAEA0kM,oBAAqB,WACjB,IAAIlf,EAAUie,EAAuDz1P,oBAAoBqwM,cAAgB3tO,KAAK2zR,UAC1Gxe,EAAiB,EAAY,IAC7B/nN,EAAQ+nN,EAAiBn1Q,KAAKmzR,cAC9B3tP,EAAQxlC,KAAKozR,cAAgBhmO,EAC7B6mO,EAAU,IAAIxtR,KAAKzG,KAAKuzR,cAAc3lD,UAAYljL,EAAoC9P,GAAGyG,SAAS7b,IACtG,OAAOyuP,CACX,EAEAC,aAAc,WACV,OAAOl0R,KAAK+zR,SAChB,EAEAI,aAAc,SAAUvzR,GAEpB,OADAZ,KAAK+zR,UAAYnzR,EACVA,CACX,EAEAs/P,aAAc,WACV,OAAOlgQ,KAAKmzR,aAChB,GAUJ,SAASlzB,IACLjgQ,KAAKo0R,cAAgB,EACrBp0R,KAAKq0R,gBAAkB,EACvBr0R,KAAKmzR,cAAgB,EACrBnzR,KAAKs0R,cAAgB,GACrBt0R,KAAKu0R,gBAAkB,GACvBv0R,KAAKw0R,kBAAoB,EACzBx0R,KAAKszR,gBAAiB,EACtBtzR,KAAKqzR,WAAY,CACrB,EAhBA,EAAG1oO,EAA4CzS,cAAc,yBAA0B,CAACm8N,EAAwBuf,EAAyB,KAAMr0K,EAA4Cu3C,aAkB3LmpG,EAAc99P,OAAS,SAAUmO,EAAM8+E,GACnC,IAAI7C,EAAO,IAAI0zK,EAEf,OADA1zK,EAAK0uC,KAAK3qH,EAAM8+E,GACT7C,CACX,EAEA0zK,EAAcw0B,aAAe,SAAUnkR,EAAM8+E,EAAIslM,GAC7C,IAAInoM,EAAO,IAAI0zK,EAGf,OAFA1zK,EAAK+nM,cAAgB/nM,EAAKgoM,gBAAkBG,EAC5CnoM,EAAK0uC,KAAK3qH,EAAK24E,OAAQmG,EAAGnG,QACnBsD,CACX,EAEA,IAAIooM,EAAiB,CACjB15J,KAAM,SAAU3qH,EAAM8+E,GACd9pF,KAAKkjD,IAAIl4C,EAAK4uC,IAAMkwC,EAAGlwC,KAAO,MAC1B5uC,EAAK4uC,IAAMkwC,EAAGlwC,IACd5uC,EAAK4uC,KAAO,IAGZ5uC,EAAK4uC,KAAO,KAGhBkwC,EAAG1yD,MAAQ,IACX0yD,EAAG1yD,KAAO,KAEVpsB,EAAKosB,MAAQ,IACbpsB,EAAKosB,KAAO,KAEhB18B,KAAKyzR,MAAQnjR,EACbtQ,KAAK0zR,IAAMtkM,EACXpvF,KAAK2zR,UAAYZ,EAAuDz1P,oBAAoBqwM,cAC5F,IACIinD,EADAC,EAAe,IAEfC,EAAUxvR,KAAKkjD,IAAIl4C,EAAK4uC,IAAMkwC,EAAGlwC,KACjC61O,EAAUzvR,KAAKkjD,IAAIl4C,EAAKyuC,IAAMqwC,EAAGrwC,KACjCzB,EAAWh4C,KAAKqxC,KAAKo+O,EAAUA,EAAUD,EAAUA,GACvDD,EAAgBv3O,EAAW,EAAK,GAC5Bu3O,EAAe,MACfA,EAAe,KAEfA,EAAevkR,EAAKosB,OACpBm4P,EAAevkR,EAAKosB,MAExBk4P,EAAct3O,EAAW,KAAQ,IAAMu3O,GAAgB70R,KAAKw0R,kBAC5D,IAAIQ,EAAa1vR,KAAKC,IAAID,KAAKkjD,IAAIl4C,EAAKw+E,MAAQM,EAAGN,OAAQxpF,KAAKkjD,IAAIl4C,EAAKu8B,SAAWuiD,EAAGviD,WACnFooP,EAAY3vR,KAAKC,IAAID,KAAKkjD,IAAIu0C,EAA0Cr6C,KAAKonC,KAAK+qM,EAAc,GAAK93L,EAA0Cr6C,KAAKonC,KAAKx5E,EAAKosB,KAAM,IAAKs4P,GAC7Kh1R,KAAKo0R,cAAgBp0R,KAAKs0R,cAAgBW,EAC1Cj1R,KAAKq0R,gBAAkBr0R,KAAKo0R,cAAgBQ,EAC5C,IAAIM,EAAc5vR,KAAKkjD,IAAIu0C,EAA0Cr6C,KAAKonC,KAAK+qM,EAAc,GAAK93L,EAA0Cr6C,KAAKonC,KAAKsF,EAAG1yD,KAAM,IAC/J18B,KAAKmzR,cAAgBnzR,KAAKq0R,gBAAkB/uR,KAAKC,IAAKvF,KAAKu0R,gBAAkBW,EAAcF,GAC3Fh1R,KAAKm1R,SAAW7kR,EAAK24E,OACrBjpF,KAAKm1R,SAASz4P,KAAOm4P,EACrB70R,KAAKm1R,SAASrmM,OAASx+E,EAAKw+E,MAAQM,EAAGN,OAAS,EAChD9uF,KAAKm1R,SAAStoP,UAAYv8B,EAAKu8B,SAAWuiD,EAAGviD,UAAY,EACzD7sC,KAAKo1R,OAAShmM,EAAGnG,OACjBjpF,KAAKo1R,OAAO14P,KAAO18B,KAAKm1R,SAASz4P,KACjC18B,KAAKo1R,OAAOtmM,MAAQ9uF,KAAKm1R,SAASrmM,MAClC9uF,KAAKo1R,OAAOvoP,SAAW7sC,KAAKm1R,SAAStoP,QACzC,EAEAgnP,aAAc,WACV,OAAO7zR,KAAKqzR,SAChB,EAEAS,oBAAqB,WACjB,IAAIhf,EAAUie,EAAuDz1P,oBAAoBqwM,cAAgB3tO,KAAK2zR,UAC1Gxe,EAAiB,EAAY,IACjC,GAAIA,EAAiBn1Q,KAAKo0R,cAEtB,OAAOvB,EAAmD7lM,iBAAiBrgB,YAAY3sE,KAAKyzR,MAAOzzR,KAAKm1R,SAAUhgB,EAAiBn1Q,KAAKo0R,cAAe,GAAG,GACvJ,GAAIjf,EAAiBn1Q,KAAKq0R,gBAE7B,OADAlf,GAAkBn1Q,KAAKo0R,cACnBtB,EAA0Cl6L,SAASC,aAAa5nE,oBAAsB8tK,EAAgDn0E,oBAAoBuS,MACnJ01J,EAAmD7lM,iBAAiB2C,uBAAuB3vF,KAAKm1R,SAAUn1R,KAAKo1R,OAAQjgB,GAAkBn1Q,KAAKq0R,gBAAkBr0R,KAAKo0R,eAAgB,GAAG,GAG5LvB,EAAmD7lM,iBAAiBrgB,YAAY3sE,KAAKm1R,SAAUn1R,KAAKo1R,OAAQjgB,GAAkBn1Q,KAAKq0R,gBAAkBr0R,KAAKo0R,eAAgB,GAAG,GAE/Kp0R,KAAKszR,iBACNtzR,KAAKszR,gBAAiB,EACA,MAAlBtzR,KAAK+zR,WACL/zR,KAAK+zR,aAGb5e,GAAkBn1Q,KAAKq0R,gBAEvB,IAAIjnO,EAAQ+nN,GAAkBn1Q,KAAKmzR,cAAgBnzR,KAAKq0R,iBACxD,OAAIjnO,EAAQ,GACRA,EAAQ,EACRptD,KAAKqzR,WAAY,EACVrzR,KAAK0zR,IAAIzqM,QAEb4pM,EAAmD7lM,iBAAiBrgB,YAAY3sE,KAAKo1R,OAAQp1R,KAAK0zR,IAAKtmO,EAAO,GAAG,EAEhI,EAEA4mO,oBAAqB,WAEjB,OADAjB,EAAuDz1P,oBAAoBmwM,cACpEslD,EAAuDz1P,oBAAoB0P,SACtF,EAEAknP,aAAc,WACV,OAAOl0R,KAAK+zR,SAChB,EAEAI,aAAc,SAAUvzR,GAEpB,OADAZ,KAAK+zR,UAAYnzR,EACVA,CACX,EAEAs/P,aAAc,WACV,OAAOlgQ,KAAKmzR,aAChB,IAGJ,EAAGxoO,EAA4CzS,cAAc,gBAAiB,CAAC+nN,EAAe00B,EAAgB,KAAMp1K,EAA4Cu3C,YAGzJ,EAED;;;8BAIA,CAAEn4J,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC81R,SAAU,IAAM,IAElB,IAAI3qO,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzFnW,EAA4C,sBAAyC,qBACrFC,EAAyD,mCAAsD,kCAC/Go+E,EAA+C,yBAA4C,wBAC3Fs1F,EAA+C,yBAA4C,wBAiBpH,SAASktE,IACLr1R,KAAK8zK,MAAQ,GACb9zK,KAAK4xH,MAAQ,GACb5xH,KAAKw4H,aAAc,EACnBx4H,KAAKs1R,YAAc,EACnBt1R,KAAKu1R,WAAa,EAClBv1R,KAAKw1R,WAAa,EAClBx1R,KAAKy1R,aAAe,EACpBz1R,KAAK01R,WAAa,CACtB,CAEAL,EAASM,YAAc,OAEvB,IAAIC,EAAY,CACZv9O,KAAM,SAAU5wC,GACZ,IAAIkjH,EAAQ3qH,KAER0rF,EAAQjkF,EAAK0hF,MAAM,QACvBnpF,KAAKi5H,aAAe33H,SAASkL,cAAc,OAC3CxM,KAAKi5H,aAAapP,iBAAiB,QAAQ,SAAU3pH,GACjDyqH,EAAM6N,aAAc,CACxB,IAAG,GACHx4H,KAAKi5H,aAAa13H,IAAMsxH,EAA6Cj5B,WAAW18D,UAAUi9D,eAAe,wBACzG,IAAI07L,GAAY,EACZv6O,EAASoP,EAAoC9P,GAAGW,UAAUmwC,GAC9D,MAAOpwC,EAAOE,WAAY,CACtB,IAAI+6C,EAAOj7C,EAAOI,QACdm6O,EACA71R,KAAK8zK,MAAMnvK,KAAK4xF,EAAKpN,MAAM,QAG3BnpF,KAAK05J,OAASnjE,EAAKpN,MAAM,MACzB0sM,GAAY,EAEpB,CACJ,EAEAC,QAAS,WACL91R,KAAKk5H,WAAa,IAAIr3H,MAAM7B,KAAK8zK,MAAMnxK,QACvC3C,KAAKm5H,iBAAmB,IAAIt3H,MAAM7B,KAAK8zK,MAAMnxK,QAC7C,IAAIojC,EAAQ,EACRuV,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK8zK,OACnE,MAAOx4H,EAAOE,WAAY,CACtB,IAAIs/C,EAAMx/C,EAAOI,QACbx0C,EAAO,IAAIutC,EAAuD+9E,SACtEtrH,EAAK6uR,UAAYrrO,EAAoC9P,GAAGsT,KAAK4sC,EAAI96F,KAAKs1R,cACtE,IAAInnQ,GAAU,OAA+C,IAArCg8D,WAAW2Q,EAAI96F,KAAKy1R,gBAAyB,OACrEvuR,EAAK0F,SAAWu7M,EAA6C3vK,YAAYglD,WAAWrT,WAAW2Q,EAAI96F,KAAKu1R,aAAcprM,WAAW2Q,EAAI96F,KAAKw1R,aAAe,IAAKrnQ,GAC9JjnB,EAAKkyH,WAAa,IAAI5kF,EAA0CwE,SAChE9xC,EAAKiK,KAAO7L,KAAKo8D,IAAI,EAAGyoB,WAAW2Q,EAAI96F,KAAK01R,cAAgB,GAC5D11R,KAAKk5H,WAAWnzF,GAAS7+B,EAAK0F,SAC9B5M,KAAKm5H,iBAAiBpzF,GAAS7+B,EAAKkyH,WACpCp5H,KAAK4xH,MAAMjtH,KAAKuC,GAChB6+B,GACJ,CACJ,EAEAgQ,KAAM,SAAU9T,GACZ,GAAKjiC,KAAKw4H,YAAV,CAGAv2F,EAAckY,OAAOC,OACrBnY,EAAc6W,IAAIk6D,qBAAqBhzG,KAAKk5H,WAAYl5H,KAAKm5H,kBAC7D,IAAIxlH,EAAMsuB,EAAckY,OACxBxmC,EAAI0mC,YAAc,GAClB,IAAIlU,EAAQlE,EAAckE,MACtBC,EAASnE,EAAcmE,OAEvBlc,GADYsqB,EAA0CwE,SAASwtD,SAASvkE,EAAciX,iBACxEjX,EAAc2W,eAAiB,KAC7C0C,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAK4xH,OACnE,MAAOt2E,EAAOE,WAAY,CACtB,IAAIt0C,EAAOo0C,EAAOI,QAClB,GAAIx0C,EAAKkyH,WAAW5iF,EAAI,EAAG,CACvB,IAAIzL,EAAI7jC,EAAKkyH,WAAWruF,EACpB/mC,EAAIkD,EAAKkyH,WAAWp1H,EACpBmN,EAAO,EAAIjK,EAAKiK,KAAO+Y,EACvBqvG,EAAOpoH,EAAO,EACd45B,GAAKwuF,GAAQxuF,EAAI5E,EAAQozF,GAAQv1H,GAAKu1H,GAAQv1H,EAAIoiC,EAASmzF,GAC3D5lH,EAAIi5G,UAAU5sH,KAAKi5H,aAAcluF,EAAI55B,EAAO,EAAGnN,EAAImN,EAAO,EAAGA,EAAMA,EAE3E,CACJ,CACA8wB,EAAckY,OAAOQ,SAtBrB,CAuBJ,IAGJ,EAAGgQ,EAA4CzS,cAAc,WAAY,CAACm9O,EAAUO,EAAW,MAGxF,EAED;;;6BAIA,CAAEj3R,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCy2R,UAAW,IAAM,EACjB37L,QAAS,IAAM,IAEjB,IAAI3vC,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzF+iE,EAA+C,yBAA4C,wBAahHsoK,EAAY,CACZC,QAAS,EACTpvP,SAAU,EACV7hC,MAAO,GASX,SAASq1F,EAAQ3vF,GACb1K,KAAKyqC,OAAS,EACdzqC,KAAKgL,aAAe,GACpBhL,KAAKk2R,YAAa,EAClBl2R,KAAK+3F,KAAOrtF,CAChB,EAXA,EAAGigD,EAA4CzS,cAAc,YAAa89O,IAC1E,EAAGrrO,EAA4C4jC,cAAc,YAAaynM,GAY1E,IAAIG,EAAW,CACX7qR,KAAM,WAGuB,qBAAd1F,YACX5F,KAAKo2R,QACLp2R,KAAK2sF,UAAUqpM,EAAUC,SAC7B,EAEAx7L,YAAa,WACT,OAAOz6F,KAAKq2R,QAChB,EAEA5pM,UAAW,WACP,OAAOzsF,KAAKyqC,MAChB,EAEAkiD,UAAW,SAAU/rF,GAKjB,OAJAZ,KAAKyqC,OAAS7pC,EACY,MAAtBZ,KAAKs6F,eACLt6F,KAAKs6F,gBAEF15F,CACX,EAEAoiH,UAAW,SAAUszK,GAEjBt2R,KAAKssR,MAAQgK,EACbt2R,KAAK2sF,UAAUqpM,EAAUnvP,SAC7B,EAEA0vP,UAAW,SAAUpsR,GAEjBnK,KAAKw2R,UAAYrsR,EACjBnK,KAAK2sF,UAAUqpM,EAAUnvP,SAC7B,EAEA4vP,OAAQ,WACJz2R,KAAKq2R,SAAW3rO,EAAoC9P,GAAGvU,OAAO,gCAAiCrmC,KAAK+3F,MACpG/3F,KAAK2sF,UAAUqpM,EAAUhxR,MAC7B,EAEA0xR,SAAU,WACN12R,KAAKq2R,SAAW3rO,EAAoC9P,GAAGvU,OAAO,kCAAmCrmC,KAAK+3F,MACtG/3F,KAAK2sF,UAAUqpM,EAAUhxR,MAC7B,EAEAoxR,MAAO,WACH,IAAIzrK,EAAQ3qH,KAEZA,KAAK22R,KAAO,IAAI7rR,eAChB,IACI9K,KAAK22R,KAAK5rR,KAAK,MAAO/K,KAAK+3F,MACF,MAArB/3F,KAAKgL,eACLhL,KAAK22R,KAAK3rR,aAAehL,KAAKgL,cAElChL,KAAK22R,KAAKC,mBAAqB,WAC3B,GAA8B,IAA1BjsK,EAAMgsK,KAAKE,WACX,GAAKlsK,EAAMgsK,KAAKnrR,OAgBRm/G,EAAMgsK,KAAKnrR,QAAU,KACrBm/G,EAAM0rK,SAAW1rK,EAAMgsK,KAAKG,WAC5BnsK,EAAMh+B,UAAUqpM,EAAUhxR,QAErB2lH,EAAM3/G,aAGP2/G,EAAM4rK,UAAU5rK,EAAMgsK,KAAKxrR,UAF3Bw/G,EAAM3H,UAAU2H,EAAMgsK,KAAKI,mBApBnC,IAAKpsK,EAAMurK,WAAY,CACnBvrK,EAAMurK,YAAa,EACnBvrK,EAAMgsK,KAAKC,mBAAqB,KAChC,IAAI1wJ,EAAUxY,EAA6C9zB,WAAW18D,UAAUipG,cAAcxb,EAAM5yB,MAGpF,OAAZmuC,GACAvb,EAAM5yB,KAAOmuC,EACbvb,EAAMyrK,UAENzrK,EAAM0rK,SAAW1rK,EAAMgsK,KAAKG,WAC5BnsK,EAAMh+B,UAAUqpM,EAAUhxR,OAElC,CAcZ,EACAhF,KAAK22R,KAAKrrR,MACd,CAAE,MAAOiiK,GAGL,MAFAvtK,KAAKq2R,SAAW9oH,EAAIx/J,QACpB/N,KAAK2sF,UAAUqpM,EAAUhxR,OACnBuoK,CACV,CACJ,EAEA5yE,QAAS,WACL,OAAO36F,KAAKssR,KAChB,EAEAnwI,QAAS,WACL,OAAOn8I,KAAKw2R,SAChB,EAEAvzK,OAAQ,WACJ,IAAI6pF,EAAU,IAAIC,UAClB,OAAOD,EAAQE,gBAAgBhtM,KAAKssR,MAAO,WAC/C,IAGJ,EAAG3hO,EAA4CzS,cAAc,UAAW,CAACmiD,EAAS87L,EAAU,MAGrF,EAED;;;yBAIA,CAAEx3R,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzCy3R,qBAAsB,IAAM,EAC5Bh3P,KAAM,IAAM,IAEd,IAAI0qB,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzF0uD,EAAkD,4BAA+C,2BACjGxjB,EAAgD,0BAA6C,yBAC7FohM,EAA4C,sBAAyC,qBACrFC,EAAyC,mBAAsC,kBAC/EC,EAA0C,oBAAuC,mBACjFC,EAA+C,yBAA4C,wBAkBpH,SAASJ,EAAqB9jR,EAAQ2sB,GAClC7/B,KAAK6/B,kBAAmB,EACxB7/B,KAAKq3R,mBAAqB,EAC1Br3R,KAAK8iH,YAAc5vG,EACnBlT,KAAK6/B,iBAAmBA,CAC5B,CAEA,IAAIy3P,EAAwB,CACxBC,cAAe,WACXv3R,KAAKq3R,qBACAr3R,KAAKq3R,oBACNr3R,KAAK8iH,aAEb,EAEA00K,sBAAuB,SAAUl1K,GAC7B,IAAIqI,EAAQ3qH,KAEZA,KAAKq3R,qBACL/0K,EAAOvoB,mBAAkB,WACrB/5D,EAAKy3P,cAAcn1K,EAAQqI,GAC3BA,EAAM4sK,eACV,GACJ,GAQJ,SAASv3P,IAAS,EALlB,EAAG2qB,EAA4CzS,cAAc,uBAAwB,CAAC8+O,EAAsBM,EAAuB,OAOnIt3P,EAAKC,YAAc,SAAUv1B,EAAKk4G,EAAU/iF,GAChB,MAApBA,IACAA,GAAmB,GAEvB,IAAIyiF,EAAS,IAAI60K,EAAwC/3K,OACzDkD,EAAO+D,QAAQ37G,GACf,IAAIgtR,EAAuB,IAAIV,EAAqBp0K,EAAU/iF,GAE9D,OADA63P,EAAqBF,sBAAsBl1K,GACpCA,CACX,GAEA,EAAGzsB,EAA8CsO,kBAAkBnkE,EAAKC,aAExED,EAAKy3P,cAAgB,SAAUn1K,EAAQo1K,GACnC,IAAIvyI,EAAW7iC,EAAOyC,eAClBzpE,EAASoP,EAAoC9P,GAAGW,UAAU4pG,GAE9D,MAAO7pG,EAAOE,WAAY,CACtB,IAAI4vC,EAAQ9vC,EAAOI,QACnB,GAAIgP,EAAoC9P,GAAG21C,QAAQnF,EAAO6rM,EAA0CrzK,UAAW,CAC3G,IAAI81F,EAAWtuH,EACfgsM,EAA6Cn6P,WAAW0C,wBAAwB+5K,EACpF,CACA,GAAIhvJ,EAAoC9P,GAAG21C,QAAQnF,EAAO8rM,EAAuC5zP,OAAQ,CACrG,IAAIhE,EAAQ8rD,EACqB,MAA7B9rD,EAAMm6D,qBACN29L,EAA6Cn6P,WAAW0C,wBAAwBL,EAAMm6D,qBAEpD,MAAlCn6D,EAAMyN,0BACNqqP,EAA6Cn6P,WAAW0C,wBAAwBL,EAAMyN,yBAE9F,CACI2d,EAAoC9P,GAAG21C,QAAQnF,EAAO+rM,EAAwC/3K,SAAWs4K,EAAqB73P,kBAC9H63P,EAAqBF,sBAAsB,EAEnD,CAEA,IAAK9sO,EAAoC9P,GAAGC,YAAYu8O,EAA6Cn6P,WAAW06P,cAAe,CAC3H,IAAIhtR,EAAOysR,EAA6Cn6P,WAAW06P,aAAappR,cAC5E42G,EAASz6D,EAAoC9P,GAAGW,UAAU67O,EAA6Cn6P,WAAWoM,gBACtH,MAAO87E,EAAO3pE,WAAY,CACtB,IAAIpZ,EAAW+iF,EAAOzpE,QAClBtZ,EAAS9gB,WAAW/S,gBAAkB5D,GACtC0uG,EAAgDuR,oBAAoBpnF,uBAAuBpB,EAEnG,CACJ,CACJ,EAEA,IAAIw1P,EAAQ,CAAC,GAEb,EAAGjtO,EAA4CzS,cAAc,OAAQ,CAAClY,EAAM43P,EAAO,MAG5E,EAED;;;gCAIA,CAAEj5R,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC09B,WAAY,IAAM,EAClBf,kBAAmB,IAAM,EACzB27P,gBAAiB,IAAM,IAEzB,IAAIntO,EAAsC,gBAAmC,eACzEC,EAA8C,wBAA2C,uBACzF0uD,EAAkD,4BAA+C,2BACjGxjB,EAAgD,0BAA6C,yBAC7Fq9K,EAA+C,yBAA4C,wBAC3Fv+N,EAAyC,mBAAsC,kBAC/E62G,EAA+C,yBAA4C,wBAC3FssI,EAAwC,kBAAqC,iBAC7EC,EAA4C,sBAAyC,qBACrFC,EAAyD,mCAAsD,kCAC/GC,EAAsD,+BAAkD,8BACxGC,EAA+C,wBAA2C,uBAC1FC,EAAsD,+BAAkD,8BACxGC,EAAmD,4BAA+C,2BAClGC,EAAgD,yBAA4C,wBAC5FC,EAA0C,mBAAsC,kBAChFC,EAA6C,sBAAyC,qBACtFC,EAAkD,2BAA8C,0BAChGC,EAA0C,mBAAsC,kBAChFC,EAA4C,qBAAwC,oBACpFC,EAA6C,sBAAyC,qBACtFC,EAA0D,mCAAsD,kCAChHC,EAAoD,6BAAgD,4BACpGC,EAAyC,kBAAqC,iBAC9EC,EAA+C,wBAA2C,uBAC1FC,EAAsD,+BAAkD,8BACxGC,EAA6C,sBAAyC,qBACtFC,EAA+C,wBAA2C,uBAC1FC,EAAsD,+BAAkD,8BACxGC,EAAyD,kCAAqD,iCAC9GC,EAAwD,iCAAoD,gCAC5GC,EAAoD,6BAAgD,4BACpGC,EAA+C,wBAA2C,uBAC1FC,EAAqD,8BAAiD,6BAyD/H,SAASv8P,IAKLj9B,KAAKu8B,kBAAmB,EAExBv8B,KAAKokC,aAAe,KACpBpkC,KAAKy5R,aAAe,GACpBz5R,KAAK05R,WAAa,GAClB15R,KAAK25R,gBAAkB,IAAI5B,EAA0Cl4L,SACrE7/F,KAAK45R,eAAiB,IAAInzR,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,GACpDzG,KAAK0oC,OAAS,GACd1oC,KAAK65R,YAAc,EACnB75R,KAAK85R,SAAW,IAChB95R,KAAK+5R,oBAAsB,KAC3B/5R,KAAKg6R,SAAW,iBAChBh6R,KAAKi6R,oBAAsB,KAC3Bj6R,KAAKggH,cAAgB,MACrBhgH,KAAKk6R,YAAc,KACnBl6R,KAAKm6R,MAAQjnB,EAA6ChnL,WAAW/pF,QAAO,EAAM,KAClFnC,KAAKo6R,iBAAkB,EACvBp6R,KAAKq6R,kBAAoB,KACzBr6R,KAAKk2P,QAAU,IAAI+hC,EAAoD10J,SACvEvjI,KAAKgqC,WAAa,EAClBhqC,KAAKs6R,oBAAsB,KAC3Bt6R,KAAKu6R,gBAAiB,EACtBv6R,KAAKw6R,gBAAkB,KACvBx6R,KAAKy6R,gBAAkB,KACvBz6R,KAAK06R,gBAAkB,CAAC,EACxB16R,KAAK26R,iBAAmB,EACxB36R,KAAK46R,aAAe,GAIpB56R,KAAK66R,WAAa,EAClB76R,KAAK+oH,WAAY,EACjB/oH,KAAKmoH,YAAa,EAClBnoH,KAAK86R,gBAAiB,EACtB96R,KAAKooH,OAAS,EACdpoH,KAAKqoH,OAAS,EACdroH,KAAK+6R,YAAc,IAAIl5R,MAAM,GAC7B7B,KAAKg7R,kBAAoB,IAAIn5R,MAAM,GACnC7B,KAAKi7R,QAAS,EACdj7R,KAAKk7R,UAAW,EAChBl7R,KAAKm7R,WAAY,EACjBn7R,KAAKo7R,eAAiB,EAEtBp7R,KAAKq7R,kBAAoB,KACzBr7R,KAAKs7R,UAAY,KACjBt7R,KAAKu7R,WAAY,EACjBv7R,KAAKw7R,gBAAkB,KACvBx7R,KAAKw9K,aAAc,EACnBx9K,KAAKy7R,kBAAoB,MACzBz7R,KAAK07R,SAAU,EACf17R,KAAK27R,qBAAuB,KAC5B37R,KAAK47R,0BAA4B,KACjC57R,KAAKklC,KAAO,KACZllC,KAAK6uC,SAAW,KAChB7uC,KAAK67R,YAAc,IACvB,CAIA5+P,EAAW6+P,UAAY,GACvB7+P,EAAW06P,aAAe,GAC1B16P,EAAW8+P,gBAAiB,EAC5B9+P,EAAW++P,eAAgB,EAC3B/+P,EAAWg/P,sBAAwB,KACnCh/P,EAAWi/P,wBAA0B,KACrCj/P,EAAWk/P,wBAA0B,CAAC,MAAO,UAAW,QAAS,OAAQ,UAAW,SAAU,SAAU,UAAW,QAAS,OAAQ,KAAM,SAAU,WAAY,WAAY,WAAY,eAAgB,iBAAkB,iBAAkB,cAAe,QAAS,SAAU,aAE9Ql/P,EAAW0C,wBAA0B,SAAUy8P,GAC3C,IAAI9gP,EAASoP,EAAoC9P,GAAGW,UAAUte,EAAW6+P,WACzE,MAAOxgP,EAAOE,WAAY,CACtB,IAAIpZ,EAAWkZ,EAAOI,QACtB,GAAItZ,EAAS6wH,mBAAqBmpI,EAAcnpI,iBAC5C,OAAO7wH,CAEf,CAEA,OADAnF,EAAW6+P,UAAUn3R,KAAKy3R,GACnBA,CACX,EAEAn/P,EAAWoM,aAAe,WACtB,OAAOpM,EAAW6+P,SACtB,EAGA7+P,EAAWo/P,iBAAmB,WAC1B,OAAOp/P,EAAW++P,aACtB,EAGA/+P,EAAWq/P,iBAAmB,SAAU17R,GAEpC,OADAq8B,EAAW++P,eAAgB,EACpBp7R,CACX,EAMAq8B,EAAWs/P,YAAc,SAAUC,GAC/B,OAAOv/P,EAAWw/P,aAAaD,GAAO,EAC1C,EAKAv/P,EAAWy/P,iBAAmB,SAAUF,EAAOG,GAC3C,OAAO1/P,EAAWw/P,aAAaD,GAAO,EAC1C,EAGAv/P,EAAWw/P,aAAe,SAAUD,EAAOngQ,GACvC,OAAOY,EAAW2/P,aAAaJ,EAAOngQ,EAAiB,EAAG,EAAG,IAAK,MACtE,EAGAY,EAAW2/P,aAAe,SAAUJ,EAAOngQ,EAAiBwgQ,EAAUC,EAAUC,EAAWlgQ,GACvF,GAAkF,MAA9Ew8E,EAAgDuR,oBAAoBzwE,OAAgB,CACpFld,EAAW+/P,gBAAkB,IAAIxD,EAAmDziE,gBACpF95L,EAAW+/P,gBAAgBh2R,SAAW2xR,EAA2C//L,SAASmgG,eAC1F,EAAGljG,EAA8CmO,2BAA2B/mE,EAAW+/P,iBACvF,IAAItzK,EAASzsF,EAAWggQ,qBAAqBT,GACzC1mP,EAAK4zE,EAAO4C,WAAW,UAa3B,GAXU,MAANx2E,GACA,EAAGujE,EAAgDk5G,oBAAmB,IAEtElnN,QAAQ6C,KAAK,6PACb4nC,EAAK4zE,EAAO4C,WAAW,UAGjB,MAANx2E,IACAA,EAAK4zE,EAAO4C,WAAW,uBAGjB,MAANx2E,EAAY,CACZ,IAAIniC,EAAM+1G,EAAO4C,WAAW,MAC5BjT,EAAgDuR,oBAAoBzwE,OAASxmC,CACjF,MACI,EAAG0lG,EAAgDg5G,oBAAoBv8K,GACvEujE,EAAgDuR,oBAAoB90E,GAAKA,GACzE,EAAGujE,EAAgDi5G,YAAW,GAGlEz8H,EAA8C4N,iBAAiBimB,OAASA,EACxErQ,EAAgDuR,oBAAoBzkF,MAAQujF,EAAOvjF,MACnFkzE,EAAgDuR,oBAAoBxkF,OAASsjF,EAAOtjF,OACpFyvD,EAA8C4N,iBAAiB/oF,MAAMgvG,EAAQmzK,EAAUC,EAAUC,GAEjG3E,EAAiD3iM,eAAeyE,2BAChEk/L,EAAuDh8P,aAAaq0I,wBAElD,UAAd50I,EACAw8E,EAAgDuR,oBAAoBpnF,uBAChE+0P,EAA2C30K,SAASzhH,OAChD,cACAqpJ,EAA6C5xD,WAAW18D,UAAU28D,cAAc,4CAChF0+L,EAA2C75Q,aAAaslB,MACxDu0P,EAA2Cr6Q,SAAS6uI,QACpDwrI,EAA2Cz5Q,eAAeutI,MAC1D,IACA,EACA,EACA,IACA,IACA,QACA,EACA,GACA,EACA,EACA,GACA,EACAb,EAA6C5xD,WAAW18D,UAAU28D,cAAc,wCAChF,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,OACA,UAGa,UAAdh9D,EAEPw8E,EAAgDuR,oBAAoBpnF,uBAChE+0P,EAA2C30K,SAASzhH,OAChD,uBACA,GACAo2R,EAA2C75Q,aAAaglB,IACxD60P,EAA2Cr6Q,SAAS6uI,QACpDwrI,EAA2Cz5Q,eAAeutI,MAC1D,IACA,EACA,EACA,IACA,IACA,QACA,EACA,OACA,EACA,EACA,GACA,EACA,IACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,QAIRhzC,EAAgDuR,oBAAoBpnF,uBAChE+0P,EAA2C30K,SAASzhH,OAChD,MACAqpJ,EAA6C5xD,WAAW18D,UAAU28D,cAAc,iCAChF0+L,EAA2C75Q,aAAaglB,IACxD60P,EAA2Cr6Q,SAAS6uI,QACpDwrI,EAA2Cz5Q,eAAeutI,MAC1D,IACA,EACA,GACA,IACA,IACA,QACA,EACA,GACA,EACA,EACA,GACA,EACAb,EAA6C5xD,WAAW18D,UAAU28D,cAAc,uBAChF,GACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,OAIhB,CAMA,OALAwf,EAAgDuR,oBAAoBh+E,WAAWsS,KAAO,EACtFm6D,EAAgDuR,oBAAoB6mG,UAChEp1L,GACAw5D,EAA8C4N,iBAAiB9yD,SAE5DklD,EAA8C2N,qBACzD,EAEAvmE,EAAWggQ,qBAAuB,SAAUT,GACxC,IAAIU,EAAM57R,SAASksR,eAAegP,GAC9B9yK,EAASpoH,SAASkL,cAAc,UAIpC,OAHAk9G,EAAOtjF,OAAS82P,EAAIvyG,aACpBjhE,EAAOvjF,MAAQ+2P,EAAItyG,YACnBsyG,EAAItpC,YAAYlqI,GACTA,CACX,EAEAzsF,EAAWkgQ,gBAAkB,WACzBv3R,UAAUw3R,YAAYC,mBAAmBpgQ,EAAWqgQ,aAAcrgQ,EAAWsgQ,kBACjF,EAEAtgQ,EAAWqgQ,aAAe,SAAUrjP,GAC1BA,EAAIpP,OAAOg2D,UACb83L,EAA2C//L,SAAS4D,qBAAqB5qE,gBAAgBqoB,EAAIpP,OAAOg2D,UAElG5mD,EAAIpP,OAAO+1D,WACb+3L,EAA2C//L,SAAS4D,qBAAqBzqE,gBAAgBkoB,EAAIpP,OAAO+1D,WAElG3mD,EAAIpP,OAAOo0D,UACb05L,EAA2C//L,SAAS4D,qBAAqB/qE,qBAAqBwoB,EAAIpP,OAAOo0D,SAEjH,EAEAhiE,EAAWsgQ,kBAAoB,SAAUtjP,GACrC,GAAW,MAAPA,GAA6B,MAAdA,EAAIpP,OACToP,EAAIpP,OAAOg2D,SACX5mD,EAAIpP,OAAO+1D,SAE7B,EAEA3jE,EAAWugQ,uBAAyB,SAAU7yR,GAC1CsyB,EAAW06P,aAAehtR,CAC9B,EAEAsyB,EAAWwgQ,uBAAyB,SAAU9yR,GAC1CsyB,EAAW06P,aAAehtR,CAC9B,EAEAsyB,EAAWygQ,WAAa,SAAUt/G,GAC9BnhJ,EAAW8+P,eAAiB39G,CAChC,EAEA,IAAIu/G,EAAc,CACdr/D,eAAgB,SAAU3lB,GACtB34M,KAAKy5R,aAAa90R,KAAKg0M,GACvBu/E,EAA6ChkP,WAAWmB,YAAa,CACzE,EAEAkpL,kBAAmB,SAAU5lB,GACzBjuJ,EAAoC9P,GAAG46C,OAAOx1F,KAAKy5R,aAAc9gF,GACjEu/E,EAA6ChkP,WAAWmB,YAAa,CACzE,EAEAmpL,kBAAmB,WACfx+N,KAAKy5R,aAAa92R,OAAS,EAC3Bu1R,EAA6ChkP,WAAWmB,YAAa,CACzE,EAEAuoP,mBAAoB,SAAU5yP,EAAIC,EAAKF,EAAG/mC,GACtC,GAAyB,MAArBhE,KAAKy5R,cAAwBz5R,KAAKy5R,aAAa92R,OAAS,EAAG,CAC3D,IACI24C,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKy5R,cACnE,MAAOn+O,EAAOE,WAAY,CACtB,IAAIqiP,EAAOviP,EAAOI,QAClB,GAAImiP,EAAK1mP,QAAQn3C,KAAKiiC,cAAe+I,EAAIC,EAAKF,EAAG/mC,GAE7C,OADA6xF,EAA8C2N,sBAAsBq5H,uBAAuB7xL,EAAIC,EAAK4yP,EAAKtxQ,WAClG,EAEXwZ,CACJ,CACJ,CACA,OAAO,CACX,EAEA+3P,iBAAkB,SAAU9yP,EAAIC,EAAKF,EAAG/mC,GACpC,GAAyB,MAArBhE,KAAKy5R,cAAwBz5R,KAAKy5R,aAAa92R,OAAS,EAAG,CAC3D,IACI24C,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKy5R,cACnE,MAAOn+O,EAAOE,WAAY,CACtB,IAAIqiP,EAAOviP,EAAOI,QAClB,GAAImiP,EAAK1mP,QAAQn3C,KAAKiiC,cAAe+I,EAAIC,EAAKF,EAAG/mC,GAG7C,OAFAhE,KAAK05R,WAAamE,EAAKpxQ,YACvBzsB,KAAK25R,gBAAkB5B,EAA0Cl4L,SAAS19F,OAAO4oC,EAAG/mC,IAC7E,EAEX+hC,CACJ,CACJ,CACA,OAAO,CACX,EAEAg4P,YAAa,WACT,OAAmD,MAA/C/9R,KAAKiiC,cAAc8K,0BAAoC/sC,KAAKiiC,cAAc8K,yBAAyB9J,mBAAqBs1P,EAA2C75Q,aAAaguI,YACzK1sJ,KAAK+5R,oBAEL/5R,KAAK85R,QAEpB,EAEAkE,YAAa,SAAUp9R,GAEnB,OADAZ,KAAK85R,SAAWl5R,EACTA,CACX,EAEAq9R,sBAAuB,SAAUr9R,GAC7BZ,KAAK+5R,oBAAsBn5R,CAC/B,EAEAs9R,YAAa,WACT,OAAmD,MAA/Cl+R,KAAKiiC,cAAc8K,0BAAoC/sC,KAAKiiC,cAAc8K,yBAAyB9J,mBAAqBs1P,EAA2C75Q,aAAaguI,YACzK1sJ,KAAKi6R,oBAELj6R,KAAKg6R,QAEpB,EAEAmE,YAAa,SAAUv9R,GAEnB,OADAZ,KAAKg6R,SAAWp5R,EACTA,CACX,EAEAw9R,sBAAuB,SAAUx9R,GAC7BZ,KAAKi6R,oBAAsBr5R,CAC/B,EAEAy9R,oBAAqB,WAAc,EAEnCC,mBAAoB,WAChB,OAAOt+R,KAAKo6R,eAChB,EAEAhlB,mBAAoB,SAAUx0Q,GAY1B,OAXIA,GAASZ,KAAKo6R,kBAAoBx5R,IAC9BZ,KAAKq6R,kBAETr6R,KAAKq6R,kBAAoBr6R,KAAKiiC,cAAcwrL,qBAEhDztN,KAAKo6R,gBAAkBx5R,EAClBA,GAC6B,MAA1BZ,KAAKq6R,oBACLr6R,KAAKq6R,kBAAoB,MAG1Bz5R,CACX,EAEA29R,WAAY,WACR,GAA6B,MAAzBv+R,KAAKiiC,cAAc6T,GAAY,CAC/B,IAAIgsF,EAAK62J,EAA2C//L,SAASC,aAAakvI,WAAW,IACrF,GAAKjmG,EAAGrgH,QAAU,EAAI,CAClB,IAAI5O,EAAQ8hC,EAAuCyD,MAAMs4C,eAAe,IAAMuoM,EAA2C5yI,QAAQuG,MAAM,IAAMliG,EAAoC9P,GAAGyG,SAAuB,IAAbygF,EAAGrgH,SAAiB,EAAI,KAAMkzB,EAAuCkD,OAAOq5C,aAY1Q,GAXM4wC,EAAGrgH,QAAU,IACf5O,EAAQ8hC,EAAuCyD,MAAMs4C,eAAe,IAAMuoM,EAA2C5yI,QAAQuG,MAAM,IAAMliG,EAAoC9P,GAAGyG,SAAuB,IAAbygF,EAAGrgH,SAAiB,EAAI,KAAMkzB,EAAuCkD,OAAOq5C,cAEtQlxF,KAAKo6R,gBACLvnR,EAAQ8hC,EAAuCyD,MAAMs4C,eAAeuoM,EAA2C5yI,QAAQuG,MAAMliG,EAAoC9P,GAAGyG,SAAuB,IAAbygF,EAAGrgH,SAAiB,EAAI,KAAMkzB,EAAuCkD,OAAOC,aAG5N,MAA1B93C,KAAKq6R,oBACLr6R,KAAKq6R,kBAAoB,MAGT,MAApBr6R,KAAKk6R,YAAqB,CAC1Bl6R,KAAKk6R,YAAc,IAAIr4R,MAAM,GAC7B,IAAK,IAAIW,EAAI,EAAGA,EAAI,EAAGA,IACnBxC,KAAKk6R,YAAY13R,GAAK,IAAIu1R,EAA0C/yL,uBAE5E,CACAhlG,KAAKk6R,YAAY,GAAGn0L,SAASh7D,GAAK/qC,KAAKiiC,cAAckE,MAAQ,EAC7DnmC,KAAKk6R,YAAY,GAAGn0L,SAAS/hG,EAAIhE,KAAKiiC,cAAcmE,OAAS,EAC7DpmC,KAAKk6R,YAAY,GAAGn0L,SAASvvD,EAAI,KACjCx2C,KAAKk6R,YAAY,GAAGr0L,GAAK,EACzB7lG,KAAKk6R,YAAY,GAAGp0L,GAAK,EACzB9lG,KAAKk6R,YAAY,GAAGrnR,MAAQA,EAC5B7S,KAAKk6R,YAAY,GAAGn0L,SAASh7D,GAAK/qC,KAAKiiC,cAAckE,MAAQ,EAC7DnmC,KAAKk6R,YAAY,GAAGn0L,SAAS/hG,GAAKhE,KAAKiiC,cAAcmE,OAAS,EAC9DpmC,KAAKk6R,YAAY,GAAGn0L,SAASvvD,EAAI,KACjCx2C,KAAKk6R,YAAY,GAAGr0L,GAAK,EACzB7lG,KAAKk6R,YAAY,GAAGp0L,GAAK,EACzB9lG,KAAKk6R,YAAY,GAAGrnR,MAAQA,EAC5B7S,KAAKk6R,YAAY,GAAGn0L,SAASh7D,EAAI/qC,KAAKiiC,cAAckE,MAAQ,EAC5DnmC,KAAKk6R,YAAY,GAAGn0L,SAAS/hG,EAAIhE,KAAKiiC,cAAcmE,OAAS,EAC7DpmC,KAAKk6R,YAAY,GAAGn0L,SAASvvD,EAAI,KACjCx2C,KAAKk6R,YAAY,GAAGr0L,GAAK,EACzB7lG,KAAKk6R,YAAY,GAAGp0L,GAAK,EACzB9lG,KAAKk6R,YAAY,GAAGrnR,MAAQA,EAC5B7S,KAAKk6R,YAAY,GAAGn0L,SAASh7D,EAAI/qC,KAAKiiC,cAAckE,MAAQ,EAC5DnmC,KAAKk6R,YAAY,GAAGn0L,SAAS/hG,GAAKhE,KAAKiiC,cAAcmE,OAAS,EAC9DpmC,KAAKk6R,YAAY,GAAGn0L,SAASvvD,EAAI,KACjCx2C,KAAKk6R,YAAY,GAAGr0L,GAAK,EACzB7lG,KAAKk6R,YAAY,GAAGp0L,GAAK,EACzB9lG,KAAKk6R,YAAY,GAAGrnR,MAAQA,EAC5B7S,KAAKk2P,QAAQngN,KAAK/1C,KAAKiiC,cAAejiC,KAAKk6R,YAAa,EAAGl6R,KAAKq6R,mBAAmB,EAAM,EAC7F,CACJ,CACJ,EAEA/zP,aAAc,SAAUk4P,EAAgBx3E,EAAOt9I,EAAQ+0N,EAAiBC,EAAaC,GACjF3+R,KAAKu6R,gBAAiB,EACtBv6R,KAAKw6R,gBAAkBgE,EACvB9zO,EAAoC9P,GAAG24H,UAAUvzK,KAAK06R,iBACtD16R,KAAK26R,iBAAmB,EACxB36R,KAAK46R,aAAaj4R,OAAS,EAC3B3C,KAAKy6R,gBAAkB,IAAIzB,EAAoDvG,gBAAgBzrE,EAAOt9I,EAAQ+0N,EAAiBE,GAAQ,GACvI/F,EAAwDt7P,oBAAoB4vM,cAAe,EAC3F0rD,EAAwDt7P,oBAAoB2J,gBAAkBw3P,EAC9F7F,EAAwDt7P,oBAAoByJ,YAAc23P,EAC1F9F,EAAwDt7P,oBAAoB8vM,mBAAqB,CACrG,EAIAz8L,OAAQ,WACJ,IAAIg6E,EAAQ3qH,KAEZA,KAAKqyC,iBACLtlC,YAAW,WACP49G,EAAMh6E,QACV,GAAG,GACP,EAEA0B,eAAgB,WACuC,MAA/CryC,KAAKiiC,cAAc8K,yBACnB/sC,KAAKgqC,WAAahqC,KAAKiiC,cAAc8K,yBAAyB9J,kBAE9DjjC,KAAKgqC,WAAa,EAEtB,IAAI40P,GAAa,EAajB,GAZI5+R,KAAK0pH,OAAOvjF,QAAUnmC,KAAK0pH,OAAO6kK,WAAW3jG,cAC7C5qL,KAAK0pH,OAAOvjF,MAAQnmC,KAAK0pH,OAAO6kK,WAAW3jG,YAC3Cg0G,GAAa,GAEb5+R,KAAK0pH,OAAOtjF,SAAWpmC,KAAK0pH,OAAO6kK,WAAW5jG,eAC9C3qL,KAAK0pH,OAAOtjF,OAASpmC,KAAK0pH,OAAO6kK,WAAW5jG,aAC5Ci0G,GAAa,GAEbA,GAA+B,MAAjB5+R,KAAK8/G,UACnB9/G,KAAK8/G,SAAS+E,YAGd7kH,KAAK0pH,OAAOvjF,MAAQ,GAAKnmC,KAAK0pH,OAAOtjF,OAAS,GAAlD,CAyBA,GAdIw4P,IAIA5+R,KAAK67R,YAAc,MAGvB/C,EAAuCl/K,KAAK0tC,iBAAmBwxI,EAAuCl/K,KAAK2mI,aAC3Gs4C,EAAkD78K,eAAe71E,MAAQnmC,KAAKiiC,cAAckE,MAAQnmC,KAAK0pH,OAAOvjF,MAChH0yP,EAAkD78K,eAAe51E,OAASpmC,KAAKiiC,cAAcmE,OAASpmC,KAAK0pH,OAAOtjF,OAClH0yP,EAAuCl/K,KAAK6rC,YAAc,EAC1DqzI,EAAuCl/K,KAAK4qC,aAAe,EAC3Ds0I,EAAuCl/K,KAAK2mI,aAAe,EAC3Dq4C,EAAwDt7P,oBAAoB8wM,YAAY1jL,EAAoC9P,GAAGp0C,OACtG,MAArBxG,KAAK6+R,cAGL,GAFAjG,EAAwDt7P,oBAAoBoQ,QAAQ1tC,KAAK6+R,aAAa7K,uBACtG0E,EAA0Cz6I,QAAQ4gE,sBAAsB7+M,KAAKu9K,uBACpD,MAArBv9K,KAAK6+R,aAAsB,CAC3B,IAAIC,EAAS9+R,KAAK6+R,aAAa/K,sBAG/B,GAFA9zR,KAAKiiC,cAAc87I,aAAe+gH,EAAO71M,OACzCjpF,KAAKiiC,cAAc2K,WAAakyP,EAAO71M,OACnCjpF,KAAKiiC,cAAck7F,OAASw7J,EAA2C//L,SAASC,aAAa5nE,mBAAoB,CACjH,IAAIg/L,EAASooE,EAA8C7/O,YAAY6pD,gBAAkC,GAAlBy8L,EAAO1uM,SAAe0uM,EAAOzuM,WACpHrwF,KAAKiiC,cAAc4oL,UAAY7qN,KAAKiiC,cAAcsgB,IAAM0tK,EAAO,GAC/DjwN,KAAKiiC,cAAc6oL,SAAW9qN,KAAKiiC,cAAc2oL,GAAKqF,EAAO,EACjE,MACK,GAAIjwN,KAAKiiC,cAAck7F,OAASw7J,EAA2C//L,SAASC,aAAaznE,uBAAwB,CAC1H,IAAI2tQ,EAAe1G,EAA8C7/O,YAAYgmD,oBAAoB65L,EAA8C7/O,YAAYmnD,UAAUm/L,EAAO1uM,SAAU0uM,EAAOzuM,WAAYuoM,EAAwDt7P,oBAAoByhH,eAAgB65I,EAAwDt7P,oBAAoB0P,WACjXhtC,KAAKiiC,cAAc4oL,UAAY7qN,KAAKiiC,cAAcsgB,IAAMw8O,EAAar/L,UACrE1/F,KAAKiiC,cAAc6oL,SAAW9qN,KAAKiiC,cAAc2oL,GAAKm0E,EAAaz/L,QACvE,CACIt/F,KAAK6+R,aAAahL,iBAClBh+L,EAA8C2N,sBAAsBo5H,aAAa58N,KAAK6+R,aAAa/K,sBAAsB1jM,SAAUpwF,KAAK6+R,aAAa/K,sBAAsBzjM,UAAWgpB,EAAgDuR,oBAAoBh+E,WAAWlQ,MACrQ18B,KAAKipQ,WAAW,MAChBjpQ,KAAKq+R,sBAEb,OAEAzF,EAAwDt7P,oBAAoBmwM,cAC5EirD,EAA0Cz6I,QAAQ4gE,sBAAsB7+M,KAAKu9K,uBAC7Ev9K,KAAKg/R,wBAGT,GADAh/R,KAAKiiC,cAAcyyF,QACK,IAApB10H,KAAKgqC,WAAkB,CACvB,GAAIhqC,KAAKy7R,kBAAoB,GACZ/C,EAA0Cz6I,QAAQsgE,wBAAwBv+M,KAAKy7R,mBAC7Ez7R,KAAKiiC,cAAcsiL,gCACnBvkN,KAAKiiC,cAAcuuL,eAElCxwN,KAAKw7R,gBAETx7R,KAAKiiC,cAAc2uL,0BAAyB,GAC5C,IAAIl0L,EAAO18B,KAAKiiC,cAAc2K,WAAWlQ,KACrCuiQ,EAAgB35R,KAAKilF,IAAI,EAAGjlF,KAAKC,IAAI,EAAID,KAAK6I,IAAIuuB,GAAQ,KAAQ,KAClEwiQ,EAAkB55R,KAAKilF,IAAI,EAAGjlF,KAAKC,IAAI,EAAID,KAAK6I,IAAIuuB,GAAQ,MAAS,KACrEyiQ,EAAWn/R,KAAKiiC,cAAcw3F,YAC9B2lK,EAAap/R,KAAKiiC,cAAcw3F,YAAYpkC,QAChD+pM,EAAWvtL,UAAUkmL,EAA0ClzL,SAASmL,SAAS,IAAQ,IAAQ,MACjGovL,EAAWvtL,UAAUkmL,EAA0ClzL,SAAS6K,WAAW,KAAO,IAAMpqG,KAAK8Z,KACrGggR,EAAWvtL,UAAUkmL,EAA0ClzL,SAASmM,YAAYhxG,KAAKiiC,cAAcgrE,iBACvGjtG,KAAKiiC,cAAcs9G,UAAU6/I,GAC7Bp/R,KAAKiiC,cAAcq9G,cAAc8/I,GACjCp/R,KAAKiiC,cAAck7F,OAAQ,EAC3Bn9H,KAAKiiC,cAAcu9G,cACnB,IAAI5d,EAAW5hI,KAAKiiC,cAAc2/F,SAElC,GADA5hI,KAAKiiC,cAAc2/F,UAAW,EAC1B+2J,EAA2C//L,SAASC,aAAavgE,2BAC7D2mQ,EAAgB,IACgB,MAA5Bj/R,KAAKs6R,sBACLt6R,KAAKs6R,oBAAsBt6R,KAAKgiC,kBAAkB,iCAEtB,MAA5BhiC,KAAKs6R,qBAA6B,CAClCzB,EAAkD78K,eAAe0rG,YAAa,EAC9E,IAAI9oN,GAAK,EAAIqgS,GAAiB,EAC9Bj/R,KAAKiiC,cAAcu3D,aAAax5F,KAAKs6R,oBAAyB,IAAJ17R,GAC1Di6R,EAAkD78K,eAAe0rG,YAAa,CAClF,CAGR1nN,KAAKq/R,mBACLr/R,KAAKiiC,cAAc2/F,SAAWA,EAC9B5hI,KAAKiiC,cAAck7F,OAAQ,EAC3Bn9H,KAAKiiC,cAAcs9G,UAAU4/I,GAC7Bn/R,KAAKiiC,cAAcq9G,cAAc6/I,GACjCn/R,KAAKiiC,cAAcu9G,cACnB,IAAI8/I,EAAYt/R,KAAKiiC,cAAcgrE,eAC/ByoE,EAAS11K,KAAKiiC,cAAcw3F,YAC5B+nF,EAAWxhN,KAAKiiC,cAAcw3F,YAClC+nF,EAAS3vG,UAAUkmL,EAA0ClzL,SAASmM,YAAYhxG,KAAKiiC,cAAc2K,WAAWoiD,aAChHhvF,KAAKiiC,cAAcgrE,eAAiB8qL,EAA0C/+O,SAASsqD,gBAAgBtjG,KAAKiiC,cAAcgrE,eAAgBjtG,KAAKiiC,cAAc2K,WAAWoiD,YACxKhvF,KAAKiiC,cAAcs9G,UAAUiiE,GAC7BxhN,KAAKiiC,cAAcu9G,cACfm5I,EAA2C//L,SAASC,aAAa7gE,yBACjEsgQ,EAAwCpgJ,MAAMsE,aAAax8I,KAAKiiC,cAAe,GAE/E02P,EAA2C//L,SAASC,aAAavgE,2BAA6B4mQ,EAAkB,GAChH5G,EAAwCpgJ,MAAM8C,gBAAgBh7I,KAAKiiC,cAAei9P,GAElFvG,EAA2C//L,SAASC,aAAal/D,wBACjE2+P,EAAwCpgJ,MAAMiD,YAAYn7I,KAAKiiC,cAAe,GAElFu/K,EAAW9rC,EACX,IAAIj6H,EAAMz7C,KAAKiiC,cAAc2K,WAAWoiD,WACpCuwM,EAAKxH,EAA0C/+O,SAAS72C,QAAQs5C,EAAI1Q,GAAI0Q,EAAIz3C,GAAIy3C,EAAIjF,GACxFx2C,KAAKiiC,cAAcgrE,eAAiBqyL,EACpC99E,EAAS3vG,UAAUkmL,EAA0ClzL,SAASmM,YAAYuuL,IAClFv/R,KAAKiiC,cAAcs9G,UAAUiiE,GAC7BxhN,KAAKiiC,cAAcu9G,cACnB45I,EAAuDh8P,aAAa25I,MAAM/2K,KAAKiiC,cAAe,GAAG,EAAM,OAAO,GAAM,GACpHjiC,KAAKiiC,cAAcs9G,UAAUm2B,GAC7B11K,KAAKiiC,cAAcu9G,cACfx/I,KAAKiiC,cAAcsiL,gCAAkC,OACrDvkN,KAAKiiC,cAAc2uL,0BAAyB,GACxC+nE,EAA2C//L,SAASC,aAAapgE,+BACjE+/P,EAAgDpkF,aAAakB,UAAUt1M,KAAKiiC,cAAe,EAAGjiC,KAAKiiC,cAAc2K,WAAWoiD,YAE5H2pM,EAA2C//L,SAASC,aAAax/D,0BACjEkgQ,EAA6Ct2E,UAAUmB,cAAcpkN,KAAKiiC,cAAe,EAAGjiC,KAAKiiC,cAAc2K,WAAWoiD,YAGtI,KAAO,CASH,GAPKhvF,KAAKgqC,YAAkC,IAApBhqC,KAAKgqC,WAIzBhqC,KAAKiiC,cAAc6tL,qBAAqB9vN,KAAKiiC,cAAckE,MAAOnmC,KAAKiiC,cAAcmE,QAHrFpmC,KAAKiiC,cAAcutL,uBAKvBxvN,KAAKiiC,cAAcu3D,aAAax5F,KAAKiiC,cAAc8K,yBAA0B,KAC1B,MAA/C/sC,KAAKiiC,cAAciL,yBACnB,GAAIltC,KAAKiiC,cAAciL,yBAAyBjK,oBAAsBjjC,KAAKiiC,cAAc8K,yBAAyB9J,kBAC9GjjC,KAAKiiC,cAAcisL,uBAAuB,WAG1C,GAA8C,MAA1CluN,KAAKiiC,cAAc2K,WAAWnrB,SAA4C,MAAzBzhB,KAAKiiC,cAAc6T,GAAY,CAC5E91C,KAAKq7R,kBAAkBl1P,QAAUnmC,KAAKiiC,cAAckE,OAASnmC,KAAKq7R,kBAAkBj1P,SAAWpmC,KAAKiiC,cAAcmE,SAClHpmC,KAAKq7R,kBAAkBl1P,MAAQukB,EAAoC9P,GAAGyG,SAASrhD,KAAKiiC,cAAckE,OAClGnmC,KAAKq7R,kBAAkBj1P,OAASskB,EAAoC9P,GAAGyG,SAASrhD,KAAKiiC,cAAcmE,SAEvG,IAAIo5P,EAAax/R,KAAKiiC,cAAckY,OACpCn6C,KAAKs7R,UAAU/9H,UAAU,EAAG,EAAGv9J,KAAKiiC,cAAckE,MAAOnmC,KAAKiiC,cAAcmE,QAC5EpmC,KAAKiiC,cAAckY,OAASn6C,KAAKs7R,UACjCt7R,KAAKiiC,cAAcu3D,aAAax5F,KAAKiiC,cAAciL,yBAA0B,KAC7EltC,KAAKiiC,cAAckY,OAASqlP,EAC5Bx/R,KAAKiiC,cAAckY,OAAOC,OAC1Bp6C,KAAKiiC,cAAckY,OAAOE,YAAcr6C,KAAKiiC,cAAc2K,WAAWnrB,QAAU,IAChFzhB,KAAKiiC,cAAckY,OAAOyyE,UAAU5sH,KAAKq7R,kBAAmB,EAAG,GAC/Dr7R,KAAKiiC,cAAckY,OAAOQ,SAC9B,MAEI36C,KAAKiiC,cAAcu3D,aAAax5F,KAAKiiC,cAAciL,yBAA0BltC,KAAKiiC,cAAc2K,WAAWnrB,SAIvH,GAAwB,IAApBzhB,KAAKgqC,WAAkB,CACvB,IAAIsR,EAASoP,EAAoC9P,GAAGW,UAAUv7C,KAAKiiC,cAAcksL,4BACjF,MAAO7yK,EAAOE,WAAY,CACtB,IAAIpZ,EAAWkZ,EAAOI,QAClBtZ,EAAS0F,qBAAqBC,8BAA8BpnB,SAAWyhB,EAAS0F,qBAAqBC,8BAA8Bo7J,cAAgB/gK,EAAS0F,qBAAqBC,8BAA8B3lB,eAC/MpiB,KAAKiiC,cAAcu3D,aAAap3D,EAAU,IAElD,CACJ,CAMA,GALwB,IAApBpiC,KAAKgqC,YAAoB2uP,EAA2C//L,SAASC,aAAathE,wBAC1FmhQ,EAA0Cz6I,QAAQkiE,YAAYngN,KAAKiiC,cAAe,GAClFjiC,KAAKggH,cAAgBo4K,EAAiD3iM,eAAe8B,YAAYsF,0BAA0B78F,KAAKiiC,cAAc2K,WAAWwjD,SAAUpwF,KAAKiiC,cAAc2K,WAAWyjD,WACjMrwF,KAAKq/R,oBAELr/R,KAAKy/R,kBAAoBz/R,KAAK0/R,YAAa,CAC3C,GAAK1/R,KAAK0/R,YAQN1/R,KAAKiiC,cAAcm0I,yBAAyBp2K,KAAKiiC,cAAcw3F,aACzB,MAAlCz5H,KAAK47R,2BACL57R,KAAKiiC,cAAco0I,kBAAkBr2K,KAAK47R,0BAA0B/pI,sBAVrD,CACnB,IAAI/iE,EAAQupM,EAA8C7/O,YAAYomD,YAAYg6L,EAAwDt7P,oBAAoB0P,UAAW,GAAK,IAAM1nC,KAAK8Z,GACzLpf,KAAKiiC,cAAcm0I,yBAAyB2hH,EAA0ClzL,SAAS+H,eAAemrL,EAA0ClzL,SAAS+K,WAAW9gB,GAAQ9uF,KAAKiiC,cAAco9G,kBACjK,MAAlCr/I,KAAK47R,2BACL57R,KAAKiiC,cAAco0I,kBAAkBr2K,KAAK47R,0BAA0B/pI,iBAE5E,CAOA,IAAI9vI,EAAiB/hB,KAAKmpC,2BAC1BiwP,EAAuDh8P,aAAa25I,MAAM/2K,KAAKiiC,cAAe,EAAGjiC,KAAK0/R,YAAa39Q,GAAgB,EAAM/hB,KAAK0/R,YAClJ,CACJ,CACA,IAAIC,EAAY3/R,KAAKiiC,cAAcw3F,YAC/BmmK,EAAW5/R,KAAKiiC,cAAcy3F,WAC9BmmK,EAAW7/R,KAAKiiC,cAAcg7F,iBAIlC,GAHI07J,EAA2C//L,SAASmgG,cAAc9kK,sBAClEj0B,KAAK8/R,gBAAgB9/R,KAAKiiC,eAEL,MAArBjiC,KAAKokC,aACLpkC,KAAKokC,aAAauM,OAAO3wC,KAAKiiC,mBAC3B,CAEHi2P,EAA6ChkP,WAAWoB,UAAUt1C,KAAKiiC,eACvE,IAAIkjF,EAASz6D,EAAoC9P,GAAGW,UAAUv7C,KAAKy5R,cACnE,MAAOt0K,EAAO3pE,WAAY,CACtB,IAAIt0C,EAAOi+G,EAAOzpE,QAClBx0C,EAAK6uC,KAAK/1C,KAAKiiC,cAEnB,CAEA,GADAi2P,EAA6ChkP,WAAW2B,UAAU71C,KAAKiiC,eAClEyoB,EAAoC9P,GAAGp0C,MAAQxG,KAAK45R,eAAkB,IAAK,CAC5E,IAAImG,EAAY//R,KAAK8qC,6BAA6B9qC,KAAK25R,gBAAgB5uP,EAAG/qC,KAAK25R,gBAAgB31R,GAC/FhE,KAAK89R,iBAAiBiC,EAAUh1P,EAAGg1P,EAAU/7R,EAAGhE,KAAK25R,gBAAgB5uP,EAAG/qC,KAAK25R,gBAAgB31R,GAC7FhE,KAAK45R,eAAiB,IAAInzR,KAAK,KAAM,EAAG,EAC5C,CACKikD,EAAoC9P,GAAGC,YAAY76C,KAAK05R,aACzD15R,KAAKggS,eAAehgS,KAAKiiC,cAEjC,CACA,IAAIg+P,GAAkBlH,EAA6CvoP,UAAUozM,iBAC7E5jP,KAAKiiC,cAAcyuL,wBACnB1wN,KAAKu+R,aACLv+R,KAAK65R,cACLd,EAA6CvoP,UAAUy0M,gBACvD8zC,EAA6CvoP,UAAU2zM,aAAankP,KAAKiiC,eACzE62P,EAAuCl/K,KAAK2qC,0BACvC40I,EAAoDh7P,WAAWoG,eAChEvkC,KAAKo1Q,oBAAmB,GAI5Bp1Q,KAAKiiC,cAAcs9G,UAAUogJ,GAC7B3/R,KAAKiiC,cAAcorL,SAASuyE,GAC5B5/R,KAAKiiC,cAAc8wH,eAAe8sI,GAClC,IAAIr5R,EAAMkkD,EAAoC9P,GAAGp0C,MAC7CsoO,EAAKtoO,EAAMxG,KAAKihH,YAChB6tH,EAAK,MACL9uO,KAAKihH,YAAcz6G,EACnBxG,KAAK65R,YAAc,EACnBhB,EAAkD78K,eAAe+oC,kBAAoB,EACrF8zI,EAAkD78K,eAAeq3G,gBAAkB,GAEnFrzN,KAAKu6R,iBACwB,MAAxBv6R,KAAKy6R,iBAA8Bz6R,KAAKy6R,gBAAgB9H,eAAgBsN,IACzEjgS,KAAKkgS,qBAAqBlgS,KAAKw6R,gBAAiBx6R,KAAKy6R,gBAAgBt0P,MAAOnmC,KAAKy6R,gBAAgBr0P,OAAQpmC,KAAKy6R,gBAAgBp0P,QAC9HuyP,EAAwDt7P,oBAAoB+wM,aAE5EuqD,EAAwDt7P,oBAAoBkxM,oBAC5EoqD,EAAwDt7P,oBAAoB4vM,cAAe,EAC3F0rD,EAAwDt7P,oBAAoB6vM,iBAAkB,EAC9FntO,KAAKu6R,gBAAiB,GAtP9B,CAyPJ,EAEApxP,yBAA0B,WACtB,GAAmD,MAA/CnpC,KAAKiiC,cAAc8K,yBACnB,MAAO,MAEX,IAAK2d,EAAoC9P,GAAGC,YAAY76C,KAAKiiC,cAAc8K,yBAAyBjrB,sBAChG,OAAO9hB,KAAKiiC,cAAc8K,yBAAyBjrB,qBAEvD,IAAK9hB,KAAKiiC,cAAc8K,yBAAyB9J,kBAC7C,MAAO,QAEX,GAA+D,oBAA3DjjC,KAAKiiC,cAAc8K,yBAAyBzrB,YAAoCthB,KAAKiiC,cAAc8K,yBAAyBpF,UAAUp5B,cAAc0K,QAAQ,SAAW,EAEvK,OADAjZ,KAAKiiC,cAAc8K,yBAAyB/qB,mBAAmB,QACxDhiB,KAAKiiC,cAAc8K,yBAAyBjrB,qBAEvD,GAAsE,IAAlE9hB,KAAKiiC,cAAc8K,yBAAyB9J,kBAAyB,CACrE,IAAIqY,EAASoP,EAAoC9P,GAAGW,UAAUte,EAAWk/P,yBACzE,MAAO7gP,EAAOE,WAAY,CACtB,IAAI7wC,EAAO2wC,EAAOI,QAClB,GAAI17C,KAAKiiC,cAAc8K,yBAAyBzrB,WAAW/S,cAAc0K,QAAQtO,EAAK4D,gBAAkB,EAEpG,OADAvO,KAAKiiC,cAAc8K,yBAAyB/qB,mBAAmBrX,GACxDA,CAEf,CACJ,CACA,OAAsE,IAAlE3K,KAAKiiC,cAAc8K,yBAAyB9J,kBACrC,MAEJ,EACX,EAEAw8P,eAAgB,WACZ,OAAmD,MAA/Cz/R,KAAKiiC,cAAc8K,4BACX/sC,KAAKiiC,cAAc8K,yBAAyB9J,mBAAuF,IAAlEjjC,KAAKiiC,cAAc8K,yBAAyB9J,kBAI7H,EAEAy8P,UAAW,WACP,OAAmD,MAA/C1/R,KAAKiiC,cAAc8K,0BACsD,IAAlE/sC,KAAKiiC,cAAc8K,yBAAyB9J,iBAI3D,EAEAo8P,iBAAkB,WACV1G,EAA2C//L,SAASC,aAAarlE,kCAAoCxzB,KAAKu8B,kBAC1G67P,EAAiD3iM,eAAe0D,YAAYn5F,KAAKiiC,eAEjF02P,EAA2C//L,SAASC,aAAa3lE,iCACzB,MAApC+J,EAAWg/P,wBACXh/P,EAAWg/P,sBAAwB7D,EAAiD3iM,eAAetzF,OAC/F,iBACAqpJ,EAA6C5xD,WAAW18D,UAAUi9D,eAAe,gBACjF,GACA,GACA,IAGRl9D,EAAWg/P,sBAAsBlmP,KAAK/1C,KAAKiiC,eAAe,EAAO,OAAO,IAExE02P,EAA2C//L,SAASC,aAAankE,yBACjE4jQ,EAAwCpgJ,MAAM2H,iBAAiB7/I,KAAKiiC,cAAe,EAAG02P,EAA2C//L,SAASC,aAAaquI,yBACnJyxD,EAA2C//L,SAASC,aAAahkE,4BACjEyjQ,EAAwCpgJ,MAAM6H,qBAAqB//I,KAAKiiC,cAAe,EAAG02P,EAA2C//L,SAASC,aAAaquI,0BAG/JyxD,EAA2C//L,SAASC,aAAapjE,yBACjE6iQ,EAAwCpgJ,MAAMgI,iBAAiBlgJ,KAAKiiC,cAAe,EAAG02P,EAA2C//L,SAASC,aAAauuI,yBACnJuxD,EAA2C//L,SAASC,aAAajjE,4BACjE0iQ,EAAwCpgJ,MAAMkI,qBAAqBpgJ,KAAKiiC,cAAe,EAAG02P,EAA2C//L,SAASC,aAAauuI,0BAG/JuxD,EAA2C//L,SAASC,aAAapmE,sBACjE6lQ,EAAwCpgJ,MAAM0G,cAAc5+I,KAAKiiC,cAAe,EAAG02P,EAA2C//L,SAASC,aAAayuI,sBAChJqxD,EAA2C//L,SAASC,aAAajmE,yBACjE0lQ,EAAwCpgJ,MAAMuH,kBAAkBz/I,KAAKiiC,cAAe,EAAG02P,EAA2C//L,SAASC,aAAayuI,uBAG5JqxD,EAA2C//L,SAASC,aAAariE,2BACjE8hQ,EAAwCpgJ,MAAMsG,oBAAoBx+I,KAAKiiC,cAAe,EAAG02P,EAA2C//L,SAASC,aAAa2uI,4BAE1JmxD,EAA2C//L,SAASC,aAAatkE,qBACjE+jQ,EAAwCpgJ,MAAMuF,aAAaz9I,KAAKiiC,cAAe,EAAG02P,EAA2C//L,SAASC,aAAa6uI,qBAC/IixD,EAA2C//L,SAASC,aAAa7jE,gCACjEsjQ,EAAwCpgJ,MAAMmG,iBAAiBr+I,KAAKiiC,cAAe,EAAG02P,EAA2C//L,SAASC,aAAa6uI,sBAG3JixD,EAA2C//L,SAASC,aAAa9iE,iBACjEuiQ,EAAwCpgJ,MAAMkF,mBAAmBp9I,KAAKiiC,cAAe,EAAG02P,EAA2C//L,SAASC,aAAa+uI,2BACrJ+wD,EAA2C//L,SAASC,aAAavjE,8BACjEgjQ,EAAwCpgJ,MAAMoF,uBAAuBt9I,KAAKiiC,cAAe,EAAG02P,EAA2C//L,SAASC,aAAa+uI,4BAGjK+wD,EAA2C//L,SAASC,aAAa9lE,mCACvB,MAAtCkK,EAAWi/P,0BACXj/P,EAAWi/P,wBAA0B9D,EAAiD3iM,eAAetzF,OACjG,iBACAqpJ,EAA6C5xD,WAAW18D,UAAUi9D,eAAe,uBACjF,GACA,GACA,IAGRl9D,EAAWi/P,wBAAwBnmP,KAAK/1C,KAAKiiC,cAAe02P,EAA2C//L,SAASC,aAAa/kE,iCAAkC9zB,KAAKggH,eAAe,IAEnL24K,EAA2C//L,SAASC,aAAaxlE,+BACjE+kQ,EAAiD3iM,eAAe6C,uBAAuBt4F,KAAKiiC,cAAe,EAAG0S,EAAuCkD,OAAOk6C,aAEpK,EAEAiuM,eAAgB,SAAUn2E,GACtB,GAAwB,MAApBA,EAAc/zK,GAAY,CAC1B,IAAIniC,EAAMk2M,EAAc1vK,OACxBxmC,EAAIymC,OACJzmC,EAAI6mC,UAAY,QAChB7mC,EAAIq5G,KAAO,aACXr5G,EAAIs5G,SAASjtH,KAAK05R,WAAY15R,KAAK25R,gBAAgB5uP,EAAG/qC,KAAK25R,gBAAgB31R,GAC3E2P,EAAIgnC,SACR,CACJ,EAEAuyK,YAAa,SAAUliL,GACnB,OAAU,IAAOA,EAAK,GAAK,IAAO,IAAO,KAAO,IAAO,GAC3D,EAEAg0P,sBAAuB,WACnB,GAAIh/R,KAAKiiC,cAAck7F,OAASn9H,KAAKu7R,WAAqC,MAAxBv7R,KAAKw7R,gBACnD,GAAI7C,EAA2C//L,SAASC,aAAa5nE,oBAAsBjxB,KAAKiiC,cAAck7F,MAAO,CACjH,IAAI8yF,EAASooE,EAA8C7/O,YAAY6pD,gBAAgD,GAAhCriG,KAAKw7R,gBAAgBprM,SAAepwF,KAAKw7R,gBAAgBnrM,WAChJrwF,KAAKiiC,cAAc4oL,UAAY7qN,KAAKiiC,cAAcsgB,IAAM0tK,EAAO,GAC/DjwN,KAAKiiC,cAAc6oL,SAAW9qN,KAAKiiC,cAAc2oL,GAAKqF,EAAO,EACjE,MACK,GAAIjwN,KAAKiiC,cAAck7F,OAASw7J,EAA2C//L,SAASC,aAAaznE,uBAAwB,CAC1H,IAAI2tQ,EAAe1G,EAA8C7/O,YAAYgmD,oBAAoB65L,EAA8C7/O,YAAYmnD,UAAU3/F,KAAKw7R,gBAAgBprM,SAAUpwF,KAAKw7R,gBAAgBnrM,WAAYuoM,EAAwDt7P,oBAAoByhH,eAAgB65I,EAAwDt7P,oBAAoB0P,WAC7YhtC,KAAKiiC,cAAc4oL,UAAY7qN,KAAKiiC,cAAcsgB,IAAMw8O,EAAar/L,UACrE1/F,KAAKiiC,cAAc6oL,SAAW9qN,KAAKiiC,cAAc2oL,GAAKm0E,EAAaz/L,QACvE,MAEIt/F,KAAKiiC,cAAc2K,WAAWsS,IAAMl/C,KAAKiiC,cAAc87I,aAAa7+H,IAAMl/C,KAAKktN,YAAYltN,KAAKw7R,gBAAgBprM,UAChHpwF,KAAKiiC,cAAc2K,WAAWmS,IAAM/+C,KAAKiiC,cAAc87I,aAAah/H,IAAM/+C,KAAKw7R,gBAAgBnrM,eAE3FrwF,KAAKu9K,wBACbv9K,KAAKu7R,WAAY,EACjBv7R,KAAKw7R,gBAAkB,MAE3B,IAAI2E,EAA0B,EAAI,GAC9Bl8I,EAAK,GACT,IAAKjkJ,KAAKu7R,UAAW,CACjB,IAAI6E,EAAYpgS,KAAKiiC,cAAc2K,WAAWlQ,KAAO,IACjD18B,KAAKiiC,cAAc2K,WAAWlQ,KAAO,MACrC0jQ,EAAW,MAEXpgS,KAAKiiC,cAAck7F,QAAUw7J,EAA2C//L,SAASC,aAAaznE,wBAA0BunQ,EAA2C//L,SAASC,aAAa5nE,oBAClB,KAAhK3rB,KAAKkjD,IAAIxoD,KAAKiiC,cAAc4oL,UAAY7qN,KAAKiiC,cAAcsgB,MAAQ69O,EAAa96R,KAAKkjD,IAAIxoD,KAAKiiC,cAAc6oL,SAAW9qN,KAAKiiC,cAAc2oL,KAAOw1E,KACpJpgS,KAAKiiC,cAAcsgB,MAAQviD,KAAKiiC,cAAc4oL,UAAY7qN,KAAKiiC,cAAcsgB,KAAO,GAChFj9C,KAAKkjD,IAAIxoD,KAAKiiC,cAAc6oL,SAAW9qN,KAAKiiC,cAAc2oL,IAAM,IAC5D5qN,KAAKiiC,cAAc6oL,SAAW9qN,KAAKiiC,cAAc2oL,GACjD5qN,KAAKiiC,cAAc2oL,KAAO5qN,KAAKiiC,cAAc6oL,UAAY,IAAM9qN,KAAKiiC,cAAc2oL,KAAO,GAGzF5qN,KAAKiiC,cAAc2oL,KAAQ,IAAM5qN,KAAKiiC,cAAc6oL,SAAY9qN,KAAKiiC,cAAc2oL,IAAM,GAI7F5qN,KAAKiiC,cAAc2oL,KAAO5qN,KAAKiiC,cAAc6oL,SAAW9qN,KAAKiiC,cAAc2oL,IAAM,GAErF5qN,KAAKiiC,cAAc2oL,IAAO5qN,KAAKiiC,cAAc2oL,GAAK,KAAO,KAIgJ,KAAtMtlN,KAAKkjD,IAAIxoD,KAAKiiC,cAAc87I,aAAah/H,IAAM/+C,KAAKiiC,cAAc2K,WAAWmS,MAAQqhP,EAAa96R,KAAKkjD,IAAIxoD,KAAKiiC,cAAc87I,aAAa7+H,IAAMl/C,KAAKiiC,cAAc2K,WAAWsS,MAAQkhP,IAC1LpgS,KAAKiiC,cAAc2K,WAAWmS,MAAQ/+C,KAAKiiC,cAAc87I,aAAah/H,IAAM/+C,KAAKiiC,cAAc2K,WAAWmS,KAAO,GAC7Gz5C,KAAKkjD,IAAIxoD,KAAKiiC,cAAc87I,aAAa7+H,IAAMl/C,KAAKiiC,cAAc2K,WAAWsS,KAAO,IAChFl/C,KAAKiiC,cAAc87I,aAAa7+H,IAAMl/C,KAAKiiC,cAAc2K,WAAWsS,IACpEl/C,KAAKiiC,cAAc2K,WAAWsS,MAAQl/C,KAAKiiC,cAAc87I,aAAa7+H,KAAO,IAAMl/C,KAAKiiC,cAAc2K,WAAWsS,MAAQ,GAGzHl/C,KAAKiiC,cAAc2K,WAAWsS,MAAS,IAAMl/C,KAAKiiC,cAAc87I,aAAa7+H,IAAOl/C,KAAKiiC,cAAc2K,WAAWsS,KAAO,GAI7Hl/C,KAAKiiC,cAAc2K,WAAWsS,MAAQl/C,KAAKiiC,cAAc87I,aAAa7+H,IAAMl/C,KAAKiiC,cAAc2K,WAAWsS,KAAO,GAErHl/C,KAAKiiC,cAAc2K,WAAWsS,KAAQl/C,KAAKiiC,cAAc2K,WAAWsS,IAAM,KAAO,KAG7El/C,KAAKiiC,cAAc2K,WAAWmS,MAAQ/+C,KAAKiiC,cAAc87I,aAAah/H,KAAO/+C,KAAKiiC,cAAc2K,WAAWsS,MAAQl/C,KAAKiiC,cAAc87I,aAAa7+H,MACnJl/C,KAAKiiC,cAAc2K,WAAWmS,IAAM/+C,KAAKiiC,cAAc87I,aAAah/H,IACpE/+C,KAAKiiC,cAAc2K,WAAWsS,IAAMl/C,KAAKiiC,cAAc87I,aAAa7+H,IAIpF,CACAl/C,KAAKiiC,cAAc2K,WAAWlQ,KAAOunH,EAAKjkJ,KAAKiiC,cAAc2K,WAAWlQ,KAAOyjQ,EAA0BngS,KAAKiiC,cAAc87I,aAAarhJ,KACzI18B,KAAKiiC,cAAc2K,WAAWC,SAAWo3G,EAAKjkJ,KAAKiiC,cAAc2K,WAAWC,SAAWszP,EAA0BngS,KAAKiiC,cAAc87I,aAAalxI,SACjJ7sC,KAAKiiC,cAAc2K,WAAWkiD,MAAQm1D,EAAKjkJ,KAAKiiC,cAAc2K,WAAWkiD,MAAQqxM,EAA0BngS,KAAKiiC,cAAc87I,aAAajvF,KAC/I,EAEAxhD,KAAM,SAAUvC,EAAG/mC,GAKf,IAAI8qF,EAAQxpF,KAAKoxC,MAAM1yC,EAAG+mC,GACtBuS,EAAWh4C,KAAKqxC,KAAK5L,EAAIA,EAAI/mC,EAAIA,GACjChE,KAAKu9K,uBAAyBv9K,KAAKy/R,kBACnC10P,EAAIzlC,KAAKgxC,IAAIw4C,EAAQ9uF,KAAKiiC,cAAc2K,WAAWC,UAAYyQ,EAC/Dt5C,EAAIsB,KAAKixC,IAAIu4C,EAAQ9uF,KAAKiiC,cAAc2K,WAAWC,UAAYyQ,IAE/DvS,EAAIzlC,KAAKgxC,IAAIw4C,EAAQ9uF,KAAKiiC,cAAc2K,WAAWC,UAAYyQ,EAC/Dt5C,EAAIsB,KAAKixC,IAAIu4C,EAAQ9uF,KAAKiiC,cAAc2K,WAAWC,UAAYyQ,GAMnE,IAAI+zD,EAASrxG,KAAKiiC,cAAc2W,eAAiB,KAC7C54C,KAAKiiC,cAAc8K,yBAAyB9J,mBAAqBs1P,EAA2C75Q,aAAaguI,cACzHr7C,EAAS,KAEb,IAAID,EAASC,EAAS/rG,KAAKC,IAAI,GAAKD,KAAKgxC,IAAIt2C,KAAKiiC,cAAc2K,WAAWmS,IAAM,IAAMz5C,KAAK8Z,KACvFpf,KAAKiiC,cAAc8K,yBAAyB9J,mBAAuF,IAAlEjjC,KAAKiiC,cAAc8K,yBAAyB9J,mBAA2BjjC,KAAKiiC,cAAc8K,yBAAyB9J,mBAAqBs1P,EAA2C75Q,aAAaguI,cAClQt7C,GAAU,IACVC,GAAU,KAEVrxG,KAAKiiC,cAAck7F,QAAUw7J,EAA2C//L,SAASC,aAAa5nE,oBAAsB0nQ,EAA2C//L,SAASC,aAAaznE,yBACrL2Z,EAAK4tP,EAA2C//L,SAASC,aAAaznE,wBAA2B2Z,EAAIA,EACrG/qC,KAAKiiC,cAAc6oL,UAAY//K,EAAIqmE,EACnCpxG,KAAKiiC,cAAc6oL,UAAa9qN,KAAKiiC,cAAc6oL,SAAW,KAAO,IACrE9qN,KAAKiiC,cAAc4oL,WAAa7mN,EAAIqtG,EAChCrxG,KAAKiiC,cAAc4oL,UAAY,KAC/B7qN,KAAKiiC,cAAc4oL,UAAY,IAE/B7qN,KAAKiiC,cAAc4oL,WAAa,KAChC7qN,KAAKiiC,cAAc4oL,WAAa,MAGpC7qN,KAAKiiC,cAAc87I,aAAa7+H,KAAOnU,EAAIqmE,EAC3CpxG,KAAKiiC,cAAc87I,aAAa7+H,KAAQl/C,KAAKiiC,cAAc87I,aAAa7+H,IAAM,KAAO,IACrFl/C,KAAKiiC,cAAc87I,aAAah/H,KAAO/6C,EAAIqtG,EACvCrxG,KAAKiiC,cAAc87I,aAAah/H,IAAM,KACtC/+C,KAAKiiC,cAAc87I,aAAah/H,IAAM,IAEtC/+C,KAAKiiC,cAAc87I,aAAah/H,KAAO,KACvC/+C,KAAKiiC,cAAc87I,aAAah/H,KAAO,KAG1C45O,EAA2C//L,SAAS4D,qBAAqB9kE,kBAC1E13B,KAAKiiC,cAAc2K,WAAa5sC,KAAKiiC,cAAc87I,aAAa90F,QAE9Dl+C,GAAO/mC,IACThE,KAAKu7R,WAAY,EACjBv7R,KAAKw7R,gBAAkB,KAE/B,EAEA9+P,KAAM,SAAU2Q,GACZrtC,KAAKiiC,cAAc87I,aAAarhJ,MAAQ2Q,EACpCrtC,KAAKiiC,cAAc87I,aAAarhJ,KAAO18B,KAAK+9R,gBAC5C/9R,KAAKiiC,cAAc87I,aAAarhJ,KAAO18B,KAAK+9R,eAE5C/9R,KAAKiiC,cAAc87I,aAAarhJ,KAAO18B,KAAKk+R,gBAC5Cl+R,KAAKiiC,cAAc87I,aAAarhJ,KAAO18B,KAAKk+R,eAE3CvF,EAA2C//L,SAAS4D,qBAAqB9kE,kBAC1E13B,KAAKiiC,cAAc2K,WAAa5sC,KAAKiiC,cAAc87I,aAAa90F,OAExE,EAEAumB,KAAM,SAAU1gB,GACZ9uF,KAAKiiC,cAAc87I,aAAalxI,UAAYiiD,CAChD,EAIAuxM,eAAgB,SAAUngS,GACtBF,KAAKmoH,YAAa,EAClBnoH,KAAK66R,WAAa76R,KAAKiiC,cAAc2K,WAAWlQ,IACpD,EAEAsuF,gBAAiB,SAAU9qH,GACvB,IAAIJ,EAAII,EACRF,KAAKmoH,YAAa,EAClBnoH,KAAKiiC,cAAc87I,aAAarhJ,KAAO18B,KAAKiiC,cAAc2K,WAAWlQ,KAAOp3B,KAAKilF,IAAI,IAAKvqF,KAAK66R,YAAc,EAAI/6R,EAAEkgD,OACvH,EAEAsgP,aAAc,SAAUpgS,GAEpBF,KAAKmoH,YAAa,CACtB,EAIA2B,aAAc,SAAU5pH,GACpB,IAAI6pH,EAAK7pH,EAKT,GAJA6pH,EAAGC,iBACHD,EAAGw2K,kBACHvgS,KAAKooH,OAAS2B,EAAGE,cAAc,GAAGC,MAClClqH,KAAKqoH,OAAS0B,EAAGE,cAAc,GAAGE,MACF,IAA5BJ,EAAGE,cAActnH,OAArB,CAIA,GAAyB,MAArB3C,KAAKokC,aAAsB,CAC3B,IAAIgzH,EAAK,IAAIygI,EAAgB73R,KAAKooH,OAAQpoH,KAAKqoH,QAC/C,GAAIroH,KAAKokC,aAAa4mJ,UAAUhrL,KAAMo3J,GAGlC,OAFAp3J,KAAKmoH,YAAa,OAClBnoH,KAAK+oH,WAAY,EAGzB,CACA/oH,KAAKmoH,YAAa,CATlB,MAFInoH,KAAK86R,gBAAiB,CAY9B,EAEAzwK,YAAa,SAAUnqH,GACnB,IAAI6pH,EAAK7pH,EAET,GAAIF,KAAK86R,eAAgB,CACrB,IAAI0F,EAAKz2K,EAAG02K,QAAQ,GAChB92L,EAAKogB,EAAG02K,QAAQ,GAChBC,EAAU,IAAI7+R,MAAM,GAIxB,GAHA6+R,EAAQ,GAAK3I,EAA0Cl4L,SAAS19F,OAAOq+R,EAAGt2K,MAAOs2K,EAAGr2K,OACpFu2K,EAAQ,GAAK3I,EAA0Cl4L,SAAS19F,OAAOwnG,EAAGugB,MAAOvgB,EAAGwgB,QAE/EnqH,KAAK+oH,WAA0C,MAA7B/oH,KAAKg7R,kBAAkB,IAA2C,MAA7Bh7R,KAAKg7R,kBAAkB,GAAY,CAC3F,IAAIvgG,EAAcs9F,EAA0Cl4L,SAAS19F,OAAOnC,KAAKiiC,cAAckE,MAAQ,EAAGnmC,KAAKiiC,cAAcmE,OAAS,GAClIghB,EAAS2wO,EAA0Cl4L,SAASkJ,SAAS23L,EAAQ,GAAI1gS,KAAKg7R,kBAAkB,IACxG1zO,EAASywO,EAA0Cl4L,SAASkJ,SAAS23L,EAAQ,GAAI1gS,KAAKg7R,kBAAkB,IACxG2F,EAAmB5I,EAA0Cl4L,SAASkJ,SAAS/oG,KAAKg7R,kBAAkB,GAAIvgG,GAC1GmmG,EAAmB7I,EAA0Cl4L,SAASkJ,SAAS/oG,KAAKg7R,kBAAkB,GAAIvgG,GAC9GkmG,EAAiBv4L,YACjBw4L,EAAiBx4L,YACjB,IAAIy4L,EAAaz5O,EAAOrc,EAAI41P,EAAiB51P,EAAIqc,EAAOpjD,EAAI28R,EAAiB38R,EACzE88R,EAAax5O,EAAOvc,EAAI61P,EAAiB71P,EAAIuc,EAAOtjD,EAAI48R,EAAiB58R,EACzE+8R,EAAmBhJ,EAA0Cl4L,SAAS19F,OAAO0+R,EAAaF,EAAiB51P,EAAG81P,EAAaF,EAAiB38R,GAC5Ig9R,EAAmBjJ,EAA0Cl4L,SAAS19F,OAAO2+R,EAAaF,EAAiB71P,EAAG+1P,EAAaF,EAAiB58R,GAC5Ii9R,EAAoBlJ,EAA0Cl4L,SAASkJ,SAAS3hD,EAAQ25O,GACxFG,EAAoBnJ,EAA0Cl4L,SAASkJ,SAASzhD,EAAQ05O,GACxFG,EAAkBJ,EAAiBv2L,aAAew2L,EAAiBx2L,aACnE42L,EAAmBH,EAAkBz2L,aAAe02L,EAAkB12L,aAE1E,GAAI22L,GAAmB,GAAMC,IAAqBphS,KAAKm7R,UAAW,CAC9D,IAAIkG,EAAUrhS,KAAKshS,YAAYthS,KAAKg7R,kBAAkB,GAAIh7R,KAAKg7R,kBAAkB,IAC7EuG,EAAUvhS,KAAKshS,YAAYZ,EAAQ,GAAIA,EAAQ,IAC/Cc,EAAQH,EAAUE,EACtBvhS,KAAK08B,KAAK8kQ,GACVxhS,KAAKk7R,UAAW,CACpB,MAAO,IAAKl7R,KAAKk7R,SAAU,CACvB,IAAIuG,EAAkB1J,EAA0Cl4L,SAASkJ,SAAS/oG,KAAKg7R,kBAAkB,GAAIvgG,GACzGinG,EAAkB3J,EAA0Cl4L,SAASkJ,SAAS/oG,KAAKg7R,kBAAkB,GAAIvgG,GACzGknG,EAAkB5J,EAA0Cl4L,SAASkJ,SAAS23L,EAAQ,GAAIjmG,GAC1FmnG,EAAkB7J,EAA0Cl4L,SAASkJ,SAAS23L,EAAQ,GAAIjmG,GAC1FonG,EAAS7hS,KAAK8hS,cAAcL,EAAiBE,GAC7CI,EAAS/hS,KAAK8hS,cAAcJ,EAAiBE,GAC7CI,EAAS18R,KAAKijD,KAAKs5O,GAAUJ,EAAgBj3L,aAAem3L,EAAgBn3L,eAC5Ey3L,EAAS38R,KAAKijD,KAAKw5O,GAAUL,EAAgBl3L,aAAeo3L,EAAgBp3L,eAEhF,GAAIw3L,EAASC,GAAU,EAAG,CACtB,IAAInzM,EAAQkzM,EAASC,GACjBjiS,KAAKy/R,kBAAoBz/R,KAAKu9K,yBAC9BzuF,IAAU,GAEd9uF,KAAKwvG,KAAK1gB,GACV9uF,KAAKm7R,WAAY,CACrB,CACJ,CACJ,CAKA,OAHAn7R,KAAKg7R,kBAAoB0F,EACzB32K,EAAGw2K,uBACHx2K,EAAGC,gBAEP,CAKA,GAHAD,EAAGC,iBACHD,EAAGw2K,mBAECvgS,KAAKmoH,YAAgBnoH,KAAKm7R,WAAan7R,KAAKk7R,UAS5C,GAAyB,MAArBl7R,KAAKokC,cACDpkC,KAAKokC,aAAa+mJ,UAAUnrL,KAAME,GAGlC,OAFAA,EAAE8pH,sBACF9pH,EAAEqgS,sBAZ6C,CACvD,IAAI2B,EAAOn4K,EAAGE,cAAc,GAAGC,MAAQlqH,KAAKooH,OACxC+5K,EAAOp4K,EAAGE,cAAc,GAAGE,MAAQnqH,KAAKqoH,OAC5CroH,KAAK+oH,UAAY/oH,KAAK+oH,WAAczjH,KAAKqxC,KAAKurP,EAAOA,EAAOC,EAAOA,GAAQniS,KAAKo7R,eAChFp7R,KAAKstC,KAAK40P,EAAMC,GAChBniS,KAAKooH,OAAS2B,EAAGE,cAAc,GAAGC,MAClClqH,KAAKqoH,OAAS0B,EAAGE,cAAc,GAAGE,KACtC,CAUJ,EAEAK,WAAY,SAAUtqH,GAClB,IAAI6pH,EAAK7pH,EAKT,GAJA6pH,EAAGC,iBACHD,EAAGw2K,kBACHvgS,KAAKg7R,kBAAkB,GAAK,KAC5Bh7R,KAAKg7R,kBAAkB,GAAK,KACxBh7R,KAAK86R,eACD/wK,EAAG02K,QAAQ99R,OAAS,IACpB3C,KAAK86R,gBAAiB,OAF9B,CAMA,GAAyB,MAArB96R,KAAKokC,aAAsB,CAC3B,IAAIgzH,EAAK,IAAIygI,EAAgB73R,KAAKooH,OAAQpoH,KAAKqoH,QAC/C,GAAIroH,KAAKokC,aAAa8mJ,QAAQlrL,KAAMo3J,GAGhC,OAFAp3J,KAAKmoH,YAAa,OAClBnoH,KAAK+oH,WAAY,EAGzB,CACA/oH,KAAKmoH,YAAa,EAClBnoH,KAAK+oH,WAAY,EACjB/oH,KAAKk7R,UAAW,EAChBl7R,KAAKm7R,WAAY,CAZjB,CAaJ,EAIAjL,cAAe,SAAUhwR,GACrB,IAAIkiS,EAAKliS,EACL6lC,EAAQ,EACRl6B,EAAMnJ,UAAU,GAAI2/R,EAAM3/R,UAAU,GAAG3D,OAK3C,GALuDsjS,EAAIlS,kBAAqBkS,EAAIlS,kBAAkBtkR,EAAIukR,WAAuBiS,EAAIC,qBAAuBD,EAAIC,oBAAoBz2R,EAAIukR,WAKpLpwR,KAAK+6R,YAAY,KAAOqH,EAAGhS,UAC3BrqP,EAAQ,OACL,GAAI/lC,KAAK+6R,YAAY,KAAOqH,EAAGhS,UAClCrqP,EAAQ,OACL,GAAK/lC,KAAK+6R,YAAY,GAEtB,IAAK/6R,KAAK+6R,YAAY,GAGzB,OAFAh1P,EAAQ,CAGZ,MALIA,EAAQ,EAMZ/lC,KAAK+6R,YAAYh1P,GAASq8P,EAAGhS,UAC7BpwR,KAAKg7R,kBAAkBj1P,GAASgyP,EAA0Cl4L,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,QAC3G,EAEA+jL,cAAe,SAAUpwR,GACrB,IAAIkiS,EAAKliS,EACL6lC,EAAQ,EASZ,GAAI/lC,KAAK+6R,YAAY,KAAOqH,EAAGhS,UAC3BrqP,EAAQ,MACL,IAAI/lC,KAAK+6R,YAAY,KAAOqH,EAAGhS,UAGlC,OAFArqP,EAAQ,CAGZ,CACA,GAAiC,MAA7B/lC,KAAKg7R,kBAAkB,IAA2C,MAA7Bh7R,KAAKg7R,kBAAkB,GAAY,CACxE,IAAIqG,EAAUrhS,KAAKshS,YAAYthS,KAAKg7R,kBAAkB,GAAIh7R,KAAKg7R,kBAAkB,IAC7E0F,EAAU3I,EAA0Cl4L,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,SACjFg2L,EAAWviS,KAAKshS,YAAYZ,EAAS1gS,KAAKg7R,kBAAkB,IAC5DwH,EAASnB,EAAUkB,EACnBE,EAAUn9R,KAAKkjD,IAAIljD,KAAK6I,IAAIq0R,IAC3BE,SAASD,KACVA,EAAU,KAEd,IAAIE,EAAW3iS,KAAKshS,YAAYZ,EAAS1gS,KAAKg7R,kBAAkB,IAC5D4H,EAASvB,EAAUsB,EACnBE,EAAUv9R,KAAKkjD,IAAIljD,KAAK6I,IAAIy0R,IAC3BF,SAASG,KACVA,EAAU,KAEVA,EAAUJ,GACVziS,KAAKg7R,kBAAkB,GAAK0F,EAC5B1gS,KAAK08B,KAAKkmQ,KAGV5iS,KAAKg7R,kBAAkB,GAAK0F,EAC5B1gS,KAAK08B,KAAK8lQ,GAElB,MAEIxiS,KAAKg7R,kBAAkBj1P,GAASgyP,EAA0Cl4L,SAAS19F,OAAOjC,EAAEosG,QAASpsG,EAAEqsG,SAM3GrsG,EAAEqgS,kBACFrgS,EAAE8pH,gBACN,EAKA0mK,YAAa,SAAUxwR,GACnB,IAAIkiS,EAAKliS,EASLF,KAAK+6R,YAAY,KAAOqH,EAAGhS,YAC3BpwR,KAAK+6R,YAAY,IAAM,EACvB/6R,KAAKg7R,kBAAkB,GAAK,MAG5Bh7R,KAAK+6R,YAAY,KAAOqH,EAAGhS,YAC3BpwR,KAAK+6R,YAAY,IAAM,EACvB/6R,KAAKg7R,kBAAkB,GAAK,KAEpC,EAIA/vK,YAAa,SAAU/qH,GACnBoB,SAASuoH,iBAAiB,YAAan/D,EAAoC9P,GAAGxlC,KAAK,cAAepV,OAAO,GACzGsB,SAASuoH,iBAAiB,UAAWn/D,EAAoC9P,GAAGxlC,KAAK,YAAapV,OAAO,GAC5E,MAArBA,KAAKokC,cACDpkC,KAAKokC,aAAa4mJ,UAAUhrL,KAAME,KAI1CF,KAAKmoH,YAAa,EAClBnoH,KAAKooH,OAAS0vK,EAAsC5sK,MAAM5e,QAAQtsG,KAAK0pH,OAAQxpH,GAC/EF,KAAKqoH,OAASyvK,EAAsC5sK,MAAM3e,QAAQvsG,KAAK0pH,OAAQxpH,GACnF,EAEAirH,YAAa,SAAUjrH,GAInB,GAHAF,KAAK45R,eAAiBlvO,EAAoC9P,GAAGp0C,MAC7DxG,KAAK25R,gBAAkB5B,EAA0Cl4L,SAAS19F,OAAO21R,EAAsC5sK,MAAM5e,QAAQtsG,KAAK0pH,OAAQxpH,GAAI43R,EAAsC5sK,MAAM3e,QAAQvsG,KAAK0pH,OAAQxpH,IACvNF,KAAK05R,WAAa,GACd15R,KAAKmoH,WACLjoH,EAAE8pH,iBACF9pH,EAAEqgS,kBACFvgS,KAAKi7R,QAAS,EACV/6R,EAAEkrQ,QACFprQ,KAAKwtC,MAAMsqP,EAAsC5sK,MAAM5e,QAAQtsG,KAAK0pH,OAAQxpH,GAAKF,KAAKooH,OAAQ0vK,EAAsC5sK,MAAM3e,QAAQvsG,KAAK0pH,OAAQxpH,GAAKF,KAAKqoH,QAGzKroH,KAAKstC,KAAKwqP,EAAsC5sK,MAAM5e,QAAQtsG,KAAK0pH,OAAQxpH,GAAKF,KAAKooH,OAAQ0vK,EAAsC5sK,MAAM3e,QAAQvsG,KAAK0pH,OAAQxpH,GAAKF,KAAKqoH,QAE5KroH,KAAKooH,OAAS0vK,EAAsC5sK,MAAM5e,QAAQtsG,KAAK0pH,OAAQxpH,GAC/EF,KAAKqoH,OAASyvK,EAAsC5sK,MAAM3e,QAAQvsG,KAAK0pH,OAAQxpH,QAE/E,GAAyB,MAArBF,KAAKokC,cACDpkC,KAAKokC,aAAa+mJ,UAAUnrL,KAAME,GAGlC,OAFAA,EAAE8pH,sBACF9pH,EAAEqgS,iBAKlB,EAEAn1K,UAAW,SAAUlrH,GAGjB,GAFAoB,SAASwsR,oBAAoB,YAAapjO,EAAoC9P,GAAGxlC,KAAK,cAAepV,OAAO,GAC5GsB,SAASwsR,oBAAoB,UAAWpjO,EAAoC9P,GAAGxlC,KAAK,YAAapV,OAAO,GAC/E,MAArBA,KAAKokC,cACDpkC,KAAKokC,aAAa8mJ,QAAQlrL,KAAME,GAGhC,OAFAF,KAAKmoH,YAAa,OAClBjoH,EAAE8pH,iBAIV,GAAIhqH,KAAKmoH,aAAenoH,KAAKi7R,OAAQ,CACjC,IAAI8E,EAAY//R,KAAK8qC,6BAA6BgtP,EAAsC5sK,MAAM5e,QAAQtsG,KAAK0pH,OAAQxpH,GAAI43R,EAAsC5sK,MAAM3e,QAAQvsG,KAAK0pH,OAAQxpH,IACnLF,KAAK49R,mBAAmBmC,EAAUh1P,EAAGg1P,EAAU/7R,EAAG8zR,EAAsC5sK,MAAM5e,QAAQtsG,KAAK0pH,OAAQxpH,GAAI43R,EAAsC5sK,MAAM3e,QAAQvsG,KAAK0pH,OAAQxpH,KACzL21F,EAA8C2N,sBAAsBm5H,WAAWojE,EAAUh1P,EAAGg1P,EAAU/7R,EAE9G,CACAhE,KAAKmoH,YAAa,EAClBnoH,KAAKi7R,QAAS,CAClB,EAKA6H,aAAc,SAAU5iS,GACpB,IACIslC,EADAukF,EAAK7pH,EAGLslC,EADEukF,EAAGg5K,QACIh5K,EAAGg5K,OACHh5K,EAAG1gD,QACS,EAAb0gD,EAAG1gD,OAEH0gD,EAAGi5K,WAEXx9P,EAAQ,EACRxlC,KAAK08B,KAAK,IAEV18B,KAAK08B,KAAK,KAEdx8B,EAAEqgS,kBACFrgS,EAAE8pH,gBACN,EAEAc,cAAe,SAAU5qH,GACrB+8B,EAAW8+P,gBAAiB,CAChC,EAEAkH,UAAW,SAAU/iS,GACQ,MAArBF,KAAKokC,cACLpkC,KAAKokC,aAAaynJ,QAAQ7rL,KAAME,EAExC,EAEAohS,YAAa,SAAU/0R,EAAG7K,GACtB,IAAIqpC,EACA/mC,EAGJ,OAFA+mC,EAAIx+B,EAAEw+B,EAAIrpC,EAAEqpC,EACZ/mC,EAAIuI,EAAEvI,EAAItC,EAAEsC,EACLsB,KAAKqxC,KAAK5L,EAAIA,EAAI/mC,EAAIA,EACjC,EAEA89R,cAAe,SAAUv1R,EAAG7K,GACxB,OAAO6K,EAAEw+B,EAAIrpC,EAAEsC,EAAIuI,EAAEvI,EAAItC,EAAEqpC,CAC/B,EAEAm4P,cAAe,SAAUhjS,GACrBA,EAAE8pH,iBACF9pH,EAAEqgS,iBACN,EAEA/yP,MAAO,SAAUzC,EAAG/mC,GAChBhE,KAAKiiC,cAAc87I,aAAalxI,UAAgB,KAAJ9B,EAC5C/qC,KAAKiiC,cAAc87I,aAAajvF,OAAa,KAAJ9qF,EACrChE,KAAKiiC,cAAc87I,aAAajvF,OAAS,OACzC9uF,KAAKiiC,cAAc87I,aAAajvF,OAAS,MAEzC9uF,KAAKiiC,cAAc87I,aAAajvF,MAAQ,IACxC9uF,KAAKiiC,cAAc87I,aAAajvF,MAAQ,EAEhD,EAEAhkD,6BAA8B,SAAUC,EAAG/mC,GACvC,IAAI4mC,EAAKmtP,EAA0Cl4L,SAAS19F,OAAO4oC,EAAG/mC,GAClEm/R,EAAanjS,KAAKojS,+BAA+Bx4P,EAAI5qC,KAAKiiC,cAAckE,MAAOnmC,KAAKiiC,cAAcmE,QACtG,OAAOiyP,EAA8C7/O,YAAYsoD,wBAAwBqiM,EAC7F,EAEAC,+BAAgC,SAAUC,EAAUC,EAAiBC,GACjE,IAAIC,EAAc,IAAIzL,EAA0C/+O,SAMhE,GAA2C,MAAvCh5C,KAAKiiC,cAAcg7F,iBAA0B,CAQ7C,IAAIz4H,EAAI,IAAIuzR,EAA0C/+O,SACtDx0C,EAAEumC,GAAO,EAAIs4P,EAASt4P,EAAKu4P,EAAmB,GAAKtjS,KAAKiiC,cAAcg7F,iBAAiBtvB,UACvFnpG,EAAER,IAAQ,EAAIq/R,EAASr/R,EAAKu/R,EAAoB,GAAKvjS,KAAKiiC,cAAcg7F,iBAAiBjvB,UACzFxpG,EAAEgyC,EAAI,EAEN,IAAI3xC,EAAIkzR,EAA0ClzL,SAAS+H,eAAe5sG,KAAKiiC,cAAcw3F,YAAaz5H,KAAKiiC,cAAcy3F,YAC7H70H,EAAEksG,SAIFyyL,EAAYz4P,EAAIvmC,EAAEumC,EAAIlmC,EAAE8oG,UAAYnpG,EAAER,EAAIa,EAAEkpG,UAAYvpG,EAAEgyC,EAAI3xC,EAAEspG,UAChEq1L,EAAYx/R,EAAIQ,EAAEumC,EAAIlmC,EAAE+oG,UAAYppG,EAAER,EAAIa,EAAEmpG,UAAYxpG,EAAEgyC,EAAI3xC,EAAEupG,UAChEo1L,EAAYhtP,EAAIhyC,EAAEumC,EAAIlmC,EAAEgpG,UAAYrpG,EAAER,EAAIa,EAAEopG,UAAYzpG,EAAEgyC,EAAI3xC,EAAEwpG,UAChEm1L,EAAYp7L,WAChB,CACA,OAAOo7L,CACX,EAEAC,+BAAgC,SAAUC,EAAYJ,EAAiBC,GACnE,IAAI1+R,EAAIkzR,EAA0ClzL,SAAS+H,eAAe5sG,KAAKiiC,cAAcw3F,YAAaz5H,KAAKiiC,cAAcy3F,YACzH74H,EAAI,IAAIk3R,EAA0Cl4L,SAClD8jM,EAAKD,EAAW34P,EAAIlmC,EAAEgpG,UAAY61L,EAAW1/R,EAAIa,EAAEopG,UAAYy1L,EAAWltP,EAAI3xC,EAAEwpG,UAChFu1L,GAAMF,EAAW34P,EAAIlmC,EAAE8oG,UAAY+1L,EAAW1/R,EAAIa,EAAEkpG,UAAY21L,EAAWltP,EAAI3xC,EAAEspG,WAAaw1L,EAC9FE,IAAOH,EAAW34P,EAAIlmC,EAAE+oG,UAAY81L,EAAW1/R,EAAIa,EAAEmpG,UAAY01L,EAAWltP,EAAI3xC,EAAEupG,WAAau1L,EAGnG,OAFA9iS,EAAEkqC,EAAIzlC,KAAKu0C,OAAO,EAAI75C,KAAKiiC,cAAcg7F,iBAAiBtvB,UAAYi2L,IAAON,EAAkB,IAC/FziS,EAAEmD,EAAIsB,KAAKu0C,OAAO,EAAI75C,KAAKiiC,cAAcg7F,iBAAiBjvB,UAAY61L,IAAON,EAAmB,IACzF1iS,CACX,EAEAsqC,6BAA8B,SAAUH,EAAIC,GACxC,IAAIL,EAAKmtP,EAA0Cl4L,SAAS19F,OAAO6oC,EAAIC,GACnE64P,EAAYzL,EAA8C7/O,YAAYuoD,wBAAwBn2D,GAC9FlnC,EAAS1D,KAAKyjS,+BAA+BK,EAAW9jS,KAAKiiC,cAAckE,MAAOnmC,KAAKiiC,cAAcmE,QACzG,OAAO1iC,CACX,EAIAgX,MAAO,SAAUgvG,EAAQmzK,EAAUC,EAAUC,GACzC,IAAIpyK,EAAQ3qH,KAEZG,OAAO0pH,iBAAiB,cAAen/D,EAAoC9P,GAAGxlC,KAAK,gBAAiBpV,OAAO,GAC3GsB,SAASwC,KAAK+lH,iBAAiB,UAAWn/D,EAAoC9P,GAAGxlC,KAAK,YAAapV,OAAO,GAC1G0pH,EAAOG,iBAAiB,WAAYn/D,EAAoC9P,GAAGxlC,KAAK,gBAAiBpV,OAAO,GACxG0pH,EAAOG,iBAAiB,YAAan/D,EAAoC9P,GAAGxlC,KAAK,cAAepV,OAAO,GACvG0pH,EAAOG,iBAAiB,QAASn/D,EAAoC9P,GAAGxlC,KAAK,eAAgBpV,OAAO,GACpG0pH,EAAOG,iBAAiB,aAAcn/D,EAAoC9P,GAAGxlC,KAAK,eAAgBpV,OAAO,GACzG0pH,EAAOG,iBAAiB,iBAAkBn/D,EAAoC9P,GAAGxlC,KAAK,eAAgBpV,OAAO,GAC7G0pH,EAAOG,iBAAiB,aAAcn/D,EAAoC9P,GAAGxlC,KAAK,eAAgBpV,OAAO,GACzG0pH,EAAOG,iBAAiB,YAAan/D,EAAoC9P,GAAGxlC,KAAK,cAAepV,OAAO,GACvG0pH,EAAOG,iBAAiB,WAAYn/D,EAAoC9P,GAAGxlC,KAAK,aAAcpV,OAAO,GACrG0pH,EAAOG,iBAAiB,gBAAiBn/D,EAAoC9P,GAAGxlC,KAAK,kBAAmBpV,OAAO,GAC/G0pH,EAAOG,iBAAiB,eAAgBn/D,EAAoC9P,GAAGxlC,KAAK,iBAAkBpV,OAAO,GAC7G0pH,EAAOG,iBAAiB,aAAcn/D,EAAoC9P,GAAGxlC,KAAK,eAAgBpV,OAAO,GACzG0pH,EAAOG,iBAAiB,cAAen/D,EAAoC9P,GAAGxlC,KAAK,gBAAiBpV,OAAO,GAC3G0pH,EAAOG,iBAAiB,cAAen/D,EAAoC9P,GAAGxlC,KAAK,gBAAiBpV,OAAO,GAC3G0pH,EAAOG,iBAAiB,YAAan/D,EAAoC9P,GAAGxlC,KAAK,cAAepV,OAAO,GACvGA,KAAKiiC,cAAc2K,WAAWmS,IAAM89O,EACpC78R,KAAKiiC,cAAc2K,WAAWsS,IAAM49O,EACpC98R,KAAKiiC,cAAc2K,WAAWlQ,KAAOqgQ,EACrC/8R,KAAKiiC,cAAc87I,aAAe/9K,KAAKiiC,cAAc2K,WAAWq8C,OACnC,MAAzBjpF,KAAKiiC,cAAc6T,KACnB91C,KAAKq7R,kBAAoB/5R,SAASkL,cAAc,UAChDxM,KAAKq7R,kBAAkBl1P,MAAQujF,EAAOvjF,MACtCnmC,KAAKq7R,kBAAkBj1P,OAASsjF,EAAOtjF,OACvCpmC,KAAKs7R,UAAYt7R,KAAKq7R,kBAAkB/uK,WAAW,OAEnDtsH,KAAKu8B,iBACLxvB,YAAW,WACP49G,EAAMo5K,gBACV,GAAG,IAIH,EAAGluM,EAA8C8N,cAAc6nD,EAA6C5xD,WAAW18D,UAAU41I,eAAe,oCAAqCpoH,EAAoC9P,GAAGxlC,KAAK,iBAAkBpV,OAAO,EAElQ,EAEA+jS,eAAgB,WACZluM,EAA8C2N,sBAAsB41H,YACxE,EAEAt6L,cAAe,SAAUkM,EAAIC,EAAKvO,EAAMwC,EAASswE,GAC7CxvG,KAAKu7R,WAAY,EACjBv7R,KAAKw7R,gBAAkB,KACvBx7R,KAAKunQ,gBACD,EACAroO,EACAl/B,KAAKgkS,+BAA+Bh5P,EAAIC,EAAKvO,EAAM8yE,GACnD6J,EAAgDuR,oBAAoB19E,yBACpEmsE,EAAgDuR,oBAAoB79E,yBAE5E,EAEAi3P,+BAAgC,SAAUh5P,EAAIC,EAAKvO,EAAM8yE,GACrD,MAAOxkE,EAAK,GACRA,GAAM,GAEV,MAAOA,EAAK,EACRA,GAAM,GAEVC,EAAM8sP,EAA0CrzL,gBAAgB4R,MAAMrrE,GAAM,GAAI,IAChFvO,EAAOq7P,EAA0CrzL,gBAAgB4R,MAAM55E,EAAM18B,KAAKk+R,cAAel+R,KAAK+9R,eACtG,IAAIlxP,EAAoB,MAAR2iE,EAAgB6J,EAAgDuR,oBAAoBh+E,WAAWC,SAAW2iE,EACtHy0L,EAAe9L,EAAoDnrM,iBAAiB7qF,OAAO8oC,EAAKouE,EAAgDuR,oBAAoBsiG,YAAYliL,GAAKtO,EAAMmQ,EAAUwsE,EAAgDuR,oBAAoBh+E,WAAWkiD,MAAOuqB,EAAgDuR,oBAAoBh+E,WAAWnrB,SAC9W,OAAOwiR,CACX,EAEA7kQ,gBAAiB,SAAU4L,EAAIC,EAAKvO,EAAM8yE,GACtC,IAAIy0L,EAAejkS,KAAKgkS,+BAA+Bh5P,EAAIC,EAAKvO,EAAM8yE,GACtE,OAAOxvG,KAAKkkS,iBAAiBD,GAAc,EAC/C,EAEA1mH,oBAAqB,WACjB,OAAmD,MAA/Cv9K,KAAKiiC,cAAc8K,0BAGhB/sC,KAAKiiC,cAAc8K,yBAAyB9J,mBAAqBs1P,EAA2C75Q,aAAaguI,WACpI,EAEArtH,WAAY,SAAUC,EAAOC,EAAQL,EAASM,GAC1C,GAAa,MAATF,EAAJ,CAGA,GAAKE,GAAex/B,KAAKu9K,wBACe,YAA/Bj+I,EAAM66K,sBAA2D,IAArB76K,EAAM6nF,YAAqD,IAA/B7nF,EAAM66K,sBAA+D,UAA/B76K,EAAM66K,sBAAqC76K,EAAMw7K,eAAiB,GAAG,CACpL,IAAI/7M,EAAS,MACb,GAAmC,IAA/BugC,EAAM66K,sBAA6D,UAA/B76K,EAAM66K,qBAC1Cp7M,EAAS,QAGT,IAEQA,EADuB,QAAvBugC,EAAMk7K,aACGl7K,EAAMk7K,aAGNk+E,EAA0Cz6I,QAAQwgE,oBAAoBn/K,EAAMhe,WAE7F,CACA,MAAOizE,GACP,CAEJ,GAAe,QAAXx1F,EAAkB,CAElB,GADAiB,KAAKw7R,gBAAkBl8P,EACnBvgC,IAAWiB,KAAKy7R,mBAAsD,IAA/Bn8P,EAAM66K,sBAA6D,UAA/B76K,EAAM66K,qBAEjF,YADAn6M,KAAKmkS,YAAY7kQ,EAAM46K,gBAAiB36K,EAAQL,GAGpD,IAAIklQ,EAAW,EACA,KAAXrlS,EACAqlS,EAAW,GAGXA,GAAY,IAAM,IAAMzL,EAA2C//L,SAASC,aAAar/D,wBAA0B,IAEnH0F,IACAklQ,EAAW,GAEf,IAAIC,EAAQrkS,KAAKiiC,cAAc2K,WAAWq8C,OAC1Co7M,EAAMn1M,qBAAuB,GAC7Bm1M,EAAMtlS,OAASA,EACf,IAAI29B,EAAO,GACX,GAAe,KAAX39B,EAAe,CAEX29B,EADA4C,EAAM66K,uBAAyBs+E,EAAwCt6Q,eAAe6+H,OAC/E,cAGA,WAIX,IAAIsnJ,EAAOjM,EAA8C7/O,YAAYwgD,YAAY15D,EAAM8wD,SAAU9wD,EAAM+wD,UAAW/wD,EAAMw7K,gBACpHlgE,EAAWy9I,EAA8C7/O,YAAY6nB,wBAAwBu4N,EAAwDt7P,oBAAoBu9G,YAAc,IAAMv1I,KAAK8Z,GACtMklR,EAAKl7L,QAAQwxC,GACbypJ,EAAMr1M,WAAa+oM,EAA0C/+O,SAASgvD,OAAOq8L,EAAMr1M,WACvF,KACK,CAED,OADAq1M,EAAMr1M,WAAa0pM,EAA0Cz6I,QAAQs8D,sBAAsBx7M,EAAQ65R,EAAwDt7P,oBAAoB4wM,qBAAqBk2D,IAC5LrlS,GACJ,KAAK,EACD29B,EAAO,GACP,MACJ,KAAK,EACDA,EAAO,KACP,MACJ,KAAK,EACDA,EAAO,KACP,MACJ,KAAK,EACDA,EAAO,KACP,MACJ,KAAK,EACDA,EAAO,KACP,MACJ,KAAK,EACDA,EAAO,KACP,MACJ,KAAK,EACDA,EAAO,KACP,MACJ,KAAK,EACDA,EAAO,KACP,MACJ,KAAK,EACDA,EAAO,KACP,MACJ,KAAK,EACDA,EAAO,KACP,MACJ,KAAK,GACDA,EAAO,KACP,MACJ,KAAK,GACDA,EAAO,KACP,MACJ,KAAK,GACDA,EAAO,KACP,MACJ,KAAK,GACDA,EAAO,KACP,MACJ,KAAK,GACDA,EAAO,KACP,MACJ,KAAK,GACDA,EAAO,GACP,MACJ,QACI,MAERA,GAAci8P,EAA2C//L,SAASC,aAAar/D,sBACnF,CACA,IAAI+qQ,EAAavkS,KAAKiiC,cAAc2K,WAAWq8C,OAChB,KAA3BjpF,KAAKy7R,mBAA6B/wO,EAAoC9P,GAAGC,YAAY76C,KAAKiiC,cAAcsuL,uBACxGg0E,EAAavkS,KAAKiiC,cAAcupL,qBAChCxrN,KAAKiiC,cAAc67I,kBAAkB,KAEzCumH,EAAM3nQ,KAAOA,EACb,IAAI8nQ,EAAWH,EAAMr1M,WAKrB,GAJAw1M,EAASz7L,SAASw7L,EAAWv1M,YACM,IAA/B1vD,EAAM66K,uBACNqqF,EAAWzM,EAA0C/+O,SAASgvD,OAAOw8L,IAEnEA,EAAS7hS,SAAU,CACrB,IAAIosF,EAAQy1M,EAAS/6L,UAEjB46L,EAAMtlP,IADK,KAAXhgD,GACagwF,EAAM/qF,EAGP+qF,EAAM/qF,EAEtBqgS,EAAMnlP,IAAgB,GAAV6vC,EAAMhkD,EAAS,EAC/B,MAEIs5P,EAAMtlP,IAAM/+C,KAAKiiC,cAAc2K,WAAWmS,IAC1CslP,EAAMnlP,IAAMl/C,KAAKiiC,cAAc2K,WAAWsS,IAE1CngD,IAAWo5R,EAAoDh5Q,mBAAmBmvE,SAElF+1M,EAAMr1M,WAAa0pM,EAA0Cz6I,QAAQw8D,qBAAqB17M,EAAQslS,EAAMtlP,IAAKslP,EAAMnlP,IAAK05O,EAAwDt7P,oBAAoB4wM,qBAAqBk2D,KAE7N,IAAIK,EAAa,IAAIvL,EAA6C7kB,uBAAuBkwB,EAAYF,EAAOD,EAAUxL,EAAwDt7P,oBAAoB0P,UAAW4rP,EAAwDt7P,oBAAoB0wM,qBAAqBo2D,GAAW,GAGzT,OAFAK,EAAWn1M,mBAAoB,OAC/BtvF,KAAKipQ,WAAWw7B,EAEpB,CACJ,CAEJzkS,KAAKu7R,WAAY,EACjBv7R,KAAKw7R,gBAAkB,KACvB,IAAIniF,EAAY/5K,EAAM46K,gBAAgBjxH,OACa,MAA/CjpF,KAAKiiC,cAAc8K,0BAAoCzN,EAAM6nF,aAAennH,KAAKiiC,cAAc8K,yBAAyB9J,mBACxHjjC,KAAKiiC,cAAc87I,aAAez+I,EAAM46K,gBAAgBjxH,OACxDjpF,KAAKiiC,cAAc2K,WAAa5sC,KAAKiiC,cAAc87I,aAAa90F,OAChEjpF,KAAKiiC,cAAcuB,uBAAuBxjC,KAAK+iC,mBAAmBzD,EAAM6nF,WAAY,IACpFjoF,GAAU,GACHl/B,KAAKu9K,uBAAyBj+I,EAAMk7K,eAAiBx6M,KAAKy7R,oBACjEz7R,KAAKiiC,cAAc87I,aAAez+I,EAAM46K,gBAAgBjxH,OACxDjpF,KAAKiiC,cAAc2K,WAAa5sC,KAAKiiC,cAAc87I,aAAa90F,OAChEjpF,KAAKy7R,kBAAoBn8P,EAAMk7K,aAC/Bt7K,GAAU,GAEqB,MAA/BI,EAAM66K,sBACNd,EAAU38K,KAAO18B,KAAK+9R,cACtB/9R,KAAKunQ,gBAAe,EAAOroO,EAASm6K,EAAW,KAAM,QAErDr5M,KAAKy7R,kBAAoBn8P,EAAMk7K,aAC/Bx6M,KAAKunQ,eAAehoO,EAAQL,EAASm6K,EAAW/5K,EAAMm6D,oBAAqBn6D,EAAMyN,0BAC7EvN,IACAx/B,KAAKu7R,WAAY,EACjBv7R,KAAKw7R,gBAAkBl8P,GAvK/B,CA0KJ,EAEA6kQ,YAAa,SAAU9qF,EAAW95K,EAAQL,GACtCl/B,KAAKu7R,WAAY,EACjBv7R,KAAKw7R,gBAAkB,KACvBx7R,KAAKunQ,eAAehoO,EAAQL,EAASm6K,EAAWr5M,KAAKiiC,cAAciL,yBAA0BltC,KAAKiiC,cAAc8K,yBACpH,EAEA23P,qBAAsB,SAAUT,GAC5B,OAAO3+R,KAAKkjD,IAAIxoD,KAAKiiC,cAAc2K,WAAWmS,IAAMklP,EAAallP,KAAO,OAASz5C,KAAKkjD,IAAIxoD,KAAKiiC,cAAc2K,WAAWsS,IAAM+kP,EAAa/kP,KAAO,OAAS55C,KAAKkjD,IAAIxoD,KAAKiiC,cAAc2K,WAAWlQ,KAAOunQ,EAAavnQ,MAAQ,OAASp3B,KAAKkjD,IAAIxoD,KAAKiiC,cAAc2K,WAAWC,SAAWo3P,EAAap3P,UAAY,KACtT,EAEA06N,eAAgB,SAAUhoO,EAAQL,EAAS+kQ,EAAcU,EAAelrF,GAmBpE,GAlBAz5M,KAAKu7R,WAAY,EACjBv7R,KAAKw7R,gBAAkB,KACvBx7R,KAAK27R,qBAAuBgJ,EAC5B3kS,KAAK47R,0BAA4BniF,EAC7Bl6K,GACA0kQ,EAAavnQ,KAAO18B,KAAKiiC,cAAc2K,WAAWlQ,KAClDunQ,EAAan1M,MAAQ9uF,KAAKiiC,cAAc2K,WAAWkiD,MACnDm1M,EAAap3P,SAAW7sC,KAAKiiC,cAAc2K,WAAWC,WAE3B,IAAvBo3P,EAAavnQ,MAAgBunQ,EAAavnQ,OACtC18B,KAAKiiC,cAAck7F,MACnB8mK,EAAavnQ,KAAO,QAGpBunQ,EAAavnQ,KAAO,KAI5BwC,GAAWl/B,KAAK0kS,qBAAqBT,GAAe,CAIpD,GAHAjkS,KAAKipQ,WAAW,MAChBjpQ,KAAKiiC,cAAc87I,aAAekmH,EAAah7M,OAC/CjpF,KAAKiiC,cAAc2K,WAAa5sC,KAAKiiC,cAAc87I,aAAa90F,OAC5DjpF,KAAKiiC,cAAck7F,OAASw7J,EAA2C//L,SAASC,aAAa5nE,mBAAoB,CACjH,IAAIg/L,EAASooE,EAA8C7/O,YAAY6pD,gBAAyD,GAAzCriG,KAAKiiC,cAAc2K,WAAWwjD,SAAepwF,KAAKiiC,cAAc2K,WAAWyjD,WAClKrwF,KAAKiiC,cAAc4oL,UAAY7qN,KAAKiiC,cAAcsgB,IAAM0tK,EAAO,GAC/DjwN,KAAKiiC,cAAc6oL,SAAW9qN,KAAKiiC,cAAc2oL,GAAKqF,EAAO,EACjE,MACK,GAAIjwN,KAAKiiC,cAAck7F,OAASw7J,EAA2C//L,SAASC,aAAaznE,uBAAwB,CAC1H,IAAI2tQ,EAAe1G,EAA8C7/O,YAAYgmD,oBAAoB65L,EAA8C7/O,YAAYmnD,UAAU3/F,KAAKiiC,cAAc2K,WAAWwjD,SAAUpwF,KAAKiiC,cAAc2K,WAAWyjD,WAAYuoM,EAAwDt7P,oBAAoByhH,eAAgB65I,EAAwDt7P,oBAAoB0P,WAC/ZhtC,KAAKiiC,cAAc4oL,UAAY7qN,KAAKiiC,cAAcsgB,IAAMw8O,EAAar/L,UACrE1/F,KAAKiiC,cAAc6oL,SAAW9qN,KAAKiiC,cAAc2oL,GAAKm0E,EAAaz/L,QACvE,CACAt/F,KAAK4kS,iBACT,MACI5kS,KAAKipQ,WAAWiwB,EAA6Cj5B,cAAc99P,OAAOnC,KAAKiiC,cAAc2K,WAAYq3P,IACjHjkS,KAAK6+R,aAAa1K,aAAazpO,EAAoC9P,GAAGxlC,KAAK,kBAAmBpV,MAEtG,EAEA6kS,wBAAyB,SAAUv0R,EAAM8+E,GACrC,IAAI01M,EAAQ5L,EAA6Cj5B,cAAc99P,OAAOmO,EAAM8+E,GACpF,OAAO01M,EAAM5kC,cACjB,EAEAgkC,iBAAkB,SAAUD,EAAc1kQ,GAMtC,OALIA,IACA0kQ,EAAavnQ,KAAO18B,KAAKiiC,cAAc2K,WAAWlQ,KAClDunQ,EAAan1M,MAAQ9uF,KAAKiiC,cAAc2K,WAAWkiD,MACnDm1M,EAAap3P,SAAW7sC,KAAKiiC,cAAc2K,WAAWC,UAEtD7sC,KAAK0kS,qBAAqBT,GACnB,EAEJjkS,KAAK6kS,wBAAwBxrL,EAAgDuR,oBAAoBh+E,WAAYq3P,EACxH,EAEAj2E,YAAa,WACThuN,KAAKiiC,cAAc2K,WAAa5sC,KAAKiiC,cAAc87I,aAAa90F,OAChEjpF,KAAKipQ,WAAW,KACpB,EAEA41B,WAAY,WACR,OAAO7+R,KAAKiiC,cAAc0oL,SAC9B,EAEAs+C,WAAY,SAAUroQ,GAElB,OADAZ,KAAKiiC,cAAc0oL,UAAY/pN,EACxBA,CACX,EAEAmkS,eAAgB,SAAUC,GAC6B,MAA/ChlS,KAAKiiC,cAAc8K,0BAAoCi4P,EAAY/hQ,oBAAsBjjC,KAAKiiC,cAAc8K,yBAAyB9J,oBACrI81P,EAA6CvoP,UAAUs0M,aACvDi0C,EAA6CvoP,UAAUC,cAE3DzwC,KAAKiiC,cAAcuB,uBAAuBwhQ,EAC9C,EAEAJ,gBAAiB,YACqB,MAA7B5kS,KAAK27R,sBAA+E,MAA/C37R,KAAKiiC,cAAciL,0BAAqF,MAA/CltC,KAAKiiC,cAAciL,2BAAqCltC,KAAKiiC,cAAciL,yBAAyBojD,OAAOtwF,KAAK27R,wBAC/M37R,KAAKiiC,cAAcisL,uBAAuBluN,KAAK27R,sBAEA,MAA/C37R,KAAKiiC,cAAc8K,0BAAuE,MAAlC/sC,KAAK47R,2BAAsC57R,KAAKiiC,cAAc8K,yBAAyBujD,OAAOtwF,KAAK47R,6BACrH,MAAlC57R,KAAK47R,2BAAqC57R,KAAK47R,0BAA0BzqI,cACzEnxJ,KAAK+kS,eAAe/kS,KAAKilS,4BAA4BjlS,KAAK47R,4BAG1D57R,KAAK+kS,eAAe/kS,KAAK47R,2BAGrC,EAEA74P,mBAAoB,SAAUmiQ,EAAc11I,GACxC,IAAIl0G,EAASoP,EAAoC9P,GAAGW,UAAUte,EAAW6+P,WACzE,MAAOxgP,EAAOE,WAAY,CACtB,IAAIpZ,EAAWkZ,EAAOI,QACtB,GAAItZ,EAASuvH,kBAAoBvvH,EAASc,iBAAmBssH,GAAYptH,EAASa,oBAAsBiiQ,EACpG,OAAO9iQ,CAEf,CACA,IAAI+iF,EAASz6D,EAAoC9P,GAAGW,UAAUte,EAAW6+P,WACzE,MAAO32K,EAAO3pE,WAAY,CAClBpZ,EAAW+iF,EAAOzpE,QACtB,GAAItZ,EAASc,iBAAmBssH,GAAYptH,EAASa,oBAAsBiiQ,EACvE,OAAO9iQ,CAEf,CACA,IAAIijF,EAAS36D,EAAoC9P,GAAGW,UAAUte,EAAW6+P,WACzE,MAAOz2K,EAAO7pE,WAAY,CAClBpZ,EAAWijF,EAAO3pE,QACtB,GAAItZ,EAASa,oBAAsBiiQ,EAC/B,OAAO9iQ,CAEf,CACA,OAAOnF,EAAW6+P,UAAU,EAChC,EAEAmJ,4BAA6B,SAAUE,GACnC,IAAI7pP,EAASoP,EAAoC9P,GAAGW,UAAUte,EAAW6+P,WACzE,MAAOxgP,EAAOE,WAAY,CACtB,IAAIpZ,EAAWkZ,EAAOI,QACtB,GAAItZ,EAASuvH,kBAAoBvvH,EAASc,iBAAmBiiQ,EAAQjiQ,gBAAkBd,EAASa,oBAAsBkiQ,EAAQliQ,kBAC1H,OAAOb,CAEf,CACA,IAAI+iF,EAASz6D,EAAoC9P,GAAGW,UAAUte,EAAW6+P,WACzE,MAAO32K,EAAO3pE,WAAY,CAClBpZ,EAAW+iF,EAAOzpE,QACtB,GAAItZ,EAASc,iBAAmBiiQ,EAAQjiQ,gBAAkBd,EAASa,oBAAsBkiQ,EAAQliQ,kBAC7F,OAAOb,CAEf,CACA,OAAOnF,EAAW6+P,UAAU,EAChC,EAEApnB,QAAS,SAAU7zQ,GAAK,EAExB+tC,WAAY,SAAUjkC,GAClB,GAAI+/C,EAAoC9P,GAAG21C,QAAQvwF,KAAKokC,aAAc+0P,EAAoDh7P,YAAa,CACnI,IAAI8G,EAASjlC,KAAKokC,aAClBa,EAAOjpB,MAAK,EAChB,CAKA,OAJAhc,KAAKklC,KAAO,IAAIm0P,EAAsD/gC,aACtEt4P,KAAKklC,KAAK82N,UAAUrxP,GACpB3K,KAAKolS,YACLplS,KAAKklC,KAAKq6N,cAAa,GAChBv/P,KAAKklC,IAChB,EAEAkgQ,UAAW,WACPplS,KAAK6uC,SAAW,IAAIyqP,EAAkD54B,YACtE1gQ,KAAK6uC,SAASqzN,SAASliQ,KAAKklC,MAC5BllC,KAAKklC,KAAKu6N,yBAAyB,GACnCz/P,KAAKklC,KAAKq6N,cAAa,GACvBv/P,KAAKokC,aAAepkC,KAAK6uC,SAAS8yN,YACtC,EAEAn9N,SAAU,SAAU95B,GAChB,IAAIigH,EAAQ3qH,KAEZ,GAAI0qD,EAAoC9P,GAAG21C,QAAQvwF,KAAKokC,aAAc+0P,EAAoDh7P,YAAa,CACnI,IAAI8G,EAASjlC,KAAKokC,aAClBa,EAAOjpB,MAAK,EAChB,CACAhc,KAAKklC,KAAOm0P,EAAsD/gC,aAAah/H,QAAQ5uH,GAAK,WACxFigH,EAAMy6K,YACN,IAAIngQ,EAAS,IAAIk0P,EAAoDh7P,WACrE8G,EAAOi9N,SAASv3I,EAAMzlF,MACtB2wD,EAA8C4N,iBAAiBr/D,aAAea,EAC9E4wD,EAA8C2N,sBAAsB44H,gBACxE,GACJ,EAEAt3L,SAAU,SAAUp6B,GAChB,IAAIigH,EAAQ3qH,KAEZ,GAAI0qD,EAAoC9P,GAAG21C,QAAQvwF,KAAKokC,aAAc+0P,EAAoDh7P,YAAa,CACnI,IAAI8G,EAASjlC,KAAKokC,aAClBa,EAAOjpB,MAAK,EAChB,CACAhc,KAAKklC,KAAOm0P,EAAsD/gC,aAAah/H,QAAQ5uH,GAAK,WACxFigH,EAAMy6K,YACNz6K,EAAM97E,SAAS+zN,SAAQ,GACvB/sK,EAA8C2N,sBAAsB44H,gBACxE,GACJ,EAEAyB,gBAAiB,WACb,GAAInzK,EAAoC9P,GAAG21C,QAAQvwF,KAAKokC,aAAc+0P,EAAoDh7P,YAAa,CACnI,IAAI8G,EAASjlC,KAAKokC,aAClBa,EAAOmJ,MACX,CACJ,EAEAi3P,iBAAkB,WACd,GAAI36O,EAAoC9P,GAAG21C,QAAQvwF,KAAKokC,aAAc+0P,EAAoDh7P,YAAa,CACnI,IAAI8G,EAASjlC,KAAKokC,aAClBa,EAAOqJ,WACX,CACJ,EAEAyvL,gBAAiB,WACb,GAAIrzK,EAAoC9P,GAAG21C,QAAQvwF,KAAKokC,aAAc+0P,EAAoDh7P,YAAa,CACnI,IAAI8G,EAASjlC,KAAKokC,aAClBa,EAAOjpB,MAAK,EAChB,CACJ,EAEA45P,WAAY,WAAc,EAE1B5zO,kBAAmB,SAAUr3B,GACzB,IAAI2wC,EAASoP,EAAoC9P,GAAGW,UAAUte,EAAW6+P,WACzE,MAAOxgP,EAAOE,WAAY,CACtB,IAAIpZ,EAAWkZ,EAAOI,QACtB,GAAItZ,EAAS9gB,WAAW/S,cAAc0K,QAAQtO,EAAK4D,gBAAkB,EACjE,OAAO6zB,CAEf,CACA,OAAO,IACX,EAEAs7L,iBAAkB,SAAUhzN,GACxB,IAAI4wC,EAASoP,EAAoC9P,GAAGW,UAAUte,EAAW6+P,WACzE,MAAOxgP,EAAOE,WAAY,CACtB,IAAIpZ,EAAWkZ,EAAOI,QACtB,GAAItZ,EAASuF,YAAcj9B,EACvB,OAAO03B,CAEf,CACA,OAAO,IACX,EAEAG,yBAA0B,SAAU53B,GAChC,IAAI26R,EAAgBtlS,KAAKgiC,kBAAkBr3B,GACtB,MAAjB26R,GACAtlS,KAAKiiC,cAAcuB,uBAAuB8hQ,EAElD,EAEA7iQ,yBAA0B,SAAU93B,GAChC,IAAI46R,EAAgBvlS,KAAKgiC,kBAAkBr3B,GACtB,MAAjB46R,GACAvlS,KAAKiiC,cAAcisL,uBAAuBq3E,EAElD,EAEArjQ,eAAgB,SAAUsjQ,GACtBxlS,KAAKiiC,cAAcC,eAAesjQ,EAAa,KACnD,EAEAzjQ,qBAAsB,SAAUp3B,GAC5B3K,KAAKm9N,iCAAiCxyN,EAAM,KAChD,EAEAwyN,iCAAkC,SAAUxyN,EAAMgkN,GAC9C,IAAI62E,EAAcxlS,KAAKgiC,kBAAkBr3B,GACtB,MAAf66R,GACAxlS,KAAKiiC,cAAcC,eAAesjQ,EAAa72E,EAEvD,EAEAz+K,wBAAyB,SAAUvlC,GAC/B,IAAI66R,EAAcxlS,KAAKgiC,kBAAkBr3B,GACtB,MAAf66R,GACAxlS,KAAKiiC,cAAc2sL,kBAAkB42E,EAE7C,EAEA32E,qBAAsB,SAAUlkN,GAC5B,OAAO3K,KAAKiiC,cAAc4sL,qBAAqBlkN,EACnD,EAEAw3B,yBAA0B,SAAUx3B,EAAM03B,EAAO+rL,GAC7C,IAAIo3E,EAAcxlS,KAAKgiC,kBAAkBr3B,GACtB,MAAf66R,GACAxlS,KAAKiiC,cAAcE,yBAAyBqjQ,EAAanjQ,EAAO+rL,EAExE,EAEAgP,eAAgB,SAAU56L,EAAc+nD,EAAKhlF,GACzC,IAAI68B,EAAWpiC,KAAKgiC,kBAAkBQ,GACtB,MAAZJ,GAAqD,MAAjCA,EAASlB,sBAC7BkB,EAASlB,qBAAqBiH,SAAWoiD,EACzCnoD,EAASlB,qBAAqBkH,SAAW7iC,GAEzC8F,QAAQ8C,IAAIq0B,EAAe,aAEnC,EAEA66L,mBAAoB,SAAU76L,EAAc8F,GACxC,IAAIlG,EAAWpiC,KAAKgiC,kBAAkBQ,GACtB,MAAZJ,GAAqD,MAAjCA,EAASlB,qBAC7BkB,EAASlB,qBAAqBoH,aAAeA,EAE7Cj9B,QAAQ8C,IAAIq0B,EAAe,aAEnC,EAEA86L,oBAAqB,SAAU96L,EAAc0F,GACzC,IAAI9F,EAAWpiC,KAAKgiC,kBAAkBQ,GACtB,MAAZJ,GAAqD,MAAjCA,EAASlB,qBAC7BkB,EAASlB,qBAAqBgH,UAAYA,EAE1C78B,QAAQ8C,IAAIq0B,EAAe,aAEnC,EAEAs9P,gBAAiB,SAAU1/K,GACvB,GAAkB,MAAdA,EAAQtqE,GAAY,CACpB,IAAIniC,EAAMysG,EAAQjmE,OAClBxmC,EAAIymC,OACJzmC,EAAI2mC,YACJ3mC,EAAI8mC,YAAck+O,EAA2C//L,SAASmgG,cAAcpoK,sBACpFhd,EAAIqa,UAAY,EAChB,IAAI+c,EAAIq1E,EAAQj6E,MAAQ,EAAGniC,EAAIo8G,EAAQh6E,OAAS,EAC5Cq/P,EAAa,EACjB9xR,EAAIgoC,OAAO5Q,EAAG/mC,EAAIyhS,GAClB9xR,EAAIioC,OAAO7Q,EAAG/mC,EAAIyhS,GAClB9xR,EAAIgoC,OAAO5Q,EAAI06P,EAAYzhS,GAC3B2P,EAAIioC,OAAO7Q,EAAI06P,EAAYzhS,GAC3B2P,EAAI+mC,SACJ/mC,EAAIgnC,SACR,KAAO,CACH,GAAwB,MAApB36C,KAAK67R,YAAqB,CAI1B,IAAI6J,EAAa,IACbC,EAAYD,EAAatlL,EAAQh6E,OAASg6E,EAAQj6E,MACtDnmC,KAAK67R,YAAc,IAAI7D,EAAuD17L,eAC9Et8F,KAAK67R,YAAYlmP,mBAAkB,GACnC31C,KAAK67R,YAAY5nK,QAAS,EAC1Bj0H,KAAK67R,YAAY/hP,QAAQi+O,EAA0C/+O,SAAS72C,QAAQwjS,EAAW,EAAG,GAAI5N,EAA0C/+O,SAAS72C,OAAOwjS,EAAW,EAAG,IAC9K3lS,KAAK67R,YAAY/hP,QAAQi+O,EAA0C/+O,SAAS72C,OAAO,GAAIujS,EAAY,GAAI3N,EAA0C/+O,SAAS72C,OAAO,EAAGujS,EAAY,GACpL,CACA1lS,KAAK67R,YAAY7lP,UAAUoqE,EAAS,EAAGzrE,EAAuCyD,MAAMC,KAAKsgP,EAA2C//L,SAASmgG,cAAcpoK,uBAC/J,CACJ,EAEA8zO,iBAAkB,SAAUmhC,GACxB5lS,KAAKkmC,aAAa0/P,EAAW,GAAI,GAAI,cAAc,EACvD,EAEAC,oBAAqB,SAAUD,EAAWz/P,EAAOC,EAAQC,GACrDrmC,KAAKkmC,aAAa0/P,EAAWz/P,EAAOC,EAAQC,GAAQ,EACxD,EAEA65P,qBAAsB,SAAU0F,EAAWz/P,EAAOC,EAAQC,GACtD,IAAIskF,EAAQ3qH,KAER8lS,EAAclN,EAAwDt7P,oBAAoB8vM,mBAC1F24D,EAAW,SAAU57R,GACrB,IAAI67R,EACJ,GAAIF,IAAgBn7K,EAAMgwK,iBAAkB,CACxCiL,EAAUz7R,GACVwgH,EAAMgwK,kBAAoB,EAG1B,OAAQqL,EAAgBt7O,EAAoC9P,GAAGqgD,UAAU0vB,EAAM+vK,gBAAiB/vK,EAAMgwK,oBAAuBhwK,EAAMiwK,aAAa3hR,QAAQ0xG,EAAMgwK,mBAAqB,EAC3KqL,GACAJ,EAAUj7K,EAAM+vK,gBAAgB/vK,EAAMgwK,mBACtChwK,EAAM+vK,gBAAgB/vK,EAAMgwK,kBAAoB,MAGhDjwO,EAAoC9P,GAAG46C,OAAOm1B,EAAMiwK,aAAcjwK,EAAMgwK,kBAE5EhwK,EAAMgwK,kBAAoB,CAElC,MAEgB,MAARxwR,EACAwgH,EAAM+vK,gBAAgBoL,GAAe37R,EAGrCwgH,EAAMiwK,aAAaj2R,KAAKmhS,GAG5Bn7K,EAAMgwK,kBAAoB/B,EAAwDt7P,oBAAoByJ,cACtG4jF,EAAM6vK,gBAAkB,KACxB7vK,EAAM+vK,gBAAkB,KACxB/vK,EAAMgwK,iBAAmB,EACzBhwK,EAAMiwK,aAAaj4R,OAAS,EAEpC,EACA3C,KAAK6lS,oBAAoBE,EAAU5/P,EAAOC,EAAQC,EACtD,EAEAH,aAAc,SAAU0/P,EAAWz/P,EAAOC,EAAQC,EAAQ4/P,GAClDA,GACAjmS,KAAKqyC,iBAET,IAAI8sE,EAAQ79G,SAASkL,cAAc,OACnC2yG,EAAM0K,iBAAiB,QAAQ,SAAU3pH,GACrC,IAAIgmS,EAAe/mL,EAAW,MAAIA,EAAM/4E,OACpC+/P,EAAehgQ,EAAQC,EACvBggQ,EAAKjgQ,EACLotM,EAAKntM,EACL8/P,EAAcC,EACd5yD,EAAK7oL,EAAoC9P,GAAGyG,SAAU+kP,EAAKF,GAG3DE,EAAK17O,EAAoC9P,GAAGyG,SAAUkyL,EAAK2yD,GAE/D,IAAIG,GAAMlgQ,EAAQigQ,GAAM,EACpBE,GAAMlgQ,EAASmtM,GAAM,EACrBhnJ,EAAOjrF,SAASkL,cAAc,UAClC+/E,EAAKnmD,OAASA,EACdmmD,EAAKpmD,MAAQA,EACb,IAAIxyB,EAAM44E,EAAK+/B,WAAW,MAE1B,GADA34G,EAAIi5G,UAAUzN,EAAOknL,EAAIC,EAAIF,EAAI7yD,GACL,mBAAjBhnJ,EAAKg6M,SAAwB,CAAE,IAAIp8R,EAAOoiF,EAAKg6M,WAAYX,EAAUz7R,EAAO,MAASoiF,EAAKi6M,OAAOZ,EAAWv/P,EAC3H,IAAG,GACH84E,EAAM59G,IAAMs0F,EAA8C4N,iBAAiBimB,OAAO+8K,WACtF,EAEAx4E,WAAY,SAAUy4E,GAClBA,EAAG95P,WAAWlQ,KAAOq7P,EAA0CrzL,gBAAgB4R,MAAMowL,EAAG95P,WAAWlQ,KAAM18B,KAAKk+R,cAAel+R,KAAK+9R,eAClI2I,EAAG3oH,aAAarhJ,KAAOq7P,EAA0CrzL,gBAAgB4R,MAAMowL,EAAG3oH,aAAarhJ,KAAM18B,KAAKk+R,cAAel+R,KAAK+9R,cAC1I,GAOJ,SAAS7hQ,EAAkByqQ,GACvB3mS,KAAK4mS,OAAS,KACd5mS,KAAK6mS,kBAAmB,EACxB7mS,KAAK8mS,UAAY,EACjB9mS,KAAK+mS,UAAY,EACjB/mS,KAAKgnS,WAAa,IAClBhnS,KAAKinS,0BAA4B,GACjCjnS,KAAKknS,WAAa,GAClBlnS,KAAK4mS,OAASD,CAClB,EAbA,EAAGh8O,EAA4CzS,cAAc,aAAc,CAACjb,EAAY0gQ,EAAa,OAerG,IAAIwJ,EAAqB,CACrB9qQ,gBAAiB,SAAUz7B,GACvBZ,KAAK6mS,iBAAmBjmS,CAC5B,EAEAg8B,YAAa,SAAUmiB,EAAKG,EAAKxiB,GAC7B18B,KAAK8mS,UAAY/nP,EACjB/+C,KAAK+mS,UAAY7nP,EACjBl/C,KAAKgnS,WAAatqQ,CACtB,EAEAH,iBAAkB,SAAU6qQ,GACxBpnS,KAAKinS,0BAA4BG,CACrC,EAEAtqQ,YAAa,SAAUl8B,GACnBZ,KAAKknS,WAAatmS,CACtB,EAEAuB,OAAQ,WACJ,IACIklS,EADA9qQ,IAAqBv8B,KAAKinS,0BAa9B,OAVII,EADErnS,KAAKknS,WACSlnS,KAAKknS,WACd3qQ,EACS,QAEA,OAEpB,EAAGs5D,EAA8CkO,sBAAsBxnE,GACnEA,GACAivH,EAA6C5xD,WAAW18D,UAAU+hP,qBAAqBj/Q,KAAKinS,2BAEzFhqQ,EAAW2/P,aAAa58R,KAAK4mS,OAAQ5mS,KAAK6mS,iBAAkB7mS,KAAK8mS,UAAW9mS,KAAK+mS,UAAW/mS,KAAKgnS,WAAYK,EACxH,GAOJ,SAASxP,EAAgB9sP,EAAG/mC,GACxBhE,KAAKssG,QAAU,EACftsG,KAAKusG,QAAU,EACfvsG,KAAKssG,QAAUvhE,EACf/qC,KAAKusG,QAAUvoG,CACnB,EATA,EAAG2mD,EAA4CzS,cAAc,oBAAqB,CAAChc,EAAmBirQ,EAAoB,OAW1H,IAAIG,EAAmB,CAAC,GAExB,EAAG38O,EAA4CzS,cAAc,kBAAmB,CAAC2/O,EAAiByP,EAAkB,MAG7G,EAED;;;yCAIA,CAAEjpS,EAAQkpS,EAA0B,KAK1C,IAAIllS,EAAa,2BAA8C,4CAAkD,OAE7GmlS,EAAY,sBAAyC,uCACrDl6H,EAAY,sBAAyC,uCACrDm6H,EAAY,6BAAgD,8CAE5DC,EAAO,CAAC,EAEZrlS,EAAOqlS,EAAMF,EAASl6H,EAASm6H,GAE/BppS,EAAOC,QAAUopS,CAGV,EAED;;;+CAIA,CAAE/oS,EAAyBL,EAAS,KAK1C,IAAIqpS,EAAe,uBAA0C,4CACzDC,EAAe,uBAA0C,4CACzDC,EAAe,wBAA2C,6CAC1DvlQ,EAAe,wBAA2C,6CAC1DwlQ,EAAe,uBAA0C,4CAEzDp+R,EAAWhK,OAAOY,UAAUoJ,SAK5Bq+R,EAAkB,EAClBC,EAAkB,EAElBC,EAAkB,EAClBC,EAAkB,EAClBC,EAAkB,EAElBC,GAAyB,EAEzBC,EAAwB,EAExBC,EAAc,EA8FlB,SAASC,EAAQ/wR,GACf,KAAMxX,gBAAgBuoS,GAAU,OAAO,IAAIA,EAAQ/wR,GAEnDxX,KAAKwX,QAAUowR,EAAMvlS,OAAO,CAC1Bw3G,MAAOuuL,EACP9/R,OAAQggS,EACRE,UAAW,MACXC,WAAY,GACZC,SAAU,EACVC,SAAUN,EACVj5M,GAAI,IACH53E,GAAW,CAAC,GAEf,IAAIoxR,EAAM5oS,KAAKwX,QAEXoxR,EAAIthS,KAAQshS,EAAIH,WAAa,EAC/BG,EAAIH,YAAcG,EAAIH,WAGfG,EAAIC,MAASD,EAAIH,WAAa,GAAOG,EAAIH,WAAa,KAC7DG,EAAIH,YAAc,IAGpBzoS,KAAKutK,IAAS,EACdvtK,KAAKsiC,IAAS,GACdtiC,KAAK8oS,OAAS,EACd9oS,KAAK+oS,OAAS,GAEd/oS,KAAKgpS,KAAO,IAAIlB,EAChB9nS,KAAKgpS,KAAKC,UAAY,EAEtB,IAAIz9R,EAASm8R,EAAauB,aACxBlpS,KAAKgpS,KACLJ,EAAI/uL,MACJ+uL,EAAItgS,OACJsgS,EAAIH,WACJG,EAAIF,SACJE,EAAID,UAGN,GAAIn9R,IAAWy8R,EACb,MAAM,IAAIt6R,MAAM20B,EAAI92B,IAOtB,GAJIo9R,EAAIlvI,QACNiuI,EAAawB,iBAAiBnpS,KAAKgpS,KAAMJ,EAAIlvI,QAG3CkvI,EAAIQ,WAAY,CAClB,IAAIC,EAaJ,GATEA,EAF4B,kBAAnBT,EAAIQ,WAENvB,EAAQyB,WAAWV,EAAIQ,YACa,yBAAlC1/R,EAASlJ,KAAKooS,EAAIQ,YACpB,IAAI7jK,WAAWqjK,EAAIQ,YAEnBR,EAAIQ,WAGb59R,EAASm8R,EAAa4B,qBAAqBvpS,KAAKgpS,KAAMK,GAElD79R,IAAWy8R,EACb,MAAM,IAAIt6R,MAAM20B,EAAI92B,IAGtBxL,KAAKwpS,WAAY,CACnB,CACF,CAuKA,SAAShC,EAAQ50L,EAAOp7F,GACtB,IAAIiyR,EAAW,IAAIlB,EAAQ/wR,GAK3B,GAHAiyR,EAAS9kS,KAAKiuG,GAAO,GAGjB62L,EAASl8H,IAAO,MAAMk8H,EAASnnQ,KAAOA,EAAImnQ,EAASl8H,KAEvD,OAAOk8H,EAAS/lS,MAClB,CAWA,SAASgmS,EAAW92L,EAAOp7F,GAGzB,OAFAA,EAAUA,GAAW,CAAC,EACtBA,EAAQlQ,KAAM,EACPkgS,EAAQ50L,EAAOp7F,EACxB,CAWA,SAASqxR,EAAKj2L,EAAOp7F,GAGnB,OAFAA,EAAUA,GAAW,CAAC,EACtBA,EAAQqxR,MAAO,EACRrB,EAAQ50L,EAAOp7F,EACxB,CA/KA+wR,EAAQjoS,UAAUqE,KAAO,SAAU8C,EAAM24B,GACvC,IAEI50B,EAAQm+R,EAFRX,EAAOhpS,KAAKgpS,KACZR,EAAYxoS,KAAKwX,QAAQgxR,UAG7B,GAAIxoS,KAAK8oS,MAAS,OAAO,EAEzBa,EAASvpQ,MAAWA,EAAQA,GAAkB,IAATA,EAAiB4nQ,EAAWD,EAG7C,kBAATtgS,EAETuhS,EAAKp2L,MAAQi1L,EAAQyB,WAAW7hS,GACC,yBAAxBiC,EAASlJ,KAAKiH,GACvBuhS,EAAKp2L,MAAQ,IAAI2yB,WAAW99H,GAE5BuhS,EAAKp2L,MAAQnrG,EAGfuhS,EAAKY,QAAU,EACfZ,EAAKa,SAAWb,EAAKp2L,MAAMjwG,OAE3B,EAAG,CAQD,GAPuB,IAAnBqmS,EAAKC,YACPD,EAAKn2L,OAAS,IAAI+0L,EAAMkC,KAAKtB,GAC7BQ,EAAKe,SAAW,EAChBf,EAAKC,UAAYT,GAEnBh9R,EAASm8R,EAAaH,QAAQwB,EAAMW,GAEhCn+R,IAAW08R,GAAgB18R,IAAWy8R,EAGxC,OAFAjoS,KAAKgqS,MAAMx+R,GACXxL,KAAK8oS,OAAQ,GACN,EAEc,IAAnBE,EAAKC,YAAsC,IAAlBD,EAAKa,UAAmBF,IAAU3B,GAAY2B,IAAUxB,KAC3D,WAApBnoS,KAAKwX,QAAQ43E,GACfpvF,KAAKiqS,OAAOpC,EAAQqC,cAActC,EAAMuC,UAAUnB,EAAKn2L,OAAQm2L,EAAKe,YAEpE/pS,KAAKiqS,OAAOrC,EAAMuC,UAAUnB,EAAKn2L,OAAQm2L,EAAKe,WAGpD,QAAUf,EAAKa,SAAW,GAAwB,IAAnBb,EAAKC,YAAoBz9R,IAAW08R,GAGnE,OAAIyB,IAAU3B,GACZx8R,EAASm8R,EAAayC,WAAWpqS,KAAKgpS,MACtChpS,KAAKgqS,MAAMx+R,GACXxL,KAAK8oS,OAAQ,EACNt9R,IAAWy8R,GAIhB0B,IAAUxB,IACZnoS,KAAKgqS,MAAM/B,GACXe,EAAKC,UAAY,GACV,EAIX,EAYAV,EAAQjoS,UAAU2pS,OAAS,SAAUI,GACnCrqS,KAAK+oS,OAAOpkS,KAAK0lS,EACnB,EAaA9B,EAAQjoS,UAAU0pS,MAAQ,SAAUx+R,GAE9BA,IAAWy8R,IACW,WAApBjoS,KAAKwX,QAAQ43E,GACfpvF,KAAK0D,OAAS1D,KAAK+oS,OAAOl4D,KAAK,IAE/B7wO,KAAK0D,OAASkkS,EAAM0C,cAActqS,KAAK+oS,SAG3C/oS,KAAK+oS,OAAS,GACd/oS,KAAKutK,IAAM/hK,EACXxL,KAAKsiC,IAAMtiC,KAAKgpS,KAAK1mQ,GACvB,EA+EAhkC,EAAQiqS,QAAUA,EAClBjqS,EAAQkpS,QAAUA,EAClBlpS,EAAQorS,WAAaA,EACrBprS,EAAQuqS,KAAOA,CAGR,EAED;;;+CAIA,CAAElqS,EAAyBL,EAAS,KAK1C,IAAIisS,EAAe,uBAA0C,4CACzD3C,EAAe,uBAA0C,4CACzDC,EAAe,wBAA2C,6CAC1DjpS,EAAe,yBAA4C,8CAC3D0jC,EAAe,wBAA2C,6CAC1DwlQ,EAAe,uBAA0C,4CACzD0C,EAAe,wBAA2C,6CAE1D9gS,EAAWhK,OAAOY,UAAUoJ,SAiFhC,SAAS+gS,EAAQjzR,GACf,KAAMxX,gBAAgByqS,GAAU,OAAO,IAAIA,EAAQjzR,GAEnDxX,KAAKwX,QAAUowR,EAAMvlS,OAAO,CAC1BmmS,UAAW,MACXC,WAAY,EACZr5M,GAAI,IACH53E,GAAW,CAAC,GAEf,IAAIoxR,EAAM5oS,KAAKwX,QAIXoxR,EAAIthS,KAAQshS,EAAIH,YAAc,GAAOG,EAAIH,WAAa,KACxDG,EAAIH,YAAcG,EAAIH,WACC,IAAnBG,EAAIH,aAAoBG,EAAIH,YAAc,OAI3CG,EAAIH,YAAc,GAAOG,EAAIH,WAAa,KACzCjxR,GAAWA,EAAQixR,aACvBG,EAAIH,YAAc,IAKfG,EAAIH,WAAa,IAAQG,EAAIH,WAAa,IAGf,KAAR,GAAjBG,EAAIH,cACPG,EAAIH,YAAc,IAItBzoS,KAAKutK,IAAS,EACdvtK,KAAKsiC,IAAS,GACdtiC,KAAK8oS,OAAS,EACd9oS,KAAK+oS,OAAS,GAEd/oS,KAAKgpS,KAAS,IAAIlB,EAClB9nS,KAAKgpS,KAAKC,UAAY,EAEtB,IAAIz9R,EAAU++R,EAAaG,aACzB1qS,KAAKgpS,KACLJ,EAAIH,YAGN,GAAIj9R,IAAW5M,EAAEqpS,KACf,MAAM,IAAIt6R,MAAM20B,EAAI92B,IAQtB,GALAxL,KAAK05J,OAAS,IAAI8wI,EAElBD,EAAaI,iBAAiB3qS,KAAKgpS,KAAMhpS,KAAK05J,QAG1CkvI,EAAIQ,aAEwB,kBAAnBR,EAAIQ,WACbR,EAAIQ,WAAavB,EAAQyB,WAAWV,EAAIQ,YACG,yBAAlC1/R,EAASlJ,KAAKooS,EAAIQ,cAC3BR,EAAIQ,WAAa,IAAI7jK,WAAWqjK,EAAIQ,aAElCR,EAAIthS,MACNkE,EAAS++R,EAAaK,qBAAqB5qS,KAAKgpS,KAAMJ,EAAIQ,YACtD59R,IAAW5M,EAAEqpS,OACf,MAAM,IAAIt6R,MAAM20B,EAAI92B,GAI5B,CA4NA,SAAS8hK,EAAQ16D,EAAOp7F,GACtB,IAAIqzR,EAAW,IAAIJ,EAAQjzR,GAK3B,GAHAqzR,EAASlmS,KAAKiuG,GAAO,GAGjBi4L,EAASt9H,IAAO,MAAMs9H,EAASvoQ,KAAOA,EAAIuoQ,EAASt9H,KAEvD,OAAOs9H,EAASnnS,MAClB,CAWA,SAASonS,EAAWl4L,EAAOp7F,GAGzB,OAFAA,EAAUA,GAAW,CAAC,EACtBA,EAAQlQ,KAAM,EACPgmK,EAAQ16D,EAAOp7F,EACxB,CAtNAizR,EAAQnqS,UAAUqE,KAAO,SAAU8C,EAAM24B,GACvC,IAGI50B,EAAQm+R,EACRoB,EAAeC,EAAMC,EAJrBjC,EAAOhpS,KAAKgpS,KACZR,EAAYxoS,KAAKwX,QAAQgxR,UACzBY,EAAappS,KAAKwX,QAAQ4xR,WAM1B8B,GAAgB,EAEpB,GAAIlrS,KAAK8oS,MAAS,OAAO,EACzBa,EAASvpQ,MAAWA,EAAQA,GAAkB,IAATA,EAAiBxhC,EAAEopS,SAAWppS,EAAEmpS,WAGjD,kBAATtgS,EAETuhS,EAAKp2L,MAAQi1L,EAAQsD,cAAc1jS,GACF,yBAAxBiC,EAASlJ,KAAKiH,GACvBuhS,EAAKp2L,MAAQ,IAAI2yB,WAAW99H,GAE5BuhS,EAAKp2L,MAAQnrG,EAGfuhS,EAAKY,QAAU,EACfZ,EAAKa,SAAWb,EAAKp2L,MAAMjwG,OAE3B,EAAG,CAkBD,GAjBuB,IAAnBqmS,EAAKC,YACPD,EAAKn2L,OAAS,IAAI+0L,EAAMkC,KAAKtB,GAC7BQ,EAAKe,SAAW,EAChBf,EAAKC,UAAYT,GAGnBh9R,EAAS++R,EAAaj9H,QAAQ07H,EAAMpqS,EAAEmpS,YAElCv8R,IAAW5M,EAAEwsS,aAAehC,IAC9B59R,EAAS++R,EAAaK,qBAAqB5qS,KAAKgpS,KAAMI,IAGpD59R,IAAW5M,EAAEysS,cAAiC,IAAlBH,IAC9B1/R,EAAS5M,EAAEqpS,KACXiD,GAAgB,GAGd1/R,IAAW5M,EAAEspS,cAAgB18R,IAAW5M,EAAEqpS,KAG5C,OAFAjoS,KAAKgqS,MAAMx+R,GACXxL,KAAK8oS,OAAQ,GACN,EAGLE,EAAKe,WACgB,IAAnBf,EAAKC,WAAmBz9R,IAAW5M,EAAEspS,eAAmC,IAAlBc,EAAKa,UAAmBF,IAAU/qS,EAAEopS,UAAY2B,IAAU/qS,EAAEupS,gBAE5F,WAApBnoS,KAAKwX,QAAQ43E,IAEf27M,EAAgBlD,EAAQyD,WAAWtC,EAAKn2L,OAAQm2L,EAAKe,UAErDiB,EAAOhC,EAAKe,SAAWgB,EACvBE,EAAUpD,EAAQ0D,WAAWvC,EAAKn2L,OAAQk4L,GAG1C/B,EAAKe,SAAWiB,EAChBhC,EAAKC,UAAYT,EAAYwC,EACzBA,GAAQpD,EAAM4D,SAASxC,EAAKn2L,OAAQm2L,EAAKn2L,OAAQk4L,EAAeC,EAAM,GAE1EhrS,KAAKiqS,OAAOgB,IAGZjrS,KAAKiqS,OAAOrC,EAAMuC,UAAUnB,EAAKn2L,OAAQm2L,EAAKe,aAY9B,IAAlBf,EAAKa,UAAqC,IAAnBb,EAAKC,YAC9BiC,GAAgB,EAGpB,QAAUlC,EAAKa,SAAW,GAAwB,IAAnBb,EAAKC,YAAoBz9R,IAAW5M,EAAEspS,cAOrE,OALI18R,IAAW5M,EAAEspS,eACfyB,EAAQ/qS,EAAEopS,UAIR2B,IAAU/qS,EAAEopS,UACdx8R,EAAS++R,EAAakB,WAAWzrS,KAAKgpS,MACtChpS,KAAKgqS,MAAMx+R,GACXxL,KAAK8oS,OAAQ,EACNt9R,IAAW5M,EAAEqpS,MAIlB0B,IAAU/qS,EAAEupS,eACdnoS,KAAKgqS,MAAMprS,EAAEqpS,MACbe,EAAKC,UAAY,GACV,EAIX,EAYAwB,EAAQnqS,UAAU2pS,OAAS,SAAUI,GACnCrqS,KAAK+oS,OAAOpkS,KAAK0lS,EACnB,EAaAI,EAAQnqS,UAAU0pS,MAAQ,SAAUx+R,GAE9BA,IAAW5M,EAAEqpS,OACS,WAApBjoS,KAAKwX,QAAQ43E,GAGfpvF,KAAK0D,OAAS1D,KAAK+oS,OAAOl4D,KAAK,IAE/B7wO,KAAK0D,OAASkkS,EAAM0C,cAActqS,KAAK+oS,SAG3C/oS,KAAK+oS,OAAS,GACd/oS,KAAKutK,IAAM/hK,EACXxL,KAAKsiC,IAAMtiC,KAAKgpS,KAAK1mQ,GACvB,EA+EAhkC,EAAQmsS,QAAUA,EAClBnsS,EAAQgvK,QAAUA,EAClBhvK,EAAQwsS,WAAaA,EACrBxsS,EAAQotS,OAAUp+H,CAGX,EAED;;;oDAIA,CAAE3uK,EAAyBL,KAKjC,IAAIqtS,EAAmC,qBAAfpmK,YACgB,qBAAhBxoB,aACe,qBAAf6uL,WAExB,SAASC,EAAKzrS,EAAKnB,GACjB,OAAOS,OAAOY,UAAUC,eAAeC,KAAKJ,EAAKnB,EACnD,CAEAX,EAAQ+D,OAAS,SAAUjC,GACzB,IAAI0rS,EAAUjqS,MAAMvB,UAAU+Y,MAAM7Y,KAAKkC,UAAW,GACpD,MAAOopS,EAAQnpS,OAAQ,CACrB,IAAIkd,EAASisR,EAAQn7D,QACrB,GAAK9wN,EAAL,CAEA,GAAsB,kBAAXA,EACT,MAAM,IAAI9d,UAAU8d,EAAS,sBAG/B,IAAK,IAAIhf,KAAKgf,EACRgsR,EAAKhsR,EAAQhf,KACfT,EAAIS,GAAKgf,EAAOhf,GARK,CAW3B,CAEA,OAAOT,CACT,EAIA9B,EAAQ6rS,UAAY,SAAU3oI,EAAKrwJ,GACjC,OAAIqwJ,EAAI7+J,SAAWwO,EAAeqwJ,EAC9BA,EAAIuqI,SAAmBvqI,EAAIuqI,SAAS,EAAG56R,IAC3CqwJ,EAAI7+J,OAASwO,EACNqwJ,EACT,EAGA,IAAIwqI,EAAU,CACZR,SAAU,SAAU1rR,EAAMve,EAAK0qS,EAAU1tM,EAAK2tM,GAC5C,GAAI3qS,EAAIwqS,UAAYjsR,EAAKisR,SACvBjsR,EAAK/K,IAAIxT,EAAIwqS,SAASE,EAAUA,EAAW1tM,GAAM2tM,QAInD,IAAK,IAAI1pS,EAAI,EAAGA,EAAI+7F,EAAK/7F,IACvBsd,EAAKosR,EAAY1pS,GAAKjB,EAAI0qS,EAAWzpS,EAEzC,EAEA8nS,cAAe,SAAUvB,GACvB,IAAIvmS,EAAG++C,EAAGg9C,EAAKtkD,EAAKowP,EAAO3mS,EAI3B,IADA66F,EAAM,EACD/7F,EAAI,EAAG++C,EAAIwnP,EAAOpmS,OAAQH,EAAI++C,EAAG/+C,IACpC+7F,GAAOwqM,EAAOvmS,GAAGG,OAMnB,IAFAe,EAAS,IAAI6hI,WAAWhnC,GACxBtkD,EAAM,EACDz3C,EAAI,EAAG++C,EAAIwnP,EAAOpmS,OAAQH,EAAI++C,EAAG/+C,IACpC6nS,EAAQtB,EAAOvmS,GACfkB,EAAOqR,IAAIs1R,EAAOpwP,GAClBA,GAAOowP,EAAM1nS,OAGf,OAAOe,CACT,GAGEyoS,EAAY,CACdX,SAAU,SAAU1rR,EAAMve,EAAK0qS,EAAU1tM,EAAK2tM,GAC5C,IAAK,IAAI1pS,EAAI,EAAGA,EAAI+7F,EAAK/7F,IACvBsd,EAAKosR,EAAY1pS,GAAKjB,EAAI0qS,EAAWzpS,EAEzC,EAEA8nS,cAAe,SAAUvB,GACvB,MAAO,GAAGx0R,OAAO3R,MAAM,GAAImmS,EAC7B,GAMFzqS,EAAQ8tS,SAAW,SAAUnkS,GACvBA,GACF3J,EAAQwrS,KAAQvkK,WAChBjnI,EAAQ+tS,MAAQtvL,YAChBz+G,EAAQguS,MAAQV,WAChBttS,EAAQ+D,OAAO/D,EAAS0tS,KAExB1tS,EAAQwrS,KAAQjoS,MAChBvD,EAAQ+tS,MAAQxqS,MAChBvD,EAAQguS,MAAQzqS,MAChBvD,EAAQ+D,OAAO/D,EAAS6tS,GAE5B,EAEA7tS,EAAQ8tS,SAAST,EAGV,EAED;;;qDAIA,CAAEhtS,EAAyBL,EAAS,KAM1C,IAAIspS,EAAQ,iBAAoC,4CAQ5C2E,GAAe,EACfC,GAAmB,EAEvB,IAAMxqS,OAAOwI,aAAa5H,MAAM,KAAM,CAAE,GAAM,CAAE,MAAOX,GAAMsqS,GAAe,CAAO,CACnF,IAAMvqS,OAAOwI,aAAa5H,MAAM,KAAM,IAAI2iI,WAAW,GAAK,CAAE,MAAOtjI,GAAMuqS,GAAmB,CAAO,CAOnG,IADA,IAAIC,EAAW,IAAI7E,EAAMkC,KAAK,KACrBzqO,EAAI,EAAGA,EAAI,IAAKA,IACvBotO,EAASptO,GAAMA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAIA,GAAK,IAAM,EAAI,EA4D5F,SAAS6qO,EAAc1oI,EAAKjjE,GAI1B,GAAIA,EAAM,QACHijE,EAAIuqI,UAAYS,IAAuBhrI,EAAIuqI,UAAYQ,GAC1D,OAAOvqS,OAAOwI,aAAa5H,MAAM,KAAMglS,EAAMuC,UAAU3oI,EAAKjjE,IAKhE,IADA,IAAI76F,EAAS,GACJlB,EAAI,EAAGA,EAAI+7F,EAAK/7F,IACvBkB,GAAU1B,OAAOwI,aAAag3J,EAAIh/J,IAEpC,OAAOkB,CACT,CAzEA+oS,EAAS,KAAOA,EAAS,KAAO,EAIhCnuS,EAAQgrS,WAAa,SAAU32D,GAC7B,IAAInxE,EAAK5iK,EAAG+2H,EAAI+2K,EAAOlqS,EAAGmqS,EAAUh6D,EAAIhwO,OAAQiqS,EAAU,EAG1D,IAAKF,EAAQ,EAAGA,EAAQC,EAASD,IAC/B9tS,EAAI+zO,EAAI/oJ,WAAW8iN,GACE,SAAZ,MAAJ9tS,IAA2B8tS,EAAQ,EAAIC,IAC1Ch3K,EAAKg9G,EAAI/oJ,WAAW8iN,EAAQ,GACN,SAAZ,MAAL/2K,KACH/2H,EAAI,OAAYA,EAAI,OAAW,KAAO+2H,EAAK,OAC3C+2K,MAGJE,GAAWhuS,EAAI,IAAO,EAAIA,EAAI,KAAQ,EAAIA,EAAI,MAAU,EAAI,EAO9D,IAHA4iK,EAAM,IAAIomI,EAAMkC,KAAK8C,GAGhBpqS,EAAI,EAAGkqS,EAAQ,EAAGlqS,EAAIoqS,EAASF,IAClC9tS,EAAI+zO,EAAI/oJ,WAAW8iN,GACE,SAAZ,MAAJ9tS,IAA2B8tS,EAAQ,EAAIC,IAC1Ch3K,EAAKg9G,EAAI/oJ,WAAW8iN,EAAQ,GACN,SAAZ,MAAL/2K,KACH/2H,EAAI,OAAYA,EAAI,OAAW,KAAO+2H,EAAK,OAC3C+2K,MAGA9tS,EAAI,IAEN4iK,EAAIh/J,KAAO5D,EACFA,EAAI,MAEb4iK,EAAIh/J,KAAO,IAAQ5D,IAAM,EACzB4iK,EAAIh/J,KAAO,IAAY,GAAJ5D,GACVA,EAAI,OAEb4iK,EAAIh/J,KAAO,IAAQ5D,IAAM,GACzB4iK,EAAIh/J,KAAO,IAAQ5D,IAAM,EAAI,GAC7B4iK,EAAIh/J,KAAO,IAAY,GAAJ5D,IAGnB4iK,EAAIh/J,KAAO,IAAQ5D,IAAM,GACzB4iK,EAAIh/J,KAAO,IAAQ5D,IAAM,GAAK,GAC9B4iK,EAAIh/J,KAAO,IAAQ5D,IAAM,EAAI,GAC7B4iK,EAAIh/J,KAAO,IAAY,GAAJ5D,GAIvB,OAAO4iK,CACT,EAsBAljK,EAAQ4rS,cAAgB,SAAU1oI,GAChC,OAAO0oI,EAAc1oI,EAAKA,EAAI7+J,OAChC,EAIArE,EAAQ6sS,cAAgB,SAAUx4D,GAEhC,IADA,IAAInxE,EAAM,IAAIomI,EAAMkC,KAAKn3D,EAAIhwO,QACpBH,EAAI,EAAG+7F,EAAMijE,EAAI7+J,OAAQH,EAAI+7F,EAAK/7F,IACzCg/J,EAAIh/J,GAAKmwO,EAAI/oJ,WAAWpnF,GAE1B,OAAOg/J,CACT,EAIAljK,EAAQitS,WAAa,SAAU/pI,EAAKj8J,GAClC,IAAI/C,EAAGqqS,EAAKjuS,EAAGkuS,EACXvuM,EAAMh5F,GAAOi8J,EAAI7+J,OAKjBoqS,EAAW,IAAIlrS,MAAY,EAAN08F,GAEzB,IAAKsuM,EAAM,EAAGrqS,EAAI,EAAGA,EAAI+7F,GAGvB,GAFA3/F,EAAI4iK,EAAIh/J,KAEJ5D,EAAI,IAAQmuS,EAASF,KAASjuS,OAIlC,GAFAkuS,EAAQL,EAAS7tS,GAEbkuS,EAAQ,EAAKC,EAASF,KAAS,MAAQrqS,GAAKsqS,EAAQ,MAAxD,CAGAluS,GAAe,IAAVkuS,EAAc,GAAiB,IAAVA,EAAc,GAAO,EAE/C,MAAOA,EAAQ,GAAKtqS,EAAI+7F,EACtB3/F,EAAKA,GAAK,EAAiB,GAAX4iK,EAAIh/J,KACpBsqS,IAIEA,EAAQ,EAAKC,EAASF,KAAS,MAE/BjuS,EAAI,MACNmuS,EAASF,KAASjuS,GAElBA,GAAK,MACLmuS,EAASF,KAAS,MAAWjuS,GAAK,GAAM,KACxCmuS,EAASF,KAAS,MAAc,KAAJjuS,EAlBuC,CAsBvE,OAAOsrS,EAAc6C,EAAUF,EACjC,EASAvuS,EAAQgtS,WAAa,SAAU9pI,EAAKj8J,GAClC,IAAI00C,EAEJ10C,EAAMA,GAAOi8J,EAAI7+J,OACb4C,EAAMi8J,EAAI7+J,SAAU4C,EAAMi8J,EAAI7+J,QAGlCs3C,EAAM10C,EAAM,EACZ,MAAO00C,GAAO,GAA2B,OAAV,IAAXunH,EAAIvnH,IAAyBA,IAIjD,OAAIA,EAAM,GAIE,IAARA,EAJkB10C,EAMd00C,EAAMwyP,EAASjrI,EAAIvnH,IAAQ10C,EAAO00C,EAAM10C,CAClD,CAGO,EAED;;;oDAIElH,IA2BR,SAAS2uS,EAAQC,EAAOzrI,EAAKjjE,EAAKtkD,GAChC,IAAIk4L,EAAc,MAAR86D,EAAiB,EACvB76D,EAAO66D,IAAU,GAAM,MAAS,EAChCxqS,EAAI,EAER,MAAe,IAAR87F,EAAW,CAIhB97F,EAAI87F,EAAM,IAAO,IAAOA,EACxBA,GAAO97F,EAEP,GACE0vO,EAAMA,EAAK3wE,EAAIvnH,KAAS,EACxBm4L,EAAMA,EAAKD,EAAK,UACP1vO,GAEX0vO,GAAM,MACNC,GAAM,KACR,CAEA,OAAQD,EAAMC,GAAM,GAAM,CAC5B,CAGA/zO,EAAOC,QAAU0uS,CAGV,EAED;;;sDAIE3uS,IAuBRA,EAAOC,QAAU,CAGfypS,WAAoB,EACpBmF,gBAAoB,EACpB/E,aAAoB,EACpBgF,aAAoB,EACpBnF,SAAoB,EACpBoF,QAAoB,EACpBC,QAAoB,EAKpBpF,KAAoB,EACpBC,aAAoB,EACpBkD,YAAoB,EACpBkC,SAAoB,EACpBC,gBAAoB,EACpBC,cAAoB,EAEpBnC,aAAoB,EAIpBoC,iBAA0B,EAC1BC,aAA0B,EAC1BC,mBAA0B,EAC1BvF,uBAA0B,EAG1BwF,WAA0B,EAC1BC,eAA0B,EAC1BC,MAA0B,EAC1BC,QAA0B,EAC1B1F,mBAA0B,EAG1B2F,SAA0B,EAC1BC,OAA0B,EAE1BC,UAA0B,EAG1B5F,WAA0B,EAKrB,EAED;;;kDAIEjqS,IA4BR,SAAS8vS,IAGP,IAFA,IAAIvvS,EAAGk1K,EAAQ,GAENrxK,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC5B7D,EAAI6D,EACJ,IAAK,IAAIwjD,EAAI,EAAGA,EAAI,EAAGA,IACrBrnD,EAAU,EAAJA,EAAU,WAAcA,IAAM,EAAOA,IAAM,EAEnDk1K,EAAMrxK,GAAK7D,CACb,CAEA,OAAOk1K,CACT,CAGA,IAAIs6H,EAAWD,IAGf,SAASE,EAAMC,EAAK9sI,EAAKjjE,EAAKtkD,GAC5B,IAAI33C,EAAI8rS,EACJ/kN,EAAMpvC,EAAMskD,EAEhB+vM,IAAQ,EAER,IAAK,IAAI9rS,EAAIy3C,EAAKz3C,EAAI6mF,EAAK7mF,IACzB8rS,EAAOA,IAAQ,EAAKhsS,EAAmB,KAAhBgsS,EAAM9sI,EAAIh/J,KAGnC,OAAgB,EAAR8rS,CACV,CAGAjwS,EAAOC,QAAU+vS,CAGV,EAED;;;oDAIA,CAAE1vS,EAAyBL,EAAS,KAuB1C,IAkgCIiwS,EAlgCA3G,EAAU,wBAA2C,4CACrD4G,EAAU,gBAAmC,0CAC7CxB,EAAU,kBAAqC,4CAC/CqB,EAAU,gBAAmC,0CAC7C/rQ,EAAU,mBAAsC,6CAOhDylQ,EAAkB,EAClBmF,EAAkB,EAElBC,EAAkB,EAClBnF,EAAkB,EAClBoF,EAAkB,EAOlBnF,EAAkB,EAClBC,EAAkB,EAGlBqF,GAAmB,EACnBC,GAAmB,EAEnBnC,GAAmB,EAQnBjD,GAAyB,EAGzBwF,EAAwB,EACxBC,EAAwB,EACxBC,EAAwB,EACxBC,EAAwB,EACxB1F,EAAwB,EAMxB6F,EAAwB,EAIxB5F,EAAc,EAKdmG,EAAgB,EAEhBC,EAAY,GAEZC,EAAgB,EAGhBC,EAAgB,GAEhBC,EAAgB,IAEhBC,EAAgBD,EAAW,EAAID,EAE/BG,EAAgB,GAEhBC,EAAgB,GAEhBC,EAAgB,EAAIH,EAAU,EAE9BI,EAAY,GAGZC,EAAY,EACZC,EAAY,IACZC,EAAiBD,EAAYD,EAAY,EAEzCG,EAAc,GAEdC,EAAa,GACbC,EAAc,GACdC,EAAa,GACbC,EAAgB,GAChBC,EAAa,IACbC,EAAa,IACbC,EAAe,IAEfC,EAAoB,EACpBC,EAAoB,EACpBC,EAAoB,EACpBC,EAAoB,EAEpBC,EAAU,EAEd,SAAS3iI,EAAIy7H,EAAMmH,GAEjB,OADAnH,EAAK1mQ,IAAMA,EAAI6tQ,GACRA,CACT,CAEA,SAASC,GAAKrsS,GACZ,OAAQ,GAAO,IAAM,EAAM,EAAI,EAAI,EACrC,CAEA,SAASupE,GAAKk0F,GAAO,IAAIjjE,EAAMijE,EAAI7+J,OAAQ,QAAS47F,GAAO,EAAKijE,EAAIjjE,GAAO,CAAK,CAShF,SAAS8xM,GAAcrH,GACrB,IAAIzmS,EAAIymS,EAAKp6R,MAGT2vF,EAAMh8F,EAAE0zR,QACR13L,EAAMyqM,EAAKC,YACb1qM,EAAMyqM,EAAKC,WAED,IAAR1qM,IAEJqpM,EAAM4D,SAASxC,EAAKn2L,OAAQtwG,EAAE+tS,YAAa/tS,EAAEguS,YAAahyM,EAAKyqM,EAAKe,UACpEf,EAAKe,UAAYxrM,EACjBh8F,EAAEguS,aAAehyM,EACjByqM,EAAKwH,WAAajyM,EAClByqM,EAAKC,WAAa1qM,EAClBh8F,EAAE0zR,SAAW13L,EACK,IAAdh8F,EAAE0zR,UACJ1zR,EAAEguS,YAAc,GAEpB,CAGA,SAASE,GAAiBluS,EAAGsrO,GAC3B2gE,EAAMkC,gBAAgBnuS,EAAIA,EAAEouS,aAAe,EAAIpuS,EAAEouS,aAAe,EAAIpuS,EAAEquS,SAAWruS,EAAEouS,YAAa9iE,GAChGtrO,EAAEouS,YAAcpuS,EAAEquS,SAClBP,GAAc9tS,EAAEymS,KAClB,CAGA,SAAS6H,GAAStuS,EAAGb,GACnBa,EAAE+tS,YAAY/tS,EAAE0zR,WAAav0R,CAC/B,CAQA,SAASovS,GAAYvuS,EAAGb,GAGtBa,EAAE+tS,YAAY/tS,EAAE0zR,WAAcv0R,IAAM,EAAK,IACzCa,EAAE+tS,YAAY/tS,EAAE0zR,WAAiB,IAAJv0R,CAC/B,CAUA,SAASqvS,GAAS/H,EAAMxnI,EAAK96H,EAAOv1B,GAClC,IAAIotF,EAAMyqM,EAAKa,SAGf,OADItrM,EAAMptF,IAAQotF,EAAMptF,GACZ,IAARotF,EAAoB,GAExByqM,EAAKa,UAAYtrM,EAGjBqpM,EAAM4D,SAAShqI,EAAKwnI,EAAKp2L,MAAOo2L,EAAKY,QAASrrM,EAAK73D,GAC3B,IAApBsiQ,EAAKp6R,MAAMoiS,KACbhI,EAAKiE,MAAQD,EAAQhE,EAAKiE,MAAOzrI,EAAKjjE,EAAK73D,GAGhB,IAApBsiQ,EAAKp6R,MAAMoiS,OAClBhI,EAAKiE,MAAQoB,EAAMrF,EAAKiE,MAAOzrI,EAAKjjE,EAAK73D,IAG3CsiQ,EAAKY,SAAWrrM,EAChByqM,EAAKiI,UAAY1yM,EAEVA,EACT,CAYA,SAAS2yM,GAAc3uS,EAAG4uS,GACxB,IAEI3vS,EACA+8F,EAHA6yM,EAAe7uS,EAAE8uS,iBACjBC,EAAO/uS,EAAEquS,SAGTW,EAAWhvS,EAAEivS,YACbC,EAAalvS,EAAEkvS,WACfpvQ,EAAS9/B,EAAEquS,SAAYruS,EAAEmvS,OAASrC,EAClC9sS,EAAEquS,UAAYruS,EAAEmvS,OAASrC,GAAiB,EAE1CsC,EAAOpvS,EAAEpC,OAETyxS,EAAQrvS,EAAEsvS,OACVC,EAAQvvS,EAAEuvS,KAMVC,EAASxvS,EAAEquS,SAAWxB,EACtB4C,EAAaL,EAAKL,EAAOC,EAAW,GACpCU,EAAaN,EAAKL,EAAOC,GAQzBhvS,EAAEivS,aAAejvS,EAAE2vS,aACrBd,IAAiB,GAKfK,EAAalvS,EAAE4vS,YAAaV,EAAalvS,EAAE4vS,WAI/C,GAaE,GAXA3wS,EAAQ2vS,EAWJQ,EAAKnwS,EAAQ+vS,KAAkBU,GAC/BN,EAAKnwS,EAAQ+vS,EAAW,KAAOS,GAC/BL,EAAKnwS,KAA0BmwS,EAAKL,IACpCK,IAAOnwS,KAAwBmwS,EAAKL,EAAO,GAH/C,CAaAA,GAAQ,EACR9vS,IAMA,UAESmwS,IAAOL,KAAUK,IAAOnwS,IAAUmwS,IAAOL,KAAUK,IAAOnwS,IAC1DmwS,IAAOL,KAAUK,IAAOnwS,IAAUmwS,IAAOL,KAAUK,IAAOnwS,IAC1DmwS,IAAOL,KAAUK,IAAOnwS,IAAUmwS,IAAOL,KAAUK,IAAOnwS,IAC1DmwS,IAAOL,KAAUK,IAAOnwS,IAAUmwS,IAAOL,KAAUK,IAAOnwS,IAC1D8vS,EAAOS,GAOhB,GAHAxzM,EAAM6wM,GAAa2C,EAAST,GAC5BA,EAAOS,EAAS3C,EAEZ7wM,EAAMgzM,EAAU,CAGlB,GAFAhvS,EAAE6vS,YAAcjB,EAChBI,EAAWhzM,EACPA,GAAOkzM,EACT,MAEFO,EAAaL,EAAKL,EAAOC,EAAW,GACpCU,EAAaN,EAAKL,EAAOC,EAC3B,CApCA,SAqCQJ,EAAYW,EAAKX,EAAYS,IAAUvvQ,GAA4B,MAAjB+uQ,GAE5D,OAAIG,GAAYhvS,EAAE4vS,UACTZ,EAEFhvS,EAAE4vS,SACX,CAaA,SAASE,GAAY9vS,GACnB,IACI1B,EAAG4B,EAAGoC,EAAGytS,EAAM3/D,EADf4/D,EAAUhwS,EAAEmvS,OAKhB,EAAG,CAqBD,GApBAY,EAAO/vS,EAAEiwS,YAAcjwS,EAAE4vS,UAAY5vS,EAAEquS,SAoBnCruS,EAAEquS,UAAY2B,GAAWA,EAAUlD,GAAgB,CAErDzH,EAAM4D,SAASjpS,EAAEpC,OAAQoC,EAAEpC,OAAQoyS,EAASA,EAAS,GACrDhwS,EAAE6vS,aAAeG,EACjBhwS,EAAEquS,UAAY2B,EAEdhwS,EAAEouS,aAAe4B,EASjB9vS,EAAIF,EAAEkwS,UACN5xS,EAAI4B,EACJ,GACEoC,EAAItC,EAAEmwS,OAAO7xS,GACb0B,EAAEmwS,KAAK7xS,GAAMgE,GAAK0tS,EAAU1tS,EAAI0tS,EAAU,UACjC9vS,GAEXA,EAAI8vS,EACJ1xS,EAAI4B,EACJ,GACEoC,EAAItC,EAAEuvS,OAAOjxS,GACb0B,EAAEuvS,KAAKjxS,GAAMgE,GAAK0tS,EAAU1tS,EAAI0tS,EAAU,UAIjC9vS,GAEX6vS,GAAQC,CACV,CACA,GAAwB,IAApBhwS,EAAEymS,KAAKa,SACT,MAmBF,GAJApnS,EAAIsuS,GAASxuS,EAAEymS,KAAMzmS,EAAEpC,OAAQoC,EAAEquS,SAAWruS,EAAE4vS,UAAWG,GACzD/vS,EAAE4vS,WAAa1vS,EAGXF,EAAE4vS,UAAY5vS,EAAEg0O,QAAU44D,EAAW,CACvCx8D,EAAMpwO,EAAEquS,SAAWruS,EAAEg0O,OACrBh0O,EAAEowS,MAAQpwS,EAAEpC,OAAOwyO,GAGnBpwO,EAAEowS,OAAUpwS,EAAEowS,OAASpwS,EAAEqwS,WAAcrwS,EAAEpC,OAAOwyO,EAAM,IAAMpwO,EAAEswS,UAI9D,MAAOtwS,EAAEg0O,OAQP,GANAh0O,EAAEowS,OAAUpwS,EAAEowS,OAASpwS,EAAEqwS,WAAcrwS,EAAEpC,OAAOwyO,EAAMw8D,EAAY,IAAM5sS,EAAEswS,UAE1EtwS,EAAEuvS,KAAKn/D,EAAMpwO,EAAEsvS,QAAUtvS,EAAEmwS,KAAKnwS,EAAEowS,OAClCpwS,EAAEmwS,KAAKnwS,EAAEowS,OAAShgE,EAClBA,IACApwO,EAAEg0O,SACEh0O,EAAE4vS,UAAY5vS,EAAEg0O,OAAS44D,EAC3B,KAGN,CAKF,OAAS5sS,EAAE4vS,UAAY9C,GAAqC,IAApB9sS,EAAEymS,KAAKa,SAsCjD,CAWA,SAASiJ,GAAevwS,EAAGgU,GAIzB,IAAIw8R,EAAiB,MAOrB,IALIA,EAAiBxwS,EAAEywS,iBAAmB,IACxCD,EAAiBxwS,EAAEywS,iBAAmB,KAI/B,CAEP,GAAIzwS,EAAE4vS,WAAa,EAAG,CAUpB,GADAE,GAAY9vS,GACQ,IAAhBA,EAAE4vS,WAAmB57R,IAAUwxR,EACjC,OAAO+H,EAGT,GAAoB,IAAhBvtS,EAAE4vS,UACJ,KAGJ,CAIA5vS,EAAEquS,UAAYruS,EAAE4vS,UAChB5vS,EAAE4vS,UAAY,EAGd,IAAIc,EAAY1wS,EAAEouS,YAAcoC,EAEhC,IAAmB,IAAfxwS,EAAEquS,UAAkBruS,EAAEquS,UAAYqC,KAEpC1wS,EAAE4vS,UAAY5vS,EAAEquS,SAAWqC,EAC3B1wS,EAAEquS,SAAWqC,EAEbxC,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,WACT,OAAO6G,EASX,GAAIvtS,EAAEquS,SAAWruS,EAAEouS,aAAgBpuS,EAAEmvS,OAASrC,IAE5CoB,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,WACT,OAAO6G,CAIb,CAIA,OAFAvtS,EAAEg0O,OAAS,EAEPhgO,IAAUyxR,GAEZyI,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,UACF+G,EAGFC,IAGL1tS,EAAEquS,SAAWruS,EAAEouS,cAEjBF,GAAiBluS,GAAG,GAChBA,EAAEymS,KAAKC,WACF6G,EAMb,CASA,SAASoD,GAAa3wS,EAAGgU,GAIvB,IAHA,IAAI48R,EACAC,IAEK,CAMP,GAAI7wS,EAAE4vS,UAAY9C,EAAe,CAE/B,GADAgD,GAAY9vS,GACRA,EAAE4vS,UAAY9C,GAAiB94R,IAAUwxR,EAC3C,OAAO+H,EAET,GAAoB,IAAhBvtS,EAAE4vS,UACJ,KAEJ,CAyBA,GApBAgB,EAAY,EACR5wS,EAAE4vS,WAAahD,IAEjB5sS,EAAEowS,OAAUpwS,EAAEowS,OAASpwS,EAAEqwS,WAAcrwS,EAAEpC,OAAOoC,EAAEquS,SAAWzB,EAAY,IAAM5sS,EAAEswS,UACjFM,EAAY5wS,EAAEuvS,KAAKvvS,EAAEquS,SAAWruS,EAAEsvS,QAAUtvS,EAAEmwS,KAAKnwS,EAAEowS,OACrDpwS,EAAEmwS,KAAKnwS,EAAEowS,OAASpwS,EAAEquS,UAOJ,IAAduC,GAA4B5wS,EAAEquS,SAAWuC,GAAe5wS,EAAEmvS,OAASrC,IAKrE9sS,EAAE8wS,aAAenC,GAAc3uS,EAAG4wS,IAGhC5wS,EAAE8wS,cAAgBlE,EAYpB,GAPAiE,EAAS5E,EAAM8E,UAAU/wS,EAAGA,EAAEquS,SAAWruS,EAAE6vS,YAAa7vS,EAAE8wS,aAAelE,GAEzE5sS,EAAE4vS,WAAa5vS,EAAE8wS,aAKb9wS,EAAE8wS,cAAgB9wS,EAAEgxS,gBAAuChxS,EAAE4vS,WAAahD,EAAW,CACvF5sS,EAAE8wS,eACF,GACE9wS,EAAEquS,WAEFruS,EAAEowS,OAAUpwS,EAAEowS,OAASpwS,EAAEqwS,WAAcrwS,EAAEpC,OAAOoC,EAAEquS,SAAWzB,EAAY,IAAM5sS,EAAEswS,UACjFM,EAAY5wS,EAAEuvS,KAAKvvS,EAAEquS,SAAWruS,EAAEsvS,QAAUtvS,EAAEmwS,KAAKnwS,EAAEowS,OACrDpwS,EAAEmwS,KAAKnwS,EAAEowS,OAASpwS,EAAEquS,eAKQ,MAAnBruS,EAAE8wS,cACb9wS,EAAEquS,UACJ,MAEEruS,EAAEquS,UAAYruS,EAAE8wS,aAChB9wS,EAAE8wS,aAAe,EACjB9wS,EAAEowS,MAAQpwS,EAAEpC,OAAOoC,EAAEquS,UAErBruS,EAAEowS,OAAUpwS,EAAEowS,OAASpwS,EAAEqwS,WAAcrwS,EAAEpC,OAAOoC,EAAEquS,SAAW,IAAMruS,EAAEswS,eAavEO,EAAS5E,EAAM8E,UAAU/wS,EAAG,EAAGA,EAAEpC,OAAOoC,EAAEquS,WAE1CruS,EAAE4vS,YACF5vS,EAAEquS,WAEJ,GAAIwC,IAEF3C,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,WACT,OAAO6G,CAIb,CAEA,OADAvtS,EAAEg0O,OAAWh0O,EAAEquS,SAAYzB,EAAY,EAAM5sS,EAAEquS,SAAWzB,EAAY,EAClE54R,IAAUyxR,GAEZyI,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,UACF+G,EAGFC,GAEL1tS,EAAEixS,WAEJ/C,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,WACF6G,EAIJC,CACT,CAOA,SAAS0D,GAAalxS,EAAGgU,GAOvB,IANA,IAAI48R,EACAC,EAEAM,IAGK,CAMP,GAAInxS,EAAE4vS,UAAY9C,EAAe,CAE/B,GADAgD,GAAY9vS,GACRA,EAAE4vS,UAAY9C,GAAiB94R,IAAUwxR,EAC3C,OAAO+H,EAET,GAAoB,IAAhBvtS,EAAE4vS,UAAmB,KAC3B,CAyCA,GApCAgB,EAAY,EACR5wS,EAAE4vS,WAAahD,IAEjB5sS,EAAEowS,OAAUpwS,EAAEowS,OAASpwS,EAAEqwS,WAAcrwS,EAAEpC,OAAOoC,EAAEquS,SAAWzB,EAAY,IAAM5sS,EAAEswS,UACjFM,EAAY5wS,EAAEuvS,KAAKvvS,EAAEquS,SAAWruS,EAAEsvS,QAAUtvS,EAAEmwS,KAAKnwS,EAAEowS,OACrDpwS,EAAEmwS,KAAKnwS,EAAEowS,OAASpwS,EAAEquS,UAMtBruS,EAAEivS,YAAcjvS,EAAE8wS,aAClB9wS,EAAEoxS,WAAapxS,EAAE6vS,YACjB7vS,EAAE8wS,aAAelE,EAAY,EAEX,IAAdgE,GAA0B5wS,EAAEivS,YAAcjvS,EAAEgxS,gBAC5ChxS,EAAEquS,SAAWuC,GAAc5wS,EAAEmvS,OAASrC,IAKxC9sS,EAAE8wS,aAAenC,GAAc3uS,EAAG4wS,GAG9B5wS,EAAE8wS,cAAgB,IAClB9wS,EAAEomS,WAAaiF,GAAerrS,EAAE8wS,eAAiBlE,GAAa5sS,EAAEquS,SAAWruS,EAAE6vS,YAAc,QAK7F7vS,EAAE8wS,aAAelE,EAAY,IAM7B5sS,EAAEivS,aAAerC,GAAa5sS,EAAE8wS,cAAgB9wS,EAAEivS,YAAa,CACjEkC,EAAanxS,EAAEquS,SAAWruS,EAAE4vS,UAAYhD,EAOxCiE,EAAS5E,EAAM8E,UAAU/wS,EAAGA,EAAEquS,SAAW,EAAIruS,EAAEoxS,WAAYpxS,EAAEivS,YAAcrC,GAM3E5sS,EAAE4vS,WAAa5vS,EAAEivS,YAAc,EAC/BjvS,EAAEivS,aAAe,EACjB,KACQjvS,EAAEquS,UAAY8C,IAElBnxS,EAAEowS,OAAUpwS,EAAEowS,OAASpwS,EAAEqwS,WAAcrwS,EAAEpC,OAAOoC,EAAEquS,SAAWzB,EAAY,IAAM5sS,EAAEswS,UACjFM,EAAY5wS,EAAEuvS,KAAKvvS,EAAEquS,SAAWruS,EAAEsvS,QAAUtvS,EAAEmwS,KAAKnwS,EAAEowS,OACrDpwS,EAAEmwS,KAAKnwS,EAAEowS,OAASpwS,EAAEquS,gBAGK,MAAlBruS,EAAEivS,aAKb,GAJAjvS,EAAEqxS,gBAAkB,EACpBrxS,EAAE8wS,aAAelE,EAAY,EAC7B5sS,EAAEquS,WAEEwC,IAEF3C,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,WACT,OAAO6G,CAKb,MAAO,GAAIvtS,EAAEqxS,iBAgBX,GATAR,EAAS5E,EAAM8E,UAAU/wS,EAAG,EAAGA,EAAEpC,OAAOoC,EAAEquS,SAAW,IAEjDwC,GAEF3C,GAAiBluS,GAAG,GAGtBA,EAAEquS,WACFruS,EAAE4vS,YACuB,IAArB5vS,EAAEymS,KAAKC,UACT,OAAO6G,OAMTvtS,EAAEqxS,gBAAkB,EACpBrxS,EAAEquS,WACFruS,EAAE4vS,WAEN,CAUA,OARI5vS,EAAEqxS,kBAGJR,EAAS5E,EAAM8E,UAAU/wS,EAAG,EAAGA,EAAEpC,OAAOoC,EAAEquS,SAAW,IAErDruS,EAAEqxS,gBAAkB,GAEtBrxS,EAAEg0O,OAASh0O,EAAEquS,SAAWzB,EAAY,EAAI5sS,EAAEquS,SAAWzB,EAAY,EAC7D54R,IAAUyxR,GAEZyI,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,UACF+G,EAGFC,GAEL1tS,EAAEixS,WAEJ/C,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,WACF6G,EAKJC,CACT,CAQA,SAAS8D,GAAYtxS,EAAGgU,GAOtB,IANA,IAAI68R,EACAtB,EACAR,EAAMS,EAENJ,EAAOpvS,EAAEpC,SAEJ,CAKP,GAAIoC,EAAE4vS,WAAa/C,EAAW,CAE5B,GADAiD,GAAY9vS,GACRA,EAAE4vS,WAAa/C,GAAa74R,IAAUwxR,EACxC,OAAO+H,EAET,GAAoB,IAAhBvtS,EAAE4vS,UAAmB,KAC3B,CAIA,GADA5vS,EAAE8wS,aAAe,EACb9wS,EAAE4vS,WAAahD,GAAa5sS,EAAEquS,SAAW,IAC3CU,EAAO/uS,EAAEquS,SAAW,EACpBkB,EAAOH,EAAKL,GACRQ,IAASH,IAAOL,IAASQ,IAASH,IAAOL,IAASQ,IAASH,IAAOL,IAAO,CAC3ES,EAASxvS,EAAEquS,SAAWxB,EACtB,UAES0C,IAASH,IAAOL,IAASQ,IAASH,IAAOL,IACzCQ,IAASH,IAAOL,IAASQ,IAASH,IAAOL,IACzCQ,IAASH,IAAOL,IAASQ,IAASH,IAAOL,IACzCQ,IAASH,IAAOL,IAASQ,IAASH,IAAOL,IACzCA,EAAOS,GAChBxvS,EAAE8wS,aAAejE,GAAa2C,EAAST,GACnC/uS,EAAE8wS,aAAe9wS,EAAE4vS,YACrB5vS,EAAE8wS,aAAe9wS,EAAE4vS,UAEvB,CAuBF,GAlBI5vS,EAAE8wS,cAAgBlE,GAIpBiE,EAAS5E,EAAM8E,UAAU/wS,EAAG,EAAGA,EAAE8wS,aAAelE,GAEhD5sS,EAAE4vS,WAAa5vS,EAAE8wS,aACjB9wS,EAAEquS,UAAYruS,EAAE8wS,aAChB9wS,EAAE8wS,aAAe,IAKjBD,EAAS5E,EAAM8E,UAAU/wS,EAAG,EAAGA,EAAEpC,OAAOoC,EAAEquS,WAE1CruS,EAAE4vS,YACF5vS,EAAEquS,YAEAwC,IAEF3C,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,WACT,OAAO6G,CAIb,CAEA,OADAvtS,EAAEg0O,OAAS,EACPhgO,IAAUyxR,GAEZyI,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,UACF+G,EAGFC,GAEL1tS,EAAEixS,WAEJ/C,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,WACF6G,EAIJC,CACT,CAMA,SAAS+D,GAAavxS,EAAGgU,GAGvB,IAFA,IAAI68R,IAEK,CAEP,GAAoB,IAAhB7wS,EAAE4vS,YACJE,GAAY9vS,GACQ,IAAhBA,EAAE4vS,WAAiB,CACrB,GAAI57R,IAAUwxR,EACZ,OAAO+H,EAET,KACF,CAUF,GANAvtS,EAAE8wS,aAAe,EAGjBD,EAAS5E,EAAM8E,UAAU/wS,EAAG,EAAGA,EAAEpC,OAAOoC,EAAEquS,WAC1CruS,EAAE4vS,YACF5vS,EAAEquS,WACEwC,IAEF3C,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,WACT,OAAO6G,CAIb,CAEA,OADAvtS,EAAEg0O,OAAS,EACPhgO,IAAUyxR,GAEZyI,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,UACF+G,EAGFC,GAEL1tS,EAAEixS,WAEJ/C,GAAiBluS,GAAG,GACK,IAArBA,EAAEymS,KAAKC,WACF6G,EAIJC,CACT,CAOA,SAASgE,GAAOC,EAAaC,EAAUC,EAAaC,EAAWC,GAC7Dp0S,KAAKg0S,YAAcA,EACnBh0S,KAAKi0S,SAAWA,EAChBj0S,KAAKk0S,YAAcA,EACnBl0S,KAAKm0S,UAAYA,EACjBn0S,KAAKo0S,KAAOA,CACd,CAuBA,SAASC,GAAQ9xS,GACfA,EAAEiwS,YAAc,EAAIjwS,EAAEmvS,OAGtBpkO,GAAK/qE,EAAEmwS,MAIPnwS,EAAEgxS,eAAiBhF,EAAoBhsS,EAAEs3G,OAAOo6L,SAChD1xS,EAAE2vS,WAAa3D,EAAoBhsS,EAAEs3G,OAAOm6L,YAC5CzxS,EAAEkvS,WAAalD,EAAoBhsS,EAAEs3G,OAAOq6L,YAC5C3xS,EAAE8uS,iBAAmB9C,EAAoBhsS,EAAEs3G,OAAOs6L,UAElD5xS,EAAEquS,SAAW,EACbruS,EAAEouS,YAAc,EAChBpuS,EAAE4vS,UAAY,EACd5vS,EAAEg0O,OAAS,EACXh0O,EAAE8wS,aAAe9wS,EAAEivS,YAAcrC,EAAY,EAC7C5sS,EAAEqxS,gBAAkB,EACpBrxS,EAAEowS,MAAQ,CACZ,CAGA,SAAS2B,KACPt0S,KAAKgpS,KAAO,KACZhpS,KAAKwL,OAAS,EACdxL,KAAKswS,YAAc,KACnBtwS,KAAKgzS,iBAAmB,EACxBhzS,KAAKuwS,YAAc,EACnBvwS,KAAKi2R,QAAU,EACfj2R,KAAKgxS,KAAO,EACZhxS,KAAKu0S,OAAS,KACdv0S,KAAKw0S,QAAU,EACfx0S,KAAKsI,OAASggS,EACdtoS,KAAKy0S,YAAc,EAEnBz0S,KAAK0xS,OAAS,EACd1xS,KAAK00S,OAAS,EACd10S,KAAK6xS,OAAS,EAEd7xS,KAAKG,OAAS,KAQdH,KAAKwyS,YAAc,EAKnBxyS,KAAK8xS,KAAO,KAMZ9xS,KAAK0yS,KAAO,KAEZ1yS,KAAK2yS,MAAQ,EACb3yS,KAAKyyS,UAAY,EACjBzyS,KAAK20S,UAAY,EACjB30S,KAAK6yS,UAAY,EAEjB7yS,KAAK4yS,WAAa,EAOlB5yS,KAAK2wS,YAAc,EAKnB3wS,KAAKqzS,aAAe,EACpBrzS,KAAK2zS,WAAa,EAClB3zS,KAAK4zS,gBAAkB,EACvB5zS,KAAK4wS,SAAW,EAChB5wS,KAAKoyS,YAAc,EACnBpyS,KAAKmyS,UAAY,EAEjBnyS,KAAKwxS,YAAc,EAKnBxxS,KAAKqxS,iBAAmB,EAMxBrxS,KAAKuzS,eAAiB,EAYtBvzS,KAAK65G,MAAQ,EACb75G,KAAK2oS,SAAW,EAEhB3oS,KAAKkyS,WAAa,EAGlBlyS,KAAKyxS,WAAa,EAYlBzxS,KAAK40S,UAAa,IAAIhN,EAAMyE,MAAkB,EAAZ4C,GAClCjvS,KAAK60S,UAAa,IAAIjN,EAAMyE,MAA0B,GAAnB,EAAI0C,EAAU,IACjD/uS,KAAK80S,QAAa,IAAIlN,EAAMyE,MAA2B,GAApB,EAAI2C,EAAW,IAClD1hO,GAAKttE,KAAK40S,WACVtnO,GAAKttE,KAAK60S,WACVvnO,GAAKttE,KAAK80S,SAEV90S,KAAK+0S,OAAW,KAChB/0S,KAAKg1S,OAAW,KAChBh1S,KAAKi1S,QAAW,KAGhBj1S,KAAKk1S,SAAW,IAAItN,EAAMyE,MAAM6C,EAAW,GAI3ClvS,KAAKm1S,KAAO,IAAIvN,EAAMyE,MAAM,EAAIyC,EAAU,GAC1CxhO,GAAKttE,KAAKm1S,MAEVn1S,KAAKo1S,SAAW,EAChBp1S,KAAKq1S,SAAW,EAKhBr1S,KAAKutL,MAAQ,IAAIq6G,EAAMyE,MAAM,EAAIyC,EAAU,GAC3CxhO,GAAKttE,KAAKutL,OAIVvtL,KAAKs1S,MAAQ,EAEbt1S,KAAKu1S,YAAc,EAoBnBv1S,KAAKwzS,SAAW,EAEhBxzS,KAAKw1S,MAAQ,EAMbx1S,KAAKy1S,QAAU,EACfz1S,KAAK01S,WAAa,EAClB11S,KAAK21S,QAAU,EACf31S,KAAKu2O,OAAS,EAGdv2O,KAAK41S,OAAS,EAId51S,KAAK61S,SAAW,CAalB,CAGA,SAASC,GAAiB9M,GACxB,IAAIzmS,EAEJ,OAAKymS,GAASA,EAAKp6R,OAInBo6R,EAAKiI,SAAWjI,EAAKwH,UAAY,EACjCxH,EAAK+M,UAAY7H,EAEjB3rS,EAAIymS,EAAKp6R,MACTrM,EAAE0zR,QAAU,EACZ1zR,EAAEguS,YAAc,EAEZhuS,EAAEyuS,KAAO,IACXzuS,EAAEyuS,MAAQzuS,EAAEyuS,MAGdzuS,EAAEiJ,OAAUjJ,EAAEyuS,KAAOzB,EAAaK,EAClC5G,EAAKiE,MAAoB,IAAX1qS,EAAEyuS,KACd,EAEA,EACFzuS,EAAEkyS,WAAa1M,EACfyG,EAAMwH,SAASzzS,GACR0lS,GArBE16H,EAAIy7H,EAAMuE,EAsBrB,CAGA,SAAS0I,GAAajN,GACpB,IAAI3sR,EAAMy5R,GAAiB9M,GAI3B,OAHI3sR,IAAQ4rR,GACVoM,GAAQrL,EAAKp6R,OAERyN,CACT,CAGA,SAAS8sR,GAAiBH,EAAM0J,GAC9B,OAAK1J,GAASA,EAAKp6R,MACK,IAApBo6R,EAAKp6R,MAAMoiS,KAAqBzD,GACpCvE,EAAKp6R,MAAM2lS,OAAS7B,EACbzK,GAH4BsF,CAIrC,CAGA,SAASrE,GAAaF,EAAMnvL,EAAOvxG,EAAQmgS,EAAYC,EAAUC,GAC/D,IAAKK,EACH,OAAOuE,EAET,IAAIyD,EAAO,EAiBX,GAfIn3L,IAAUuuL,IACZvuL,EAAQ,GAGN4uL,EAAa,GACfuI,EAAO,EACPvI,GAAcA,GAGPA,EAAa,KACpBuI,EAAO,EACPvI,GAAc,IAIZC,EAAW,GAAKA,EAAW+F,GAAiBnmS,IAAWggS,GACzDG,EAAa,GAAKA,EAAa,IAAM5uL,EAAQ,GAAKA,EAAQ,GAC1D8uL,EAAW,GAAKA,EAAWoF,EAC3B,OAAOxgI,EAAIy7H,EAAMuE,GAIA,IAAf9E,IACFA,EAAa,GAIf,IAAIlmS,EAAI,IAAI+xS,GA0CZ,OAxCAtL,EAAKp6R,MAAQrM,EACbA,EAAEymS,KAAOA,EAETzmS,EAAEyuS,KAAOA,EACTzuS,EAAEgyS,OAAS,KACXhyS,EAAEmyS,OAASjM,EACXlmS,EAAEmvS,OAAS,GAAKnvS,EAAEmyS,OAClBnyS,EAAEsvS,OAAStvS,EAAEmvS,OAAS,EAEtBnvS,EAAEoyS,UAAYjM,EAAW,EACzBnmS,EAAEkwS,UAAY,GAAKlwS,EAAEoyS,UACrBpyS,EAAEswS,UAAYtwS,EAAEkwS,UAAY,EAC5BlwS,EAAEqwS,eAAiBrwS,EAAEoyS,UAAYxF,EAAY,GAAKA,GAElD5sS,EAAEpC,OAAS,IAAIynS,EAAMkC,KAAgB,EAAXvnS,EAAEmvS,QAC5BnvS,EAAEmwS,KAAO,IAAI9K,EAAMyE,MAAM9pS,EAAEkwS,WAC3BlwS,EAAEuvS,KAAO,IAAIlK,EAAMyE,MAAM9pS,EAAEmvS,QAK3BnvS,EAAEgzS,YAAc,GAAM7M,EAAW,EAEjCnmS,EAAEywS,iBAAmC,EAAhBzwS,EAAEgzS,YAIvBhzS,EAAE+tS,YAAc,IAAI1I,EAAMkC,KAAKvnS,EAAEywS,kBAIjCzwS,EAAEizS,MAAQ,EAAIjzS,EAAEgzS,YAGhBhzS,EAAE+yS,MAAQ,EAAU/yS,EAAEgzS,YAEtBhzS,EAAEs3G,MAAQA,EACVt3G,EAAEomS,SAAWA,EACbpmS,EAAE+F,OAASA,EAEJ2tS,GAAajN,EACtB,CAEA,SAASkN,GAAYlN,EAAMnvL,GACzB,OAAOqvL,GAAaF,EAAMnvL,EAAOyuL,EAAYoG,EAAWC,EAAetG,EACzE,CAGA,SAASb,GAAQwB,EAAMzyR,GACrB,IAAI4/R,EAAW5zS,EACX6zS,EAAKl3S,EAET,IAAK8pS,IAASA,EAAKp6R,OACjB2H,EAAQ62R,GAAW72R,EAAQ,EAC3B,OAAOyyR,EAAOz7H,EAAIy7H,EAAMuE,GAAkBA,EAK5C,GAFAhrS,EAAIymS,EAAKp6R,OAEJo6R,EAAKn2L,SACJm2L,EAAKp2L,OAA2B,IAAlBo2L,EAAKa,UACpBtnS,EAAEiJ,SAAWqkS,GAAgBt5R,IAAUyxR,EAC1C,OAAOz6H,EAAIy7H,EAA0B,IAAnBA,EAAKC,UAAmBoC,EAAckC,GAQ1D,GALAhrS,EAAEymS,KAAOA,EACTmN,EAAY5zS,EAAEkyS,WACdlyS,EAAEkyS,WAAal+R,EAGXhU,EAAEiJ,SAAW+jS,EAEf,GAAe,IAAXhtS,EAAEyuS,KACJhI,EAAKiE,MAAQ,EACb4D,GAAStuS,EAAG,IACZsuS,GAAStuS,EAAG,KACZsuS,GAAStuS,EAAG,GACPA,EAAEgyS,QAaL1D,GAAStuS,GAAIA,EAAEgyS,OAAOhlS,KAAO,EAAI,IACpBhN,EAAEgyS,OAAO8B,KAAO,EAAI,IACnB9zS,EAAEgyS,OAAO+B,MAAY,EAAJ,IACjB/zS,EAAEgyS,OAAO5pS,KAAW,EAAJ,IAChBpI,EAAEgyS,OAAOgC,QAAc,GAAJ,IAEjC1F,GAAStuS,EAAmB,IAAhBA,EAAEgyS,OAAO3+R,MACrBi7R,GAAStuS,EAAIA,EAAEgyS,OAAO3+R,MAAQ,EAAK,KACnCi7R,GAAStuS,EAAIA,EAAEgyS,OAAO3+R,MAAQ,GAAM,KACpCi7R,GAAStuS,EAAIA,EAAEgyS,OAAO3+R,MAAQ,GAAM,KACpCi7R,GAAStuS,EAAe,IAAZA,EAAEs3G,MAAc,EACft3G,EAAEomS,UAAYkF,GAAkBtrS,EAAEs3G,MAAQ,EAC1C,EAAI,GACjBg3L,GAAStuS,EAAiB,IAAdA,EAAEgyS,OAAOiC,IACjBj0S,EAAEgyS,OAAO+B,OAAS/zS,EAAEgyS,OAAO+B,MAAM3zS,SACnCkuS,GAAStuS,EAA2B,IAAxBA,EAAEgyS,OAAO+B,MAAM3zS,QAC3BkuS,GAAStuS,EAAIA,EAAEgyS,OAAO+B,MAAM3zS,QAAU,EAAK,MAEzCJ,EAAEgyS,OAAO8B,OACXrN,EAAKiE,MAAQoB,EAAMrF,EAAKiE,MAAO1qS,EAAE+tS,YAAa/tS,EAAE0zR,QAAS,IAE3D1zR,EAAEiyS,QAAU,EACZjyS,EAAEiJ,OAASgkS,IAlCXqB,GAAStuS,EAAG,GACZsuS,GAAStuS,EAAG,GACZsuS,GAAStuS,EAAG,GACZsuS,GAAStuS,EAAG,GACZsuS,GAAStuS,EAAG,GACZsuS,GAAStuS,EAAe,IAAZA,EAAEs3G,MAAc,EACft3G,EAAEomS,UAAYkF,GAAkBtrS,EAAEs3G,MAAQ,EAC1C,EAAI,GACjBg3L,GAAStuS,EAAG2tS,GACZ3tS,EAAEiJ,OAASokS,OA6Bf,CACE,IAAIl2I,EAAU4uI,GAAe/lS,EAAEmyS,OAAS,GAAM,IAAO,EACjD+B,GAAe,EAGjBA,EADEl0S,EAAEomS,UAAYkF,GAAkBtrS,EAAEs3G,MAAQ,EAC9B,EACLt3G,EAAEs3G,MAAQ,EACL,EACO,IAAZt3G,EAAEs3G,MACG,EAEA,EAEhB6/C,GAAW+8I,GAAe,EACP,IAAfl0S,EAAEquS,WAAkBl3I,GAAU41I,GAClC51I,GAAU,GAAMA,EAAS,GAEzBn3J,EAAEiJ,OAASokS,EACXkB,GAAYvuS,EAAGm3J,GAGI,IAAfn3J,EAAEquS,WACJE,GAAYvuS,EAAGymS,EAAKiE,QAAU,IAC9B6D,GAAYvuS,EAAgB,MAAbymS,EAAKiE,QAEtBjE,EAAKiE,MAAQ,CACf,CAIF,GAAI1qS,EAAEiJ,SAAWgkS,EACf,GAAIjtS,EAAEgyS,OAAO+B,MAAqB,CAChCF,EAAM7zS,EAAE0zR,QAER,MAAO1zR,EAAEiyS,SAAmC,MAAxBjyS,EAAEgyS,OAAO+B,MAAM3zS,QAAkB,CACnD,GAAIJ,EAAE0zR,UAAY1zR,EAAEywS,mBACdzwS,EAAEgyS,OAAO8B,MAAQ9zS,EAAE0zR,QAAUmgB,IAC/BpN,EAAKiE,MAAQoB,EAAMrF,EAAKiE,MAAO1qS,EAAE+tS,YAAa/tS,EAAE0zR,QAAUmgB,EAAKA,IAEjE/F,GAAcrH,GACdoN,EAAM7zS,EAAE0zR,QACJ1zR,EAAE0zR,UAAY1zR,EAAEywS,kBAClB,MAGJnC,GAAStuS,EAA+B,IAA5BA,EAAEgyS,OAAO+B,MAAM/zS,EAAEiyS,UAC7BjyS,EAAEiyS,SACJ,CACIjyS,EAAEgyS,OAAO8B,MAAQ9zS,EAAE0zR,QAAUmgB,IAC/BpN,EAAKiE,MAAQoB,EAAMrF,EAAKiE,MAAO1qS,EAAE+tS,YAAa/tS,EAAE0zR,QAAUmgB,EAAKA,IAE7D7zS,EAAEiyS,UAAYjyS,EAAEgyS,OAAO+B,MAAM3zS,SAC/BJ,EAAEiyS,QAAU,EACZjyS,EAAEiJ,OAASikS,EAEf,MAEEltS,EAAEiJ,OAASikS,EAGf,GAAIltS,EAAEiJ,SAAWikS,EACf,GAAIltS,EAAEgyS,OAAO5pS,KAAoB,CAC/ByrS,EAAM7zS,EAAE0zR,QAGR,EAAG,CACD,GAAI1zR,EAAE0zR,UAAY1zR,EAAEywS,mBACdzwS,EAAEgyS,OAAO8B,MAAQ9zS,EAAE0zR,QAAUmgB,IAC/BpN,EAAKiE,MAAQoB,EAAMrF,EAAKiE,MAAO1qS,EAAE+tS,YAAa/tS,EAAE0zR,QAAUmgB,EAAKA,IAEjE/F,GAAcrH,GACdoN,EAAM7zS,EAAE0zR,QACJ1zR,EAAE0zR,UAAY1zR,EAAEywS,kBAAkB,CACpC9zS,EAAM,EACN,KACF,CAIAA,EADEqD,EAAEiyS,QAAUjyS,EAAEgyS,OAAO5pS,KAAKhI,OACkB,IAAxCJ,EAAEgyS,OAAO5pS,KAAKi/E,WAAWrnF,EAAEiyS,WAE3B,EAER3D,GAAStuS,EAAGrD,EACd,OAAiB,IAARA,GAELqD,EAAEgyS,OAAO8B,MAAQ9zS,EAAE0zR,QAAUmgB,IAC/BpN,EAAKiE,MAAQoB,EAAMrF,EAAKiE,MAAO1qS,EAAE+tS,YAAa/tS,EAAE0zR,QAAUmgB,EAAKA,IAErD,IAARl3S,IACFqD,EAAEiyS,QAAU,EACZjyS,EAAEiJ,OAASkkS,EAEf,MAEEntS,EAAEiJ,OAASkkS,EAGf,GAAIntS,EAAEiJ,SAAWkkS,EACf,GAAIntS,EAAEgyS,OAAOgC,QAAuB,CAClCH,EAAM7zS,EAAE0zR,QAGR,EAAG,CACD,GAAI1zR,EAAE0zR,UAAY1zR,EAAEywS,mBACdzwS,EAAEgyS,OAAO8B,MAAQ9zS,EAAE0zR,QAAUmgB,IAC/BpN,EAAKiE,MAAQoB,EAAMrF,EAAKiE,MAAO1qS,EAAE+tS,YAAa/tS,EAAE0zR,QAAUmgB,EAAKA,IAEjE/F,GAAcrH,GACdoN,EAAM7zS,EAAE0zR,QACJ1zR,EAAE0zR,UAAY1zR,EAAEywS,kBAAkB,CACpC9zS,EAAM,EACN,KACF,CAIAA,EADEqD,EAAEiyS,QAAUjyS,EAAEgyS,OAAOgC,QAAQ5zS,OACkB,IAA3CJ,EAAEgyS,OAAOgC,QAAQ3sN,WAAWrnF,EAAEiyS,WAE9B,EAER3D,GAAStuS,EAAGrD,EACd,OAAiB,IAARA,GAELqD,EAAEgyS,OAAO8B,MAAQ9zS,EAAE0zR,QAAUmgB,IAC/BpN,EAAKiE,MAAQoB,EAAMrF,EAAKiE,MAAO1qS,EAAE+tS,YAAa/tS,EAAE0zR,QAAUmgB,EAAKA,IAErD,IAARl3S,IACFqD,EAAEiJ,OAASmkS,EAEf,MAEEptS,EAAEiJ,OAASmkS,EAsBf,GAnBIptS,EAAEiJ,SAAWmkS,IACXptS,EAAEgyS,OAAO8B,MACP9zS,EAAE0zR,QAAU,EAAI1zR,EAAEywS,kBACpB3C,GAAcrH,GAEZzmS,EAAE0zR,QAAU,GAAK1zR,EAAEywS,mBACrBnC,GAAStuS,EAAgB,IAAbymS,EAAKiE,OACjB4D,GAAStuS,EAAIymS,EAAKiE,OAAS,EAAK,KAChCjE,EAAKiE,MAAQ,EACb1qS,EAAEiJ,OAASokS,IAIbrtS,EAAEiJ,OAASokS,GAMG,IAAdrtS,EAAE0zR,SAEJ,GADAoa,GAAcrH,GACS,IAAnBA,EAAKC,UAQP,OADA1mS,EAAEkyS,YAAc,EACTxM,OAOJ,GAAsB,IAAlBe,EAAKa,UAAkBuG,GAAK75R,IAAU65R,GAAK+F,IACpD5/R,IAAUyxR,EACV,OAAOz6H,EAAIy7H,EAAMqC,GAInB,GAAI9oS,EAAEiJ,SAAWqkS,GAAkC,IAAlB7G,EAAKa,SACpC,OAAOt8H,EAAIy7H,EAAMqC,GAKnB,GAAsB,IAAlBrC,EAAKa,UAAkC,IAAhBtnS,EAAE4vS,WAC1B57R,IAAUwxR,GAAcxlS,EAAEiJ,SAAWqkS,EAAe,CACrD,IAAI6G,EAAUn0S,EAAEomS,WAAakF,EAAkBiG,GAAavxS,EAAGgU,GAC5DhU,EAAEomS,WAAamF,EAAQ+F,GAAYtxS,EAAGgU,GACrCg4R,EAAoBhsS,EAAEs3G,OAAOu6L,KAAK7xS,EAAGgU,GAKzC,GAHImgS,IAAW1G,GAAqB0G,IAAWzG,IAC7C1tS,EAAEiJ,OAASqkS,GAET6G,IAAW5G,GAAgB4G,IAAW1G,EAKxC,OAJuB,IAAnBhH,EAAKC,YACP1mS,EAAEkyS,YAAc,GAGXxM,EAST,GAAIyO,IAAW3G,IACTx5R,IAAU22R,EACZsB,EAAMmI,UAAUp0S,GAETgU,IAAU62R,IAEjBoB,EAAMoI,iBAAiBr0S,EAAG,EAAG,GAAG,GAI5BgU,IAAU42R,IAEZ7/N,GAAK/qE,EAAEmwS,MAEa,IAAhBnwS,EAAE4vS,YACJ5vS,EAAEquS,SAAW,EACbruS,EAAEouS,YAAc,EAChBpuS,EAAEg0O,OAAS,KAIjB85D,GAAcrH,GACS,IAAnBA,EAAKC,WAEP,OADA1mS,EAAEkyS,YAAc,EACTxM,CAGb,CAIA,OAAI1xR,IAAUyxR,EAAmBC,EAC7B1lS,EAAEyuS,MAAQ,EAAY9I,GAGX,IAAX3lS,EAAEyuS,MACJH,GAAStuS,EAAgB,IAAbymS,EAAKiE,OACjB4D,GAAStuS,EAAIymS,EAAKiE,OAAS,EAAK,KAChC4D,GAAStuS,EAAIymS,EAAKiE,OAAS,GAAM,KACjC4D,GAAStuS,EAAIymS,EAAKiE,OAAS,GAAM,KACjC4D,GAAStuS,EAAmB,IAAhBymS,EAAKiI,UACjBJ,GAAStuS,EAAIymS,EAAKiI,UAAY,EAAK,KACnCJ,GAAStuS,EAAIymS,EAAKiI,UAAY,GAAM,KACpCJ,GAAStuS,EAAIymS,EAAKiI,UAAY,GAAM,OAIpCH,GAAYvuS,EAAGymS,EAAKiE,QAAU,IAC9B6D,GAAYvuS,EAAgB,MAAbymS,EAAKiE,QAGtBoD,GAAcrH,GAIVzmS,EAAEyuS,KAAO,IAAKzuS,EAAEyuS,MAAQzuS,EAAEyuS,MAET,IAAdzuS,EAAE0zR,QAAgBgS,EAAOC,EAClC,CAEA,SAASkC,GAAWpB,GAClB,IAAIx9R,EAEJ,OAAKw9R,GAAsBA,EAAKp6R,OAIhCpD,EAASw9R,EAAKp6R,MAAMpD,OAChBA,IAAW+jS,GACb/jS,IAAWgkS,GACXhkS,IAAWikS,GACXjkS,IAAWkkS,GACXlkS,IAAWmkS,GACXnkS,IAAWokS,GACXpkS,IAAWqkS,EAEJtiI,EAAIy7H,EAAMuE,IAGnBvE,EAAKp6R,MAAQ,KAENpD,IAAWokS,EAAariI,EAAIy7H,EAAMwE,GAAgBvF,IAjBhDsF,CAkBX,CAOA,SAAShE,GAAqBP,EAAMI,GAClC,IAEI7mS,EACAowO,EAAKlwO,EACLuuS,EACA6F,EACArzS,EACAovG,EACAkkM,EARAC,EAAa3N,EAAWzmS,OAU5B,IAAKqmS,IAAsBA,EAAKp6R,MAC9B,OAAO2+R,EAMT,GAHAhrS,EAAIymS,EAAKp6R,MACToiS,EAAOzuS,EAAEyuS,KAEI,IAATA,GAAwB,IAATA,GAAczuS,EAAEiJ,SAAW+jS,GAAehtS,EAAE4vS,UAC7D,OAAO5E,EAII,IAATyD,IAEFhI,EAAKiE,MAAQD,EAAQhE,EAAKiE,MAAO7D,EAAY2N,EAAY,IAG3Dx0S,EAAEyuS,KAAO,EAGL+F,GAAcx0S,EAAEmvS,SACL,IAATV,IAEF1jO,GAAK/qE,EAAEmwS,MACPnwS,EAAEquS,SAAW,EACbruS,EAAEouS,YAAc,EAChBpuS,EAAEg0O,OAAS,GAIbugE,EAAU,IAAIlP,EAAMkC,KAAKvnS,EAAEmvS,QAC3B9J,EAAM4D,SAASsL,EAAS1N,EAAY2N,EAAax0S,EAAEmvS,OAAQnvS,EAAEmvS,OAAQ,GACrEtI,EAAa0N,EACbC,EAAax0S,EAAEmvS,QAGjBmF,EAAQ7N,EAAKa,SACbrmS,EAAOwlS,EAAKY,QACZh3L,EAAQo2L,EAAKp2L,MACbo2L,EAAKa,SAAWkN,EAChB/N,EAAKY,QAAU,EACfZ,EAAKp2L,MAAQw2L,EACbiJ,GAAY9vS,GACZ,MAAOA,EAAE4vS,WAAahD,EAAW,CAC/Bx8D,EAAMpwO,EAAEquS,SACRnuS,EAAIF,EAAE4vS,WAAahD,EAAY,GAC/B,GAEE5sS,EAAEowS,OAAUpwS,EAAEowS,OAASpwS,EAAEqwS,WAAcrwS,EAAEpC,OAAOwyO,EAAMw8D,EAAY,IAAM5sS,EAAEswS,UAE1EtwS,EAAEuvS,KAAKn/D,EAAMpwO,EAAEsvS,QAAUtvS,EAAEmwS,KAAKnwS,EAAEowS,OAElCpwS,EAAEmwS,KAAKnwS,EAAEowS,OAAShgE,EAClBA,YACSlwO,GACXF,EAAEquS,SAAWj+D,EACbpwO,EAAE4vS,UAAYhD,EAAY,EAC1BkD,GAAY9vS,EACd,CAWA,OAVAA,EAAEquS,UAAYruS,EAAE4vS,UAChB5vS,EAAEouS,YAAcpuS,EAAEquS,SAClBruS,EAAEg0O,OAASh0O,EAAE4vS,UACb5vS,EAAE4vS,UAAY,EACd5vS,EAAE8wS,aAAe9wS,EAAEivS,YAAcrC,EAAY,EAC7C5sS,EAAEqxS,gBAAkB,EACpB5K,EAAKY,QAAUpmS,EACfwlS,EAAKp2L,MAAQA,EACbo2L,EAAKa,SAAWgN,EAChBt0S,EAAEyuS,KAAOA,EACF/I,CACT,CApyBAsG,EAAsB,CAEpB,IAAIwF,GAAO,EAAG,EAAG,EAAG,EAAGjB,IACvB,IAAIiB,GAAO,EAAG,EAAG,EAAG,EAAGb,IACvB,IAAIa,GAAO,EAAG,EAAG,GAAI,EAAGb,IACxB,IAAIa,GAAO,EAAG,EAAG,GAAI,GAAIb,IAEzB,IAAIa,GAAO,EAAG,EAAG,GAAI,GAAIN,IACzB,IAAIM,GAAO,EAAG,GAAI,GAAI,GAAIN,IAC1B,IAAIM,GAAO,EAAG,GAAI,IAAK,IAAKN,IAC5B,IAAIM,GAAO,EAAG,GAAI,IAAK,IAAKN,IAC5B,IAAIM,GAAO,GAAI,IAAK,IAAK,KAAMN,IAC/B,IAAIM,GAAO,GAAI,IAAK,IAAK,KAAMN,KA2xBjCn1S,EAAQ43S,YAAcA,GACtB53S,EAAQ4qS,aAAeA,GACvB5qS,EAAQ23S,aAAeA,GACvB33S,EAAQw3S,iBAAmBA,GAC3Bx3S,EAAQ6qS,iBAAmBA,GAC3B7qS,EAAQkpS,QAAUA,GAClBlpS,EAAQ8rS,WAAaA,GACrB9rS,EAAQirS,qBAAuBA,GAC/BjrS,EAAQ04S,YAAc,oCAYf,EAED;;;qDAIE34S,IAuBR,SAASmsS,IAEPxqS,KAAKuP,KAAa,EAElBvP,KAAK4V,KAAa,EAElB5V,KAAKi3S,OAAa,EAElBj3S,KAAKw2S,GAAa,EAElBx2S,KAAKs2S,MAAa,KAElBt2S,KAAKk3S,UAAa,EAWlBl3S,KAAK2K,KAAa,GAIlB3K,KAAKu2S,QAAa,GAIlBv2S,KAAKq2S,KAAa,EAElBr2S,KAAK2D,MAAa,CACpB,CAEAtF,EAAOC,QAAUksS,CAGV,EAED;;;oDAIEnsS,IAwBR,IAAI84S,EAAM,GACNC,EAAO,GAqCX/4S,EAAOC,QAAU,SAAsB0qS,EAAMtiQ,GAC3C,IAAI93B,EACAyoS,EACAxpE,EACAypE,EACAlB,EACA/sN,EAEAkuN,EAEAC,EACAC,EACAC,EAEAC,EACAC,EACAzlN,EACA0lN,EACAC,EACAC,EACAC,EACAC,EACAxzS,EAEA85F,EACAphD,EACA7sC,EACA4nS,EAGAtlM,EAAOC,EAGXjkG,EAAQo6R,EAAKp6R,MAEbyoS,EAAMrO,EAAKY,QACXh3L,EAAQo2L,EAAKp2L,MACbi7H,EAAOwpE,GAAOrO,EAAKa,SAAW,GAC9ByN,EAAOtO,EAAKe,SACZl3L,EAASm2L,EAAKn2L,OACdujM,EAAMkB,GAAQ5wQ,EAAQsiQ,EAAKC,WAC3B5/M,EAAMiuN,GAAQtO,EAAKC,UAAY,KAE/BsO,EAAO3oS,EAAM2oS,KAEbC,EAAQ5oS,EAAM4oS,MACdC,EAAQ7oS,EAAM6oS,MACdC,EAAQ9oS,EAAM8oS,MACdC,EAAW/oS,EAAMzO,OACjBy3S,EAAOhpS,EAAMgpS,KACbzlN,EAAOvjF,EAAMujF,KACb0lN,EAAQjpS,EAAMupS,QACdL,EAAQlpS,EAAMwpS,SACdL,GAAS,GAAKnpS,EAAMypS,SAAW,EAC/BL,GAAS,GAAKppS,EAAM0pS,UAAY,EAMhC1yM,EACA,EAAG,CACGzT,EAAO,KACTylN,GAAQhlM,EAAMykM,MAAUllN,EACxBA,GAAQ,EACRylN,GAAQhlM,EAAMykM,MAAUllN,EACxBA,GAAQ,GAGV8lN,EAAOJ,EAAMD,EAAOG,GAEpBQ,EACA,OAAS,CAKP,GAJA9zS,EAAKwzS,IAAS,GACdL,KAAUnzS,EACV0tF,GAAQ1tF,EACRA,EAAMwzS,IAAS,GAAM,IACV,IAAPxzS,EAIFouG,EAAOykM,KAAiB,MAAPW,MAEd,MAAS,GAALxzS,GAwKJ,IAAkB,KAAR,GAALA,GAAgB,CACxBwzS,EAAOJ,GAAc,MAAPI,IAA8BL,GAAS,GAAKnzS,GAAM,IAChE,SAAS8zS,CACX,CACK,GAAS,GAAL9zS,EAAS,CAEhBmK,EAAMwxB,KAAOg3Q,EACb,MAAMxxM,CACR,CAEEojM,EAAK1mQ,IAAM,8BACX1zB,EAAMwxB,KAAO+2Q,EACb,MAAMvxM,CACR,CApLErH,EAAa,MAAP05M,EACNxzS,GAAM,GACFA,IACE0tF,EAAO1tF,IACTmzS,GAAQhlM,EAAMykM,MAAUllN,EACxBA,GAAQ,GAEVoM,GAAOq5M,GAAS,GAAKnzS,GAAM,EAC3BmzS,KAAUnzS,EACV0tF,GAAQ1tF,GAGN0tF,EAAO,KACTylN,GAAQhlM,EAAMykM,MAAUllN,EACxBA,GAAQ,EACRylN,GAAQhlM,EAAMykM,MAAUllN,EACxBA,GAAQ,GAEV8lN,EAAOH,EAAMF,EAAOI,GAEpBQ,EACA,OAAS,CAMP,GALA/zS,EAAKwzS,IAAS,GACdL,KAAUnzS,EACV0tF,GAAQ1tF,EACRA,EAAMwzS,IAAS,GAAM,MAEZ,GAALxzS,GA+HC,IAAkB,KAAR,GAALA,GAAgB,CACxBwzS,EAAOH,GAAc,MAAPG,IAA8BL,GAAS,GAAKnzS,GAAM,IAChE,SAAS+zS,CACX,CAEExP,EAAK1mQ,IAAM,wBACX1zB,EAAMwxB,KAAO+2Q,EACb,MAAMvxM,CACR,CA1HE,GAZAzoD,EAAc,MAAP86P,EACPxzS,GAAM,GACF0tF,EAAO1tF,IACTmzS,GAAQhlM,EAAMykM,MAAUllN,EACxBA,GAAQ,EACJA,EAAO1tF,IACTmzS,GAAQhlM,EAAMykM,MAAUllN,EACxBA,GAAQ,IAGZh1C,GAAQy6P,GAAS,GAAKnzS,GAAM,EAExB04C,EAAOo6P,EAAM,CACfvO,EAAK1mQ,IAAM,gCACX1zB,EAAMwxB,KAAO+2Q,EACb,MAAMvxM,CACR,CAMA,GAJAgyM,KAAUnzS,EACV0tF,GAAQ1tF,EAERA,EAAK6yS,EAAOlB,EACRj5P,EAAO14C,EAAI,CAEb,GADAA,EAAK04C,EAAO14C,EACRA,EAAKgzS,GACH7oS,EAAM6pS,KAAM,CACdzP,EAAK1mQ,IAAM,gCACX1zB,EAAMwxB,KAAO+2Q,EACb,MAAMvxM,CACR,CA0BF,GAFAt1F,EAAO,EACP4nS,EAAcP,EACA,IAAVD,GAEF,GADApnS,GAAQknS,EAAQ/yS,EACZA,EAAK85F,EAAK,CACZA,GAAO95F,EACP,GACEouG,EAAOykM,KAAUK,EAASrnS,aACjB7L,GACX6L,EAAOgnS,EAAOn6P,EACd+6P,EAAcrlM,CAChB,OAEG,GAAI6kM,EAAQjzS,GAGf,GAFA6L,GAAQknS,EAAQE,EAAQjzS,EACxBA,GAAMizS,EACFjzS,EAAK85F,EAAK,CACZA,GAAO95F,EACP,GACEouG,EAAOykM,KAAUK,EAASrnS,aACjB7L,GAEX,GADA6L,EAAO,EACHonS,EAAQn5M,EAAK,CACf95F,EAAKizS,EACLn5M,GAAO95F,EACP,GACEouG,EAAOykM,KAAUK,EAASrnS,aACjB7L,GACX6L,EAAOgnS,EAAOn6P,EACd+6P,EAAcrlM,CAChB,CACF,OAIA,GADAviG,GAAQonS,EAAQjzS,EACZA,EAAK85F,EAAK,CACZA,GAAO95F,EACP,GACEouG,EAAOykM,KAAUK,EAASrnS,aACjB7L,GACX6L,EAAOgnS,EAAOn6P,EACd+6P,EAAcrlM,CAChB,CAEF,MAAOtU,EAAM,EACXsU,EAAOykM,KAAUY,EAAY5nS,KAC7BuiG,EAAOykM,KAAUY,EAAY5nS,KAC7BuiG,EAAOykM,KAAUY,EAAY5nS,KAC7BiuF,GAAO,EAELA,IACFsU,EAAOykM,KAAUY,EAAY5nS,KACzBiuF,EAAM,IACRsU,EAAOykM,KAAUY,EAAY5nS,MAGnC,KACK,CACHA,EAAOgnS,EAAOn6P,EACd,GACE01D,EAAOykM,KAAUzkM,EAAOviG,KACxBuiG,EAAOykM,KAAUzkM,EAAOviG,KACxBuiG,EAAOykM,KAAUzkM,EAAOviG,KACxBiuF,GAAO,QACAA,EAAM,GACXA,IACFsU,EAAOykM,KAAUzkM,EAAOviG,KACpBiuF,EAAM,IACRsU,EAAOykM,KAAUzkM,EAAOviG,MAG9B,CAYF,KACF,CAeF,CAEA,KACF,CACF,OAAS+mS,EAAMxpE,GAAQypE,EAAOjuN,GAG9BkV,EAAMpM,GAAQ,EACdklN,GAAO94M,EACPpM,GAAQoM,GAAO,EACfq5M,IAAS,GAAKzlN,GAAQ,EAGtB62M,EAAKY,QAAUyN,EACfrO,EAAKe,SAAWuN,EAChBtO,EAAKa,SAAYwN,EAAMxpE,EAAYA,EAAOwpE,EAAZ,EAAmB,GAAKA,EAAMxpE,GAC5Dm7D,EAAKC,UAAaqO,EAAOjuN,EAAaA,EAAMiuN,EAAb,IAAqB,KAAOA,EAAOjuN,GAClEz6E,EAAMgpS,KAAOA,EACbhpS,EAAMujF,KAAOA,CAEf,CAGO,EAED;;;oDAIA,CAAExzF,EAAyBL,EAAS,KAuB1C,IAAIspS,EAAgB,wBAA2C,4CAC3DoF,EAAgB,kBAAqC,4CACrDqB,EAAgB,gBAAmC,0CACnDqK,EAAgB,kBAAqC,4CACrDC,EAAgB,mBAAsC,6CAEtDC,EAAQ,EACRC,EAAO,EACPC,EAAQ,EAWR9Q,EAAkB,EAClBoF,EAAkB,EAClBC,EAAkB,EAMlBpF,EAAkB,EAClBC,EAAkB,EAClBkD,EAAkB,EAElBmC,GAAmB,EACnBC,GAAmB,EACnBuL,GAAmB,EACnB1N,GAAmB,EAInB/C,EAAc,EAOX0Q,EAAO,EACPC,EAAQ,EACRC,EAAO,EACPC,EAAK,EACLC,EAAQ,EACRC,EAAQ,EACRC,EAAO,EACPC,EAAU,EACVC,EAAO,EACPC,EAAS,GACTC,EAAO,GACHtC,EAAO,GACPuC,EAAS,GACTC,EAAS,GACTC,EAAQ,GACRC,EAAO,GACPC,EAAQ,GACRC,EAAU,GACVC,EAAW,GACPC,EAAO,GACPC,EAAM,GACNC,EAAS,GACTC,EAAO,GACPC,EAAU,GACVC,EAAQ,GACRC,EAAM,GACdC,EAAQ,GACRC,EAAS,GACTC,EAAO,GACPxD,EAAM,GACNyD,EAAM,GACNC,EAAO,GAMVC,GAAc,IACdC,GAAe,IAGfrM,GAAY,GAEZsM,GAAYtM,GAGhB,SAASuM,GAAQ57O,GACf,OAAWA,IAAM,GAAM,MACbA,IAAM,EAAK,SACP,MAAJA,IAAe,KACX,IAAJA,IAAa,GACzB,CAGA,SAAS67O,KACPl7S,KAAKogC,KAAO,EACZpgC,KAAK6tO,MAAO,EACZ7tO,KAAKgxS,KAAO,EACZhxS,KAAKm7S,UAAW,EAChBn7S,KAAKgwO,MAAQ,EACbhwO,KAAKu3S,KAAO,EACZv3S,KAAK2oJ,MAAQ,EACb3oJ,KAAKo7S,MAAQ,EAEbp7S,KAAK0yS,KAAO,KAGZ1yS,KAAKq7S,MAAQ,EACbr7S,KAAKw3S,MAAQ,EACbx3S,KAAKy3S,MAAQ,EACbz3S,KAAK03S,MAAQ,EACb13S,KAAKG,OAAS,KAGdH,KAAK43S,KAAO,EACZ53S,KAAKmyF,KAAO,EAGZnyF,KAAK2C,OAAS,EACd3C,KAAKsyG,OAAS,EAGdtyG,KAAKs2S,MAAQ,EAGbt2S,KAAKm4S,QAAU,KACfn4S,KAAKo4S,SAAW,KAChBp4S,KAAKq4S,QAAU,EACfr4S,KAAKs4S,SAAW,EAGhBt4S,KAAKs7S,MAAQ,EACbt7S,KAAKu7S,KAAO,EACZv7S,KAAKw7S,MAAQ,EACbx7S,KAAKy7S,KAAO,EACZz7S,KAAKwD,KAAO,KAEZxD,KAAK07S,KAAO,IAAI9T,EAAMyE,MAAM,KAC5BrsS,KAAK27S,KAAO,IAAI/T,EAAMyE,MAAM,KAO5BrsS,KAAK47S,OAAS,KACd57S,KAAK67S,QAAU,KACf77S,KAAKy4S,KAAO,EACZz4S,KAAK2sN,KAAO,EACZ3sN,KAAK87S,IAAM,CACb,CAEA,SAASC,GAAiB/S,GACxB,IAAIp6R,EAEJ,OAAKo6R,GAASA,EAAKp6R,OACnBA,EAAQo6R,EAAKp6R,MACbo6R,EAAKiI,SAAWjI,EAAKwH,UAAY5hS,EAAMwsS,MAAQ,EAC/CpS,EAAK1mQ,IAAM,GACP1zB,EAAMoiS,OACRhI,EAAKiE,MAAqB,EAAbr+R,EAAMoiS,MAErBpiS,EAAMwxB,KAAO44Q,EACbpqS,EAAMi/N,KAAO,EACbj/N,EAAMusS,SAAW,EACjBvsS,EAAM2oS,KAAO,MACb3oS,EAAM8jS,KAAO,KACb9jS,EAAMgpS,KAAO,EACbhpS,EAAMujF,KAAO,EAEbvjF,EAAMupS,QAAUvpS,EAAMgtS,OAAS,IAAIhU,EAAM0E,MAAMwO,IAC/ClsS,EAAMwpS,SAAWxpS,EAAMitS,QAAU,IAAIjU,EAAM0E,MAAMyO,IAEjDnsS,EAAM6pS,KAAO,EACb7pS,EAAM+9M,MAAQ,EAEPs7E,GArB4BsF,CAsBrC,CAEA,SAASyO,GAAahT,GACpB,IAAIp6R,EAEJ,OAAKo6R,GAASA,EAAKp6R,OACnBA,EAAQo6R,EAAKp6R,MACbA,EAAM4oS,MAAQ,EACd5oS,EAAM6oS,MAAQ,EACd7oS,EAAM8oS,MAAQ,EACPqE,GAAiB/S,IALWuE,CAOrC,CAEA,SAAS0O,GAAcjT,EAAMP,GAC3B,IAAIuI,EACApiS,EAGJ,OAAKo6R,GAASA,EAAKp6R,OACnBA,EAAQo6R,EAAKp6R,MAGT65R,EAAa,GACfuI,EAAO,EACPvI,GAAcA,IAGduI,EAA2B,GAAnBvI,GAAc,GAClBA,EAAa,KACfA,GAAc,KAKdA,IAAeA,EAAa,GAAKA,EAAa,IACzC8E,GAEY,OAAjB3+R,EAAMzO,QAAmByO,EAAMysS,QAAU5S,IAC3C75R,EAAMzO,OAAS,MAIjByO,EAAMoiS,KAAOA,EACbpiS,EAAMysS,MAAQ5S,EACPuT,GAAahT,KA1BeuE,CA2BrC,CAEA,SAAS7C,GAAa1B,EAAMP,GAC1B,IAAIpsR,EACAzN,EAEJ,OAAKo6R,GAGLp6R,EAAQ,IAAIssS,GAIZlS,EAAKp6R,MAAQA,EACbA,EAAMzO,OAAS,KACfkc,EAAM4/R,GAAcjT,EAAMP,GACtBpsR,IAAQ4rR,IACVe,EAAKp6R,MAAQ,MAERyN,GAbakxR,CActB,CAEA,SAAS2O,GAAYlT,GACnB,OAAO0B,GAAa1B,EAAMgS,GAC5B,CAaA,IAEImB,GAAQC,GAFRC,IAAS,EAIb,SAASC,GAAY1tS,GAEnB,GAAIytS,GAAQ,CACV,IAAIE,EAEJJ,GAAS,IAAIvU,EAAM0E,MAAM,KACzB8P,GAAU,IAAIxU,EAAM0E,MAAM,IAG1BiQ,EAAM,EACN,MAAOA,EAAM,IAAO3tS,EAAM8sS,KAAKa,KAAS,EACxC,MAAOA,EAAM,IAAO3tS,EAAM8sS,KAAKa,KAAS,EACxC,MAAOA,EAAM,IAAO3tS,EAAM8sS,KAAKa,KAAS,EACxC,MAAOA,EAAM,IAAO3tS,EAAM8sS,KAAKa,KAAS,EAExC5D,EAAcE,EAAOjqS,EAAM8sS,KAAM,EAAG,IAAKS,GAAU,EAAGvtS,EAAM+sS,KAAM,CAAExpN,KAAM,IAG1EoqN,EAAM,EACN,MAAOA,EAAM,GAAM3tS,EAAM8sS,KAAKa,KAAS,EAEvC5D,EAAcG,EAAOlqS,EAAM8sS,KAAM,EAAG,GAAMU,GAAS,EAAGxtS,EAAM+sS,KAAM,CAAExpN,KAAM,IAG1EkqN,IAAS,CACX,CAEAztS,EAAMupS,QAAUgE,GAChBvtS,EAAMypS,QAAU,EAChBzpS,EAAMwpS,SAAWgE,GACjBxtS,EAAM0pS,SAAW,CACnB,CAiBA,SAASkE,GAAaxT,EAAMznS,EAAK8nF,EAAKJ,GACpC,IAAI9rC,EACAvuC,EAAQo6R,EAAKp6R,MAqCjB,OAlCqB,OAAjBA,EAAMzO,SACRyO,EAAM4oS,MAAQ,GAAK5oS,EAAMysS,MACzBzsS,EAAM8oS,MAAQ,EACd9oS,EAAM6oS,MAAQ,EAEd7oS,EAAMzO,OAAS,IAAIynS,EAAMkC,KAAKl7R,EAAM4oS,QAIlCvuN,GAAQr6E,EAAM4oS,OAChB5P,EAAM4D,SAAS58R,EAAMzO,OAAQoB,EAAK8nF,EAAMz6E,EAAM4oS,MAAO5oS,EAAM4oS,MAAO,GAClE5oS,EAAM8oS,MAAQ,EACd9oS,EAAM6oS,MAAQ7oS,EAAM4oS,QAGpBr6P,EAAOvuC,EAAM4oS,MAAQ5oS,EAAM8oS,MACvBv6P,EAAO8rC,IACT9rC,EAAO8rC,GAGT2+M,EAAM4D,SAAS58R,EAAMzO,OAAQoB,EAAK8nF,EAAMJ,EAAM9rC,EAAMvuC,EAAM8oS,OAC1DzuN,GAAQ9rC,EACJ8rC,GAEF2+M,EAAM4D,SAAS58R,EAAMzO,OAAQoB,EAAK8nF,EAAMJ,EAAMA,EAAM,GACpDr6E,EAAM8oS,MAAQzuN,EACdr6E,EAAM6oS,MAAQ7oS,EAAM4oS,QAGpB5oS,EAAM8oS,OAASv6P,EACXvuC,EAAM8oS,QAAU9oS,EAAM4oS,QAAS5oS,EAAM8oS,MAAQ,GAC7C9oS,EAAM6oS,MAAQ7oS,EAAM4oS,QAAS5oS,EAAM6oS,OAASt6P,KAG7C,CACT,CAEA,SAASmwH,GAAQ07H,EAAMzyR,GACrB,IAAI3H,EACAgkG,GAAOC,GACPrvG,GACAi5S,GACAhB,GAAM7rN,GACNgoN,GACAzlN,GACAklN,GAAKC,GACLruN,GACA34E,GACA4nS,GAEAwE,GAAWC,GAASC,GAEpBC,GAAWC,GAASC,GACpBx+M,GACAliF,GAEAzR,GAEAnI,GATAw1S,GAAO,EAMP+E,GAAO,IAAIpV,EAAMkC,KAAK,GAKtBvpQ,GACF,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,IAGlE,IAAKyoQ,IAASA,EAAKp6R,QAAUo6R,EAAKn2L,SAC5Bm2L,EAAKp2L,OAA2B,IAAlBo2L,EAAKa,SACvB,OAAO0D,EAGT3+R,EAAQo6R,EAAKp6R,MACTA,EAAMwxB,OAASg3Q,IAAQxoS,EAAMwxB,KAAOu5Q,GAIxC8C,GAAMzT,EAAKe,SACXl3L,GAASm2L,EAAKn2L,OACdjjB,GAAOo5M,EAAKC,UACZzlS,GAAOwlS,EAAKY,QACZh3L,GAAQo2L,EAAKp2L,MACb6oM,GAAOzS,EAAKa,SACZ+N,GAAOhpS,EAAMgpS,KACbzlN,GAAOvjF,EAAMujF,KAGbklN,GAAMoE,GACNnE,GAAO1nN,GACPvzE,GAAM4rR,EAENgV,EACA,OACE,OAAQruS,EAAMwxB,MACZ,KAAK44Q,EACH,GAAmB,IAAfpqS,EAAMoiS,KAAY,CACpBpiS,EAAMwxB,KAAOu5Q,EACb,KACF,CAEA,MAAOxnN,GAAO,GAAI,CAChB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAEA,GAAkB,EAAbvjF,EAAMoiS,MAAsB,QAAT4G,GAAiB,CACvChpS,EAAM+5I,MAAQ,EAEdq0J,GAAK,GAAY,IAAPpF,GACVoF,GAAK,GAAMpF,KAAS,EAAK,IACzBhpS,EAAM+5I,MAAQ0lJ,EAAMz/R,EAAM+5I,MAAOq0J,GAAM,EAAG,GAI1CpF,GAAO,EACPzlN,GAAO,EAEPvjF,EAAMwxB,KAAO64Q,EACb,KACF,CAKA,GAJArqS,EAAMohO,MAAQ,EACVphO,EAAM8jS,OACR9jS,EAAM8jS,KAAK/uS,MAAO,KAED,EAAbiL,EAAMoiS,UACA,IAAP4G,KAA2B,IAAMA,IAAQ,IAAM,GAAI,CACtD5O,EAAK1mQ,IAAM,yBACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CACA,IAAY,GAAPS,MAA4BtP,EAAY,CAC3CU,EAAK1mQ,IAAM,6BACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CAMA,GAJAS,MAAU,EACVzlN,IAAQ,EAERoM,GAAiC,GAAnB,GAAPq5M,IACa,IAAhBhpS,EAAMysS,MACRzsS,EAAMysS,MAAQ98M,QAEX,GAAIA,GAAM3vF,EAAMysS,MAAO,CAC1BrS,EAAK1mQ,IAAM,sBACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CACAvoS,EAAM2oS,KAAO,GAAKh5M,GAElByqM,EAAKiE,MAAQr+R,EAAM+5I,MAAQ,EAC3B/5I,EAAMwxB,KAAc,IAAPw3Q,GAAe6B,EAASrC,EAErCQ,GAAO,EACPzlN,GAAO,EAEP,MACF,KAAK8mN,EAEH,MAAO9mN,GAAO,GAAI,CAChB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAGA,GADAvjF,EAAMohO,MAAQ4nE,IACK,IAAdhpS,EAAMohO,SAAkBs4D,EAAY,CACvCU,EAAK1mQ,IAAM,6BACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CACA,GAAkB,MAAdvoS,EAAMohO,MAAgB,CACxBg5D,EAAK1mQ,IAAM,2BACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CACIvoS,EAAM8jS,OACR9jS,EAAM8jS,KAAKnjS,KAASqoS,IAAQ,EAAK,GAEjB,IAAdhpS,EAAMohO,QAERgtE,GAAK,GAAY,IAAPpF,GACVoF,GAAK,GAAMpF,KAAS,EAAK,IACzBhpS,EAAM+5I,MAAQ0lJ,EAAMz/R,EAAM+5I,MAAOq0J,GAAM,EAAG,IAI5CpF,GAAO,EACPzlN,GAAO,EAEPvjF,EAAMwxB,KAAO84Q,EAEf,KAAKA,EAEH,MAAO/mN,GAAO,GAAI,CAChB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAEIvjF,EAAM8jS,OACR9jS,EAAM8jS,KAAK98R,KAAOgiS,IAEF,IAAdhpS,EAAMohO,QAERgtE,GAAK,GAAY,IAAPpF,GACVoF,GAAK,GAAMpF,KAAS,EAAK,IACzBoF,GAAK,GAAMpF,KAAS,GAAM,IAC1BoF,GAAK,GAAMpF,KAAS,GAAM,IAC1BhpS,EAAM+5I,MAAQ0lJ,EAAMz/R,EAAM+5I,MAAOq0J,GAAM,EAAG,IAI5CpF,GAAO,EACPzlN,GAAO,EAEPvjF,EAAMwxB,KAAO+4Q,EAEf,KAAKA,EAEH,MAAOhnN,GAAO,GAAI,CAChB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAEIvjF,EAAM8jS,OACR9jS,EAAM8jS,KAAKuE,OAAiB,IAAPW,GACrBhpS,EAAM8jS,KAAK8D,GAAMoB,IAAQ,GAET,IAAdhpS,EAAMohO,QAERgtE,GAAK,GAAY,IAAPpF,GACVoF,GAAK,GAAMpF,KAAS,EAAK,IACzBhpS,EAAM+5I,MAAQ0lJ,EAAMz/R,EAAM+5I,MAAOq0J,GAAM,EAAG,IAI5CpF,GAAO,EACPzlN,GAAO,EAEPvjF,EAAMwxB,KAAOg5Q,EAEf,KAAKA,EACH,GAAkB,KAAdxqS,EAAMohO,MAAgB,CAExB,MAAO79I,GAAO,GAAI,CAChB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAEAvjF,EAAMjM,OAASi1S,GACXhpS,EAAM8jS,OACR9jS,EAAM8jS,KAAKwE,UAAYU,IAEP,IAAdhpS,EAAMohO,QAERgtE,GAAK,GAAY,IAAPpF,GACVoF,GAAK,GAAMpF,KAAS,EAAK,IACzBhpS,EAAM+5I,MAAQ0lJ,EAAMz/R,EAAM+5I,MAAOq0J,GAAM,EAAG,IAI5CpF,GAAO,EACPzlN,GAAO,CAET,MACSvjF,EAAM8jS,OACb9jS,EAAM8jS,KAAK4D,MAAQ,MAErB1nS,EAAMwxB,KAAOi5Q,EAEf,KAAKA,EACH,GAAkB,KAAdzqS,EAAMohO,QACR/mJ,GAAOr6E,EAAMjM,OACTsmF,GAAOwyN,KAAQxyN,GAAOwyN,IACtBxyN,KACEr6E,EAAM8jS,OACRn0M,GAAM3vF,EAAM8jS,KAAKwE,UAAYtoS,EAAMjM,OAC9BiM,EAAM8jS,KAAK4D,QAEd1nS,EAAM8jS,KAAK4D,MAAQ,IAAIz0S,MAAM+M,EAAM8jS,KAAKwE,YAE1CtP,EAAM4D,SACJ58R,EAAM8jS,KAAK4D,MACX1jM,GACApvG,GAGAylF,GAEAsV,KAMc,IAAd3vF,EAAMohO,QACRphO,EAAM+5I,MAAQ0lJ,EAAMz/R,EAAM+5I,MAAO/1C,GAAO3pB,GAAMzlF,KAEhDi4S,IAAQxyN,GACRzlF,IAAQylF,GACRr6E,EAAMjM,QAAUsmF,IAEdr6E,EAAMjM,QAAU,MAAMs6S,EAE5BruS,EAAMjM,OAAS,EACfiM,EAAMwxB,KAAOk5Q,EAEf,KAAKA,EACH,GAAkB,KAAd1qS,EAAMohO,MAAgB,CACxB,GAAa,IAATyrE,GAAc,MAAMwB,EACxBh0N,GAAO,EACP,GAEEsV,GAAMqU,GAAMpvG,GAAOylF,MAEfr6E,EAAM8jS,MAAQn0M,IACb3vF,EAAMjM,OAAS,QAClBiM,EAAM8jS,KAAK/nS,MAAQ3I,OAAOwI,aAAa+zF,WAElCA,IAAOtV,GAAOwyN,IAOvB,GALkB,IAAd7sS,EAAMohO,QACRphO,EAAM+5I,MAAQ0lJ,EAAMz/R,EAAM+5I,MAAO/1C,GAAO3pB,GAAMzlF,KAEhDi4S,IAAQxyN,GACRzlF,IAAQylF,GACJsV,GAAO,MAAM0+M,CACnB,MACSruS,EAAM8jS,OACb9jS,EAAM8jS,KAAK/nS,KAAO,MAEpBiE,EAAMjM,OAAS,EACfiM,EAAMwxB,KAAOm5Q,EAEf,KAAKA,EACH,GAAkB,KAAd3qS,EAAMohO,MAAgB,CACxB,GAAa,IAATyrE,GAAc,MAAMwB,EACxBh0N,GAAO,EACP,GACEsV,GAAMqU,GAAMpvG,GAAOylF,MAEfr6E,EAAM8jS,MAAQn0M,IACb3vF,EAAMjM,OAAS,QAClBiM,EAAM8jS,KAAK6D,SAAWv0S,OAAOwI,aAAa+zF,WAErCA,IAAOtV,GAAOwyN,IAMvB,GALkB,IAAd7sS,EAAMohO,QACRphO,EAAM+5I,MAAQ0lJ,EAAMz/R,EAAM+5I,MAAO/1C,GAAO3pB,GAAMzlF,KAEhDi4S,IAAQxyN,GACRzlF,IAAQylF,GACJsV,GAAO,MAAM0+M,CACnB,MACSruS,EAAM8jS,OACb9jS,EAAM8jS,KAAK6D,QAAU,MAEvB3nS,EAAMwxB,KAAOo5Q,EAEf,KAAKA,EACH,GAAkB,IAAd5qS,EAAMohO,MAAgB,CAExB,MAAO79I,GAAO,GAAI,CAChB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAEA,GAAIylN,MAAwB,MAAdhpS,EAAM+5I,OAAiB,CACnCqgJ,EAAK1mQ,IAAM,sBACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CAEAS,GAAO,EACPzlN,GAAO,CAET,CACIvjF,EAAM8jS,OACR9jS,EAAM8jS,KAAK2D,KAASznS,EAAMohO,OAAS,EAAK,EACxCphO,EAAM8jS,KAAK/uS,MAAO,GAEpBqlS,EAAKiE,MAAQr+R,EAAM+5I,MAAQ,EAC3B/5I,EAAMwxB,KAAOg3Q,EACb,MACF,KAAKqC,EAEH,MAAOtnN,GAAO,GAAI,CAChB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAEA62M,EAAKiE,MAAQr+R,EAAM+5I,MAAQsyJ,GAAQrD,IAEnCA,GAAO,EACPzlN,GAAO,EAEPvjF,EAAMwxB,KAAOs5Q,EAEf,KAAKA,EACH,GAAuB,IAAnB9qS,EAAMusS,SASR,OAPAnS,EAAKe,SAAW0S,GAChBzT,EAAKC,UAAYr5M,GACjBo5M,EAAKY,QAAUpmS,GACfwlS,EAAKa,SAAW4R,GAChB7sS,EAAMgpS,KAAOA,GACbhpS,EAAMujF,KAAOA,GAENi5M,EAETpC,EAAKiE,MAAQr+R,EAAM+5I,MAAQ,EAC3B/5I,EAAMwxB,KAAOg3Q,EAEf,KAAKA,EACH,GAAI7gS,IAAU62R,GAAW72R,IAAU82R,EAAW,MAAM4P,EAEtD,KAAKtD,EACH,GAAI/qS,EAAMi/N,KAAM,CAEd+pE,MAAiB,EAAPzlN,GACVA,IAAe,EAAPA,GAERvjF,EAAMwxB,KAAOq6Q,EACb,KACF,CAEA,MAAOtoN,GAAO,EAAG,CACf,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAQA,OANAvjF,EAAMi/N,KAAe,EAAP+pE,GAEdA,MAAU,EACVzlN,IAAQ,EAGQ,EAAPylN,IACP,KAAK,EAGHhpS,EAAMwxB,KAAOw5Q,EACb,MACF,KAAK,EAKH,GAJA0C,GAAY1tS,GAGZA,EAAMwxB,KAAO85Q,EACT3jS,IAAU82R,EAAS,CAErBuK,MAAU,EACVzlN,IAAQ,EAER,MAAM8qN,CACR,CACA,MACF,KAAK,EAGHruS,EAAMwxB,KAAO25Q,EACb,MACF,KAAK,EACH/Q,EAAK1mQ,IAAM,qBACX1zB,EAAMwxB,KAAO+2Q,EAGjBS,MAAU,EACVzlN,IAAQ,EAER,MACF,KAAKynN,EAEHhC,MAAiB,EAAPzlN,GACVA,IAAe,EAAPA,GAGR,MAAOA,GAAO,GAAI,CAChB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAEA,IAAY,MAAPylN,OAAqBA,KAAS,GAAM,OAAS,CAChD5O,EAAK1mQ,IAAM,+BACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CASA,GARAvoS,EAAMjM,OAAgB,MAAPi1S,GAIfA,GAAO,EACPzlN,GAAO,EAEPvjF,EAAMwxB,KAAOy5Q,EACTtjS,IAAU82R,EAAW,MAAM4P,EAEjC,KAAKpD,EACHjrS,EAAMwxB,KAAO05Q,EAEf,KAAKA,EAEH,GADA7wN,GAAOr6E,EAAMjM,OACTsmF,GAAM,CAGR,GAFIA,GAAOwyN,KAAQxyN,GAAOwyN,IACtBxyN,GAAO2G,KAAQ3G,GAAO2G,IACb,IAAT3G,GAAc,MAAMg0N,EAExBrV,EAAM4D,SAAS34L,GAAQD,GAAOpvG,GAAMylF,GAAMwzN,IAE1ChB,IAAQxyN,GACRzlF,IAAQylF,GACR2G,IAAQ3G,GACRwzN,IAAOxzN,GACPr6E,EAAMjM,QAAUsmF,GAChB,KACF,CAEAr6E,EAAMwxB,KAAOg3Q,EACb,MACF,KAAK2C,EAEH,MAAO5nN,GAAO,GAAI,CAChB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAkBA,GAhBAvjF,EAAM2sS,KAAkC,KAAnB,GAAP3D,IAEdA,MAAU,EACVzlN,IAAQ,EAERvjF,EAAM4sS,MAAmC,GAAnB,GAAP5D,IAEfA,MAAU,EACVzlN,IAAQ,EAERvjF,EAAM0sS,MAAmC,GAAnB,GAAP1D,IAEfA,MAAU,EACVzlN,IAAQ,EAGJvjF,EAAM2sS,KAAO,KAAO3sS,EAAM4sS,MAAQ,GAAI,CACxCxS,EAAK1mQ,IAAM,sCACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CAGAvoS,EAAM6sS,KAAO,EACb7sS,EAAMwxB,KAAO45Q,EAEf,KAAKA,EACH,MAAOprS,EAAM6sS,KAAO7sS,EAAM0sS,MAAO,CAE/B,MAAOnpN,GAAO,EAAG,CACf,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAEAvjF,EAAM8sS,KAAKn7Q,GAAM3xB,EAAM6sS,SAAmB,EAAP7D,GAEnCA,MAAU,EACVzlN,IAAQ,CAEV,CACA,MAAOvjF,EAAM6sS,KAAO,GAClB7sS,EAAM8sS,KAAKn7Q,GAAM3xB,EAAM6sS,SAAW,EAapC,GAPA7sS,EAAMupS,QAAUvpS,EAAMgtS,OACtBhtS,EAAMypS,QAAU,EAEhBztS,GAAO,CAAEunF,KAAMvjF,EAAMypS,SACrBh8R,GAAMs8R,EAAcC,EAAOhqS,EAAM8sS,KAAM,EAAG,GAAI9sS,EAAMupS,QAAS,EAAGvpS,EAAM+sS,KAAM/wS,IAC5EgE,EAAMypS,QAAUztS,GAAKunF,KAEjB91E,GAAK,CACP2sR,EAAK1mQ,IAAM,2BACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CAEAvoS,EAAM6sS,KAAO,EACb7sS,EAAMwxB,KAAO65Q,EAEf,KAAKA,EACH,MAAOrrS,EAAM6sS,KAAO7sS,EAAM2sS,KAAO3sS,EAAM4sS,MAAO,CAC5C,OAAS,CAMP,GALAvD,GAAOrpS,EAAMupS,QAAQP,IAAS,GAAKhpS,EAAMypS,SAAW,GACpDqE,GAAYzE,KAAS,GACrB0E,GAAW1E,KAAS,GAAM,IAC1B2E,GAAkB,MAAP3E,GAEP,IAAe9lN,GAAQ,MAE3B,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CAEV,CACA,GAAIyqN,GAAW,GAEbhF,MAAU8E,GACVvqN,IAAQuqN,GAER9tS,EAAM8sS,KAAK9sS,EAAM6sS,QAAUmB,OAExB,CACH,GAAiB,KAAbA,GAAiB,CAEnBn6S,GAAIi6S,GAAY,EAChB,MAAOvqN,GAAO1vF,GAAG,CACf,GAAa,IAATg5S,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAMA,GAHAylN,MAAU8E,GACVvqN,IAAQuqN,GAEW,IAAf9tS,EAAM6sS,KAAY,CACpBzS,EAAK1mQ,IAAM,4BACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CACA54M,GAAM3vF,EAAM8sS,KAAK9sS,EAAM6sS,KAAO,GAC9BxyN,GAAO,GAAY,EAAP2uN,IAEZA,MAAU,EACVzlN,IAAQ,CAEV,MACK,GAAiB,KAAbyqN,GAAiB,CAExBn6S,GAAIi6S,GAAY,EAChB,MAAOvqN,GAAO1vF,GAAG,CACf,GAAa,IAATg5S,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAGAylN,MAAU8E,GACVvqN,IAAQuqN,GAERn+M,GAAM,EACNtV,GAAO,GAAY,EAAP2uN,IAEZA,MAAU,EACVzlN,IAAQ,CAEV,KACK,CAEH1vF,GAAIi6S,GAAY,EAChB,MAAOvqN,GAAO1vF,GAAG,CACf,GAAa,IAATg5S,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAGAylN,MAAU8E,GACVvqN,IAAQuqN,GAERn+M,GAAM,EACNtV,GAAO,IAAa,IAAP2uN,IAEbA,MAAU,EACVzlN,IAAQ,CAEV,CACA,GAAIvjF,EAAM6sS,KAAOxyN,GAAOr6E,EAAM2sS,KAAO3sS,EAAM4sS,MAAO,CAChDxS,EAAK1mQ,IAAM,4BACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CACA,MAAOluN,KACLr6E,EAAM8sS,KAAK9sS,EAAM6sS,QAAUl9M,EAE/B,CACF,CAGA,GAAI3vF,EAAMwxB,OAAS+2Q,EAAO,MAG1B,GAAwB,IAApBvoS,EAAM8sS,KAAK,KAAY,CACzB1S,EAAK1mQ,IAAM,uCACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CAcA,GATAvoS,EAAMypS,QAAU,EAEhBztS,GAAO,CAAEunF,KAAMvjF,EAAMypS,SACrBh8R,GAAMs8R,EAAcE,EAAMjqS,EAAM8sS,KAAM,EAAG9sS,EAAM2sS,KAAM3sS,EAAMupS,QAAS,EAAGvpS,EAAM+sS,KAAM/wS,IAGnFgE,EAAMypS,QAAUztS,GAAKunF,KAGjB91E,GAAK,CACP2sR,EAAK1mQ,IAAM,8BACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CAaA,GAXAvoS,EAAM0pS,SAAW,EAGjB1pS,EAAMwpS,SAAWxpS,EAAMitS,QACvBjxS,GAAO,CAAEunF,KAAMvjF,EAAM0pS,UACrBj8R,GAAMs8R,EAAcG,EAAOlqS,EAAM8sS,KAAM9sS,EAAM2sS,KAAM3sS,EAAM4sS,MAAO5sS,EAAMwpS,SAAU,EAAGxpS,EAAM+sS,KAAM/wS,IAG/FgE,EAAM0pS,SAAW1tS,GAAKunF,KAGlB91E,GAAK,CACP2sR,EAAK1mQ,IAAM,wBACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CAGA,GADAvoS,EAAMwxB,KAAO85Q,EACT3jS,IAAU82R,EAAW,MAAM4P,EAEjC,KAAK/C,EACHtrS,EAAMwxB,KAAO+5Q,EAEf,KAAKA,EACH,GAAIsB,IAAQ,GAAK7rN,IAAQ,IAAK,CAE5Bo5M,EAAKe,SAAW0S,GAChBzT,EAAKC,UAAYr5M,GACjBo5M,EAAKY,QAAUpmS,GACfwlS,EAAKa,SAAW4R,GAChB7sS,EAAMgpS,KAAOA,GACbhpS,EAAMujF,KAAOA,GAEbumN,EAAa1P,EAAMsO,IAEnBmF,GAAMzT,EAAKe,SACXl3L,GAASm2L,EAAKn2L,OACdjjB,GAAOo5M,EAAKC,UACZzlS,GAAOwlS,EAAKY,QACZh3L,GAAQo2L,EAAKp2L,MACb6oM,GAAOzS,EAAKa,SACZ+N,GAAOhpS,EAAMgpS,KACbzlN,GAAOvjF,EAAMujF,KAGTvjF,EAAMwxB,OAASg3Q,IACjBxoS,EAAM+9M,MAAQ,GAEhB,KACF,CAEA,IADA/9M,EAAM+9M,KAAO,IACJ,CAMP,GALAsrF,GAAOrpS,EAAMupS,QAAQP,IAAS,GAAKhpS,EAAMypS,SAAW,GACpDqE,GAAYzE,KAAS,GACrB0E,GAAW1E,KAAS,GAAM,IAC1B2E,GAAkB,MAAP3E,GAEPyE,IAAavqN,GAAQ,MAEzB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CAEV,CACA,GAAIwqN,IAAgC,KAAV,IAAVA,IAAuB,CAIrC,IAHAE,GAAYH,GACZI,GAAUH,GACVI,GAAWH,KACF,CAOP,GANA3E,GAAOrpS,EAAMupS,QAAQ4E,KACXnF,IAAS,GAAMiF,GAAYC,IAAY,IAAoCD,KACrFH,GAAYzE,KAAS,GACrB0E,GAAW1E,KAAS,GAAM,IAC1B2E,GAAkB,MAAP3E,GAEN4E,GAAYH,IAAcvqN,GAAQ,MAEvC,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CAEV,CAEAylN,MAAUiF,GACV1qN,IAAQ0qN,GAERjuS,EAAM+9M,MAAQkwF,EAChB,CAOA,GALAjF,MAAU8E,GACVvqN,IAAQuqN,GAER9tS,EAAM+9M,MAAQ+vF,GACd9tS,EAAMjM,OAASi6S,GACC,IAAZD,GAAe,CAIjB/tS,EAAMwxB,KAAOo6Q,EACb,KACF,CACA,GAAc,GAAVmC,GAAc,CAEhB/tS,EAAM+9M,MAAQ,EACd/9M,EAAMwxB,KAAOg3Q,EACb,KACF,CACA,GAAc,GAAVuF,GAAc,CAChB3T,EAAK1mQ,IAAM,8BACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CACAvoS,EAAM0nS,MAAkB,GAAVqG,GACd/tS,EAAMwxB,KAAOg6Q,EAEf,KAAKA,EACH,GAAIxrS,EAAM0nS,MAAO,CAEf7zS,GAAImM,EAAM0nS,MACV,MAAOnkN,GAAO1vF,GAAG,CACf,GAAa,IAATg5S,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAEAvjF,EAAMjM,QAAUi1S,IAAS,GAAKhpS,EAAM0nS,OAAS,EAE7CsB,MAAUhpS,EAAM0nS,MAChBnkN,IAAQvjF,EAAM0nS,MAEd1nS,EAAM+9M,MAAQ/9M,EAAM0nS,KACtB,CAEA1nS,EAAMktS,IAAMltS,EAAMjM,OAClBiM,EAAMwxB,KAAOi6Q,EAEf,KAAKA,EACH,OAAS,CAMP,GALApC,GAAOrpS,EAAMwpS,SAASR,IAAS,GAAKhpS,EAAM0pS,UAAY,GACtDoE,GAAYzE,KAAS,GACrB0E,GAAW1E,KAAS,GAAM,IAC1B2E,GAAkB,MAAP3E,GAEP,IAAe9lN,GAAQ,MAE3B,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CAEV,CACA,GAAyB,KAAV,IAAVwqN,IAAuB,CAI1B,IAHAE,GAAYH,GACZI,GAAUH,GACVI,GAAWH,KACF,CAOP,GANA3E,GAAOrpS,EAAMwpS,SAAS2E,KACZnF,IAAS,GAAMiF,GAAYC,IAAY,IAAoCD,KACrFH,GAAYzE,KAAS,GACrB0E,GAAW1E,KAAS,GAAM,IAC1B2E,GAAkB,MAAP3E,GAEN4E,GAAYH,IAAcvqN,GAAQ,MAEvC,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CAEV,CAEAylN,MAAUiF,GACV1qN,IAAQ0qN,GAERjuS,EAAM+9M,MAAQkwF,EAChB,CAMA,GAJAjF,MAAU8E,GACVvqN,IAAQuqN,GAER9tS,EAAM+9M,MAAQ+vF,GACA,GAAVC,GAAc,CAChB3T,EAAK1mQ,IAAM,wBACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CACAvoS,EAAM0jG,OAASsqM,GACfhuS,EAAM0nS,MAAoB,GAAZ,GACd1nS,EAAMwxB,KAAOk6Q,EAEf,KAAKA,EACH,GAAI1rS,EAAM0nS,MAAO,CAEf7zS,GAAImM,EAAM0nS,MACV,MAAOnkN,GAAO1vF,GAAG,CACf,GAAa,IAATg5S,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAEAvjF,EAAM0jG,QAAUslM,IAAS,GAAKhpS,EAAM0nS,OAAS,EAE7CsB,MAAUhpS,EAAM0nS,MAChBnkN,IAAQvjF,EAAM0nS,MAEd1nS,EAAM+9M,MAAQ/9M,EAAM0nS,KACtB,CAEA,GAAI1nS,EAAM0jG,OAAS1jG,EAAM2oS,KAAM,CAC7BvO,EAAK1mQ,IAAM,gCACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CAGAvoS,EAAMwxB,KAAOm6Q,EAEf,KAAKA,EACH,GAAa,IAAT3qN,GAAc,MAAMqtN,EAExB,GADAh0N,GAAOquN,GAAO1nN,GACVhhF,EAAM0jG,OAASrpB,GAAM,CAEvB,GADAA,GAAOr6E,EAAM0jG,OAASrpB,GAClBA,GAAOr6E,EAAM6oS,OACX7oS,EAAM6pS,KAAM,CACdzP,EAAK1mQ,IAAM,gCACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CAiBEluN,GAAOr6E,EAAM8oS,OACfzuN,IAAQr6E,EAAM8oS,MACdpnS,GAAO1B,EAAM4oS,MAAQvuN,IAGrB34E,GAAO1B,EAAM8oS,MAAQzuN,GAEnBA,GAAOr6E,EAAMjM,SAAUsmF,GAAOr6E,EAAMjM,QACxCu1S,GAActpS,EAAMzO,MACtB,MAEE+3S,GAAcrlM,GACdviG,GAAOmsS,GAAM7tS,EAAM0jG,OACnBrpB,GAAOr6E,EAAMjM,OAEXsmF,GAAO2G,KAAQ3G,GAAO2G,IAC1BA,IAAQ3G,GACRr6E,EAAMjM,QAAUsmF,GAChB,GACE4pB,GAAO4pM,MAASvE,GAAY5nS,cACnB24E,IACU,IAAjBr6E,EAAMjM,SAAgBiM,EAAMwxB,KAAO+5Q,GACvC,MACF,KAAKK,EACH,GAAa,IAAT5qN,GAAc,MAAMqtN,EACxBpqM,GAAO4pM,MAAS7tS,EAAMjM,OACtBitF,KACAhhF,EAAMwxB,KAAO+5Q,EACb,MACF,KAAKM,EACH,GAAI7rS,EAAMoiS,KAAM,CAEd,MAAO7+M,GAAO,GAAI,CAChB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KAEA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAaA,GAXAmlN,IAAQ1nN,GACRo5M,EAAKwH,WAAa8G,GAClB1oS,EAAMwsS,OAAS9D,GACXA,KACFtO,EAAKiE,MAAQr+R,EAAM+5I,MAEd/5I,EAAMohO,MAAQq+D,EAAMz/R,EAAM+5I,MAAO91C,GAAQykM,GAAMmF,GAAMnF,IAAQtK,EAAQp+R,EAAM+5I,MAAO91C,GAAQykM,GAAMmF,GAAMnF,KAG7GA,GAAO1nN,IAEFhhF,EAAMohO,MAAQ4nE,GAAOqD,GAAQrD,OAAWhpS,EAAM+5I,MAAO,CACxDqgJ,EAAK1mQ,IAAM,uBACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CAEAS,GAAO,EACPzlN,GAAO,CAGT,CACAvjF,EAAMwxB,KAAOs6Q,EAEf,KAAKA,EACH,GAAI9rS,EAAMoiS,MAAQpiS,EAAMohO,MAAO,CAE7B,MAAO79I,GAAO,GAAI,CAChB,GAAa,IAATspN,GAAc,MAAMwB,EACxBxB,KACA7D,IAAQhlM,GAAMpvG,OAAW2uF,GACzBA,IAAQ,CACV,CAEA,GAAIylN,MAAwB,WAAdhpS,EAAMwsS,OAAqB,CACvCpS,EAAK1mQ,IAAM,yBACX1zB,EAAMwxB,KAAO+2Q,EACb,KACF,CAEAS,GAAO,EACPzlN,GAAO,CAGT,CACAvjF,EAAMwxB,KAAOu6Q,EAEf,KAAKA,EACHt+R,GAAM6rR,EACN,MAAM+U,EACR,KAAK9F,EACH96R,GAAMmxR,EACN,MAAMyP,EACR,KAAKrC,EACH,OAAO7B,EACT,KAAK8B,EAEL,QACE,OAAOtN,EAsBb,OARAvE,EAAKe,SAAW0S,GAChBzT,EAAKC,UAAYr5M,GACjBo5M,EAAKY,QAAUpmS,GACfwlS,EAAKa,SAAW4R,GAChB7sS,EAAMgpS,KAAOA,GACbhpS,EAAMujF,KAAOA,IAGTvjF,EAAM4oS,OAAUF,KAAStO,EAAKC,WAAar6R,EAAMwxB,KAAO+2Q,IACvCvoS,EAAMwxB,KAAOq6Q,GAASlkS,IAAUyxR,KAC/CwU,GAAaxT,EAAMA,EAAKn2L,OAAQm2L,EAAKe,SAAUuN,GAAOtO,EAAKC,YAC7Dr6R,EAAMwxB,KAAOw6Q,EACN7B,IAGX1B,IAAOrO,EAAKa,SACZyN,IAAQtO,EAAKC,UACbD,EAAKiI,UAAYoG,GACjBrO,EAAKwH,WAAa8G,GAClB1oS,EAAMwsS,OAAS9D,GACX1oS,EAAMoiS,MAAQsG,KAChBtO,EAAKiE,MAAQr+R,EAAM+5I,MAChB/5I,EAAMohO,MAAQq+D,EAAMz/R,EAAM+5I,MAAO91C,GAAQykM,GAAMtO,EAAKe,SAAWuN,IAAQtK,EAAQp+R,EAAM+5I,MAAO91C,GAAQykM,GAAMtO,EAAKe,SAAWuN,KAE/HtO,EAAK+M,UAAYnnS,EAAMujF,MAAQvjF,EAAMi/N,KAAO,GAAK,IAC9Bj/N,EAAMwxB,OAASg3Q,EAAO,IAAM,IAC5BxoS,EAAMwxB,OAAS85Q,GAAQtrS,EAAMwxB,OAASy5Q,EAAQ,IAAM,IACzD,IAARxC,IAAsB,IAATC,IAAe/gS,IAAUyxR,IAAa3rR,KAAQ4rR,IAC/D5rR,GAAMgvR,GAEDhvR,GACT,CAEA,SAASovR,GAAWzC,GAElB,IAAKA,IAASA,EAAKp6R,MACjB,OAAO2+R,EAGT,IAAI3+R,EAAQo6R,EAAKp6R,MAKjB,OAJIA,EAAMzO,SACRyO,EAAMzO,OAAS,MAEjB6oS,EAAKp6R,MAAQ,KACNq5R,CACT,CAEA,SAAS0C,GAAiB3B,EAAM0J,GAC9B,IAAI9jS,EAGJ,OAAKo6R,GAASA,EAAKp6R,OACnBA,EAAQo6R,EAAKp6R,MACY,KAAP,EAAbA,EAAMoiS,MAA0BzD,GAGrC3+R,EAAM8jS,KAAOA,EACbA,EAAK/uS,MAAO,EACLskS,IAP4BsF,CAQrC,CAEA,SAAS3C,GAAqB5B,EAAMI,GAClC,IAEIx6R,EACAsuS,EACA7gS,EAJA06R,EAAa3N,EAAWzmS,OAO5B,OAAKqmS,GAAyBA,EAAKp6R,OACnCA,EAAQo6R,EAAKp6R,MAEM,IAAfA,EAAMoiS,MAAcpiS,EAAMwxB,OAASs5Q,EAC9BnM,EAIL3+R,EAAMwxB,OAASs5Q,IACjBwD,EAAS,EAETA,EAASlQ,EAAQkQ,EAAQ9T,EAAY2N,EAAY,GAC7CmG,IAAWtuS,EAAM+5I,OACZ6kJ,GAKXnxR,EAAMmgS,GAAaxT,EAAMI,EAAY2N,EAAYA,GAC7C16R,GACFzN,EAAMwxB,KAAOw6Q,EACN7B,IAETnqS,EAAMusS,SAAW,EAEVlT,KAzB4DsF,CA0BrE,CAEAjvS,EAAQ09S,aAAeA,GACvB19S,EAAQ29S,cAAgBA,GACxB39S,EAAQy9S,iBAAmBA,GAC3Bz9S,EAAQ49S,YAAcA,GACtB59S,EAAQosS,aAAeA,GACvBpsS,EAAQgvK,QAAUA,GAClBhvK,EAAQmtS,WAAaA,GACrBntS,EAAQqsS,iBAAmBA,GAC3BrsS,EAAQssS,qBAAuBA,GAC/BtsS,EAAQ6+S,YAAc,oCAaf,EAED;;;qDAIA,CAAE9+S,EAAQkpS,EAA0B,KAuB1C,IAAIK,EAAQ,wBAA2C,4CAEnDwV,EAAU,GACVtC,EAAc,IACdC,EAAe,IAGfnC,EAAQ,EACRC,EAAO,EACPC,EAAQ,EAERuE,EAAQ,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAG3DC,EAAO,CACT,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGtDC,EAAQ,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IACtD,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAClD,KAAM,MAAO,MAAO,MAAO,EAAG,GAG5BC,EAAO,CACT,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpC,GAAI,GAAI,GAAI,GAAI,GAAI,IAGtBn/S,EAAOC,QAAU,SAAuBgM,EAAMoxS,EAAM+B,EAAYC,EAAO5pI,EAAO6pI,EAAahC,EAAM/wS,GAE/F,IAYIgzS,EACArwR,EACAmiQ,EACA1sC,EACAx/O,EAIA6lF,EAMAqzN,EAAWC,EAASC,EA1BpBzqN,EAAOvnF,EAAKunF,KAGZoM,EAAM,EACNg+M,EAAM,EACNhyN,EAAM,EAAGhlF,EAAM,EACfpH,EAAO,EACP0/S,EAAO,EACPC,EAAO,EACPluN,EAAO,EACPmuN,EAAO,EACPC,EAAO,EAMP34Q,EAAO,KACP44Q,EAAa,EAGb7hN,EAAQ,IAAIwrM,EAAMyE,MAAM+Q,EAAU,GAClCc,EAAO,IAAItW,EAAMyE,MAAM+Q,EAAU,GACjC9G,EAAQ,KACR6H,EAAc,EAoClB,IAAK5/M,EAAM,EAAGA,GAAO6+M,EAAS7+M,IAC5BnC,EAAMmC,GAAO,EAEf,IAAKg+M,EAAM,EAAGA,EAAMmB,EAAOnB,IACzBngN,EAAMs/M,EAAK+B,EAAalB,MAK1B,IADAp+S,EAAOg0F,EACF5sF,EAAM63S,EAAS73S,GAAO,EAAGA,IAC5B,GAAmB,IAAf62F,EAAM72F,GAAc,MAK1B,GAHIpH,EAAOoH,IACTpH,EAAOoH,GAEG,IAARA,EAaF,OATAuuK,EAAM6pI,KAAiB,SAMvB7pI,EAAM6pI,KAAiB,SAEvB/yS,EAAKunF,KAAO,EACL,EAET,IAAK5H,EAAM,EAAGA,EAAMhlF,EAAKglF,IACvB,GAAmB,IAAf6R,EAAM7R,GAAc,MAQ1B,IANIpsF,EAAOosF,IACTpsF,EAAOosF,GAITqF,EAAO,EACF2O,EAAM,EAAGA,GAAO6+M,EAAS7+M,IAG5B,GAFA3O,IAAS,EACTA,GAAQwM,EAAMmC,GACV3O,EAAO,EACT,OAAQ,EAGZ,GAAIA,EAAO,IAAMtlF,IAASsuS,GAAiB,IAARrzS,GACjC,OAAQ,EAKV,IADA24S,EAAK,GAAK,EACL3/M,EAAM,EAAGA,EAAM6+M,EAAS7+M,IAC3B2/M,EAAK3/M,EAAM,GAAK2/M,EAAK3/M,GAAOnC,EAAMmC,GAIpC,IAAKg+M,EAAM,EAAGA,EAAMmB,EAAOnB,IACM,IAA3Bb,EAAK+B,EAAalB,KACpBZ,EAAKuC,EAAKxC,EAAK+B,EAAalB,OAAWA,GAmE3C,GA7BIjyS,IAASsuS,GACXvzQ,EAAOixQ,EAAQqF,EACftyN,EAAM,IAEG/+E,IAASuuS,GAClBxzQ,EAAOg4Q,EACPY,GAAc,IACd3H,EAAQgH,EACRa,GAAe,IACf90N,EAAM,MAGNhkD,EAAOk4Q,EACPjH,EAAQkH,EACRn0N,GAAO,GAIT20N,EAAO,EACPzB,EAAM,EACNh+M,EAAMhU,EACN/mF,EAAOm6S,EACPE,EAAO1/S,EACP2/S,EAAO,EACPpuB,GAAO,EACPquB,EAAO,GAAK5/S,EACZ6kP,EAAO+6D,EAAO,EAGTzzS,IAASuuS,GAAQkF,EAAOjD,GAC1BxwS,IAASwuS,GAASiF,EAAOhD,EAC1B,OAAO,EAIT,OAAS,CAEP2B,EAAYn+M,EAAMu/M,EACdnC,EAAKY,GAAOlzN,GACdszN,EAAU,EACVC,EAAWjB,EAAKY,IAETZ,EAAKY,GAAOlzN,GACnBszN,EAAUrG,EAAM6H,EAAcxC,EAAKY,IACnCK,EAAWv3Q,EAAK44Q,EAAatC,EAAKY,MAGlCI,EAAU,GACVC,EAAW,GAIbgB,EAAO,GAAMr/M,EAAMu/M,EACnBvwR,EAAO,GAAKswR,EACZtzN,EAAMh9D,EACN,GACEA,GAAQqwR,EACR9pI,EAAMtwK,GAAQw6S,GAAQF,GAAQvwR,GAASmvR,GAAa,GAAOC,GAAW,GAAMC,EAAU,QACtE,IAATrvR,GAGTqwR,EAAO,GAAMr/M,EAAM,EACnB,MAAOy/M,EAAOJ,EACZA,IAAS,EAWX,GATa,IAATA,GACFI,GAAQJ,EAAO,EACfI,GAAQJ,GAERI,EAAO,EAITzB,IACqB,MAAfngN,EAAMmC,GAAY,CACtB,GAAIA,IAAQh5F,EAAO,MACnBg5F,EAAMm9M,EAAK+B,EAAa9B,EAAKY,GAC/B,CAGA,GAAIh+M,EAAMpgG,IAAS6/S,EAAOh7D,KAAU0sC,EAAK,CAE1B,IAATouB,IACFA,EAAO3/S,GAITqF,GAAQ+mF,EAGRszN,EAAOt/M,EAAMu/M,EACbluN,EAAO,GAAKiuN,EACZ,MAAOA,EAAOC,EAAOv4S,EAAK,CAExB,GADAqqF,GAAQwM,EAAMyhN,EAAOC,GACjBluN,GAAQ,EAAK,MACjBiuN,IACAjuN,IAAS,CACX,CAIA,GADAmuN,GAAQ,GAAKF,EACRvzS,IAASuuS,GAAQkF,EAAOjD,GAC1BxwS,IAASwuS,GAASiF,EAAOhD,EAC1B,OAAO,EAITrrB,EAAMsuB,EAAOh7D,EAIblvE,EAAM47G,GAAQvxR,GAAQ,GAAO0/S,GAAQ,GAAOr6S,EAAOm6S,EAAc,CACnE,CACF,CAeA,OAVa,IAATK,IAIFlqI,EAAMtwK,EAAOw6S,GAAUz/M,EAAMu/M,GAAS,GAAO,IAAM,GAAK,GAK1DlzS,EAAKunF,KAAOh0F,EACL,CACT,CAGO,EAED;;;qDAIEE,IAuBRA,EAAOC,QAAU,CACf,EAAQ,kBACR,EAAQ,aACR,EAAQ,GACR,KAAQ,aACR,KAAQ,eACR,KAAQ,aACR,KAAQ,sBACR,KAAQ,eACR,KAAQ,uBAIH,EAED;;;kDAIA,CAAEK,EAAyBL,EAAS,KAyB1C,IAAIspS,EAAQ,wBAA2C,4CASnDmG,EAAwB,EAIxBC,EAAwB,EACxBC,EAAwB,EAExBC,EAAwB,EAK5B,SAAS5gO,EAAKk0F,GAAO,IAAIjjE,EAAMijE,EAAI7+J,OAAQ,QAAS47F,GAAO,EAAKijE,EAAIjjE,GAAO,CAAK,CAIhF,IAAI6/M,EAAe,EACfC,EAAe,EACfC,EAAe,EAGfnP,EAAe,EACfC,EAAe,IAQfR,EAAgB,GAGhBC,EAAgB,IAGhBC,EAAgBD,EAAW,EAAID,EAG/BG,EAAgB,GAGhBC,EAAgB,GAGhBC,EAAgB,EAAIH,EAAU,EAG9BI,EAAgB,GAGhBqP,EAAgB,GAQhBC,EAAc,EAGdC,EAAc,IAGdC,EAAc,GAGdC,EAAc,GAGdC,EAAc,GAIdC,EACF,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAEvDC,EACF,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAEhEC,EACF,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAEnCC,EACF,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAa3CC,EAAgB,IAGhBC,EAAgB,IAAIr9S,MAAsB,GAAfitS,EAAU,IACzCxhO,EAAK4xO,GAOL,IAAIC,EAAgB,IAAIt9S,MAAgB,EAAVktS,GAC9BzhO,EAAK6xO,GAKL,IAAIC,EAAgB,IAAIv9S,MAAMo9S,GAC9B3xO,EAAK8xO,GAML,IAAIC,EAAgB,IAAIx9S,MAAMutS,EAAYD,EAAY,GACtD7hO,EAAK+xO,GAGL,IAAIC,EAAgB,IAAIz9S,MAAM+sS,GAC9BthO,EAAKgyO,GAGL,IAkBIC,EACAC,EACAC,EApBAC,EAAgB,IAAI79S,MAAMktS,GAK9B,SAAS4Q,EAAeC,EAAaC,EAAYC,EAAYC,EAAOC,GAElEhgT,KAAK4/S,YAAeA,EACpB5/S,KAAK6/S,WAAeA,EACpB7/S,KAAK8/S,WAAeA,EACpB9/S,KAAK+/S,MAAeA,EACpB//S,KAAKggT,WAAeA,EAGpBhgT,KAAKigT,UAAeL,GAAeA,EAAYj9S,MACjD,CAQA,SAASu9S,EAASC,EAAUC,GAC1BpgT,KAAKmgT,SAAWA,EAChBngT,KAAKqgT,SAAW,EAChBrgT,KAAKogT,UAAYA,CACnB,CAIA,SAASE,EAAOnjQ,GACd,OAAOA,EAAO,IAAMiiQ,EAAWjiQ,GAAQiiQ,EAAW,KAAOjiQ,IAAS,GACpE,CAOA,SAASojQ,EAAUh+S,EAAGmwD,GAGpBnwD,EAAE+tS,YAAY/tS,EAAE0zR,WAAmB,IAAN,EAC7B1zR,EAAE+tS,YAAY/tS,EAAE0zR,WAAcvjO,IAAM,EAAK,GAC3C,CAOA,SAAS8tP,EAAUj+S,EAAG3B,EAAO+B,GACvBJ,EAAEszS,SAAY0I,EAAW57S,GAC3BJ,EAAEqzS,QAAWh1S,GAAS2B,EAAEszS,SAAY,MACpC0K,EAAUh+S,EAAGA,EAAEqzS,QACfrzS,EAAEqzS,OAASh1S,GAAU29S,EAAWh8S,EAAEszS,SAClCtzS,EAAEszS,UAAYlzS,EAAS47S,IAEvBh8S,EAAEqzS,QAAWh1S,GAAS2B,EAAEszS,SAAY,MACpCtzS,EAAEszS,UAAYlzS,EAElB,CAGA,SAAS89S,EAAUl+S,EAAG3D,EAAG8hT,GACvBF,EAAUj+S,EAAGm+S,EAAS,EAAJ9hT,GAAiB8hT,EAAS,EAAJ9hT,EAAQ,GAClD,CAQA,SAAS+hT,EAAWC,EAAMriN,GACxB,IAAIyqD,EAAM,EACV,GACEA,GAAc,EAAP43J,EACPA,KAAU,EACV53J,IAAQ,UACCzqD,EAAM,GACjB,OAAOyqD,IAAQ,CACjB,CAMA,SAAS63J,EAASt+S,GACG,KAAfA,EAAEszS,UACJ0K,EAAUh+S,EAAGA,EAAEqzS,QACfrzS,EAAEqzS,OAAS,EACXrzS,EAAEszS,SAAW,GAEJtzS,EAAEszS,UAAY,IACvBtzS,EAAE+tS,YAAY/tS,EAAE0zR,WAAwB,IAAX1zR,EAAEqzS,OAC/BrzS,EAAEqzS,SAAW,EACbrzS,EAAEszS,UAAY,EAElB,CAaA,SAASiL,EAAWv+S,EAAGw+S,GAIrB,IAOIrwM,EACAjuG,EAAGoC,EACHstF,EACA6uN,EACAj9S,EAXA28S,EAAkBK,EAAKZ,SACvBE,EAAkBU,EAAKV,SACvBY,EAAkBF,EAAKX,UAAUR,YACjCK,EAAkBc,EAAKX,UAAUH,UACjC3J,EAAkByK,EAAKX,UAAUP,WACjCx6Q,EAAkB07Q,EAAKX,UAAUN,WACjCE,EAAkBe,EAAKX,UAAUJ,WAMjCkB,EAAW,EAEf,IAAK/uN,EAAO,EAAGA,GAAQ+8M,EAAU/8M,IAC/B5vF,EAAE2yS,SAAS/iN,GAAQ,EAQrB,IAFAuuN,EAA0B,EAArBn+S,EAAE4yS,KAAK5yS,EAAE8yS,UAAgB,GAAa,EAEtC3kM,EAAInuG,EAAE8yS,SAAW,EAAG3kM,EAAIu+L,EAAWv+L,IACtCjuG,EAAIF,EAAE4yS,KAAKzkM,GACXve,EAAOuuN,EAA+B,EAA1BA,EAAS,EAAJj+S,EAAQ,GAAiB,GAAa,EACnD0vF,EAAO6tN,IACT7tN,EAAO6tN,EACPkB,KAEFR,EAAS,EAAJj+S,EAAQ,GAAa0vF,EAGtB1vF,EAAI49S,IAER99S,EAAE2yS,SAAS/iN,KACX6uN,EAAQ,EACJv+S,GAAK4iC,IACP27Q,EAAQ1K,EAAM7zS,EAAI4iC,IAEpBthC,EAAI28S,EAAS,EAAJj+S,GACTF,EAAEkzS,SAAW1xS,GAAKouF,EAAO6uN,GACrBf,IACF19S,EAAEmzS,YAAc3xS,GAAKk9S,EAAU,EAAJx+S,EAAQ,GAAau+S,KAGpD,GAAiB,IAAbE,EAAJ,CAMA,EAAG,CACD/uN,EAAO6tN,EAAa,EACpB,MAA4B,IAArBz9S,EAAE2yS,SAAS/iN,GAAeA,IACjC5vF,EAAE2yS,SAAS/iN,KACX5vF,EAAE2yS,SAAS/iN,EAAO,IAAM,EACxB5vF,EAAE2yS,SAAS8K,KAIXkB,GAAY,CACd,OAASA,EAAW,GAOpB,IAAK/uN,EAAO6tN,EAAqB,IAAT7tN,EAAYA,IAAQ,CAC1C1vF,EAAIF,EAAE2yS,SAAS/iN,GACf,MAAa,IAAN1vF,EACLoC,EAAItC,EAAE4yS,OAAOzkM,GACT7rG,EAAIw7S,IACJK,EAAS,EAAJ77S,EAAQ,KAAestF,IAE9B5vF,EAAEkzS,UAAYtjN,EAAOuuN,EAAS,EAAJ77S,EAAQ,IAAc67S,EAAS,EAAJ77S,GACrD67S,EAAS,EAAJ77S,EAAQ,GAAastF,GAE5B1vF,IAEJ,CAnC8B,CAoChC,CAWA,SAAS0+S,EAAUT,EAAML,EAAUnL,GAKjC,IAEI/iN,EACA1vF,EAHA2+S,EAAY,IAAIv/S,MAAMqtS,EAAW,GACjC0R,EAAO,EAOX,IAAKzuN,EAAO,EAAGA,GAAQ+8M,EAAU/8M,IAC/BivN,EAAUjvN,GAAQyuN,EAAQA,EAAO1L,EAAS/iN,EAAO,IAAO,EAS1D,IAAK1vF,EAAI,EAAIA,GAAK49S,EAAU59S,IAAK,CAC/B,IAAI87F,EAAMmiN,EAAS,EAAJj+S,EAAQ,GACX,IAAR87F,IAEJmiN,EAAS,EAAJj+S,GAAkBk+S,EAAWS,EAAU7iN,KAAQA,GAItD,CACF,CAMA,SAAS8iN,IACP,IAAI5+S,EACA0vF,EACAxvF,EACAi+S,EACAzjQ,EACA+3P,EAAW,IAAIrzS,MAAMqtS,EAAW,GAiBpC,IADAvsS,EAAS,EACJi+S,EAAO,EAAGA,EAAOhS,EAAe,EAAGgS,IAEtC,IADAtB,EAAYsB,GAAQj+S,EACfF,EAAI,EAAGA,EAAK,GAAKo8S,EAAY+B,GAAQn+S,IACxC48S,EAAa18S,KAAYi+S,EAY7B,IAJAvB,EAAa18S,EAAS,GAAKi+S,EAG3BzjQ,EAAO,EACFyjQ,EAAO,EAAGA,EAAO,GAAIA,IAExB,IADAlB,EAAUkB,GAAQzjQ,EACb16C,EAAI,EAAGA,EAAK,GAAKq8S,EAAY8B,GAAQn+S,IACxC28S,EAAWjiQ,KAAUyjQ,EAKzB,IADAzjQ,IAAS,EACFyjQ,EAAO7R,EAAS6R,IAErB,IADAlB,EAAUkB,GAAQzjQ,GAAQ,EACrB16C,EAAI,EAAGA,EAAK,GAAMq8S,EAAY8B,GAAQ,EAAKn+S,IAC9C28S,EAAW,IAAMjiQ,KAAUyjQ,EAM/B,IAAKzuN,EAAO,EAAGA,GAAQ+8M,EAAU/8M,IAC/B+iN,EAAS/iN,GAAQ,EAGnB1vF,EAAI,EACJ,MAAOA,GAAK,IACVy8S,EAAiB,EAAJz8S,EAAQ,GAAa,EAClCA,IACAyyS,EAAS,KAEX,MAAOzyS,GAAK,IACVy8S,EAAiB,EAAJz8S,EAAQ,GAAa,EAClCA,IACAyyS,EAAS,KAEX,MAAOzyS,GAAK,IACVy8S,EAAiB,EAAJz8S,EAAQ,GAAa,EAClCA,IACAyyS,EAAS,KAEX,MAAOzyS,GAAK,IACVy8S,EAAiB,EAAJz8S,EAAQ,GAAa,EAClCA,IACAyyS,EAAS,KASX,IAHAiM,EAAUjC,EAAcpQ,EAAU,EAAGoG,GAGhCzyS,EAAI,EAAGA,EAAIssS,EAAStsS,IACvB08S,EAAiB,EAAJ18S,EAAQ,GAAa,EAClC08S,EAAiB,EAAJ18S,GAAkBk+S,EAAWl+S,EAAG,GAI/C88S,EAAgB,IAAII,EAAeT,EAAcL,EAAahQ,EAAW,EAAGC,EAASI,GACrFsQ,EAAgB,IAAIG,EAAeR,EAAcL,EAAa,EAAY/P,EAASG,GACnFuQ,EAAiB,IAAIE,EAAe,IAAI99S,MAAM,GAAIk9S,EAAc,EAAW/P,EAAUwP,EAGvF,CAMA,SAAS8C,EAAW/+S,GAClB,IAAIE,EAGJ,IAAKA,EAAI,EAAGA,EAAIqsS,EAAUrsS,IAAOF,EAAEqyS,UAAc,EAAJnyS,GAAkB,EAC/D,IAAKA,EAAI,EAAGA,EAAIssS,EAAUtsS,IAAOF,EAAEsyS,UAAc,EAAJpyS,GAAkB,EAC/D,IAAKA,EAAI,EAAGA,EAAIusS,EAAUvsS,IAAOF,EAAEuyS,QAAY,EAAJryS,GAAkB,EAE7DF,EAAEqyS,UAAsB,EAAZ6J,GAA0B,EACtCl8S,EAAEkzS,QAAUlzS,EAAEmzS,WAAa,EAC3BnzS,EAAEixS,SAAWjxS,EAAEozS,QAAU,CAC3B,CAMA,SAAS4L,EAAUh/S,GAEbA,EAAEszS,SAAW,EACf0K,EAAUh+S,EAAGA,EAAEqzS,QACNrzS,EAAEszS,SAAW,IAEtBtzS,EAAE+tS,YAAY/tS,EAAE0zR,WAAa1zR,EAAEqzS,QAEjCrzS,EAAEqzS,OAAS,EACXrzS,EAAEszS,SAAW,CACf,CAMA,SAAS2L,GAAWj/S,EAAGi/J,EAAKjjE,EAAKm7D,GAM/B6nJ,EAAUh/S,GAENm3J,IACF6mJ,EAAUh+S,EAAGg8F,GACbgiN,EAAUh+S,GAAIg8F,IAKhBqpM,EAAM4D,SAASjpS,EAAE+tS,YAAa/tS,EAAEpC,OAAQqhK,EAAKjjE,EAAKh8F,EAAE0zR,SACpD1zR,EAAE0zR,SAAW13L,CACf,CAMA,SAASkjN,GAAQf,EAAMj+S,EAAGoC,EAAG0oL,GAC3B,IAAIm0H,EAAU,EAAJj/S,EACNk/S,EAAU,EAAJ98S,EACV,OAAQ67S,EAAKgB,GAAgBhB,EAAKiB,IAC1BjB,EAAKgB,KAAkBhB,EAAKiB,IAAiBp0H,EAAM9qL,IAAM8qL,EAAM1oL,EACzE,CAQA,SAAS+8S,GAAWr/S,EAAGm+S,EAAMz6P,GAK3B,IAAIzhD,EAAIjC,EAAE4yS,KAAKlvP,GACXvM,EAAIuM,GAAK,EACb,MAAOvM,GAAKn3C,EAAE6yS,SAAU,CAOtB,GALI17P,EAAIn3C,EAAE6yS,UACRqM,GAAQf,EAAMn+S,EAAE4yS,KAAKz7P,EAAI,GAAIn3C,EAAE4yS,KAAKz7P,GAAIn3C,EAAEgrL,QAC1C7zI,IAGE+nQ,GAAQf,EAAMl8S,EAAGjC,EAAE4yS,KAAKz7P,GAAIn3C,EAAEgrL,OAAU,MAG5ChrL,EAAE4yS,KAAKlvP,GAAK1jD,EAAE4yS,KAAKz7P,GACnBuM,EAAIvM,EAGJA,IAAM,CACR,CACAn3C,EAAE4yS,KAAKlvP,GAAKzhD,CACd,CASA,SAASq9S,GAAet/S,EAAGu/S,EAAOC,GAKhC,IAAI5kQ,EACAyiG,EAEAghK,EACAtK,EAFA0L,EAAK,EAIT,GAAmB,IAAfz/S,EAAEixS,SACJ,GACEr2P,EAAQ56C,EAAE+tS,YAAY/tS,EAAEizS,MAAa,EAALwM,IAAW,EAAMz/S,EAAE+tS,YAAY/tS,EAAEizS,MAAa,EAALwM,EAAS,GAClFpiK,EAAKr9I,EAAE+tS,YAAY/tS,EAAE+yS,MAAQ0M,GAC7BA,IAEa,IAAT7kQ,EACFsjQ,EAAUl+S,EAAGq9I,EAAIkiK,IAIjBlB,EAAOvB,EAAaz/J,GACpB6gK,EAAUl+S,EAAGq+S,EAAO/R,EAAW,EAAGiT,GAClCxL,EAAQuI,EAAY+B,GACN,IAAVtK,IACF12J,GAAM0/J,EAAYsB,GAClBJ,EAAUj+S,EAAGq9I,EAAI02J,IAEnBn5P,IACAyjQ,EAAON,EAAOnjQ,GAGdsjQ,EAAUl+S,EAAGq+S,EAAMmB,GACnBzL,EAAQwI,EAAY8B,GACN,IAAVtK,IACFn5P,GAAQuiQ,EAAUkB,GAClBJ,EAAUj+S,EAAG46C,EAAMm5P,WAQhB0L,EAAKz/S,EAAEixS,UAGlBiN,EAAUl+S,EAAGk8S,EAAWqD,EAC1B,CAWA,SAASG,GAAW1/S,EAAGw+S,GAIrB,IAIIt+S,EAAGoC,EAEH6G,EANAg1S,EAAWK,EAAKZ,SAChBc,EAAWF,EAAKX,UAAUR,YAC1BK,EAAYc,EAAKX,UAAUH,UAC3BF,EAAWgB,EAAKX,UAAUL,MAE1BM,GAAY,EAUhB,IAHA99S,EAAE6yS,SAAW,EACb7yS,EAAE8yS,SAAWpG,EAERxsS,EAAI,EAAGA,EAAIs9S,EAAOt9S,IACQ,IAAzBi+S,EAAS,EAAJj+S,IACPF,EAAE4yS,OAAO5yS,EAAE6yS,UAAYiL,EAAW59S,EAClCF,EAAEgrL,MAAM9qL,GAAK,GAGbi+S,EAAS,EAAJj+S,EAAQ,GAAa,EAS9B,MAAOF,EAAE6yS,SAAW,EAClB1pS,EAAOnJ,EAAE4yS,OAAO5yS,EAAE6yS,UAAaiL,EAAW,IAAMA,EAAW,EAC3DK,EAAY,EAAPh1S,GAAqB,EAC1BnJ,EAAEgrL,MAAM7hL,GAAQ,EAChBnJ,EAAEkzS,UAEEwK,IACF19S,EAAEmzS,YAAcuL,EAAa,EAAPv1S,EAAW,IASrC,IALAq1S,EAAKV,SAAWA,EAKX59S,EAAKF,EAAE6yS,UAAY,EAAc3yS,GAAK,EAAGA,IAAOm/S,GAAWr/S,EAAGm+S,EAAMj+S,GAKzEiJ,EAAOq0S,EACP,GAGEt9S,EAAIF,EAAE4yS,KAAK,GACX5yS,EAAE4yS,KAAK,GAAiB5yS,EAAE4yS,KAAK5yS,EAAE6yS,YACjCwM,GAAWr/S,EAAGm+S,EAAM,GAGpB77S,EAAItC,EAAE4yS,KAAK,GAEX5yS,EAAE4yS,OAAO5yS,EAAE8yS,UAAY5yS,EACvBF,EAAE4yS,OAAO5yS,EAAE8yS,UAAYxwS,EAGvB67S,EAAY,EAAPh1S,GAAqBg1S,EAAS,EAAJj+S,GAAkBi+S,EAAS,EAAJ77S,GACtDtC,EAAEgrL,MAAM7hL,IAASnJ,EAAEgrL,MAAM9qL,IAAMF,EAAEgrL,MAAM1oL,GAAKtC,EAAEgrL,MAAM9qL,GAAKF,EAAEgrL,MAAM1oL,IAAM,EACvE67S,EAAS,EAAJj+S,EAAQ,GAAai+S,EAAS,EAAJ77S,EAAQ,GAAa6G,EAGpDnJ,EAAE4yS,KAAK,GAAiBzpS,IACxBk2S,GAAWr/S,EAAGm+S,EAAM,SAEbn+S,EAAE6yS,UAAY,GAEvB7yS,EAAE4yS,OAAO5yS,EAAE8yS,UAAY9yS,EAAE4yS,KAAK,GAK9B2L,EAAWv+S,EAAGw+S,GAGdI,EAAUT,EAAML,EAAU99S,EAAE2yS,SAC9B,CAOA,SAASgN,GAAU3/S,EAAGm+S,EAAML,GAK1B,IAAI59S,EAEA0/S,EADAC,GAAW,EAGXC,EAAU3B,EAAK,GAEftkN,EAAQ,EACRkmN,EAAY,EACZC,EAAY,EAQhB,IANgB,IAAZF,IACFC,EAAY,IACZC,EAAY,GAEd7B,EAAsB,GAAhBL,EAAW,GAAS,GAAa,MAElC59S,EAAI,EAAGA,GAAK49S,EAAU59S,IACzB0/S,EAASE,EACTA,EAAU3B,EAAe,GAATj+S,EAAI,GAAS,KAEvB25F,EAAQkmN,GAAaH,IAAWE,IAG3BjmN,EAAQmmN,EACjBhgT,EAAEuyS,QAAiB,EAATqN,IAAwB/lN,EAEd,IAAX+lN,GAELA,IAAWC,GAAW7/S,EAAEuyS,QAAiB,EAATqN,KACpC5/S,EAAEuyS,QAAkB,EAAV4J,MAEDtiN,GAAS,GAClB75F,EAAEuyS,QAAoB,EAAZ6J,KAGVp8S,EAAEuyS,QAAsB,EAAd8J,KAGZxiN,EAAQ,EACRgmN,EAAUD,EAEM,IAAZE,GACFC,EAAY,IACZC,EAAY,GAEHJ,IAAWE,GACpBC,EAAY,EACZC,EAAY,IAGZD,EAAY,EACZC,EAAY,GAGlB,CAOA,SAASC,GAAUjgT,EAAGm+S,EAAML,GAK1B,IAAI59S,EAEA0/S,EADAC,GAAW,EAGXC,EAAU3B,EAAK,GAEftkN,EAAQ,EACRkmN,EAAY,EACZC,EAAY,EAQhB,IALgB,IAAZF,IACFC,EAAY,IACZC,EAAY,GAGT9/S,EAAI,EAAGA,GAAK49S,EAAU59S,IAIzB,GAHA0/S,EAASE,EACTA,EAAU3B,EAAe,GAATj+S,EAAI,GAAS,OAEvB25F,EAAQkmN,GAAaH,IAAWE,GAAtC,CAGO,GAAIjmN,EAAQmmN,EACjB,GAAK9B,EAAUl+S,EAAG4/S,EAAQ5/S,EAAEuyS,eAA+B,MAAV14M,QAE7B,IAAX+lN,GACLA,IAAWC,IACb3B,EAAUl+S,EAAG4/S,EAAQ5/S,EAAEuyS,SACvB14M,KAGFqkN,EAAUl+S,EAAGm8S,EAASn8S,EAAEuyS,SACxB0L,EAAUj+S,EAAG65F,EAAQ,EAAG,IAEfA,GAAS,IAClBqkN,EAAUl+S,EAAGo8S,EAAWp8S,EAAEuyS,SAC1B0L,EAAUj+S,EAAG65F,EAAQ,EAAG,KAGxBqkN,EAAUl+S,EAAGq8S,EAAar8S,EAAEuyS,SAC5B0L,EAAUj+S,EAAG65F,EAAQ,GAAI,IAG3BA,EAAQ,EACRgmN,EAAUD,EACM,IAAZE,GACFC,EAAY,IACZC,EAAY,GAEHJ,IAAWE,GACpBC,EAAY,EACZC,EAAY,IAGZD,EAAY,EACZC,EAAY,EAdd,CAiBJ,CAOA,SAASE,GAAclgT,GACrB,IAAImgT,EAgBJ,IAbAR,GAAU3/S,EAAGA,EAAEqyS,UAAWryS,EAAEwyS,OAAOsL,UACnC6B,GAAU3/S,EAAGA,EAAEsyS,UAAWtyS,EAAEyyS,OAAOqL,UAGnC4B,GAAW1/S,EAAGA,EAAE0yS,SASXyN,EAAc1T,EAAW,EAAG0T,GAAe,EAAGA,IACjD,GAAyD,IAArDngT,EAAEuyS,QAAgC,EAAxBkK,EAAS0D,GAAmB,GACxC,MAQJ,OAJAngT,EAAEkzS,SAAW,GAAKiN,EAAc,GAAK,EAAI,EAAI,EAItCA,CACT,CAQA,SAASC,GAAepgT,EAAGqgT,EAAQC,EAAQC,GAIzC,IAAI1S,EASJ,IAHAoQ,EAAUj+S,EAAGqgT,EAAS,IAAK,GAC3BpC,EAAUj+S,EAAGsgT,EAAS,EAAK,GAC3BrC,EAAUj+S,EAAGugT,EAAU,EAAI,GACtB1S,EAAO,EAAGA,EAAO0S,EAAS1S,IAE7BoQ,EAAUj+S,EAAGA,EAAEuyS,QAAyB,EAAjBkK,EAAS5O,GAAY,GAAY,GAI1DoS,GAAUjgT,EAAGA,EAAEqyS,UAAWgO,EAAS,GAGnCJ,GAAUjgT,EAAGA,EAAEsyS,UAAWgO,EAAS,EAErC,CAgBA,SAASE,GAAiBxgT,GAKxB,IACIE,EADAugT,EAAa,WAIjB,IAAKvgT,EAAI,EAAGA,GAAK,GAAIA,IAAKugT,KAAgB,EACxC,GAAkB,EAAbA,GAAoD,IAAhCzgT,EAAEqyS,UAAc,EAAJnyS,GACnC,OAAOurS,EAKX,GAAoC,IAAhCzrS,EAAEqyS,UAAU,KAA0D,IAAjCryS,EAAEqyS,UAAU,KAChB,IAAjCryS,EAAEqyS,UAAU,IACd,OAAO3G,EAET,IAAKxrS,EAAI,GAAIA,EAAIosS,EAAUpsS,IACzB,GAAoC,IAAhCF,EAAEqyS,UAAc,EAAJnyS,GACd,OAAOwrS,EAOX,OAAOD,CACT,CAp1BA1gO,EAAKoyO,GAu1BL,IAAIuD,IAAmB,EAKvB,SAASjN,GAASzzS,GAGX0gT,KACH5B,IACA4B,IAAmB,GAGrB1gT,EAAEwyS,OAAU,IAAImL,EAAS39S,EAAEqyS,UAAW2K,GACtCh9S,EAAEyyS,OAAU,IAAIkL,EAAS39S,EAAEsyS,UAAW2K,GACtCj9S,EAAE0yS,QAAU,IAAIiL,EAAS39S,EAAEuyS,QAAS2K,GAEpCl9S,EAAEqzS,OAAS,EACXrzS,EAAEszS,SAAW,EAGbyL,EAAW/+S,EACb,CAMA,SAASq0S,GAAiBr0S,EAAGi/J,EAAK0hJ,EAAYr1E,GAM5C2yE,EAAUj+S,GAAI67S,GAAgB,IAAMvwE,EAAO,EAAI,GAAI,GACnD2zE,GAAWj/S,EAAGi/J,EAAK0hJ,GAAY,EACjC,CAOA,SAASvM,GAAUp0S,GACjBi+S,EAAUj+S,EAAG87S,GAAgB,EAAG,GAChCoC,EAAUl+S,EAAGk8S,EAAWS,GACxB2B,EAASt+S,EACX,CAOA,SAASmuS,GAAgBnuS,EAAGi/J,EAAK0hJ,EAAYr1E,GAM3C,IAAIs1E,EAAUC,EACVV,EAAc,EAGdngT,EAAEs3G,MAAQ,GAGRt3G,EAAEymS,KAAK+M,YAAc7H,IACvB3rS,EAAEymS,KAAK+M,UAAYgN,GAAiBxgT,IAItC0/S,GAAW1/S,EAAGA,EAAEwyS,QAIhBkN,GAAW1/S,EAAGA,EAAEyyS,QAUhB0N,EAAcD,GAAclgT,GAG5B4gT,EAAY5gT,EAAEkzS,QAAU,EAAI,IAAO,EACnC2N,EAAe7gT,EAAEmzS,WAAa,EAAI,IAAO,EAMrC0N,GAAeD,IAAYA,EAAWC,IAI1CD,EAAWC,EAAcF,EAAa,EAGnCA,EAAa,GAAKC,IAAuB,IAAT3hJ,EASnCo1I,GAAiBr0S,EAAGi/J,EAAK0hJ,EAAYr1E,GAE5BtrO,EAAEomS,WAAaoF,GAAWqV,IAAgBD,GAEnD3C,EAAUj+S,GAAI87S,GAAgB,IAAMxwE,EAAO,EAAI,GAAI,GACnDg0E,GAAet/S,EAAG28S,EAAcC,KAGhCqB,EAAUj+S,GAAI+7S,GAAa,IAAMzwE,EAAO,EAAI,GAAI,GAChD80E,GAAepgT,EAAGA,EAAEwyS,OAAOsL,SAAW,EAAG99S,EAAEyyS,OAAOqL,SAAW,EAAGqC,EAAc,GAC9Eb,GAAet/S,EAAGA,EAAEqyS,UAAWryS,EAAEsyS,YAMnCyM,EAAW/+S,GAEPsrO,GACF0zE,EAAUh/S,EAId,CAMA,SAAS+wS,GAAU/wS,EAAG46C,EAAMyiG,GAmD1B,OA5CAr9I,EAAE+tS,YAAY/tS,EAAEizS,MAAqB,EAAbjzS,EAAEixS,UAAqBr2P,IAAS,EAAK,IAC7D56C,EAAE+tS,YAAY/tS,EAAEizS,MAAqB,EAAbjzS,EAAEixS,SAAe,GAAY,IAAPr2P,EAE9C56C,EAAE+tS,YAAY/tS,EAAE+yS,MAAQ/yS,EAAEixS,UAAiB,IAAL5zJ,EACtCr9I,EAAEixS,WAEW,IAATr2P,EAEF56C,EAAEqyS,UAAe,EAALh1J,MAEZr9I,EAAEozS,UAEFx4P,IAKA56C,EAAEqyS,UAA8C,GAAnCyK,EAAaz/J,GAAMivJ,EAAW,MAC3CtsS,EAAEsyS,UAAyB,EAAfyL,EAAOnjQ,OA0Bb56C,EAAEixS,WAAajxS,EAAEgzS,YAAc,CAKzC,CAEAj3S,EAAQ03S,SAAYA,GACpB13S,EAAQs4S,iBAAmBA,GAC3Bt4S,EAAQoyS,gBAAmBA,GAC3BpyS,EAAQg1S,UAAYA,GACpBh1S,EAAQq4S,UAAYA,EAGb,EAED;;;oDAIEt4S,IAuBR,SAASypS,IAEP9nS,KAAK4yG,MAAQ,KACb5yG,KAAK4pS,QAAU,EAEf5pS,KAAK6pS,SAAW,EAEhB7pS,KAAKixS,SAAW,EAEhBjxS,KAAK6yG,OAAS,KACd7yG,KAAK+pS,SAAW,EAEhB/pS,KAAKipS,UAAY,EAEjBjpS,KAAKwwS,UAAY,EAEjBxwS,KAAKsiC,IAAM,GAEXtiC,KAAK4O,MAAQ,KAEb5O,KAAK+1S,UAAY,EAEjB/1S,KAAKitS,MAAQ,CACf,CAEA5uS,EAAOC,QAAUwpS,CAGV,EAED;;;0DAIA,CAAEnpS,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC,QAAW,IAAM,IAEnB,IAAI8jT,EAA4C,sBAAyC,qDAG9G,SAAS17S,EAAM27S,GACb,KAAK,EAAGD,EAA0C,YAAYC,GAC5D,MAAMvhT,UAAU,gBAGlB,IAAIyC,EACA++S,EAAM,IAAIh+K,WAAW,IAuBzB,OArBAg+K,EAAI,IAAM/+S,EAAI0lF,SAASo5N,EAAKjqS,MAAM,EAAG,GAAI,OAAS,GAClDkqS,EAAI,GAAK/+S,IAAM,GAAK,IACpB++S,EAAI,GAAK/+S,IAAM,EAAI,IACnB++S,EAAI,GAAS,IAAJ/+S,EAET++S,EAAI,IAAM/+S,EAAI0lF,SAASo5N,EAAKjqS,MAAM,EAAG,IAAK,OAAS,EACnDkqS,EAAI,GAAS,IAAJ/+S,EAET++S,EAAI,IAAM/+S,EAAI0lF,SAASo5N,EAAKjqS,MAAM,GAAI,IAAK,OAAS,EACpDkqS,EAAI,GAAS,IAAJ/+S,EAET++S,EAAI,IAAM/+S,EAAI0lF,SAASo5N,EAAKjqS,MAAM,GAAI,IAAK,OAAS,EACpDkqS,EAAI,GAAS,IAAJ/+S,EAGT++S,EAAI,KAAO/+S,EAAI0lF,SAASo5N,EAAKjqS,MAAM,GAAI,IAAK,KAAO,cAAgB,IACnEkqS,EAAI,IAAM/+S,EAAI,WAAc,IAC5B++S,EAAI,IAAM/+S,IAAM,GAAK,IACrB++S,EAAI,IAAM/+S,IAAM,GAAK,IACrB++S,EAAI,IAAM/+S,IAAM,EAAI,IACpB++S,EAAI,IAAU,IAAJ/+S,EACH++S,CACT,CAE6B,MAAMC,EAA6B,CAEzD,EAED;;;0DAIA,CAAE7kT,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC,QAAW,IAAM,IAEX,MAAMikT,EAA6B,qHAEzD,EAED;;;yDAIA,CAAE7kT,EAAyB,EAAqB,KAQtD,SAASoF,EAAExB,EAAGwoC,EAAG/mC,EAAGwyC,GAClB,OAAQj0C,GACN,KAAK,EACH,OAAOwoC,EAAI/mC,GAAK+mC,EAAIyL,EAEtB,KAAK,EACH,OAAOzL,EAAI/mC,EAAIwyC,EAEjB,KAAK,EACH,OAAOzL,EAAI/mC,EAAI+mC,EAAIyL,EAAIxyC,EAAIwyC,EAE7B,KAAK,EACH,OAAOzL,EAAI/mC,EAAIwyC,EAErB,CAEA,SAASitQ,EAAK14Q,EAAGtoC,GACf,OAAOsoC,GAAKtoC,EAAIsoC,IAAM,GAAKtoC,CAC7B,CAEA,SAASihT,EAAKC,GACZ,IAAI92O,EAAI,CAAC,WAAY,WAAY,WAAY,YACzC9M,EAAI,CAAC,WAAY,WAAY,WAAY,UAAY,YAEzD,GAAqB,kBAAV4jP,EAAoB,CAC7B,IAAIrhR,EAAMshR,SAAShkC,mBAAmB+jC,IAEtCA,EAAQ,GAER,IAAK,IAAInhT,EAAI,EAAGA,EAAI8/B,EAAI3/B,SAAUH,EAChCmhT,EAAMh/S,KAAK29B,EAAIsnD,WAAWpnF,GAE9B,MAAYX,MAAMwD,QAAQs+S,KAExBA,EAAQ9hT,MAAMvB,UAAU+Y,MAAM7Y,KAAKmjT,IAGrCA,EAAMh/S,KAAK,KAKX,IAJA,IAAI48C,EAAIoiQ,EAAMhhT,OAAS,EAAI,EACvBqrE,EAAI1oE,KAAK6qO,KAAK5uL,EAAI,IAClB0K,EAAI,IAAIpqD,MAAMmsE,GAET61O,EAAK,EAAGA,EAAK71O,IAAK61O,EAAI,CAG7B,IAFA,IAAIN,EAAM,IAAIv2H,YAAY,IAEjBtzI,EAAI,EAAGA,EAAI,KAAMA,EACxB6pQ,EAAI7pQ,GAAKiqQ,EAAW,GAALE,EAAc,EAAJnqQ,IAAU,GAAKiqQ,EAAW,GAALE,EAAc,EAAJnqQ,EAAQ,IAAM,GAAKiqQ,EAAW,GAALE,EAAc,EAAJnqQ,EAAQ,IAAM,EAAIiqQ,EAAW,GAALE,EAAc,EAAJnqQ,EAAQ,GAGvIuS,EAAE43P,GAAMN,CACV,CAEAt3P,EAAE+hB,EAAI,GAAG,IAA2B,GAApB21O,EAAMhhT,OAAS,GAAS2C,KAAKo8D,IAAI,EAAG,IACpDzV,EAAE+hB,EAAI,GAAG,IAAM1oE,KAAKwkD,MAAMmC,EAAE+hB,EAAI,GAAG,KACnC/hB,EAAE+hB,EAAI,GAAG,IAA2B,GAApB21O,EAAMhhT,OAAS,GAAS,WAExC,IAAK,IAAImhT,EAAM,EAAGA,EAAM91O,IAAK81O,EAAK,CAGhC,IAFA,IAAIxvP,EAAI,IAAI04H,YAAY,IAEf1qL,EAAI,EAAGA,EAAI,KAAMA,EACxBgyD,EAAEhyD,GAAK2pD,EAAE63P,GAAKxhT,GAGhB,IAAK,IAAIyhT,EAAK,GAAIA,EAAK,KAAMA,EAC3BzvP,EAAEyvP,GAAMN,EAAKnvP,EAAEyvP,EAAK,GAAKzvP,EAAEyvP,EAAK,GAAKzvP,EAAEyvP,EAAK,IAAMzvP,EAAEyvP,EAAK,IAAK,GAShE,IANA,IAAIx3S,EAAIwzD,EAAE,GACNr+D,EAAIq+D,EAAE,GACNnhE,EAAImhE,EAAE,GACNxgE,EAAIwgE,EAAE,GACN7/D,EAAI6/D,EAAE,GAEDikP,EAAM,EAAGA,EAAM,KAAMA,EAAK,CACjC,IAAIzhT,EAAI+C,KAAKwkD,MAAMk6P,EAAM,IACrB3+P,EAAIo+P,EAAKl3S,EAAG,GAAKxI,EAAExB,EAAGb,EAAG9C,EAAGW,GAAKW,EAAI2sE,EAAEtqE,GAAK+xD,EAAE0vP,KAAS,EAC3D9jT,EAAIX,EACJA,EAAIX,EACJA,EAAI6kT,EAAK/hT,EAAG,MAAQ,EACpBA,EAAI6K,EACJA,EAAI84C,CACN,CAEA0a,EAAE,GAAKA,EAAE,GAAKxzD,IAAM,EACpBwzD,EAAE,GAAKA,EAAE,GAAKr+D,IAAM,EACpBq+D,EAAE,GAAKA,EAAE,GAAKnhE,IAAM,EACpBmhE,EAAE,GAAKA,EAAE,GAAKxgE,IAAM,EACpBwgE,EAAE,GAAKA,EAAE,GAAK7/D,IAAM,CACtB,CAEA,MAAO,CAAC6/D,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GACxV,CAjGA,EAAoBt/D,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC,QAAW,IAAM,IAiGX,MAAMikT,EAA6B,CAEzD,EAED;;;8DAIA,CAAE7kT,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC,QAAW,IAAM,IAWxC,IATqB,IAAI8jT,EAA4C,sBAAyC,qDAO1GY,EAAY,GAEPzhT,EAAI,EAAGA,EAAI,MAAOA,EACzByhT,EAAUt/S,MAAMnC,EAAI,KAAOkH,SAAS,IAAImiF,OAAO,IAGjD,SAAS7jF,EAAUu7S,GACjB,IAAIjxM,EAAS5vG,UAAUC,OAAS,QAAsBrD,IAAjBoD,UAAU,GAAmBA,UAAU,GAAK,EAG7E4gT,GAAQW,EAAUV,EAAIjxM,EAAS,IAAM2xM,EAAUV,EAAIjxM,EAAS,IAAM2xM,EAAUV,EAAIjxM,EAAS,IAAM2xM,EAAUV,EAAIjxM,EAAS,IAAM,IAAM2xM,EAAUV,EAAIjxM,EAAS,IAAM2xM,EAAUV,EAAIjxM,EAAS,IAAM,IAAM2xM,EAAUV,EAAIjxM,EAAS,IAAM2xM,EAAUV,EAAIjxM,EAAS,IAAM,IAAM2xM,EAAUV,EAAIjxM,EAAS,IAAM2xM,EAAUV,EAAIjxM,EAAS,IAAM,IAAM2xM,EAAUV,EAAIjxM,EAAS,KAAO2xM,EAAUV,EAAIjxM,EAAS,KAAO2xM,EAAUV,EAAIjxM,EAAS,KAAO2xM,EAAUV,EAAIjxM,EAAS,KAAO2xM,EAAUV,EAAIjxM,EAAS,KAAO2xM,EAAUV,EAAIjxM,EAAS,MAAM/jG,cAMzf,KAAK,EAAG80S,EAA0C,YAAYC,GAC5D,MAAMvhT,UAAU,+BAGlB,OAAOuhT,CACT,CAE6B,MAAME,EAA6B,CAEzD,EAED;;;wDAIA,CAAE7kT,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC2kT,IAAK,IAAM,EACXr3S,IAAK,IAAM,EACX,QAAW,IAAM,IAEnB,IAAIs3S,EAA6C,uBAA0C,sDACvFC,EAAyC,mBAAsC,kDAIxG,SAASC,EAAc1xE,GACrBA,EAAMixE,SAAShkC,mBAAmBjtC,IAIlC,IAFA,IAAIgxE,EAAQ,GAEHnhT,EAAI,EAAGA,EAAImwO,EAAIhwO,SAAUH,EAChCmhT,EAAMh/S,KAAKguO,EAAI/oJ,WAAWpnF,IAG5B,OAAOmhT,CACT,CAEA,IAAIO,EAAM,uCACNr3S,EAAM,uCACmB,SAAS22S,EAA2B74S,EAAM0X,EAASiiS,GAC9E,SAASC,EAAa3jT,EAAO4jT,EAAWhjJ,EAAKlvD,GAS3C,GARqB,kBAAV1xG,IACTA,EAAQyjT,EAAczjT,IAGC,kBAAd4jT,IACTA,GAAY,EAAGJ,EAAuC,YAAYI,IAG3C,KAArBA,EAAU7hT,OACZ,MAAMZ,UAAU,oEAMlB,IAAI4hT,EAAQ,IAAIp+K,WAAW,GAAK3kI,EAAM+B,QAOtC,GANAghT,EAAM5uS,IAAIyvS,GACVb,EAAM5uS,IAAInU,EAAO4jT,EAAU7hT,QAC3BghT,EAAQW,EAASX,GACjBA,EAAM,GAAgB,GAAXA,EAAM,GAAYthS,EAC7BshS,EAAM,GAAgB,GAAXA,EAAM,GAAY,IAEzBniJ,EAAK,CACPlvD,EAASA,GAAU,EAEnB,IAAK,IAAI9vG,EAAI,EAAGA,EAAI,KAAMA,EACxBg/J,EAAIlvD,EAAS9vG,GAAKmhT,EAAMnhT,GAG1B,OAAOg/J,CACT,CAEA,OAAO,EAAG2iJ,EAA2C,YAAYR,EACnE,CAGA,IACEY,EAAa55S,KAAOA,CACtB,CAAE,MAAO4iK,GAAM,CAKf,OAFAg3I,EAAaL,IAAMA,EACnBK,EAAa13S,IAAMA,EACZ03S,CACT,CAEO,EAED;;;uDAIA,CAAE5lT,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC,QAAW,IAAM,IAEnB,IAAIklT,EAAuC,iBAAoC,gDAC3EC,EAAwC,kBAAqC,iDAGlGC,GAAK,EAAGF,EAAqC,YAAY,KAAM,GAAMC,EAAsC,YAClF,MAAMlB,EAA6B,CAEzD,EAED;;;6DAIA,CAAE7kT,EAAyB,EAAqB,KAEtD,EAAoB8B,EAAE,GACD,EAAoBlB,EAAE,EAAqB,CACzC,QAAW,IAAM,IAEnB,IAAIqlT,EAAyC,mBAAsC,kDAGxG,SAASC,EAASvB,GAChB,MAAuB,kBAATA,GAAqBsB,EAAuC,WAAWv6S,KAAKi5S,EAC5F,CAE6B,MAAME,EAA6B,CAEzD,GAKOrkT,yBAA2B,CAAC,EAGhC,SAAS,mCAAoBC,GAE5B,IAAIC,EAAeF,yBAAyBC,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaf,QAGrB,IAAID,EAASc,yBAAyBC,GAAY,CAGjDd,QAAS,CAAC,GAOX,OAHAI,oBAAoBU,GAAUf,EAAQA,EAAOC,QAAS,oCAG/CD,EAAOC,OACf,CAIA,MAEC,mCAAoBmE,EAAKpE,IACxB,IAAIymT,EAASzmT,GAAUA,EAAO0mT,WAC7B,IAAO1mT,EAAO,WACd,IAAM,EAEP,OADA,mCAAoBkB,EAAEulT,EAAQ,CAAEv4S,EAAGu4S,IAC5BA,CAAM,CAEd,EATD,GAYA,MAEC,mCAAoBvlT,EAAI,CAACjB,EAASkB,KACjC,IAAI,IAAIP,KAAOO,EACX,mCAAoBC,EAAED,EAAYP,KAAS,mCAAoBQ,EAAEnB,EAASW,IAC5ES,OAAOC,eAAerB,EAASW,EAAK,CAAEW,YAAY,EAAMC,IAAKL,EAAWP,IAE1E,CAED,EATD,GAYA,MACC,mCAAoBQ,EAAI,CAACW,EAAKC,IAAUX,OAAOY,UAAUC,eAAeC,KAAKJ,EAAKC,EAClF,EAFD,GAKA,MAEC,mCAAoBI,EAAKnC,IACH,qBAAXoC,QAA0BA,OAAOC,aAC1CjB,OAAOC,eAAerB,EAASoC,OAAOC,YAAa,CAAEC,MAAO,WAE7DlB,OAAOC,eAAerB,EAAS,aAAc,CAAEsC,OAAO,GAAO,CAE9D,EARD,GAWV,IAAI,2BAAsB,CAAC,EA0tBjB,MAxtBV;;;;AAIA,mCAAoBH,EAAE,4BACD,mCAAoBlB,EAAE,2BAAqB,CACzCsjD,IAAK,IAA2BmiQ,EAA0D,IAC1FliQ,KAAM,IAA2BkiQ,EAA2D,KAC5Fh+P,KAAM,IAA2Bi+P,EAAkE,KACnGt8E,UAAW,IAA2Bu8E,GAAoD,UAC1FlnS,SAAU,IAA2BmnS,GAAoE,SACzGlnS,SAAU,IAA2BmnS,GAAwD,SAC7FlxQ,WAAY,IAA2BmxQ,GAAuD,WAC9FzuF,yBAA0B,IAA2B0uF,GAA4E,yBACjIzuF,iBAAkB,IAA2ByuF,GAAoE,iBACjHvpQ,UAAW,IAA2BwpQ,EAAqD,UAC3FvpQ,WAAY,IAA2BupQ,EAAsD,WAC7Ft7D,aAAc,IAA2Bu7D,GAA6D,aACtGt7D,UAAW,IAA2Bs7D,GAA0D,UAChGtnS,SAAU,IAA2BunS,GAAmD,SACxFppK,aAAc,IAA2BqpK,GAAsE,aAC/GzkJ,OAAQ,IAA2B0kJ,GAAyD,OAC5Fx7D,cAAe,IAA2Bq7D,GAA8D,cACxGt5N,WAAY,IAA2B05N,EAAwD,WAC/FjqG,WAAY,IAA2BkqG,GAAoD,WAC3FtgQ,IAAK,IAA2BpJ,EAAwE,IACxGmS,SAAU,IAA2Bw3P,EAAyD,SAC9FtzP,4BAA6B,IAA2BuzP,EAA2F,4BACnJtzP,sBAAuB,IAA2BszP,EAAqF,sBACvIjnP,OAAQ,IAA2BknP,EAAqD,OACxFz8O,SAAU,IAA2B08O,EAA0D,SAC/F5nP,WAAY,IAA2B6nP,EAA8D,WACrGjmP,UAAW,IAA2BkmP,EAA4D,UAClG/nP,QAAS,IAA2BgoP,EAAwD,QAC5FloP,WAAY,IAA2BmoP,EAA6D,WACpGrnQ,QAAS,IAA2BsnQ,EAAwD,QAC5F9xO,aAAc,IAA2B+xO,EAAmE,aAC5GzxO,qBAAsB,IAA2B0xO,EAAoF,qBACrIxwO,cAAe,IAA2BywO,EAAqE,cAC/GjoP,WAAY,IAA2BkoP,EAA8D,WACrGnnQ,YAAa,IAA2BonQ,EAA+D,YACvGjoQ,YAAa,IAA2BkoQ,EAAgE,YACxGjnQ,mBAAoB,IAA2BknQ,EAA+E,mBAC9H5pQ,0BAA2B,IAA2B4pQ,EAAsF,0BAC5IhpO,gBAAiB,IAA2BipO,EAAyE,gBACrHhpO,uBAAwB,IAA2BgpO,EAAgF,uBACnIxnO,eAAgB,IAA2BynO,EAAuE,eAClHxnO,sBAAuB,IAA2BwnO,EAA8E,sBAChItoP,SAAU,IAA2BuoP,EAA0D,SAC/FzmO,cAAe,IAA2B0mO,EAAoE,cAC9GxkQ,kBAAmB,IAA2BykQ,EAA8E,kBAC5H5lO,yBAA0B,IAA2B4lO,EAAqF,yBAC1I5oP,UAAW,IAA2B6oP,EAA4D,UAClGxjO,qBAAsB,IAA2ByjO,EAA6E,qBAC9HxjO,eAAgB,IAA2BwjO,EAAuE,eAClH7sO,YAAa,IAA2B8sO,EAAgE,YACxGliO,qBAAsB,IAA2BmiO,EAAmF,qBACpInhQ,OAAQ,IAA2BohQ,EAAqD,OACxF1tO,8BAA+B,IAA2B+sO,EAAkF,8BAC5IroP,UAAW,IAA2BipP,EAA4D,UAClGrpP,SAAU,IAA2BspP,EAA0D,SAC/F3hQ,IAAK,IAA2B3J,EAAwE,IACxGsD,GAAI,IAA2BtD,EAAuE,GACtGqO,KAAM,IAA2BsiL,EAAoD,KACrF9/I,iBAAkB,IAA2B06N,GAAoE,iBACjH79J,wBAAyB,IAA2B89J,GAAmF,wBACvIxzQ,OAAQ,IAA2BkxQ,GAAmD,OACtFlnS,eAAgB,IAA2BypS,GAAsD,eACjG9wF,0BAA2B,IAA2BwuF,GAA6E,0BACnIltQ,MAAO,IAA2ByvQ,EAA6C,MAC/EvwJ,kBAAmB,IAA2BwwJ,GAA8E,kBAC5H59G,UAAW,IAA2Bi7G,GAAqE,UAC3GtmI,YAAa,IAA2BkpI,GAAqE,YAC7GlwQ,OAAQ,IAA2BgwQ,EAA8C,OACjF51N,oBAAqB,IAA2B+1N,GAA0E,oBAC1HvyN,eAAgB,IAA2BwyN,GAA+D,eAC1GjvI,iBAAkB,IAA2BkvI,GAA+E,iBAC5HzjN,WAAY,IAA2B0jN,EAAqD,WAC5F3vQ,YAAa,IAA2B4vQ,GAAyD,YACjGj+G,iBAAkB,IAA2Bg7G,GAA4E,iBACzH5yL,SAAU,IAA2B81L,EAAgE,SACrG7oI,OAAQ,IAA2B8oI,EAA6C,OAChF/8H,QAAS,IAA2B+8H,EAA8C,QAClF79P,YAAa,IAA2BqiL,EAA2D,YACnG3rL,GAAI,IAA2B2rL,EAAkD,GACjFh/K,IAAK,IAA2By6P,EAA8D,IAC9F/1L,SAAU,IAA2B61L,EAAgE,SACrGhqS,UAAW,IAA2BmqS,GAAgE,UACtGtkI,cAAe,IAA2BukI,GAAuE,cACjH1uQ,MAAO,IAA2BsuQ,EAA6D,MAC/F7jI,OAAQ,IAA2BkkI,GAA0D,OAC7F3oC,aAAc,IAA2BuoC,EAAmD,aAC5Fl+I,YAAa,IAA2Bg7I,GAA2D,YACnG1gN,gBAAiB,IAA2ByjN,EAA0D,gBACtG5pQ,IAAK,IAA2BoqQ,EAA0D,IAC1F/uP,GAAI,IAA2B+uP,EAAyD,GACxF9uP,IAAK,IAA2B8uP,EAA0D,IAC1F7uP,IAAK,IAA2B6uP,EAA0D,IAC1F9mP,IAAK,IAA2B+mP,EAAgE,IAChG7rQ,IAAK,IAA2B4rQ,EAA0D,IAC1Fj0P,IAAK,IAA2Bm0P,EAAwE,IACxGjvH,gBAAiB,IAA2BkvH,GAA+D,gBAC3G7uL,cAAe,IAA2B8uL,EAAgE,cAC1G3vM,oBAAqB,IAA2B4vM,GAA0E,oBAC1H1qS,SAAU,IAA2B8mS,GAAwD,SAC7FjoM,SAAU,IAA2B8rM,GAAoD,SACzFjhE,YAAa,IAA2BkhE,GAAiE,YACzGjhE,UAAW,IAA2BihE,GAA+D,UACrG7yJ,UAAW,IAA2B8yJ,GAA6D,UACnG1rJ,YAAa,IAA2B+qJ,GAAkE,YAC1GpmJ,cAAe,IAA2BgnJ,GAAsE,cAChHjrM,eAAgB,IAA2BkrM,GAAgE,eAC3GnvL,WAAY,IAA2B6uL,EAA6D,WACpG3+D,gBAAiB,IAA2Bo7D,GAAgE,gBAC5GpmM,OAAQ,IAA2BkqM,GAAgD,OACnF9hM,cAAe,IAA2B+hM,GAA+D,cACzGvyB,qBAAsB,IAA2BwyB,GAA4D,qBAC7GjrS,YAAa,IAA2B+qS,GAAqD,YAC7F9qS,kBAAmB,IAA2B8qS,GAA2D,kBACzG7qS,WAAY,IAA2B6qS,GAAoD,WAC3FrkM,SAAU,IAA2BwkM,GAAoD,SACzF33B,WAAY,IAA2B43B,GAAsE,WAC7Gh8I,YAAa,IAA2Bi8I,GAAmE,YAC3GxlI,YAAa,IAA2BskI,GAAqE,YAC7G56L,KAAM,IAA2B+7L,GAA2C,KAC5EC,IAAK,IAAM,GACXjqQ,GAAI,IAA2BkqQ,EAA6D,GAC5FnmP,IAAK,IAA2BmmP,EAA8D,IAC9FjtQ,KAAM,IAA2BitQ,EAA+D,KAChG3sK,OAAQ,IAA2B4sK,GAA6C,OAChFnhF,WAAY,IAA2Bs8E,GAAqD,WAC5Fr8E,UAAW,IAA2Bq8E,GAAoD,UAC1F9gI,kBAAmB,IAA2BqkI,GAA2E,kBACzHplJ,sBAAuB,IAA2B2mJ,GAAwF,sBAC1I1mJ,UAAW,IAA2B2mJ,GAA8D,UACpG/xK,MAAO,IAA2BgyK,GAA6C,MAC/Ev8I,mBAAoB,IAA2Bg8I,GAA0E,mBACzH7kI,MAAO,IAA2BqlI,GAAwD,MAC1Fn+Q,KAAM,IAA2Bs8Q,EAA2C,KAC5El6L,cAAe,IAA2Bg8L,GAA8D,cACxGlpK,YAAa,IAA2BmpK,GAA0D,YAClGz7L,aAAc,IAA2B07L,GAA4D,aACrGjhK,eAAgB,IAA2BkhK,GAAiE,eAC5GviJ,UAAW,IAA2BwiJ,GAAgE,UACtG9sJ,sBAAuB,IAA2B8qJ,GAA4E,sBAC9H/4L,MAAO,IAA2Bg7L,GAA6C,MAC/Ez/O,IAAK,IAA2B0/O,EAAoE,IACpGh+O,KAAM,IAA2Bi+O,EAA4D,KAC7Fl0J,OAAQ,IAA2Bm0J,GAAmD,OACtF7hJ,SAAU,IAA2B8hJ,GAA4D,SACjGn0J,UAAW,IAA2Bk0J,GAAsD,UAC5FrjM,WAAY,IAA2BqjM,GAAuD,WAC9Fj0J,qBAAsB,IAA2Bi0J,GAAiE,qBAClHh0J,cAAe,IAA2Bg0J,GAA0D,cACpG/zJ,UAAW,IAA2B+zJ,GAAsD,UAC5F9zJ,WAAY,IAA2B8zJ,GAAuD,WAC9FlqR,cAAe,IAA2BoqR,GAAsE,cAChHpsS,aAAc,IAA2B+mS,GAAuD,aAChGtrL,YAAa,IAA2B4uL,EAA8D,YACtG3uL,aAAc,IAA2B2uL,EAA+D,aACxGnlM,SAAU,IAA2B6hM,GAAmD,SACxF77F,oBAAqB,IAA2BmhG,GAAqE,oBACrH96L,YAAa,IAA2B+6L,EAAiE,YACzG/9N,kBAAmB,IAA2By6N,GAAqE,kBACnHrtL,wBAAyB,IAA2B0uL,EAA0E,wBAC9HhyJ,aAAc,IAA2Bk0J,GAA4D,aACrGrvG,kBAAmB,IAA2BiqG,GAA2D,kBACzG7lC,KAAM,IAA2BsoC,EAA2C,KAC5EzpH,cAAe,IAA2B8oH,GAAyE,cACnH7oH,YAAa,IAA2B6oH,GAAuE,YAC/Gv0I,SAAU,IAA2Bk1I,EAA+C,SACpF9/E,YAAa,IAA2B0iF,GAA0D,YAClGvnJ,MAAO,IAA2ByhJ,GAAqD,MACvFltI,UAAW,IAA2BizI,GAA4D,UAClG/tR,aAAc,IAA2BusR,GAAoE,aAC7G/7I,SAAU,IAA2B+7I,GAAgE,SACrGhpI,QAAS,IAA2ByqI,GAA0D,QAC9FxqI,gBAAiB,IAA2BwqI,GAAkE,gBAC9GvqI,gBAAiB,IAA2BuqI,GAAkE,gBAC9G51Q,SAAU,IAA2B6yQ,EAAgE,SACrGpyL,sBAAuB,IAA2B8yL,EAAwE,sBAC1HrzN,UAAW,IAA2BuyN,GAA0D,UAChGtyN,QAAS,IAA2BsyN,GAAwD,QAC5FtjN,aAAc,IAA2BwjN,EAAuD,aAChG99D,UAAW,IAA2Bm7D,GAA0D,UAChG5xO,KAAM,IAA2By3O,EAA0E,KAC3Gt2O,KAAM,IAA2ByxO,EAAoE,KACrGp8G,YAAa,IAA2B+6G,GAAuE,YAC/GxmS,aAAc,IAA2BwmS,GAAwE,aACjH7kD,WAAY,IAA2BgrD,GAA+D,WACtGvmI,SAAU,IAA2BolI,GAA2D,SAChGvlN,SAAU,IAA2BujN,EAAmD,SACxFtjN,SAAU,IAA2BsjN,EAAmD,SACxFn5J,aAAc,IAA2Bu8J,GAA4D,aACrGvmI,KAAM,IAA2BmlI,GAAuD,KACxF7vL,YAAa,IAA2ByuL,EAA8D,YACtGxuL,eAAgB,IAA2BwuL,EAAiE,eAC5Gl3O,iBAAkB,IAA2By0O,EAAiE,iBAC9Gx0O,iBAAkB,IAA2Bw0O,EAAiE,iBAC9Gp7L,MAAO,IAA2Bo9L,EAA4C,MAC9EpwO,IAAK,IAA2ByuO,EAAuD,IACvFl9I,SAAU,IAA2B0gJ,GAA2D,SAChG5mJ,cAAe,IAA2B4mJ,GAAgE,cAC1GllI,gBAAiB,IAA2BklI,GAAkE,gBAC9GjlI,WAAY,IAA2BilI,GAA6D,WACpGvyI,MAAO,IAA2BkxI,GAAqD,MACvFtlJ,WAAY,IAA2BgoJ,GAAgE,WACvGnwH,aAAc,IAA2BmwH,GAAkE,aAC3G/4L,cAAe,IAA2B41L,EAAqE,cAC/GzyL,gBAAiB,IAA2BmzL,EAAkE,gBAC9Gz+D,QAAS,IAA2Bk7D,GAAwD,QAC5Fj7D,cAAe,IAA2Bi7D,GAA8D,cACxGljD,YAAa,IAA2BmpD,GAAgE,YACxG56C,kBAAmB,IAA2By3C,EAAwD,kBACtGhlR,MAAO,IAA2BskR,GAA6C,MAC/E9iN,OAAQ,IAA2BqjN,EAAiD,OACpFlqK,QAAS,IAA2B4nK,GAAiD,QACrF12J,SAAU,IAA2Bu8J,GAAoD,SACzF9sS,UAAW,IAA2BumS,GAAqE,UAC3GtlO,kBAAmB,IAA2BmnO,EAAmE,kBACjHlnO,kBAAmB,IAA2BknO,EAAmE,kBACjHzxQ,UAAW,IAA2B8yQ,EAAiE,UACvGxpS,gBAAiB,IAA2BwpS,EAAuE,gBACnHzyN,UAAW,IAA2BqyN,GAA0D,UAChGz+F,SAAU,IAA2BmiG,GAAmD,SACxFv3Q,KAAM,IAA2BixQ,GAAiD,KAClFhxQ,SAAU,IAA2BgxQ,GAAqD,SAC1FplC,iBAAkB,IAA2BqoC,EAAuD,iBACpG33C,YAAa,IAA2B23C,EAAkD,YAC1FvjN,gBAAiB,IAA2BojN,EAA0D,gBACtGnjN,wBAAyB,IAA2BmjN,EAAkE,wBACtHljN,uBAAwB,IAA2BkjN,EAAiE,uBACpHjjN,8BAA+B,IAA2BijN,EAAwE,8BAClI93L,0CAA2C,IAA2B26L,EAA+F,0CACrK16L,mCAAoC,IAA2B06L,EAAwF,mCACvJ7lN,yBAA0B,IAA2BgjN,EAAmE,yBACxH/iN,gBAAiB,IAA2B+iN,EAA0D,gBACtG33L,qBAAsB,IAA2Bw6L,EAA0E,qBAC3Hx/G,WAAY,IAA2BogH,GAA6D,WACpG9sS,eAAgB,IAA2B2mS,GAAyD,eACpG7zI,QAAS,IAA2B+1I,GAAmE,QACvG5oS,QAAS,IAA2BomS,GAAmE,QACvGx4L,UAAW,IAA2B27L,EAAgD,UACtFnqI,eAAgB,IAA2B0tI,GAAwE,eACnHxnI,oBAAqB,IAA2BokI,GAA6E,oBAC7HxpS,oBAAqB,IAA2B4sS,GAA6E,oBAC7H7sS,gBAAiB,IAA2B2qS,GAAuE,gBACnH9/F,cAAe,IAA2BkhG,GAA+D,cACzG/uM,eAAgB,IAA2B8vM,GAAgE,eAC3G7vQ,eAAgB,IAA2BspQ,EAA0D,eACrG5nJ,YAAa,IAA2B6qJ,GAAkE,YAC1G5qJ,SAAU,IAA2B4qJ,GAA+D,SACpG3qJ,SAAU,IAA2B2qJ,GAA+D,SACpG1qJ,SAAU,IAA2B0qJ,GAA+D,SACpGzqJ,UAAW,IAA2ByqJ,GAAgE,UACtGtpS,WAAY,IAA2BmqS,GAA4D,WACnGtyF,gBAAiB,IAA2BuuF,GAAmE,gBAC/G/+C,WAAY,IAA2B+hD,EAAiD,WACxF7yD,UAAW,IAA2Bs2D,GAA4D,UAClGr2D,gBAAiB,IAA2Bq2D,GAAkE,gBAC9G/sF,iBAAkB,IAA2BgtF,GAA2D,iBACxGpzN,SAAU,IAA2BozN,GAAmD,SACxFxhE,aAAc,IAA2Bg7D,GAA6D,aACtGhrL,kBAAmB,IAA2BuuL,EAAoE,kBAClHt+D,UAAW,IAA2B+6D,GAA0D,UAChG/0L,iBAAkB,IAA2Bu6L,EAAsE,iBACnHrsI,YAAa,IAA2BstI,GAAoE,YAC5G3vN,eAAgB,IAA2B+rN,EAAsE,eACjHpzL,iBAAkB,IAA2B8zL,EAAmE,iBAChH/zL,mBAAoB,IAA2B+zL,EAAqE,mBACpH75J,aAAc,IAA2Bg9J,GAA6D,aACtGr+I,YAAa,IAA2B87I,GAAmE,YAC3G3yF,sBAAuB,IAA2BsuF,GAAyE,sBAC3HnmS,mBAAoB,IAA2BuoS,GAAsE,mBACrHpmD,YAAa,IAA2BmqD,GAAgE,YACxGnuR,oBAAqB,IAA2B6uR,GAA2E,oBAC3H9mN,WAAY,IAA2B8iN,EAAqD,WAC5F1mR,iBAAkB,IAA2BkmR,GAA4E,iBACzHltL,aAAc,IAA2BsuL,EAA+D,aACxGrtK,KAAM,IAA2BquK,GAA2C,KAC5E/zB,UAAW,IAA2Bo2B,GAAoD,UAC1FntF,qBAAsB,IAA2B+sF,GAA+D,qBAChHlrH,MAAO,IAA2BurH,GAAqD,MACvF1+B,MAAO,IAA2Bu6B,GAAoE,MACtG74J,YAAa,IAA2B67J,GAA0D,YAClGhwQ,YAAa,IAA2BoxQ,EAAkE,YAC1GpzN,OAAQ,IAA2BgsN,GAAiD,OACpFvsN,YAAa,IAA2BusN,GAAsD,YAC9FztD,gBAAiB,IAA2B80D,GAAmE,gBAC/GpjF,WAAY,IAA2BojF,GAA8D,WACrG7hE,YAAa,IAA2B86D,GAA4D,YACpG9qL,WAAY,IAA2BquL,EAA6D,WACpG1vL,QAAS,IAA2BmzL,EAA0D,QAC9F/kM,cAAe,IAA2B8hM,GAA+D,cACzG3vM,KAAM,IAA2B6yM,GAA2C,KAC5Ej8Q,UAAW,IAA2Bk8Q,GAAsD,UAC5F/xL,WAAY,IAA2BouL,EAA6D,WACpGthD,SAAU,IAA2BgkD,GAA6D,SAClGphH,gBAAiB,IAA2B86G,GAA2E,gBACvHzyL,qBAAsB,IAA2B21L,EAA4E,qBAC7H1uL,4BAA6B,IAA2BovL,EAA8E,4BACtIp2L,sBAAuB,IAA2B01L,EAA6E,sBAC/Hp5J,UAAW,IAA2B09J,GAAsD,UAC5FzzI,kBAAmB,IAA2BgvI,GAAgF,kBAC9HnuI,mBAAoB,IAA2BmuI,GAAiF,mBAChInkM,KAAM,IAA2B6oM,GAA4C,KAC7Et0D,aAAc,IAA2Bu0D,GAAmE,aAC5GvhD,SAAU,IAA2BmgD,GAA6D,SAClG/qD,YAAa,IAA2BosD,GAA8D,YACtGlrD,WAAY,IAA2B6pD,GAA+D,WACtGttR,WAAY,IAA2BmtR,GAA+D,WACtGhvD,SAAU,IAA2B6uD,GAA2D,SAChGzpD,aAAc,IAA2B+pD,GAAiE,aAC1Gz1C,eAAgB,IAA2Bm1C,GAAiE,eAC5G11Q,gBAAiB,IAA2B4yQ,EAAuE,gBACnH3yQ,aAAc,IAA2B2yQ,EAAoE,aAC7GzuN,WAAY,IAA2BmzN,EAAwD,WAC/FjvC,eAAgB,IAA2BivC,EAA4D,eACvG1mK,QAAS,IAA2B2mK,GAAkD,QACtFvmD,KAAM,IAA2BwmD,GAAkD,KACnFnzC,SAAU,IAA2BmzC,GAAsD,SAC3FlzC,yBAA0B,IAA2BkzC,GAAsE,yBAC3HvmD,wBAAyB,IAA2BumD,GAAqE,wBACzHjmD,mBAAoB,IAA2BmkD,GAAqE,mBACpH5yD,UAAW,IAA2Bs0D,GAAgE,UACtGnqQ,KAAM,IAA2BqX,EAA8C,KAC/ExL,IAAK,IAA2Bu3P,EAAoD,IACpFjmN,SAAU,IAA2BsoN,EAAmD,SACxFnvQ,SAAU,IAA2BmvQ,EAAmD,SACxF7iN,SAAU,IAA2B6iN,EAAmD,SACxFv3L,iBAAkB,IAA2Bo6L,EAAsE,iBACnHv4B,gBAAiB,IAA2By6B,GAAoE,gBAChH74C,uBAAwB,IAA2B84C,GAAoE,uBACvH93B,SAAU,IAA2B+3B,GAAqD,SAC1F3hH,SAAU,IAA2BmgH,GAA2D,SAChGlgH,MAAO,IAA2BkgH,GAAwD,MAC1FphK,QAAS,IAA2BohK,GAA0D,QAC9FnoJ,aAAc,IAA2B4pJ,GAAqE,aAC9GpwR,WAAY,IAA2BqwR,GAAyD,WAChGpxR,kBAAmB,IAA2BoxR,GAAgE,kBAC9Gz1B,gBAAiB,IAA2By1B,GAA8D,gBAC1GzzJ,SAAU,IAA2B0zJ,GAA2D,SAChGlzN,QAAS,IAA2B+xN,GAAkD,QACtFpsR,KAAM,IAA2BwpR,GAA4C,KAC7EzgE,cAAe,IAA2B2gE,GAAyE,cACnHvoK,IAAK,IAA2BkpK,GAAkD,IAClFh4F,mBAAoB,IAA2Bm7F,EAAmE,mBAClHj7F,kBAAmB,IAA2Bi7F,EAAkE,kBAChH5yQ,GAAI,IAA2B8P,EAAsC,KAEvE,IAAIA,EAAsC,iDAAmC,eACzEqP,EAA4C,uDAAyC,qBACrF+yK,EAAkD,6DAA+C,2BACjG3wL,EAAuE,kFAAoE,gDAC3I8oQ,EAAgE,2EAA6D,yCAC7Ha,EAAmD,8DAAgD,4BACnGE,EAAiD,4DAA8C,0BAC/FW,EAAsD,iEAAmD,+BACzGY,EAAiD,4DAA8C,0BAC/FlB,EAAqD,gEAAkD,8BACvGoB,EAAoD,8DAAgD,4BACpGrB,EAAmD,6DAA+C,2BAClGF,EAAsD,gEAAkD,8BACxGiB,EAAqD,+DAAiD,6BACtGK,EAAqD,+DAAiD,6BACtGd,EAAsD,gEAAkD,8BACxGM,EAAoD,8DAAgD,4BACpGb,EAAqD,+DAAiD,6BACtGnB,EAAyD,mEAAqD,iCAC9GuD,EAA6D,uEAAyD,qCACtHxC,EAAkE,4EAA8D,0CAChI8C,EAAuE,iFAAmE,+CAC1IF,EAAyD,mEAAqD,iCAC9GC,EAA+D,yEAA2D,uCAC1HkB,EAA6D,uEAAyD,qCACtH7D,EAAoD,8DAAgD,4BACpGyE,EAAmE,6EAA+D,2CAClIC,EAA0D,oEAAsD,kCAChHrE,EAAmD,6DAA+C,2BAClG+E,EAAwE,kFAAoE,gDAC5I9E,EAAyD,mEAAqD,iCAC9GC,EAAkE,4EAA8D,0CAChIC,EAA0D,oEAAsD,kCAChHG,EAAuD,iEAAmD,+BAC1GS,EAAuD,iEAAmD,+BAC1GR,EAA+D,yEAA2D,uCAC1HC,EAA4D,sEAAwD,oCACpHC,EAA2D,qEAAuD,mCAClHE,EAAyD,mEAAqD,iCAC9GC,EAA+D,yEAA2D,uCAC1HE,EAA2D,qEAAuD,mCAClHE,EAAiE,2EAA6D,yCAC9H1B,EAAgD,0DAA4C,wBAC5FiC,EAA0C,oDAAsC,kBAChFkF,EAAgD,0DAA4C,wBAC5F5E,EAA6C,uDAAyC,qBACtFG,EAAyC,mDAAqC,iBAC9E/C,EAA8C,wDAA0C,sBACxFyF,EAAwD,kEAAoD,gCAC5GwB,EAAqD,+DAAiD,6BACtGF,EAAyD,mEAAqD,iCAC9GvD,EAAqD,+DAAiD,6BACtGV,EAA0D,oEAAsD,kCAChHmF,EAAmD,6DAA+C,2BAClG7H,GAAqD,+DAAiD,6BACtGuC,GAAiE,2EAA6D,yCAC9HxC,GAA4D,sEAAwD,oCACpHuG,GAA2D,qEAAuD,mCAClHvC,GAA8D,wEAA0D,sCACxHtB,GAAgD,0DAA4C,wBAC5Fa,GAA8C,wDAA0C,sBACxFmB,GAAmD,6DAA+C,2BAClGE,GAAkD,4DAA8C,0BAChGG,GAA0C,oDAAsC,kBAChFb,GAAyC,mDAAqC,iBAC9EgB,GAA+C,yDAA2C,uBAC1FvF,GAA+C,yDAA2C,uBAC1FqC,GAAsD,gEAAkD,8BACxGM,GAAyD,mEAAqD,iCAC9GqB,GAAoD,8DAAgD,4BACpGU,GAAyC,mDAAqC,iBAC9EiD,GAA6C,uDAAyC,qBACtFZ,GAA6C,uDAAyC,qBACtFtE,GAA+D,yEAA2D,uCAC1HyF,GAAqD,+DAAiD,6BACtGpE,GAAsD,gEAAkD,8BACxGX,GAAyD,mEAAqD,iCAC9GY,GAA2D,qEAAuD,mCAClHqD,GAAyC,mDAAqC,iBAC9EC,GAA+C,yDAA2C,uBAC1FZ,GAAoD,8DAAgD,4BACpG9C,GAAyD,mEAAqD,iCAC9GqB,GAAiD,2DAA6C,yBAC9FkB,GAAkD,4DAA8C,0BAChGG,GAA8C,wDAA0C,sBACxFR,GAAiD,2DAA6C,yBAC9FgB,GAAmD,6DAA+C,2BAClGS,GAA+C,yDAA2C,uBAC1FlH,GAA6C,uDAAyC,qBACtFuG,GAA6C,uDAAyC,qBACtFO,GAAsD,gEAAkD,8BACxGrH,GAA6C,uDAAyC,qBACtF+C,GAAmD,6DAA+C,2BAClGkE,GAA0D,oEAAsD,kCAChHtG,GAA4C,sDAAwC,oBACpF+B,GAA0C,oDAAsC,kBAChF6B,GAA8C,wDAA0C,sBACxFS,GAA0C,oDAAsC,kBAChFe,GAAkD,4DAA8C,0BAChGU,GAA6C,uDAAyC,qBACtFiB,GAA0C,mDAAqC,iBAC/EM,GAAuD,gEAAkD,8BACzGC,GAAgD,yDAA2C,uBAC3FC,GAA+C,wDAA0C,sBACzFrF,GAA4D,qEAAuD,mCACnHW,GAAsD,+DAAiD,6BACvG8B,GAAyD,kEAAoD,gCAC7GpF,GAAkD,2DAA6C,yBAC/FgG,GAAqD,8DAAgD,4BACrGpB,GAAqE,8EAAgE,4CACrIC,GAAuD,gEAAkD,8BACzGa,GAA2D,oEAAsD,kCACjHX,GAAqD,8DAAgD,4BACrGrB,GAAkD,2DAA6C,yBAC/F+C,GAA4D,qEAAuD,mCACnHL,GAAwD,iEAAmD,+BAC3Ga,GAAkD,2DAA6C,yBAC/FT,GAAqD,8DAAgD,4BACrG1C,GAAwD,iEAAmD,+BAC3G1D,GAAmD,4DAA8C,0BACjGuG,GAAqD,8DAAgD,4BACrGZ,GAAqD,8DAAgD,4BACrG8B,GAAgD,yDAA2C,uBAC3FxB,GAAuD,gEAAkD,8BACzGH,GAAuD,gEAAkD,8BACzGT,GAAsD,+DAAiD,6BACvG1F,GAA8D,uEAAyD,qCACvHwC,GAA8D,uEAAyD,qCACvH0F,GAA2D,oEAAsD,kCACjH1D,GAA0D,mEAAqD,iCAE/GlB,IADqD,8DAAgD,4BACzC,qEAAuD,oCACnHoE,GAAyD,kEAAoD,gCAC7GC,GAAqD,8DAAgD,4BACrGxD,GAA4C,qDAAuC,mBACnFC,GAAoD,6DAA+C,2BACnGgB,GAAqD,8DAAgD,4BACrGQ,GAAoD,6DAA+C,2BACnGzF,GAAsD,+DAAiD,6BACvGgI,GAAiD,0DAA4C,wBAC7F9D,GAA0C,mDAAqC,iBAC/EiE,GAAgD,yDAA2C,uBAC3FC,GAAkD,2DAA6C,yBA6MxH,SAAS7D,KAAQ,EAEjB,EAAG4D,GAA8Cv1Q,cAAc,MAAO,CAAC2xQ,GAAK,KAAM,OAclFyD,GAA+CrwR,WAAW0wR,YAAc,IAAIrE,GAA0ClqM,OACtHkuM,GAA+CrwR,WAAWC,UAAY,IAAIowR,GAA+CrwR,WACzHqwR,GAA+CrwR,WAAWC,UAAU+E,cAAgB,IAAI8oR,GAAkDlhG,eAC1I,EAAG6jG,GAAgDzpN,sBAAsBqpN,GAA+CrwR,WAAWC,YACnI,EAAGswR,EAAiDx7F,yBAAyBs7F,GAA+CrwR,WAAWC,UAAU+E,eAEjJkqR,GAAwD7uR,oBAAoB6wM,SAAWzjL,EAAoC9P,GAAGp0C,MAC9H2lT,GAAwD7uR,oBAAoBywM,KAAOrjL,EAAoC9P,GAAGp0C,MAC1H2lT,GAAwD7uR,oBAAoBuwM,KAAOs+E,GAAwD7uR,oBAAoBqwM,cAC/Jw+E,GAAwD7uR,oBAAoBmwM,cAE5Ew9E,GAAgDl0J,aAAaM,SAAW3sG,EAAoC9P,GAAGyG,SAAS8qQ,GAAwD7uR,oBAAoBwgH,YAAYpzF,EAAoC9P,GAAGp0C,OAEtP,EAttBD,GAwtBiB,0BACP,EAnnoEM,I,gCCFLwX,EAQAC,EAaAC,EAYAC,EAuCAC,EAMAC,EASAC,EAOAC,EAaAC,EAMAC,EAOAC,EASAC,EAKAC,EASAC,EAQAC,EAWAC,EAKAC,EAwBAC,EAOAC,EAQAC,E,yEA7MX,SAAWnB,GACPA,EAASA,EAAS,SAAW,GAAK,QAClCA,EAASA,EAAS,YAAc,GAAK,WACrCA,EAASA,EAAS,YAAc,GAAK,WACrCA,EAASA,EAAS,YAAc,GAAK,WACrCA,EAASA,EAAS,WAAa,GAAK,SACvC,EAND,CAMGA,IAAaA,EAAW,CAAC,IAE5B,SAAWC,GACPA,EAASA,EAAS,UAAY,GAAK,SACnCA,EAASA,EAAS,QAAU,GAAK,OACjCA,EAASA,EAAS,UAAY,GAAK,SACnCA,EAASA,EAAS,SAAW,GAAK,QAClCA,EAASA,EAAS,cAAgB,GAAK,aACvCA,EAASA,EAAS,qBAAuB,GAAK,oBAC9CA,EAASA,EAAS,cAAgB,GAAK,aACvCA,EAASA,EAAS,WAAa,GAAK,UACpCA,EAASA,EAAS,eAAiB,GAAK,cACxCA,EAASA,EAAS,UAAY,IAAM,QACvC,CAXD,CAWGA,IAAaA,EAAW,CAAC,IAE5B,SAAWC,GACPA,EAASA,EAAS,SAAW,GAAK,QAClCA,EAASA,EAAS,QAAU,GAAK,OACjCA,EAASA,EAAS,eAAiB,GAAK,cACxCA,EAASA,EAAS,WAAa,GAAK,UACpCA,EAASA,EAAS,iBAAmB,GAAK,gBAC1CA,EAASA,EAAS,MAAQ,GAAK,KAC/BA,EAASA,EAAS,aAAe,GAAK,YACtCA,EAASA,EAAS,SAAW,GAAK,QAClCA,EAASA,EAAS,gBAAkB,GAAK,cAC5C,CAVD,CAUGA,IAAaA,EAAW,CAAC,IAE5B,SAAWC,GACPA,EAAeA,EAAe,QAAU,GAAK,OAC7CA,EAAeA,EAAe,aAAe,GAAK,YAClDA,EAAeA,EAAe,aAAe,GAAK,YAClDA,EAAeA,EAAe,eAAiB,GAAK,cACpDA,EAAeA,EAAe,cAAgB,IAAM,aACpDA,EAAeA,EAAe,iBAAmB,IAAM,gBACvDA,EAAeA,EAAe,YAAc,IAAM,WAClDA,EAAeA,EAAe,iBAAmB,KAAO,gBACxDA,EAAeA,EAAe,eAAiB,KAAO,cACtDA,EAAeA,EAAe,mBAAqB,KAAO,kBAC1DA,EAAeA,EAAe,mBAAqB,MAAQ,kBAC3DA,EAAeA,EAAe,UAAY,MAAQ,SAClDA,EAAeA,EAAe,kBAAoB,MAAQ,iBAC1DA,EAAeA,EAAe,mBAAqB,MAAQ,kBAC3DA,EAAeA,EAAe,oBAAsB,OAAS,mBAC7DA,EAAeA,EAAe,cAAgB,OAAS,aACvDA,EAAeA,EAAe,uBAAyB,OAAS,sBAChEA,EAAeA,EAAe,oBAAsB,QAAU,mBAC9DA,EAAeA,EAAe,oBAAsB,QAAU,mBAC9DA,EAAeA,EAAe,UAAY,QAAU,SACpDA,EAAeA,EAAe,UAAY,SAAW,SACrDA,EAAeA,EAAe,gBAAkB,SAAW,eAC3DA,EAAeA,EAAe,mBAAqB,SAAW,kBAC9DA,EAAeA,EAAe,oBAAsB,SAAW,mBAC/DA,EAAeA,EAAe,QAAU,UAAY,OACpDA,EAAeA,EAAe,eAAiB,UAAY,cAC3DA,EAAeA,EAAe,qBAAuB,UAAY,oBACjEA,EAAeA,EAAe,YAAc,WAAa,WACzDA,EAAeA,EAAe,gBAAkB,WAAa,eAC7DA,EAAeA,EAAe,eAAiB,WAAa,cAC5DA,EAAeA,EAAe,cAAgB,YAAc,aAC5DA,EAAeA,EAAe,WAAa,IAAM,UACjDA,EAAeA,EAAe,oBAAsB,MAAQ,mBAC5DA,EAAeA,EAAe,WAAa,QAAU,UACrDA,EAAeA,EAAe,YAAc,WAAa,WACzDA,EAAeA,EAAe,SAAW,WAAa,OACzD,CArCD,CAqCGA,IAAmBA,EAAiB,CAAC,IAExC,SAAWC,GACPA,EAAgBA,EAAgB,aAAe,GAAK,YACpDA,EAAgBA,EAAgB,eAAiB,GAAK,cACtDA,EAAgBA,EAAgB,WAAa,GAAK,SACrD,CAJD,CAIGA,IAAoBA,EAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAUA,EAAU,SAAW,GAAK,QACpCA,EAAUA,EAAU,UAAY,GAAK,SACrCA,EAAUA,EAAU,UAAY,GAAK,SACrCA,EAAUA,EAAU,UAAY,GAAK,SACrCA,EAAUA,EAAU,WAAa,GAAK,UACtCA,EAAUA,EAAU,QAAU,GAAK,MACtC,CAPD,CAOGA,IAAcA,EAAY,CAAC,IAE9B,SAAWC,GACPA,EAASA,EAAS,UAAY,GAAK,SACnCA,EAASA,EAAS,WAAa,GAAK,UACpCA,EAASA,EAAS,QAAU,GAAK,OACjCA,EAASA,EAAS,QAAU,GAAK,MACpC,CALD,CAKGA,IAAaA,EAAW,CAAC,IAE5B,SAAWC,GACPA,EAAYA,EAAY,YAAc,GAAK,WAC3CA,EAAYA,EAAY,QAAU,GAAK,OACvCA,EAAYA,EAAY,UAAY,GAAK,SACzCA,EAAYA,EAAY,iBAAmB,GAAK,gBAChDA,EAAYA,EAAY,QAAU,GAAK,OACvCA,EAAYA,EAAY,QAAU,GAAK,OACvCA,EAAYA,EAAY,aAAe,GAAK,YAC5CA,EAAYA,EAAY,WAAa,GAAK,UAC1CA,EAAYA,EAAY,WAAa,GAAK,UAC1CA,EAAYA,EAAY,cAAgB,GAAK,YAChD,CAXD,CAWGA,IAAgBA,EAAc,CAAC,IAElC,SAAWC,GACPA,EAAkBA,EAAkB,YAAc,GAAK,WACvDA,EAAkBA,EAAkB,kBAAoB,GAAK,iBAC7DA,EAAkBA,EAAkB,cAAgB,GAAK,YAC5D,CAJD,CAIGA,IAAsBA,EAAoB,CAAC,IAE9C,SAAWC,GACPA,EAAWA,EAAW,SAAW,GAAK,QACtCA,EAAWA,EAAW,UAAY,GAAK,SACvCA,EAAWA,EAAW,OAAS,GAAK,MACpCA,EAAWA,EAAW,YAAc,GAAK,UAC5C,CALD,CAKGA,IAAeA,EAAa,CAAC,IAEhC,SAAWC,GACPA,EAAaA,EAAa,SAAW,GAAK,QAC1CA,EAAaA,EAAa,UAAY,GAAK,SAC3CA,EAAaA,EAAa,OAAS,GAAK,MACxCA,EAAaA,EAAa,YAAc,GAAK,WAC7CA,EAAaA,EAAa,eAAiB,GAAK,cAChDA,EAAaA,EAAa,WAAa,GAAK,SAC/C,CAPD,CAOGA,IAAiBA,EAAe,CAAC,IAEpC,SAAWC,GACPA,EAAaA,EAAa,UAAY,GAAK,SAC3CA,EAAaA,EAAa,SAAW,GAAK,OAC7C,CAHD,CAGGA,IAAiBA,EAAe,CAAC,IAEpC,SAAWC,GACPA,EAAUA,EAAU,YAAc,GAAK,WACvCA,EAAUA,EAAU,SAAW,GAAK,QACpCA,EAAUA,EAAU,UAAY,GAAK,SACrCA,EAAUA,EAAU,UAAY,GAAK,SACrCA,EAAUA,EAAU,WAAa,GAAK,UACtCA,EAAUA,EAAU,UAAY,GAAK,QACxC,CAPD,CAOGA,IAAcA,EAAY,CAAC,IAE9B,SAAWC,GACPA,EAAgBA,EAAgB,UAAY,GAAK,SACjDA,EAAgBA,EAAgB,SAAW,GAAK,QAChDA,EAAgBA,EAAgB,OAAS,GAAK,MAC9CA,EAAgBA,EAAgB,YAAc,GAAK,WACnDA,EAAgBA,EAAgB,oBAAsB,GAAK,kBAC9D,CAND,CAMGA,IAAoBA,EAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAeA,EAAe,YAAc,GAAK,WACjDA,EAAeA,EAAe,mBAAqB,GAAK,kBACxDA,EAAeA,EAAe,WAAa,GAAK,UAChDA,EAAeA,EAAe,OAAS,GAAK,MAC5CA,EAAeA,EAAe,SAAW,GAAK,QAC9CA,EAAeA,EAAe,aAAe,GAAK,YAClDA,EAAeA,EAAe,YAAc,GAAK,WACjDA,EAAeA,EAAe,WAAa,GAAK,SACnD,CATD,CASGA,IAAmBA,EAAiB,CAAC,IAExC,SAAWC,GACPA,EAAQA,EAAQ,SAAW,GAAK,QAChCA,EAAQA,EAAQ,WAAa,GAAK,SACrC,CAHD,CAGGA,IAAYA,EAAU,CAAC,IAE1B,SAAWC,GACPA,EAAgBA,EAAgB,OAAS,GAAK,MAC9CA,EAAgBA,EAAgB,YAAc,GAAK,WACnDA,EAAgBA,EAAgB,YAAc,GAAK,WACnDA,EAAgBA,EAAgB,OAAS,GAAK,MAC9CA,EAAgBA,EAAgB,WAAa,GAAK,UAClDA,EAAgBA,EAAgB,SAAW,GAAK,QAChDA,EAAgBA,EAAgB,SAAW,GAAK,QAChDA,EAAgBA,EAAgB,QAAU,GAAK,OAC/CA,EAAgBA,EAAgB,WAAa,GAAK,UAClDA,EAAgBA,EAAgB,UAAY,GAAK,SACjDA,EAAgBA,EAAgB,UAAY,IAAM,SAClDA,EAAgBA,EAAgB,WAAa,IAAM,UACnDA,EAAgBA,EAAgB,SAAW,IAAM,QACjDA,EAAgBA,EAAgB,QAAU,IAAM,OAChDA,EAAgBA,EAAgB,MAAQ,IAAM,KAC9CA,EAAgBA,EAAgB,UAAY,IAAM,SAClDA,EAAgBA,EAAgB,YAAc,IAAM,WACpDA,EAAgBA,EAAgB,YAAc,IAAM,WACpDA,EAAgBA,EAAgB,UAAY,IAAM,SAClDA,EAAgBA,EAAgB,YAAc,IAAM,WACpDA,EAAgBA,EAAgB,WAAa,IAAM,SACtD,CAtBD,CAsBGA,IAAoBA,EAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAoBA,EAAoB,iBAAmB,GAAK,gBAChEA,EAAoBA,EAAoB,WAAa,GAAK,UAC1DA,EAAoBA,EAAoB,cAAgB,GAAK,aAC7DA,EAAoBA,EAAoB,WAAa,GAAK,SAC7D,CALD,CAKGA,IAAwBA,EAAsB,CAAC,IAElD,SAAWC,GACPA,EAAWA,EAAW,UAAY,GAAK,SACvCA,EAAWA,EAAW,OAAS,GAAK,MACpCA,EAAWA,EAAW,SAAW,GAAK,QACtCA,EAAWA,EAAW,cAAgB,GAAK,aAC3CA,EAAWA,EAAW,yBAA2B,GAAK,uBACzD,CAND,CAMGA,IAAeA,EAAa,CAAC,IAEhC,SAAWC,GACPA,EAAmBA,EAAmB,OAAS,GAAK,MACpDA,EAAmBA,EAAmB,WAAa,GAAK,UACxDA,EAAmBA,EAAmB,SAAW,GAAK,QACtDA,EAAmBA,EAAmB,QAAU,GAAK,OACrDA,EAAmBA,EAAmB,WAAa,GAAK,UACxDA,EAAmBA,EAAmB,UAAY,GAAK,SACvDA,EAAmBA,EAAmB,UAAY,GAAK,SACvDA,EAAmBA,EAAmB,WAAa,GAAK,UACxDA,EAAmBA,EAAmB,SAAW,GAAK,QACtDA,EAAmBA,EAAmB,QAAU,GAAK,OACrDA,EAAmBA,EAAmB,MAAQ,IAAM,KACpDA,EAAmBA,EAAmB,UAAY,IAAM,SACxDA,EAAmBA,EAAmB,YAAc,IAAM,WAC1DA,EAAmBA,EAAmB,YAAc,IAAM,WAC1DA,EAAmBA,EAAmB,YAAc,IAAM,WAC1DA,EAAmBA,EAAmB,gBAAkB,IAAM,eAC9DA,EAAmBA,EAAmB,kBAAoB,IAAM,iBAChEA,EAAmBA,EAAmB,kBAAoB,IAAM,iBAChEA,EAAmBA,EAAmB,eAAiB,IAAM,cAC7DA,EAAmBA,EAAmB,SAAW,IAAM,QACvDA,EAAmBA,EAAmB,UAAY,IAAM,SACxDA,EAAmBA,EAAmB,aAAe,OAAS,WACjE,CAvBD,CAuBGA,IAAuBA,EAAqB,CAAC,IAuLhD,ICjaWyuS,EAkBAC,EDsdX,SAASC,EAAOruT,GAAK,OAAOC,OAAO8I,KAAK/I,EAAI,CACrC,SAASsuT,EAAWC,EAAYzrT,GACnC,IAAIm7B,EAAKr3B,EACT,IACI,IAAK,IAAIs3B,GAAK,QAASmwR,EAAOE,IAAcpwR,EAAKD,EAAGn6B,QAASo6B,EAAGj6B,KAAMi6B,EAAKD,EAAGn6B,OAAQ,CAClF,IAAIyqT,EAAUrwR,EAAGh9B,MACjB,GAAIotT,EAAWC,KAAa1rT,EACxB,OAAOyrT,EAAWC,EAE1B,CACJ,CACA,MAAOpwR,GAASH,EAAM,CAAE14B,MAAO64B,EAAS,CACxC,QACI,IACQD,IAAOA,EAAGj6B,OAAS0C,EAAKs3B,EAAGxd,SAAS9Z,EAAG7F,KAAKm9B,EACpD,CACA,QAAU,GAAID,EAAK,MAAMA,EAAI14B,KAAO,CACxC,CAEJ,EC1fA,SAAW4oT,GACPA,EAAgB,OAAS,MACzBA,EAAgB,WAAa,UAC7BA,EAAgB,SAAW,QAC3BA,EAAgB,SAAW,QAC3BA,EAAgB,QAAU,OAC1BA,EAAgB,WAAa,UAC7BA,EAAgB,UAAY,SAC5BA,EAAgB,UAAY,SAC5BA,EAAgB,WAAa,UAC7BA,EAAgB,SAAW,QAC3BA,EAAgB,QAAU,OAC1BA,EAAgB,MAAQ,KACxBA,EAAgB,UAAY,SAC5BA,EAAgB,YAAc,WAC9BA,EAAgB,YAAc,UACjC,EAhBD,CAgBGA,IAAoBA,EAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAW,WAAa,UACxBA,EAAW,QAAU,IACxB,CAHD,CAGGA,IAAeA,EAAa,CAAC,IAChC,IAAIK,EAA+B,WAC/B,SAASA,IACLluT,KAAKmuT,uBAAyB,GAC9BnuT,KAAKouT,uBAAyB,GAC9BpuT,KAAKquT,WAAaR,EAAWh/C,QAC7B7uQ,KAAKsuT,uBAAwB,EAC7BtuT,KAAKk0B,gBAAiB,EACtBl0B,KAAKuuT,QAAU,GACfvuT,KAAKwuT,QAAU,GACfxuT,KAAKyuT,UAAY,EACrB,CAoFA,OAnFAP,EAAcQ,gBAAkB,SAAUC,GACtC,IAAIjxR,EAAKr3B,EACL9D,EAAI,IAAI2rT,EACZ,IACI,IAAK,IAAIU,GAAO,QAASD,GAAKE,EAASD,EAAKprT,QAASqrT,EAAOlrT,KAAMkrT,EAASD,EAAKprT,OAAQ,CACpF,IAAIm6B,GAAK,QAAOkxR,EAAOjuT,MAAO,GAAI3B,EAAM0+B,EAAG,GAAI/8B,EAAQ+8B,EAAG,GAC1D,OAAQ1+B,GACJ,IAAK,KACDsD,EAAE4rT,uBAAyBvtT,EAC3B,MACJ,IAAK,KACD2B,EAAE2xB,gBAAiB,EACnB,MACJ,IAAK,MACD3xB,EAAE+rT,uBAAwB,EAC1B,MACJ,IAAK,OAEG,IAAIzpT,EAAIkpT,EAAWF,EAAYjtT,QACrBtB,IAANuF,IACAtC,EAAE8rT,WAAaxpT,GAEvB,MACJ,IAAK,KACDtC,EAAE6rT,uBAAyBxtT,EAC3B,MACJ,IAAK,IACD2B,EAAEksT,UAAY7tT,EACd,MACJ,IAAK,SACY,QAATA,GAGA2B,EAAE4rT,uBAAyB,kBAC3B5rT,EAAE6rT,uBAAyB,mBAEb,SAATxtT,GACL2B,EAAE4rT,uBAAyB,mBAC3B5rT,EAAE6rT,uBAAyB,oBAEb,SAATxtT,GACL2B,EAAE4rT,uBAAyB,uBAC3B5rT,EAAE6rT,uBAAyB,yBAG3B7rT,EAAE4rT,uBAAyBvtT,EAC3B2B,EAAE6rT,uBAAyBxtT,GAE/B,MACJ,IAAK,SACD2B,EAAE4rT,uBAAyB,uBAC3B5rT,EAAE6rT,uBAAyB,GAC3B,MACJ,IAAK,OACD7rT,EAAEgsT,QAAU3tT,EACZ,MACJ,IAAK,OACD2B,EAAEisT,QAAU5tT,EACZ,MAEZ,CACJ,CACA,MAAOi9B,GAASH,EAAM,CAAE14B,MAAO64B,EAAS,CACxC,QACI,IACQgxR,IAAWA,EAAOlrT,OAAS0C,EAAKuoT,EAAKzuS,SAAS9Z,EAAG7F,KAAKouT,EAC9D,CACA,QAAU,GAAIlxR,EAAK,MAAMA,EAAI14B,KAAO,CACxC,CACA,OAAOzC,CACX,EAQA2rT,EAAc5tT,UAAUwuT,WAAa,WACjC,IAAIvsT,EAAI,GAER,OADAA,EAAEoC,KAAK,CAAC,iBAAkB3E,KAAKk0B,iBACxB3xB,CACX,EACO2rT,CACX,CA/FkC,G,GAqGW,WACzC,SAASa,IACL/uT,KAAKuC,EAAI,IAAI2rT,EACbluT,KAAKgvT,YAAa,EAClBhvT,KAAKivT,cAAgB,IACzB,CACAF,EAAwBzuT,UAAU4uT,aAAe,WAC7C,IAAIxrT,EAAS,GACTyrT,EAAW,IAAIjB,EA+BnB,OA9BIluT,KAAKgvT,WACLtrT,EAAOiB,KAAK,CAAC,SAAU,KAEK,OAAvB3E,KAAKivT,cACVvrT,EAAOiB,KAAK,CAAC,SAAU3E,KAAKivT,iBAGxBjvT,KAAKuC,EAAE4rT,uBAAuBxrT,QAAU3C,KAAKuC,EAAE4rT,wBAA0BgB,EAAShB,wBAClFzqT,EAAOiB,KAAK,CAAC,KAAM3E,KAAKuC,EAAE4rT,yBAC1BnuT,KAAKuC,EAAE6rT,uBAAuBzrT,QAAU3C,KAAKuC,EAAE6rT,wBAA0Be,EAASf,wBAClF1qT,EAAOiB,KAAK,CAAC,KAAM3E,KAAKuC,EAAE6rT,0BAE9BpuT,KAAKuC,EAAE8rT,YAAcruT,KAAKuC,EAAE8rT,YAAcR,EAAWh/C,SACrDnrQ,EAAOiB,KAAK,CAAC,OAAQ3E,KAAKuC,EAAE8rT,aAE5BruT,KAAKuC,EAAE+rT,uBACP5qT,EAAOiB,KAAK,CAAC,MAAO,KAEpB3E,KAAKuC,EAAE2xB,gBACPxwB,EAAOiB,KAAK,CAAC,KAAM,KAEnB3E,KAAKuC,EAAEgsT,QAAQ5rT,QACfe,EAAOiB,KAAK,CAAC,OAAQ3E,KAAKuC,EAAEgsT,UAE5BvuT,KAAKuC,EAAEksT,UAAU9rT,QACjBe,EAAOiB,KAAK,CAAC,IAAK3E,KAAKuC,EAAEksT,YAEzBzuT,KAAKuC,EAAEisT,QAAQ7rT,QACfe,EAAOiB,KAAK,CAAC,OAAQ3E,KAAKuC,EAAEisT,UAEzB9qT,CACX,CAEJ,CA1C4C,G,y7CC3H5C,IAAMgtC,EAAa,CCJZzpC,GAAG,ODKJmoT,EAAa,CCKR/9Q,MAAM,QAAQpqC,GAAG,iBDDtBooT,GCEE,QAGM,OAHDh+Q,MAAM,aAAW,EACpB,QAA2B,OAAtBA,MAAM,aACX,QAAgB,SAAb,eDDT,GACEi+Q,EAAa,CCFX,GDKFC,EAAa,CCgBRtoT,GAAG,YDfRuoT,EAAa,CCoBXvoT,GAAG,YDnBLwoT,EAAa,CCgCHp+Q,MAAM,6BD/BhBq+Q,ECpBN,YDqBMC,ECrBN,YDsBMC,ECtBN,YDuBMC,EAAc,CCqFX5oT,GAAG,SDpFN6oT,EAAc,CCqFTz+Q,MAAM,kBDpFX0+Q,GCsFI,QAAgC,YAA1B,uBAAmB,GDrF7BC,IC6FI,QAAgC,YAA1B,uBAAmB,GD5F7BC,GC3BN,UD4BMC,GAAc,CC5BpB,MAmIe7+Q,MAAM,qBDnGf8+Q,GAAc,CC4HXlpT,GAAG,WD3HNmpT,ICjCN,mTDkCMC,GAAc,CC2Hd,IDvHC,SAAS1/Q,GAAOC,EAAUC,EAAYC,EAAYC,EAAYC,EAAWC,GAC9E,IAAMq/Q,GAAgC,QAAkB,sBAClDC,GAA+B,QAAkB,qBACjDC,GAAoB,QAAkB,UACtCC,GAAwB,QAAkB,cAEhD,OAAQ,WC3CR,QAyKM,MAzKN,EAyKM,EAxKJ,QAMsB,GALpB,gBAAc,YACPzvC,OAJb,SDgDQ56O,OC5C8BsqR,EAAAA,mBAAmB,OD6CjD9qN,IC7CsE8qN,EAAAA,mBAAmB,OD+C1F,KAAM,EAAG,CAAC,WCzCb,QAOa,MAPD/lT,KAAK,QAAM,CAV3B,kBAWM,WAKM,QDsCJ,SC3CF,QAKM,MALN,EAXN,QDuDU,CAAC,KC5CyCgmT,EAAAA,kBAKxC,IAhBZ,OAmBI,QAWa,MAXDhmT,KAAK,QAAM,CAnB3B,kBAoBM,WASM,QDiCJ,SC1CF,QASM,OARJ0mC,MAAM,QACNpqC,GAAG,qBAEF,QAAK,+BAAE2pT,EAAAA,kBAAF,ID0CH,ECxCH,QAEM,aADJ,QAAgE,GAA7Cv/Q,MAAM,OAAOt+B,KAAK,YD8CpC,KAAM,CACP,CAAC,KCnDK89S,EAAAA,uBAMJ,IA7BZ,OAgCI,QAIa,MAJDlmT,KAAK,QAAM,CAhC3B,kBAiCM,WAEM,QAFN,QAEM,MAFN,EAEM,ED+CF,SChDF,QAAmE,kBAAhBmmT,EAAAA,WAAS,MDiDxD,CAAC,KCjDMC,EAAAA,cAAczC,2BACrB,IAnCZ,OAsCI,QAoEK,KApEL,EAoEK,EDhBH,SCnDA,QA4CK,YA3CH,QA0CS,GAzCP0C,UAAU,OACT3lE,OAAO,EACP4lE,aAAa,GDoDb,CC7CUC,SAAO,SAChB,SA6BK,GA9BkB,QACvB,QA6BK,KA7BL,EA6BK,EDkBH,SC9CA,QAQK,YAPH,QAMhB,KANmBxkT,KAAK,IACL,QAAK,YAAuBykT,EAAAA,WAAU,aAAmC,EAAM,ODkDhF,GACC,EC/CA,QAAmC,GAAhBp+S,KAAK,YA1D3C,QA0DsD,eDkDnC,EC5GnB,ID6GiB,KAAM,CACP,CAAC,KC1DSq+S,EAAAA,mBD4DZ,SCnDA,QASK,YARH,QAOhB,KANkB1kT,KAAK,IACJ,QAAK,YAAuBykT,EAAAA,WAAU,qBAA2C,EAAM,ODsDxF,GACC,ECnDA,QAAqC,GAAlBp+S,KAAK,cApE3C,QAoEwD,uBDsDrC,EC1HnB,ID2HiB,KAAM,CACP,CAAC,KC/DSs+S,EAAAA,0BDiEZ,SCvDA,QAQK,YAPH,QAMhB,KALkB3kT,KAAK,IACF,QAAK,YAAEykT,EAAAA,WAAW,qBAA0C,EAAM,ODyDrE,GACC,ECvDA,QAAiC,GAAdp+S,KAAK,UA7E3C,QA6EoD,0BD0DjC,ECvInB,IDwIiB,KAAM,CACP,CAAC,KClESu+S,EAAAA,0BArBS,IAlDnC,kBA6CU,WAIqB,QAJrB,QAIqB,GAHnBjgR,MAAM,iBACNt+B,KAAK,YACL5B,KAAK,OACc,IAjD/B,ODsJS,KAAM,CACP,CAAC,KChHSogT,EAAAA,iBDkHZ,SCrEA,QAMK,YALH,QAIqB,GAHnBx+S,KAAK,cACL5B,KAAK,KACJ,QAAK,+BAAEqgT,EAAAA,QAAO,EAAT,MDuEP,KAAM,CACP,CAAC,MC5EUj+Q,EAAAA,qBD8Eb,SCvEA,QAMK,YALH,QAIqB,GAHnBxgC,KAAK,eACL5B,KAAK,KACJ,QAAK,+BAAEqgT,EAAAA,QAAO,EAAT,MDyEP,KAAM,CACP,CAAC,MC9EUj+Q,EAAAA,qBDgFb,SCzEA,QAOK,YANH,QAKqB,GAJZxgC,KAAM0+S,EAAAA,qBAAuB,WAAa,SACjDtgT,KAAK,KACLkgC,MAAM,cACL,QAAK,+BAAEqgR,EAAAA,kBAAF,ID0EL,KAAM,EAAG,CAAC,UACZ,KAAM,CACP,CAAC,KCjFSC,EAAAA,0BAUd,QA8CM,MA9CN,EA8CM,EA7CJ,QA4CM,MA5CN,EA4CM,CA3C2B,aAAfC,EAAAA,cD2EX,WC3EL,QAOW,MArHnB,QA+GU,GD4EI,SC3EJ,QAIE,SAHAvgR,MAAM,gBACN/mC,KAAK,QAlHjB,qDAmHqBs/B,EAAiB,mBAnHtC,ID+LiB,KAAM,KAAM,CACb,CAAC,KC7EIA,EAAAA,sBD+EN,KC5E6B,qBAAfgoR,EAAAA,cD8Ed,WC9EP,QAWW,MAjInB,QAuHU,ID+EM,SC9EN,QAQS,UAhInB,qDAwH2BC,EAAyB,2BAxHpD,IDwMmB,GACA,SAAW,IChFlB,QAMS,WA/HrB,QA0H2BC,EAAAA,qBA1H3B,SA0HqBhlR,GDgFD,OAAQ,WCjFhB,QAMS,UAJAlsC,MAAOksC,EAAGtK,aACVvjC,IAAK6tC,EAAGtK,eDiFN,QC/ENsK,EAAGilR,aAAW,EA9H/B,GD8MkB,IAAI,OACH,KAAM,CACP,CAAC,KCxFQF,EAAAA,8BD0FV,KChF2B,qBAAfD,EAAAA,cDkFZ,WCjFP,QAoBM,MApBN,GAoBM,EAnBJ,QAKqB,GAJZ7+S,KAAMi/S,EAAAA,iBACb7gT,KAAK,KACLkgC,MAAM,YACL,QAAK,+BAAE4gR,EAAAA,2BAAF,IDkFC,KAAM,EAAG,CAAC,UChFnB,QAYc,GAXZ5gR,MAAM,WA3IpB,WA4IuB6gR,EAAAA,mBA5IvB,qDA4IuBA,EAAkB,oBA5IzC,GA6Ie3sT,IAAKuuC,EAAAA,eACLq+Q,MAAOp+Q,EAAAA,sBACP,oBAAmBq+Q,EAAAA,eACnBC,QAAQ,EACRhoO,SAAU,EACVk2B,SAAU,KACV+xM,WAAW,EACX,cAAY,EACZ,gBAAc,GDmFR,KAAM,EAAG,CAAC,aAAc,MAAO,QAAS,0BCxO7D,oBD6OI,SCjFA,QAaM,MAbN,GA5JJ,SD8OM,CAAC,KClFuBvB,EAAAA,cAAc1C,YAAcR,EAAAA,WAAWh/C,YDqFrE,C,yBE9OWzvP,GAAK,iBAELmzS,GAAQ,EAAInzS,GAOZC,GAAM,IAAMD,GAcZG,GAAM,GAAKH,GA2Bf,SAASozS,GAAQC,GACpB,MAAOA,EAAW,EACdA,GAAYF,GAChB,MAAOE,GAAYF,GACfE,GAAYF,GAChB,OAAOE,CACX,CAqBA,SAASC,GAAmB9xT,EAAO+xT,EAAUC,EAAU/uD,EAAME,EAAMj2D,GAC/D,IAAIqlC,EAAS,GACTvyO,EAAQ,GACRA,GAASA,EACTuyO,EAAS,KAEJw/E,IACLx/E,EAAS,KAEb,IAAI0/E,EAAQvtT,KAAKwkD,MAAMlpD,GACvBA,EAA0B,IAAjBA,EAAQiyT,GACjB,IAAI1xN,EAAU77F,KAAKwkD,MAAMlpD,GACzBA,EAA4B,IAAnBA,EAAQugG,GACjB,IAAIC,EAAU97F,KAAKwkD,MAAMlpD,GACrBkyT,EAAYlyT,EAAQwgG,EACpB2xN,EAAQ/wT,OAAO6wT,GAAOG,SAASJ,EAAU,KACzCK,EAAQjxT,OAAOm/F,GAAS6xN,SAAS,EAAG,KACpCE,EAAQlxT,OAAOo/F,GAAS4xN,SAAS,EAAG,KACpCG,EAAQL,EAAUp1H,QAAQoQ,GAAWz0L,MAAM,GAC/C,MAAO,GAAG9E,OAAO4+N,GAAQ5+N,OAAOw+S,GAAOx+S,OAAOsvP,GAAMtvP,OAAO0+S,GAAO1+S,OAAOwvP,GAAMxvP,OAAO2+S,GAAO3+S,OAAO4+S,EACxG,CAcO,SAASC,GAASX,EAAU5uD,EAAME,EAAMj2D,GAI3C,YAHa,IAAT+1D,IAAmBA,EAAO,UACjB,IAATE,IAAmBA,EAAO,UACZ,IAAdj2D,IAAwBA,EAAY,GACjC4kH,GAAmBF,GAAQC,GAAYlzS,IAAK,EAAO,EAAGskP,EAAME,EAAMj2D,EAC7E,CAeO,SAASulH,GAAUZ,EAAU5uD,EAAME,EAAMj2D,GAI5C,YAHa,IAAT+1D,IAAmBA,EAAO,UACjB,IAATE,IAAmBA,EAAO,UACZ,IAAdj2D,IAAwBA,EAAY,GACpC2kH,GAAYrzS,IAAMqzS,EAAWrzS,GACtB,MAAM7K,OAAOsvP,EAAM,MAAMtvP,OAAOwvP,EAAM,MAC1C2uD,GAAmBD,EAAWpzS,IAAK,EAAM,EAAGwkP,EAAME,EAAMj2D,EACnE,CAeO,SAASwlH,GAAUb,EAAU5uD,EAAME,EAAMj2D,GAI5C,YAHa,IAAT+1D,IAAmBA,EAAO,UACjB,IAATE,IAAmBA,EAAO,UACZ,IAAdj2D,IAAwBA,EAAY,GACjC4kH,GAAmBF,GAAQC,GAAYpzS,IAAK,EAAO,EAAGwkP,EAAME,EAAMj2D,EAC7E,C,ID2BKylH,G,WAAL,SAAKA,GAEH,8CAGA,sCAGA,2BACD,EATD,CAAKA,KAAAA,GAAa,KAalB,kBAIE,WAAYxB,EAAqBvvR,GAC/BxiC,KAAK+xT,YAAcA,EACnB/xT,KAAKwiC,aAAeA,CACtB,CACF,SARA,GAUMgxR,GAA+C,CACnD,IAAIC,GACF,0BACA,gCAEF,IAAIA,GACF,6BACA,8CAEF,IAAIA,GAAmB,mBAAoB,6BAC3C,IAAIA,GAAmB,0BAA2B,2BAClD,IAAIA,GAAmB,sBAAuB,uBAC9C,IAAIA,GACF,qBACA,sCAEF,IAAIA,GACF,gCACA,6BAKEC,GAA4B,CAAEvtR,MAAO,KAAMC,OAAQ,KAIzD,UAAe,QAAgB,CAC7ButR,QAAS,EAAA1yT,kBAETnC,MAAO,CACLiyT,cAAe,CAAEzmT,KAAM4jT,EAAex8Q,QAAS,IAAIw8Q,EAAiBv8Q,UAAU,IAGhFlqC,KAAI,WACF,MAAO,CACLomT,WAAYA,EACZ+F,eAAgBL,GAAeM,iBAC/B/B,oBAAqB,GACrBF,YAAa,KACbH,sBAAsB,EACtBqC,uBAAuB,EACvBC,YAAaL,GAEjB,EAEA54S,SAAU,CACR61S,eAAc,WACZ,OAAO3wT,KAAK4zT,gBAAkBL,GAAeM,gBAC/C,EAEAhD,oBAAmB,WACjB,OAAO7wT,KAAK4zT,gBAAkBL,GAAeS,YAC/C,EAEAlD,UAAS,WACP,OAAI9wT,KAAKyzC,eAAiB/0B,EAAaglB,IAC9B,UAAG0vR,GAASpzT,KAAKwzC,UAAS,YAAI6/Q,GAAUrzT,KAAKkzC,YAG/C,UAAGogR,GAAUtzT,KAAKwzC,UAAS,YAAI6/Q,GAAUrzT,KAAKkzC,WACvD,EAEA2+Q,0BAA2B,CACzBhyT,IAAG,WACD,OAAkC,MAA9BG,KAAK8yC,sBAAsC,GACxC9yC,KAAK8yC,sBAAsBxxB,UACpC,EACAvM,IAAG,SAACpK,GACF3K,KAAKuiC,yBAAyB53B,EAChC,GAGFi/B,kBAAmB,CACjB/pC,IAAG,WACD,OAAOG,KAAKozC,oBACd,EACAr+B,IAAG,SAACtV,GACF,OAAOO,KAAK0iC,qBAAqBjjC,EACnC,GAGFkyT,oBAAmB,WACjB,OAAO,cACT,EAEAN,sBAAqB,WACnB,OAAIrxT,KAAKuzC,kBAGFvzC,KAAKyzC,eAAiB/0B,EAAaglB,GAC5C,EAEA0tR,eAAc,WACZ,OAAIpxT,KAAKuzC,mBAGuB,MAA9BvzC,KAAKmzC,4BAC0B7zC,IAA/BU,KAAKmzC,uBAIAnzC,KAAKmzC,uBAAyBnzC,KAAK8yC,sBAC5C,EAEAw+Q,qBAAoB,WAClB,OAAOtxT,KAAKszC,wBAA0BtzC,KAAKuzC,gBAC7C,EAEAg+Q,aAAY,WAEV,OACEvxT,KAAKqxT,uBACLrxT,KAAKoxT,gBACLpxT,KAAKsxT,oBAET,EAEAU,iBAAgB,WACd,OAAIhyT,KAAK8zT,sBACA,WAGL9zT,KAAKuzC,iBACA,QAGF,MACT,EAEA2+Q,mBAAoB,CAClBryT,IAAG,WACD,OAAOG,KAAKg0C,eACd,EACAj/B,IAAG,SAAC6rS,GACF5gT,KAAK6lC,mBAAmB+6Q,GACxB5gT,KAAK8zT,uBAAwB,CAC/B,GASFpD,mBAAkB,WAChB,GAAI1wT,KAAKuzC,kBACHvzC,KAAK+zT,YAAY3tR,OAASpmC,KAAK+zT,YAAY5tR,MAAO,CACpD,IAAM8tR,EAAqC,IAAzBj0T,KAAK+zT,YAAY5tR,MAC7BC,EAAS6tR,EAAY,KACrBruN,EAAM,IAAO5lG,KAAK+zT,YAAY3tR,OAAS6tR,GAAa,KAC1D,MAAO,CAAEruN,IAAG,EAAEx/D,OAAK,E,CAIvB,MAAO,CAAEw/D,IAAK,IAAKx/D,OAAQ,OAC7B,GAIF4L,QAAO,WAAP,WACMnC,EAAO7vC,KAAKw+B,eAAe56B,MAAK,W,YAClC,IAAgB,iBAAKmtT,cAAcjC,cAAY,8BAAE,CAA5C,IAAMvsT,EAAA,QACT,EAAKg7B,aAAah7B,E,mGAEtB,IAEIvC,KAAK+wT,cAAcxC,QAAQ5rT,OAC7BktC,EAAOA,EAAKjsC,MAAK,sD,wDAIf,OAFA5D,KAAK8xT,qBAAkB,oBAAQ0B,KAAsB,GAErD,GAAMxzT,KAAKwkC,SAAS,CAClB95B,IAAK1K,KAAK+wT,cAAcxC,QACxBngR,MAAM,K,cAFR,SAKApuC,KAAK4zT,eAAiBL,GAAeS,aACrCh0T,KAAKuuC,uCAAsC,GAC3CvuC,KAAK4xT,YAAc,oB,eAIjB5xT,KAAK+wT,cAAcvC,QAAQ7rT,SAC7BktC,EAAOA,EAAKjsC,MAAK,sD,0EACA,SAAM5D,KAAK4/B,oBAAoB,CAC5Cl1B,IAAK1K,KAAK+wT,cAAcvC,QACxB3uR,kBAAkB,K,OAGpB,GALMyiF,EAAS,SAKXtiH,KAAK+wT,cAActC,U,IAGrB,IAAiB,WAAoB,QAApB,EAAAnsM,EAAOyC,sBAAa,QAAK,IAAE,8BAAjCmvM,EAAC,QACJA,aAAc,GAAA5wR,OAGhB4wR,EAAG5yS,YAActhB,KAAK+wT,cAActC,WAEtCzuT,KAAKq/B,WAAW,CACdC,MAAO40R,EACP30R,QAAQ,EACRL,SAAS,EACTM,aAAa,G,uHAQzBqQ,EAAKjsC,MAAK,W,QAIJuwT,GAA2B,EAC3BC,EAAS,EAAKrD,cAAc5C,uBAEhC,GAAI,EAAK4C,cAAc3C,uBAAuBzrT,OAAQ,CACpD,IAAMgxN,EAAM,EAAKnpL,eACf,EAAKumR,cAAc3C,wBAGrB,GAAY,OAARz6F,EAAc,CAEhB,IAAM0gG,EAAa1gG,EAAI1wL,mBAAqBvkB,EAAagiG,SACnDlpG,EAAmC,CAAEwrB,WAAY2wL,GASvD,GARI0gG,IACF78S,EAAQsrB,WAAa6wL,EACrBwgG,GAA2B,IAMxBE,GAAcD,EAAOzxT,OAAQ,CAChC,IAAMigC,EAAM,EAAK4H,eAAe4pR,GACpB,OAARxxR,IACFprB,EAAQsrB,WAAaF,EACrBuxR,GAA2B,E,CAI/B,EAAKxxR,iBAAiBnrB,E,EAIrB28S,IACEC,EAAOzxT,SAGVyxT,EAAS,gCAGX,EAAK7xR,yBAAyB6xR,IAIhC,EAAKtC,qBAAkB,oBAAQ0B,KAAsB,GACrD,IAAIc,GAAU,E,IAEd,IAAkB,iBAAKxC,qBAAmB,8BAAE,CAAvC,IAAMyC,EAAE,QACX,GAAIA,EAAI/xR,cAAgB4xR,EAAQ,CAC9BE,GAAU,EACV,K,oGAICA,GACH,EAAKxC,oBAAoBj9S,QACvB,IAAI4+S,GAAmBW,EAAQA,IAInC,EAAKR,eAAiBL,GAAeiB,OACvC,IAEJ,EAEAriR,QAAO,WACD,gBACF,QAAc,SAAUnyC,KAAKy0T,mBAG/Bt0T,OAAO0pH,iBAAiB,SAAU7pH,KAAK00T,eAKvC10T,KAAK00T,eACP,EAEAC,UAAS,WACH,gBACF,SAAe,SAAU30T,KAAKy0T,mBAGhCt0T,OAAO2tR,oBAAoB,SAAU9tR,KAAK00T,cAC5C,EAEA3iR,QAAS,CACPo/Q,WAAU,SAACxmT,GACL3K,KAAK4xT,aAAejnT,EACtB3K,KAAK4xT,YAAc,KAEnB5xT,KAAK4xT,YAAcjnT,CAEvB,EAGA6mT,OAAM,SAACoD,GACDA,EACF50T,KAAK08B,KAAK,EAAI,KAEd18B,KAAK08B,KAAK,IAEd,EAEAg1R,iBAAgB,WACV,gBACF,aAEJ,EAEA+C,kBAAiB,WAGX,iBACFz0T,KAAKyxT,qBAAuB,kBAEhC,EAEAiD,cAAa,WACX,IAAMvuR,EAAQnmC,KAAK60T,IAAIjqI,YACjBxkJ,EAASpmC,KAAK60T,IAAIlqI,aAGtB3qL,KAAK+zT,YADH5tR,EAAQ,GAAKC,EAAS,EACL,CAAED,MAAK,EAAEC,OAAK,GAEdstR,EAEvB,EAEA9C,iBAAgB,WACd5wT,KAAK4zT,eAAiBL,GAAeiB,QAEjCx0T,KAAK+wT,cAAcxC,QAAQ5rT,QAC7B3C,KAAKmuC,WAET,EAEA8jR,0BAAyB,WACvB,GAAIjyT,KAAKszC,sBAAuB,CAa9B,IAAIwhR,EAAU,KAEd,GAAI90T,KAAKuzC,kBAAmD,KAA/BvzC,KAAK0wT,mBAAmB9qN,IAAY,CAC/D,IAAMmvN,EAAqC,IAAzB/0T,KAAK+zT,YAAY5tR,MACnC2uR,EAAU,CACR/1R,MAAO,EAAM/+B,KAAKwzC,SAClBxU,OAAQ,EAAMh/B,KAAKkzC,UACnBjU,QAAUj/B,KAAKi0C,WAAaj0C,KAAK+zT,YAAY3tR,OAAU2uR,EACvD71R,SAAS,E,CAITl/B,KAAK8zT,uBAEP9zT,KAAK6lC,mBAAmB,GACxB7lC,KAAK8zT,uBAAwB,GAE7B9zT,KAAKquC,2BAGS,OAAZymR,GACF90T,KAAK8+B,cAAcg2R,E,CAGzB,EAEA1C,eAAc,SAAChxN,GACb,GAAIA,EAAU,EAAG,MAAO,OAExB,IAAMD,EAAU77F,KAAKwkD,MAAMs3C,EAAU,IAErC,OADAA,EAAU97F,KAAKu0C,MAAMunD,EAAU,GAAKD,GAC7BA,EAAQz3F,WAAa,IAAM03F,EAAQ13F,WAAWspT,SAAS,EAAG,IACnE,GAKFh9S,MAAO,CACL69B,mBAAkB,SAACmhR,EAAmBC,GACpCj1T,KAAK8zT,uBAAwB,CAC/B,K,cElmBJ,MAAMphR,IAA2B,QAAgB,GAAQ,CAAC,CAAC,SAAS/B,MAEpE,MCkBA,KAAQh3B,IAAI,OACZ,KAAQA,IAAI,OACZ,KAAQA,IAAI,OACZ,KAAQA,IAAI,OACZ,KAAQA,IAAI,OACZ,KAAQA,IAAI,OACZ,KAAQA,IAAI,OACZ,KAAQA,IAAI,OACZ,KAAQA,IAAI,OACZ,KAAQA,IAAI,OACZ,KAAQA,IAAI,OAEZ,IAAMu7S,GAAc,IAAIC,gBAAgBh1T,OAAOyM,SAASmzG,QAClD/4G,GAAWknT,EAAcQ,gBAAgBwG,GAAYtsR,YAE3D,QAAUwsR,GAAO,CACb3jR,aAAc,aACds/Q,cAAe/pT,KAEhBuR,IAAI,EAAAnX,UACJi0T,UAAU,qBAAsB,EAAAn0T,cAChCm0T,UAAU,SAAU,KACpBA,UAAU,oBAAqB,MAC/BA,UAAU,aAAc,KACxBl9S,QAAQ,eAAgB,aACxBA,QAAQ,gBAAiBnR,IACzBsuT,MAAM,O,GCpDLn2T,yBAA2B,CAAC,EAGhC,SAASo2T,oBAAoBn2T,GAE5B,IAAIC,EAAeF,yBAAyBC,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaf,QAGrB,IAAID,EAASc,yBAAyBC,GAAY,CAGjDd,QAAS,CAAC,GAOX,OAHAI,oBAAoBU,GAAUoB,KAAKnC,EAAOC,QAASD,EAAQA,EAAOC,QAASi3T,qBAGpEl3T,EAAOC,OACf,CAGAi3T,oBAAoB1wT,EAAInG,oB,MCzBxB,IAAIi5O,EAAW,GACf49E,oBAAoBC,EAAI,CAAC9xT,EAAQ+xT,EAAUl8S,EAAIm8S,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASpzT,EAAI,EAAGA,EAAIm1O,EAASh1O,OAAQH,IAAK,CAGzC,IAFA,IAAKizT,EAAUl8S,EAAIm8S,GAAY/9E,EAASn1O,GACpCc,GAAY,EACPo2C,EAAI,EAAGA,EAAI+7Q,EAAS9yT,OAAQ+2C,MACpB,EAAXg8Q,GAAsBC,GAAgBD,IAAah2T,OAAO8I,KAAK+sT,oBAAoBC,GAAGK,OAAO52T,GAASs2T,oBAAoBC,EAAEv2T,GAAKw2T,EAAS/7Q,MAC9I+7Q,EAASjwT,OAAOk0C,IAAK,IAErBp2C,GAAY,EACToyT,EAAWC,IAAcA,EAAeD,IAG7C,GAAGpyT,EAAW,CACbq0O,EAASnyO,OAAOhD,IAAK,GACrB,IAAI/B,EAAI8Y,SACEja,IAANmB,IAAiBiD,EAASjD,EAC/B,CACD,CACA,OAAOiD,CAnBP,CAJCgyT,EAAWA,GAAY,EACvB,IAAI,IAAIlzT,EAAIm1O,EAASh1O,OAAQH,EAAI,GAAKm1O,EAASn1O,EAAI,GAAG,GAAKkzT,EAAUlzT,IAAKm1O,EAASn1O,GAAKm1O,EAASn1O,EAAI,GACrGm1O,EAASn1O,GAAK,CAACizT,EAAUl8S,EAAIm8S,EAqBjB,C,WCzBdH,oBAAoB9yT,EAAKpE,IACxB,IAAIymT,EAASzmT,GAAUA,EAAO0mT,WAC7B,IAAO1mT,EAAO,WACd,IAAM,EAEP,OADAk3T,oBAAoBh2T,EAAEulT,EAAQ,CAAEv4S,EAAGu4S,IAC5BA,CAAM,C,WCLdyQ,oBAAoBh2T,EAAI,CAACjB,EAASkB,KACjC,IAAI,IAAIP,KAAOO,EACX+1T,oBAAoB91T,EAAED,EAAYP,KAASs2T,oBAAoB91T,EAAEnB,EAASW,IAC5ES,OAAOC,eAAerB,EAASW,EAAK,CAAEW,YAAY,EAAMC,IAAKL,EAAWP,IAE1E,C,WCNDs2T,oBAAoBz1T,EAAI,WACvB,GAA0B,kBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOC,MAAQ,IAAIC,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,kBAAXC,OAAqB,OAAOA,MACxC,CACA,CAPuB,E,WCAxBo1T,oBAAoB91T,EAAI,CAACW,EAAKC,IAAUX,OAAOY,UAAUC,eAAeC,KAAKJ,EAAKC,E,WCClFk1T,oBAAoB90T,EAAKnC,IACH,qBAAXoC,QAA0BA,OAAOC,aAC1CjB,OAAOC,eAAerB,EAASoC,OAAOC,YAAa,CAAEC,MAAO,WAE7DlB,OAAOC,eAAerB,EAAS,aAAc,CAAEsC,OAAO,GAAO,C,WCL9D20T,oBAAoB10T,EAAI,E,WCKxB,IAAIi1T,EAAkB,CACrB,IAAK,GAaNP,oBAAoBC,EAAE97Q,EAAKq8Q,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4BxuT,KACvD,IAGIrI,EAAU22T,GAHTN,EAAUS,EAAaC,GAAW1uT,EAGhBjF,EAAI,EAC3B,GAAGizT,EAASW,MAAMnvT,GAAgC,IAAxB6uT,EAAgB7uT,KAAa,CACtD,IAAI7H,KAAY82T,EACZX,oBAAoB91T,EAAEy2T,EAAa92T,KACrCm2T,oBAAoB1wT,EAAEzF,GAAY82T,EAAY92T,IAGhD,GAAG+2T,EAAS,IAAIzyT,EAASyyT,EAAQZ,oBAClC,CAEA,IADGU,GAA4BA,EAA2BxuT,GACrDjF,EAAIizT,EAAS9yT,OAAQH,IACzBuzT,EAAUN,EAASjzT,GAChB+yT,oBAAoB91T,EAAEq2T,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAOR,oBAAoBC,EAAE9xT,EAAO,EAGjC2yT,EAAqB93T,KAAK,kCAAoCA,KAAK,mCAAqC,GAC5G83T,EAAmBriT,QAAQgiT,EAAqB5gT,KAAK,KAAM,IAC3DihT,EAAmB1xT,KAAOqxT,EAAqB5gT,KAAK,KAAMihT,EAAmB1xT,KAAKyQ,KAAKihT,G,KC7CvF,IAAIC,oBAAsBf,oBAAoBC,OAAEl2T,EAAW,CAAC,MAAM,IAAOi2T,oBAAoB,MAC7Fe,oBAAsBf,oBAAoBC,EAAEc,oB","sources":["webpack://@wwtelescope/embed/../engine-pinia/dist/index.umd.js","webpack://@wwtelescope/embed/../engine/src/index.js","webpack://@wwtelescope/embed/../engine-types/dist/src/index.js","webpack://@wwtelescope/embed/../embed-common/dist/src/index.js","webpack://@wwtelescope/embed/./src/Embed.vue?8acd","webpack://@wwtelescope/embed/./src/Embed.vue","webpack://@wwtelescope/embed/../astro/dist/src/index.js","webpack://@wwtelescope/embed/./src/Embed.vue?2a6c","webpack://@wwtelescope/embed/./src/main.ts","webpack://@wwtelescope/embed/webpack/bootstrap","webpack://@wwtelescope/embed/webpack/runtime/chunk loaded","webpack://@wwtelescope/embed/webpack/runtime/compat get default export","webpack://@wwtelescope/embed/webpack/runtime/define property getters","webpack://@wwtelescope/embed/webpack/runtime/global","webpack://@wwtelescope/embed/webpack/runtime/hasOwnProperty shorthand","webpack://@wwtelescope/embed/webpack/runtime/make namespace object","webpack://@wwtelescope/embed/webpack/runtime/publicPath","webpack://@wwtelescope/embed/webpack/runtime/jsonp chunk loading","webpack://@wwtelescope/embed/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@wwtelescope/engine\"), require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@wwtelescope/engine\", ], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"index\"] = factory(require(\"@wwtelescope/engine\"), require(\"vue\"));\n\telse\n\t\troot[\"index\"] = factory(root[\"wwtlib\"], root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), (__WEBPACK_EXTERNAL_MODULE__19__, __WEBPACK_EXTERNAL_MODULE__648__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 144:\n/***/ ((__unused_webpack_module, exports) => {\n\nvar __webpack_unused_export__;\n\n__webpack_unused_export__ = ({ value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.c = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n\n\n/***/ }),\n\n/***/ 19:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__19__;\n\n/***/ }),\n\n/***/ 648:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__648__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/global */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/publicPath */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.p = \"\";\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n ImageSetLayerState: () => (/* reexport */ ImageSetLayerState),\n ImagesetInfo: () => (/* reexport */ ImagesetInfo),\n SpreadSheetLayerInfo: () => (/* reexport */ SpreadSheetLayerInfo),\n WWTAwareComponent: () => (/* reexport */ WWTAwareComponent),\n WWTComponent: () => (/* reexport */ Component),\n engineStore: () => (/* reexport */ engineStore),\n wwtPinia: () => (/* reexport */ wwtPinia)\n});\n\n;// CONCATENATED MODULE: ../node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (false) { var getCurrentScript; }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_require__.p = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ const setPublicPath = (null);\n\n;// CONCATENATED MODULE: ../node_modules/tslib/tslib.es6.mjs\n/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nfunction __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nfunction __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nfunction __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nfunction __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nfunction __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nfunction __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nfunction __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nfunction __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nfunction __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nfunction __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nfunction tslib_es6_values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nfunction __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nfunction __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nfunction __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nfunction __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nfunction __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nfunction __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof tslib_es6_values === \"function\" ? tslib_es6_values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nfunction __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nfunction __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nfunction __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nfunction __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nfunction __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nfunction __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\n/* harmony default export */ const tslib_es6 = ({\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values: tslib_es6_values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n});\n\n// EXTERNAL MODULE: external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}\nvar external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__(648);\n;// CONCATENATED MODULE: ../node_modules/vue-demi/lib/index.mjs\n\n\nvar lib_isVue2 = false\nvar isVue3 = true\nvar Vue2 = (/* unused pure expression or super */ null && (undefined))\n\nfunction install() {}\n\nfunction lib_set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nfunction del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\n\n\n\n;// CONCATENATED MODULE: ../node_modules/@vue/devtools-api/lib/esm/env.js\nfunction getDevtoolsGlobalHook() {\n return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n}\nfunction getTarget() {\n // @ts-ignore\n return (typeof navigator !== 'undefined' && typeof window !== 'undefined')\n ? window\n : typeof __webpack_require__.g !== 'undefined'\n ? __webpack_require__.g\n : {};\n}\nconst isProxyAvailable = typeof Proxy === 'function';\n\n;// CONCATENATED MODULE: ../node_modules/@vue/devtools-api/lib/esm/const.js\nconst HOOK_SETUP = 'devtools-plugin:setup';\nconst HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n\n;// CONCATENATED MODULE: ../node_modules/@vue/devtools-api/lib/esm/time.js\nlet supported;\nlet perf;\nfunction isPerformanceSupported() {\n var _a;\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else if (typeof __webpack_require__.g !== 'undefined' && ((_a = __webpack_require__.g.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n supported = true;\n perf = __webpack_require__.g.perf_hooks.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\nfunction now() {\n return isPerformanceSupported() ? perf.now() : Date.now();\n}\n\n;// CONCATENATED MODULE: ../node_modules/@vue/devtools-api/lib/esm/proxy.js\n\n\nclass ApiProxy {\n constructor(plugin, hook) {\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n const defaultSettings = {};\n if (plugin.settings) {\n for (const id in plugin.settings) {\n const item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n let currentSettings = Object.assign({}, defaultSettings);\n try {\n const raw = localStorage.getItem(localSettingsSaveId);\n const data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings() {\n return currentSettings;\n },\n setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n },\n now() {\n return now();\n },\n };\n if (hook) {\n hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n if (pluginId === this.plugin.id) {\n this.fallbacks.setSettings(value);\n }\n });\n }\n this.proxiedOn = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target.on[prop];\n }\n else {\n return (...args) => {\n this.onQueue.push({\n method: prop,\n args,\n });\n };\n }\n },\n });\n this.proxiedTarget = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target[prop];\n }\n else if (prop === 'on') {\n return this.proxiedOn;\n }\n else if (Object.keys(this.fallbacks).includes(prop)) {\n return (...args) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve: () => { },\n });\n return this.fallbacks[prop](...args);\n };\n }\n else {\n return (...args) => {\n return new Promise(resolve => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve,\n });\n });\n };\n }\n },\n });\n }\n async setRealTarget(target) {\n this.target = target;\n for (const item of this.onQueue) {\n this.target.on[item.method](...item.args);\n }\n for (const item of this.targetQueue) {\n item.resolve(await this.target[item.method](...item.args));\n }\n }\n}\n\n;// CONCATENATED MODULE: ../node_modules/@vue/devtools-api/lib/esm/index.js\n\n\n\n\n\n\nfunction setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const descriptor = pluginDescriptor;\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor: descriptor,\n setupFn,\n proxy,\n });\n if (proxy)\n setupFn(proxy.proxiedTarget);\n }\n}\n\n;// CONCATENATED MODULE: ../node_modules/pinia/dist/pinia.mjs\n/*!\n * pinia v2.1.7\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\n\n\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = (( false) ? 0 : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly = { readonly [P in keyof T]: DeepReadonly }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\nconst IS_CLIENT = typeof window !== 'undefined';\n/**\n * Should we add the devtools plugins.\n * - only if dev mode or forced through the prod devtools flag\n * - not in test\n * - only if window exists (could change in the future)\n */\nconst USE_DEVTOOLS = false && 0;\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\nfunction download(url, name, opts) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function () {\n console.error('could not download file');\n };\n xhr.send();\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = document.createEvent('MouseEvents');\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = \n typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function () {\n click(a);\n }, 0);\n }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n }\n else {\n const a = document.createElement('a');\n a.href = blob;\n a.target = '_blank';\n setTimeout(function () {\n click(a);\n });\n }\n }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank');\n if (popup) {\n popup.document.title = popup.document.body.innerText = 'downloading...';\n }\n if (typeof blob === 'string')\n return download(blob, name, opts);\n const force = blob.type === 'application/octet-stream';\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n const reader = new FileReader();\n reader.onloadend = function () {\n let url = reader.result;\n if (typeof url !== 'string') {\n popup = null;\n throw new Error('Wrong reader.result type');\n }\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\n else {\n const url = URL.createObjectURL(blob);\n if (popup)\n popup.location.assign(url);\n else\n location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n // No longer available :(\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\n// ---\nfunction checkClipboardAccess() {\n if (!('clipboard' in navigator)) {\n toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n return true;\n }\n}\nfunction checkNotFocusedError(error) {\n if (error instanceof Error &&\n error.message.toLowerCase().includes('document is not focused')) {\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n return true;\n }\n return false;\n}\nasync function actionGlobalCopyState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalPasteState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n toastMessage('Global state pasted from clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalSaveState(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nlet fileInput;\nfunction getFileOpener() {\n if (!fileInput) {\n fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.json';\n }\n function openFile() {\n return new Promise((resolve, reject) => {\n fileInput.onchange = async () => {\n const files = fileInput.files;\n if (!files)\n return resolve(null);\n const file = files.item(0);\n if (!file)\n return resolve(null);\n return resolve({ text: await file.text(), file });\n };\n // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n loadStoresState(pinia, JSON.parse(text));\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\n catch (error) {\n toastMessage(`Failed to import the state from JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nfunction loadStoresState(pinia, state) {\n for (const key in state) {\n const storeState = pinia.state.value[key];\n // store is already instantiated, patch it\n if (storeState) {\n Object.assign(storeState, state[key]);\n }\n else {\n // store is not instantiated, set the initial state\n pinia.state.value[key] = state[key];\n }\n }\n}\n\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n return isPinia(store)\n ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\n : {\n id: store.$id,\n label: store.$id,\n };\n}\nfunction formatStoreForInspectorState(store) {\n if (isPinia(store)) {\n const storeNames = Array.from(store._s.keys());\n const storeMap = store._s;\n const state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\n }\n const state = {\n state: Object.keys(store.$state).map((key) => ({\n editable: true,\n key,\n value: store.$state[key],\n })),\n };\n // avoid adding empty getters\n if (store._getters && store._getters.length) {\n state.getters = store._getters.map((getterName) => ({\n editable: false,\n key: getterName,\n value: store[getterName],\n }));\n }\n if (store._customProperties.size) {\n state.customProperties = Array.from(store._customProperties).map((key) => ({\n editable: true,\n key,\n value: store[key],\n }));\n }\n return state;\n}\nfunction formatEventData(events) {\n if (!events)\n return {};\n if (Array.isArray(events)) {\n // TODO: handle add and delete for arrays and objects\n return events.reduce((data, event) => {\n data.keys.push(event.key);\n data.operations.push(event.type);\n data.oldValue[event.key] = event.oldValue;\n data.newValue[event.key] = event.newValue;\n return data;\n }, {\n oldValue: {},\n keys: [],\n operations: [],\n newValue: {},\n });\n }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\n case MutationType.direct:\n return 'mutation';\n case MutationType.patchFunction:\n return '$patch';\n case MutationType.patchObject:\n return '$patch';\n default:\n return 'unknown';\n }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n }, (api) => {\n if (typeof api.now !== 'function') {\n toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: `Pinia 🍍`,\n color: 0xe5df88,\n });\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Pinia 🍍',\n icon: 'storage',\n treeFilterPlaceholder: 'Search stores',\n actions: [\n {\n icon: 'content_copy',\n action: () => {\n actionGlobalCopyState(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Replace the state with the content of your clipboard',\n },\n {\n icon: 'save',\n action: () => {\n actionGlobalSaveState(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Import the state from a JSON file',\n },\n ],\n nodeActions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state (with \"$reset\")',\n action: (nodeId) => {\n const store = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (typeof store.$reset !== 'function') {\n toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload, ctx) => {\n const proxy = (payload.componentInstance &&\n payload.componentInstance.proxy);\n if (proxy && proxy._pStores) {\n const piniaStores = payload.componentInstance.proxy._pStores;\n Object.values(piniaStores).forEach((store) => {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'state',\n editable: true,\n value: store._isOptionsAPI\n ? {\n _custom: {\n value: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toRaw)(store.$state),\n actions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state of this store',\n action: () => store.$reset(),\n },\n ],\n },\n }\n : // NOTE: workaround to unwrap transferred refs\n Object.keys(store.$state).reduce((state, key) => {\n state[key] = store.$state[key];\n return state;\n }, {}),\n });\n if (store._getters && store._getters.length) {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'getters',\n editable: false,\n value: store._getters.reduce((getters, key) => {\n try {\n getters[key] = store[key];\n }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\n getters[key] = error;\n }\n return getters;\n }, {}),\n });\n }\n });\n }\n });\n api.on.getInspectorTree((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n let stores = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload, ctx) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (!isPinia(inspectedStore)) {\n // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\n path.unshift('state');\n }\n isTimelineActive = false;\n payload.set(inspectedStore, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n api.on.editComponentState((payload) => {\n if (payload.type.startsWith('🍍')) {\n const storeId = payload.type.replace(/^🍍\\s*/, '');\n const store = pinia._s.get(storeId);\n if (!store) {\n return toastMessage(`store \"${storeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (path[0] !== 'state') {\n return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n }\n // rewrite the first entry to be able to directly set the state as\n // well as any other path\n path[0] = '$state';\n isTimelineActive = false;\n payload.set(store, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n });\n}\nfunction addStoreToDevtools(app, store) {\n if (!componentStateTypes.includes(getStoreType(store.$id))) {\n componentStateTypes.push(getStoreType(store.$id));\n }\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n settings: {\n logStoreChanges: {\n label: 'Notify about new/deleted stores',\n type: 'boolean',\n defaultValue: true,\n },\n // useEmojis: {\n // label: 'Use emojis in messages ⚡️',\n // type: 'boolean',\n // defaultValue: true,\n // },\n },\n }, (api) => {\n // gracefully handle errors\n const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n store.$onAction(({ after, onError, name, args }) => {\n const groupId = runningActionId++;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n error,\n },\n groupId,\n },\n });\n });\n }, true);\n store._customProperties.forEach((name) => {\n (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => (0,external_commonjs_vue_commonjs2_vue_root_Vue_.unref)(store[name]), (newValue, oldValue) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (isTimelineActive) {\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: 'Change',\n subtitle: name,\n data: {\n newValue,\n oldValue,\n },\n groupId: activeAction,\n },\n });\n }\n }, { deep: true });\n });\n store.$subscribe(({ events, type }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\n else if (events && !Array.isArray(events)) {\n eventData.subtitle = events.type;\n }\n if (events) {\n eventData.data['rawEvent(s)'] = {\n _custom: {\n display: 'DebuggerEvent',\n type: 'object',\n tooltip: 'raw DebuggerEvent[]',\n value: events,\n },\n };\n }\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: eventData,\n });\n }, { detached: true, flush: 'sync' });\n const hotUpdate = store._hotUpdate;\n store._hotUpdate = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.markRaw)((newStore) => {\n hotUpdate(newStore);\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n });\n const { $dispose } = store;\n store.$dispose = () => {\n $dispose();\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toRaw)(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = wrapWithProxy\n ? new Proxy(store, {\n get(...args) {\n activeAction = _actionId;\n return Reflect.get(...args);\n },\n set(...args) {\n activeAction = _actionId;\n return Reflect.set(...args);\n },\n })\n : store;\n // For Setup Stores we need https://github.com/tc39/proposal-async-context\n activeAction = _actionId;\n const retValue = actions[actionName].apply(trackedStore, arguments);\n // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n activeAction = undefined;\n return retValue;\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n store._isOptionsAPI = !!options.state;\n patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n // Upgrade the HMR to also update the new actions\n const originalHotUpdate = store._hotUpdate;\n (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toRaw)(store)._hotUpdate = function (newStore) {\n originalHotUpdate.apply(this, arguments);\n patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);\n };\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.effectScope)(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.markRaw)({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n if (!lib_isVue2) {\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if (USE_DEVTOOLS) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n }\n },\n use(plugin) {\n if (!this._a && !lib_isVue2) {\n toBeInstalled.push(plugin);\n }\n else {\n _p.push(plugin);\n }\n return this;\n },\n _p,\n // it's actually undefined here\n // @ts-expect-error\n _a: null,\n _e: scope,\n _s: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if (USE_DEVTOOLS && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n if (isVue2) {\n set(newState, key, subPatch);\n }\n else {\n newState[key] = subPatch;\n }\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (true) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.push(callback);\n const removeSubscription = () => {\n const idx = subscriptions.indexOf(callback);\n if (idx > -1) {\n subscriptions.splice(idx, 1);\n onCleanup();\n }\n };\n if (!detached && (0,external_commonjs_vue_commonjs2_vue_root_Vue_.getCurrentScope)()) {\n (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onScopeDispose)(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.slice().forEach((callback) => {\n callback(...args);\n });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n // Handle Set instances\n if (target instanceof Set && patchToApply instanceof Set) {\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in patchToApply) {\n if (!patchToApply.hasOwnProperty(key))\n continue;\n const subPatch = patchToApply[key];\n const targetValue = target[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !(0,external_commonjs_vue_commonjs2_vue_root_Vue_.isRef)(subPatch) &&\n !(0,external_commonjs_vue_commonjs2_vue_root_Vue_.isReactive)(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = ( false)\n ? 0\n : /* istanbul ignore next */ Symbol();\nconst skipHydrateMap = /*#__PURE__*/ new WeakMap();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return isVue2\n ? // in @vue/composition-api, the refs are sealed so defineProperty doesn't work...\n /* istanbul ignore next */ skipHydrateMap.set(obj, 1) && obj\n : Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return lib_isVue2\n ? /* istanbul ignore next */ !skipHydrateMap.has(obj)\n : !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);\n}\nconst { assign: pinia_assign } = Object;\nfunction isComputed(o) {\n return !!((0,external_commonjs_vue_commonjs2_vue_root_Vue_.isRef)(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && ( true || 0)) {\n /* istanbul ignore if */\n if (lib_isVue2) {\n lib_set(pinia.state.value, id, state ? state() : {});\n }\n else {\n pinia.state.value[id] = state ? state() : {};\n }\n }\n // avoid creating a state in pinia.state.value\n const localState = false\n ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n 0\n : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.toRefs)(pinia.state.value[id]);\n return pinia_assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n if (false) {}\n computedGetters[name] = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.markRaw)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {\n setActivePinia(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n /* istanbul ignore next */\n if (lib_isVue2 && !store._r)\n return;\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = pinia_assign({ actions: {} }, options);\n /* istanbul ignore if */\n if (false) {}\n // watcher options for $subscribe\n const $subscribeOptions = {\n deep: true,\n // flush: 'post',\n };\n /* istanbul ignore else */\n if (false) {}\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = [];\n let actionSubscriptions = [];\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && ( true || 0)) {\n /* istanbul ignore if */\n if (lib_isVue2) {\n lib_set(pinia.state.value, $id, {});\n }\n else {\n pinia.state.value[$id] = {};\n }\n }\n const hotState = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((false)) {}\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n subscriptionMutation = {\n type: MutationType.patchObject,\n payload: partialStateOrMutator,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n const myListenerId = (activeListener = Symbol());\n (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {\n if (activeListener === myListenerId) {\n isListening = true;\n }\n });\n isSyncListening = true;\n // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n pinia_assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n ( false)\n ? 0\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions = [];\n actionSubscriptions = [];\n pinia._s.delete($id);\n }\n /**\n * Wraps an action to handle subscriptions.\n *\n * @param name - name of the action\n * @param action - action to wrap\n * @returns a wrapped action to handle subscriptions\n */\n function wrapAction(name, action) {\n return function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackList = [];\n const onErrorCallbackList = [];\n function after(callback) {\n afterCallbackList.push(callback);\n }\n function onError(callback) {\n onErrorCallbackList.push(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name,\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = action.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackList, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackList, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackList, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackList, ret);\n return ret;\n };\n }\n const _hmrPayload = /*#__PURE__*/ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.markRaw)({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, pinia_assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n /* istanbul ignore if */\n if (lib_isVue2) {\n // start as non ready\n partialStore._r = false;\n }\n const store = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.reactive)(( false) || USE_DEVTOOLS\n ? pinia_assign({\n _hmrPayload,\n _customProperties: (0,external_commonjs_vue_commonjs2_vue_root_Vue_.markRaw)(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = runWithContext(() => pinia._e.run(() => (scope = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.effectScope)()).run(setup)));\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if (((0,external_commonjs_vue_commonjs2_vue_root_Vue_.isRef)(prop) && !isComputed(prop)) || (0,external_commonjs_vue_commonjs2_vue_root_Vue_.isReactive)(prop)) {\n // mark it as a piece of state to be serialized\n if (false) {}\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.isRef)(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n /* istanbul ignore if */\n if (lib_isVue2) {\n lib_set(pinia.state.value[$id], key, prop);\n }\n else {\n pinia.state.value[$id][key] = prop;\n }\n }\n /* istanbul ignore else */\n if ((false)) {}\n // action\n }\n else if (typeof prop === 'function') {\n // @ts-expect-error: we are overriding the function we avoid wrapping if\n const actionValue = false ? 0 : wrapAction(key, prop);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n /* istanbul ignore if */\n if (lib_isVue2) {\n lib_set(setupStore, key, actionValue);\n }\n else {\n // @ts-expect-error\n setupStore[key] = actionValue;\n }\n /* istanbul ignore else */\n if ((false)) {}\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((false)) {}\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n if (lib_isVue2) {\n Object.keys(setupStore).forEach((key) => {\n lib_set(store, key, setupStore[key]);\n });\n }\n else {\n pinia_assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n pinia_assign((0,external_commonjs_vue_commonjs2_vue_root_Vue_.toRaw)(store), setupStore);\n }\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ( false ? 0 : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if (false) {}\n $patch(($state) => {\n pinia_assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\n if ((false)) {}\n if (USE_DEVTOOLS) {\n const nonEnumerable = {\n writable: true,\n configurable: true,\n // avoid warning on devtools trying to display this property\n enumerable: false,\n };\n ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n Object.defineProperty(store, p, pinia_assign({ value: store[p] }, nonEnumerable));\n });\n }\n /* istanbul ignore if */\n if (lib_isVue2) {\n // mark the store as ready before plugins\n store._r = true;\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if (USE_DEVTOOLS) {\n const extensions = scope.run(() => extender({\n store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n pinia_assign(store, extensions);\n }\n else {\n pinia_assign(store, scope.run(() => extender({\n store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if (false) {}\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\nfunction defineStore(\n// TODO: add proper types from above\nidOrOptions, setup, setupOptions) {\n let id;\n let options;\n const isSetupStore = typeof setup === 'function';\n if (typeof idOrOptions === 'string') {\n id = idOrOptions;\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n }\n else {\n options = idOrOptions;\n id = idOrOptions.id;\n if (false) {}\n }\n function useStore(pinia, hot) {\n const hasContext = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.hasInjectionContext)();\n pinia =\n // in test mode, ignore the argument provided as we can always retrieve a\n // pinia instance with getActivePinia()\n ( false ? 0 : pinia) ||\n (hasContext ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.inject)(piniaSymbol, null) : null);\n if (pinia)\n setActivePinia(pinia);\n if (false) {}\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((false)) {}\n }\n const store = pinia._s.get(id);\n if (false) {}\n if (false) {}\n // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if (false) {}\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = (/* unused pure expression or super */ null && (mapState));\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-ignore\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n // it's easier to type it here as any\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-ignore\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n // it's easier to type it here as any\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n // See https://github.com/vuejs/pinia/issues/852\n // It's easier to just use toRefs() even if it includes more stuff\n if (isVue2) {\n // @ts-expect-error: toRefs include methods and others\n return toRefs(store);\n }\n else {\n store = toRaw(store);\n const refs = {};\n for (const key in store) {\n const value = store[key];\n if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n }\n}\n\n/**\n * Vue 2 Plugin that must be installed for pinia to work. Note **you don't need\n * this plugin if you are using Nuxt.js**. Use the `buildModule` instead:\n * https://pinia.vuejs.org/ssr/nuxt.html.\n *\n * @example\n * ```js\n * import Vue from 'vue'\n * import { PiniaVuePlugin, createPinia } from 'pinia'\n *\n * Vue.use(PiniaVuePlugin)\n * const pinia = createPinia()\n *\n * new Vue({\n * el: '#app',\n * // ...\n * pinia,\n * })\n * ```\n *\n * @param _Vue - `Vue` imported from 'vue'.\n */\nconst PiniaVuePlugin = function (_Vue) {\n // Equivalent of\n // app.config.globalProperties.$pinia = pinia\n _Vue.mixin({\n beforeCreate() {\n const options = this.$options;\n if (options.pinia) {\n const pinia = options.pinia;\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/main/src/apis/inject.ts#L31\n /* istanbul ignore else */\n if (!this._provided) {\n const provideCache = {};\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: (v) => Object.assign(provideCache, v),\n });\n }\n this._provided[piniaSymbol] = pinia;\n // propagate the pinia instance in an SSR friendly way\n // avoid adding it to nuxt twice\n /* istanbul ignore else */\n if (!this.$pinia) {\n this.$pinia = pinia;\n }\n pinia._a = this;\n if (IS_CLIENT) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n }\n if (USE_DEVTOOLS) {\n registerPiniaDevtools(pinia._a, pinia);\n }\n }\n else if (!this.$pinia && options.parent && options.parent.$pinia) {\n this.$pinia = options.parent.$pinia;\n }\n },\n destroyed() {\n delete this._pStores;\n },\n });\n};\n\n\n\n;// CONCATENATED MODULE: ../astro/dist/src/index.js\n// Copyright 2020 the .NET Foundation\n// Licensed under the MIT License\n/** The mathematical constant pi, around 3.14. */\nvar PI = 3.14159265358979;\n/** Two times the mathematical constan pi, around 6.28. */\nvar TWOPI = 2 * PI;\n/** Radians-to-degrees conversion factor.\n *\n * ```\n * let degrees = radians * R2D;\n * ```\n */\nvar R2D = 180 / PI;\n/** Degrees-to-radians conversion factor.\n *\n * ```\n * let radians = degrees * D2R;\n * ```\n */\nvar D2R = PI / 180;\n/** Radians-to-hours conversion factor.\n *\n * ```\n * let hours = radians * R2H;\n * ```\n */\nvar R2H = 12 / PI;\n/** Hours-to-radians conversion factor.\n *\n * ```\n * let radians = hours * H2R;\n * ```\n */\nvar H2R = PI / 12;\n/** Degrees-to-hours conversion factor.\n *\n * ```\n * let hours = degrees * D2H;\n * ```\n */\nvar D2H = 12. / 180;\n/** Hours-to-degrees conversion factor.\n *\n * ```\n * let degrees = hours * H2D;\n * ```\n */\nvar H2D = 15;\n/** Normalize an angle in radians to lie between 0 and 2pi.\n *\n * @param angleRad The input angle, in radians.\n * @returns An equivalent angle, also in radians.\n */\nfunction angnorm(angleRad) {\n while (angleRad < 0)\n angleRad += TWOPI;\n while (angleRad >= TWOPI)\n angleRad -= TWOPI;\n return angleRad;\n}\n/**\n * Find the great-circle distance between two points\n *\n * This implementation uses a special case of the Vincenty formula\n * See the last formula in https://en.wikipedia.org/wiki/Great-circle_distance#Computational_formulas\n *\n * @param ra1 The right ascension of the first point, in radians\n * @param dec1 The declination of the first point, in radians\n * @param ra2 The right ascension of the second point, in radians\n * @param dec2 The declination of the second point, in radians\n * @returns The great-circle distance\n */\nfunction distance(ra1, dec1, ra2, dec2) {\n var dAbsRA = Math.abs(ra1 - ra2);\n var nt1 = Math.pow((Math.cos(dec2) * Math.sin(dAbsRA)), 2);\n var nt2 = Math.pow((Math.cos(dec1) * Math.sin(dec2) - Math.sin(dec1) * Math.cos(dec2) * Math.cos(dAbsRA)), 2);\n var num = Math.sqrt(nt1 + nt2);\n var den = Math.sin(dec1) * Math.sin(dec2) + Math.cos(dec1) * Math.cos(dec2) * Math.cos(dAbsRA);\n return Math.atan2(num, den);\n}\nfunction _formatSexagesimal(value, showPlus, padWhole, sep1, sep2, precision) {\n var prefix = \"\";\n if (value < 0) {\n value = -value;\n prefix = \"-\";\n }\n else if (showPlus) {\n prefix = \"+\";\n }\n var whole = Math.floor(value);\n value = (value - whole) * 60;\n var minutes = Math.floor(value);\n value = (value - minutes) * 60;\n var seconds = Math.floor(value);\n var remainder = value - seconds;\n var wText = String(whole).padStart(padWhole, '0');\n var mText = String(minutes).padStart(2, '0');\n var sText = String(seconds).padStart(2, '0');\n var rText = remainder.toFixed(precision).slice(1); // drop the leading \"0\"\n return \"\".concat(prefix).concat(wText).concat(sep1).concat(mText).concat(sep2).concat(sText).concat(rText);\n}\n/** Format an angle, measured in radians, as sexagesimal hours.\n *\n * Before formatting, the angle is normalized to lie within 0-2pi.\n *\n * @param angleRad The angle in radians.\n * @param sep1 The text to put between the hours and the minutes. Defaults to\n * `\":\"`.\n * @param sep2 The text to put between the minutes and the seconds. Defaults to\n * `\":\"`.\n * @param precision The number of places of decimal precision to include in the\n * result. Defaults to 0.\n * @returns The formatted angle.\n */\nfunction fmtHours(angleRad, sep1, sep2, precision) {\n if (sep1 === void 0) { sep1 = \":\"; }\n if (sep2 === void 0) { sep2 = \":\"; }\n if (precision === void 0) { precision = 0; }\n return _formatSexagesimal(angnorm(angleRad) * R2H, false, 2, sep1, sep2, precision);\n}\n/** Format a latitudinal angle, measured in radians, as sexagesimal degrees.\n *\n * If the number is not in the range [-pi, pi], `\" ??${sep1}??${sep2}??\"` is\n * returned.\n *\n * @param angleRad The latitude in radians.\n * @param sep1 The text to put between the degrees and the arcminutes. Defaults\n * to `\":\"`.\n * @param sep2 The text to put between the arcminutes and the arcseconds.\n * Defaults to `\":\"`.\n * @param precision The number of places of decimal precision to include in the\n * result. Defaults to 0.\n * @returns The formatted angle.\n */\nfunction fmtDegLat(angleRad, sep1, sep2, precision) {\n if (sep1 === void 0) { sep1 = \":\"; }\n if (sep2 === void 0) { sep2 = \":\"; }\n if (precision === void 0) { precision = 0; }\n if (angleRad < -PI || angleRad > PI)\n return \" ??\".concat(sep1, \"??\").concat(sep2, \"??\");\n return _formatSexagesimal(angleRad * R2D, true, 2, sep1, sep2, precision);\n}\n/** Format a longitudinal angle, measured in radians, as sexagesimal degrees.\n *\n * Before formatting, the angle is normalized to lie within 0-2pi. The output\n * will be zero-padded to three digits, e.g. `\"000:01:30\"` or `\"359:59:59.123\"`.\n *\n * @param angleRad The longitude in radians.\n * @param sep1 The text to put between the degrees and the arcminutes. Defaults\n * to `\":\"`.\n * @param sep2 The text to put between the arcminutes and the arcseconds.\n * Defaults to `\":\"`.\n * @param precision The number of places of decimal precision to include in the\n * result. Defaults to 0.\n * @returns The formatted angle.\n */\nfunction fmtDegLon(angleRad, sep1, sep2, precision) {\n if (sep1 === void 0) { sep1 = \":\"; }\n if (sep2 === void 0) { sep2 = \":\"; }\n if (precision === void 0) { precision = 0; }\n return _formatSexagesimal(angnorm(angleRad) * R2D, false, 3, sep1, sep2, precision);\n}\n//# sourceMappingURL=index.js.map\n;// CONCATENATED MODULE: ../engine-types/dist/src/index.js\n/* eslint-disable no-unused-vars */\n\n// Copyright 2020-2021 the .NET Foundation\n// Licensed under the MIT License\n//\n// Based types used in the WWT WebGL engine.\n//\n// Try to keep everything alphabetized.\nvar AltTypes;\n(function (AltTypes) {\n AltTypes[AltTypes[\"depth\"] = 0] = \"depth\";\n AltTypes[AltTypes[\"altitude\"] = 1] = \"altitude\";\n AltTypes[AltTypes[\"distance\"] = 2] = \"distance\";\n AltTypes[AltTypes[\"seaLevel\"] = 3] = \"seaLevel\";\n AltTypes[AltTypes[\"terrain\"] = 4] = \"terrain\";\n})(AltTypes || (AltTypes = {}));\nvar AltUnits;\n(function (AltUnits) {\n AltUnits[AltUnits[\"meters\"] = 1] = \"meters\";\n AltUnits[AltUnits[\"feet\"] = 2] = \"feet\";\n AltUnits[AltUnits[\"inches\"] = 3] = \"inches\";\n AltUnits[AltUnits[\"miles\"] = 4] = \"miles\";\n AltUnits[AltUnits[\"kilometers\"] = 5] = \"kilometers\";\n AltUnits[AltUnits[\"astronomicalUnits\"] = 6] = \"astronomicalUnits\";\n AltUnits[AltUnits[\"lightYears\"] = 7] = \"lightYears\";\n AltUnits[AltUnits[\"parsecs\"] = 8] = \"parsecs\";\n AltUnits[AltUnits[\"megaParsecs\"] = 9] = \"megaParsecs\";\n AltUnits[AltUnits[\"custom\"] = 10] = \"custom\";\n})(AltUnits || (AltUnits = {}));\nvar BandPass;\n(function (BandPass) {\n BandPass[BandPass[\"gamma\"] = 0] = \"gamma\";\n BandPass[BandPass[\"xRay\"] = 1] = \"xRay\";\n BandPass[BandPass[\"ultraviolet\"] = 2] = \"ultraviolet\";\n BandPass[BandPass[\"visible\"] = 3] = \"visible\";\n BandPass[BandPass[\"hydrogenAlpha\"] = 4] = \"hydrogenAlpha\";\n BandPass[BandPass[\"IR\"] = 4] = \"IR\";\n BandPass[BandPass[\"microwave\"] = 5] = \"microwave\";\n BandPass[BandPass[\"radio\"] = 6] = \"radio\";\n BandPass[BandPass[\"visibleNight\"] = 6] = \"visibleNight\";\n})(BandPass || (BandPass = {}));\nvar Classification;\n(function (Classification) {\n Classification[Classification[\"star\"] = 1] = \"star\";\n Classification[Classification[\"supernova\"] = 2] = \"supernova\";\n Classification[Classification[\"blackHole\"] = 4] = \"blackHole\";\n Classification[Classification[\"neutronStar\"] = 8] = \"neutronStar\";\n Classification[Classification[\"doubleStar\"] = 16] = \"doubleStar\";\n Classification[Classification[\"multipleStars\"] = 32] = \"multipleStars\";\n Classification[Classification[\"asterism\"] = 64] = \"asterism\";\n Classification[Classification[\"constellation\"] = 128] = \"constellation\";\n Classification[Classification[\"openCluster\"] = 256] = \"openCluster\";\n Classification[Classification[\"globularCluster\"] = 512] = \"globularCluster\";\n Classification[Classification[\"nebulousCluster\"] = 1024] = \"nebulousCluster\";\n Classification[Classification[\"nebula\"] = 2048] = \"nebula\";\n Classification[Classification[\"emissionNebula\"] = 4096] = \"emissionNebula\";\n Classification[Classification[\"planetaryNebula\"] = 8192] = \"planetaryNebula\";\n Classification[Classification[\"reflectionNebula\"] = 16384] = \"reflectionNebula\";\n Classification[Classification[\"darkNebula\"] = 32768] = \"darkNebula\";\n Classification[Classification[\"giantMolecularCloud\"] = 65536] = \"giantMolecularCloud\";\n Classification[Classification[\"supernovaRemnant\"] = 131072] = \"supernovaRemnant\";\n Classification[Classification[\"interstellarDust\"] = 262144] = \"interstellarDust\";\n Classification[Classification[\"quasar\"] = 524288] = \"quasar\";\n Classification[Classification[\"galaxy\"] = 1048576] = \"galaxy\";\n Classification[Classification[\"spiralGalaxy\"] = 2097152] = \"spiralGalaxy\";\n Classification[Classification[\"irregularGalaxy\"] = 4194304] = \"irregularGalaxy\";\n Classification[Classification[\"ellipticalGalaxy\"] = 8388608] = \"ellipticalGalaxy\";\n Classification[Classification[\"knot\"] = 16777216] = \"knot\";\n Classification[Classification[\"plateDefect\"] = 33554432] = \"plateDefect\";\n Classification[Classification[\"clusterOfGalaxies\"] = 67108864] = \"clusterOfGalaxies\";\n Classification[Classification[\"otherNGC\"] = 134217728] = \"otherNGC\";\n Classification[Classification[\"unidentified\"] = 268435456] = \"unidentified\";\n Classification[Classification[\"solarSystem\"] = 536870912] = \"solarSystem\";\n Classification[Classification[\"unfiltered\"] = 1073741823] = \"unfiltered\";\n Classification[Classification[\"stellar\"] = 63] = \"stellar\";\n Classification[Classification[\"stellarGroupings\"] = 2032] = \"stellarGroupings\";\n Classification[Classification[\"nebulae\"] = 523264] = \"nebulae\";\n Classification[Classification[\"galactic\"] = 133693440] = \"galactic\";\n Classification[Classification[\"other\"] = 436207616] = \"other\";\n})(Classification || (Classification = {}));\nvar CoordinatesType;\n(function (CoordinatesType) {\n CoordinatesType[CoordinatesType[\"spherical\"] = 0] = \"spherical\";\n CoordinatesType[CoordinatesType[\"rectangular\"] = 1] = \"rectangular\";\n CoordinatesType[CoordinatesType[\"orbital\"] = 2] = \"orbital\";\n})(CoordinatesType || (CoordinatesType = {}));\nvar DataTypes;\n(function (DataTypes) {\n DataTypes[DataTypes[\"byteT\"] = 0] = \"byteT\";\n DataTypes[DataTypes[\"int16T\"] = 1] = \"int16T\";\n DataTypes[DataTypes[\"int32T\"] = 2] = \"int32T\";\n DataTypes[DataTypes[\"floatT\"] = 3] = \"floatT\";\n DataTypes[DataTypes[\"doubleT\"] = 4] = \"doubleT\";\n DataTypes[DataTypes[\"none\"] = 5] = \"none\";\n})(DataTypes || (DataTypes = {}));\nvar FadeType;\n(function (FadeType) {\n FadeType[FadeType[\"fadeIn\"] = 1] = \"fadeIn\";\n FadeType[FadeType[\"fadeOut\"] = 2] = \"fadeOut\";\n FadeType[FadeType[\"both\"] = 3] = \"both\";\n FadeType[FadeType[\"none\"] = 4] = \"none\";\n})(FadeType || (FadeType = {}));\nvar FolderGroup;\n(function (FolderGroup) {\n FolderGroup[FolderGroup[\"explorer\"] = 0] = \"explorer\";\n FolderGroup[FolderGroup[\"tour\"] = 1] = \"tour\";\n FolderGroup[FolderGroup[\"search\"] = 2] = \"search\";\n FolderGroup[FolderGroup[\"constellation\"] = 3] = \"constellation\";\n FolderGroup[FolderGroup[\"view\"] = 4] = \"view\";\n FolderGroup[FolderGroup[\"goTo\"] = 5] = \"goTo\";\n FolderGroup[FolderGroup[\"community\"] = 6] = \"community\";\n FolderGroup[FolderGroup[\"context\"] = 7] = \"context\";\n FolderGroup[FolderGroup[\"voTable\"] = 8] = \"voTable\";\n FolderGroup[FolderGroup[\"imageStack\"] = 9] = \"imageStack\";\n})(FolderGroup || (FolderGroup = {}));\nvar FolderRefreshType;\n(function (FolderRefreshType) {\n FolderRefreshType[FolderRefreshType[\"interval\"] = 0] = \"interval\";\n FolderRefreshType[FolderRefreshType[\"conditionalGet\"] = 1] = \"conditionalGet\";\n FolderRefreshType[FolderRefreshType[\"viewChange\"] = 2] = \"viewChange\";\n})(FolderRefreshType || (FolderRefreshType = {}));\nvar FolderType;\n(function (FolderType) {\n FolderType[FolderType[\"earth\"] = 0] = \"earth\";\n FolderType[FolderType[\"planet\"] = 1] = \"planet\";\n FolderType[FolderType[\"sky\"] = 2] = \"sky\";\n FolderType[FolderType[\"panorama\"] = 3] = \"panorama\";\n})(FolderType || (FolderType = {}));\nvar ImageSetType;\n(function (ImageSetType) {\n ImageSetType[ImageSetType[\"earth\"] = 0] = \"earth\";\n ImageSetType[ImageSetType[\"planet\"] = 1] = \"planet\";\n ImageSetType[ImageSetType[\"sky\"] = 2] = \"sky\";\n ImageSetType[ImageSetType[\"panorama\"] = 3] = \"panorama\";\n ImageSetType[ImageSetType[\"solarSystem\"] = 4] = \"solarSystem\";\n ImageSetType[ImageSetType[\"sandbox\"] = 5] = \"sandbox\";\n})(ImageSetType || (ImageSetType = {}));\nvar MarkerScales;\n(function (MarkerScales) {\n MarkerScales[MarkerScales[\"screen\"] = 0] = \"screen\";\n MarkerScales[MarkerScales[\"world\"] = 1] = \"world\";\n})(MarkerScales || (MarkerScales = {}));\nvar PlotTypes;\n(function (PlotTypes) {\n PlotTypes[PlotTypes[\"gaussian\"] = 0] = \"gaussian\";\n PlotTypes[PlotTypes[\"point\"] = 1] = \"point\";\n PlotTypes[PlotTypes[\"circle\"] = 2] = \"circle\";\n PlotTypes[PlotTypes[\"square\"] = 3] = \"square\";\n PlotTypes[PlotTypes[\"pushPin\"] = 4] = \"pushPin\";\n PlotTypes[PlotTypes[\"custom\"] = 5] = \"custom\";\n})(PlotTypes || (PlotTypes = {}));\nvar PointScaleTypes;\n(function (PointScaleTypes) {\n PointScaleTypes[PointScaleTypes[\"linear\"] = 0] = \"linear\";\n PointScaleTypes[PointScaleTypes[\"power\"] = 1] = \"power\";\n PointScaleTypes[PointScaleTypes[\"log\"] = 2] = \"log\";\n PointScaleTypes[PointScaleTypes[\"constant\"] = 3] = \"constant\";\n PointScaleTypes[PointScaleTypes[\"stellarMagnitude\"] = 4] = \"stellarMagnitude\";\n})(PointScaleTypes || (PointScaleTypes = {}));\nvar ProjectionType;\n(function (ProjectionType) {\n ProjectionType[ProjectionType[\"mercator\"] = 0] = \"mercator\";\n ProjectionType[ProjectionType[\"equirectangular\"] = 1] = \"equirectangular\";\n ProjectionType[ProjectionType[\"tangent\"] = 2] = \"tangent\";\n ProjectionType[ProjectionType[\"tan\"] = 2] = \"tan\";\n ProjectionType[ProjectionType[\"toast\"] = 3] = \"toast\";\n ProjectionType[ProjectionType[\"spherical\"] = 4] = \"spherical\";\n ProjectionType[ProjectionType[\"skyImage\"] = 5] = \"skyImage\";\n ProjectionType[ProjectionType[\"plotted\"] = 6] = \"plotted\";\n})(ProjectionType || (ProjectionType = {}));\nvar RAUnits;\n(function (RAUnits) {\n RAUnits[RAUnits[\"hours\"] = 0] = \"hours\";\n RAUnits[RAUnits[\"degrees\"] = 1] = \"degrees\";\n})(RAUnits || (RAUnits = {}));\nvar ReferenceFrames;\n(function (ReferenceFrames) {\n ReferenceFrames[ReferenceFrames[\"sky\"] = 0] = \"sky\";\n ReferenceFrames[ReferenceFrames[\"ecliptic\"] = 1] = \"ecliptic\";\n ReferenceFrames[ReferenceFrames[\"galactic\"] = 2] = \"galactic\";\n ReferenceFrames[ReferenceFrames[\"sun\"] = 3] = \"sun\";\n ReferenceFrames[ReferenceFrames[\"mercury\"] = 4] = \"mercury\";\n ReferenceFrames[ReferenceFrames[\"venus\"] = 5] = \"venus\";\n ReferenceFrames[ReferenceFrames[\"earth\"] = 6] = \"earth\";\n ReferenceFrames[ReferenceFrames[\"mars\"] = 7] = \"mars\";\n ReferenceFrames[ReferenceFrames[\"jupiter\"] = 8] = \"jupiter\";\n ReferenceFrames[ReferenceFrames[\"saturn\"] = 9] = \"saturn\";\n ReferenceFrames[ReferenceFrames[\"uranus\"] = 10] = \"uranus\";\n ReferenceFrames[ReferenceFrames[\"neptune\"] = 11] = \"neptune\";\n ReferenceFrames[ReferenceFrames[\"pluto\"] = 12] = \"pluto\";\n ReferenceFrames[ReferenceFrames[\"moon\"] = 13] = \"moon\";\n ReferenceFrames[ReferenceFrames[\"io\"] = 14] = \"io\";\n ReferenceFrames[ReferenceFrames[\"europa\"] = 15] = \"europa\";\n ReferenceFrames[ReferenceFrames[\"ganymede\"] = 16] = \"ganymede\";\n ReferenceFrames[ReferenceFrames[\"callisto\"] = 17] = \"callisto\";\n ReferenceFrames[ReferenceFrames[\"custom\"] = 18] = \"custom\";\n ReferenceFrames[ReferenceFrames[\"identity\"] = 19] = \"identity\";\n ReferenceFrames[ReferenceFrames[\"sandbox\"] = 20] = \"sandbox\";\n})(ReferenceFrames || (ReferenceFrames = {}));\nvar ReferenceFrameTypes;\n(function (ReferenceFrameTypes) {\n ReferenceFrameTypes[ReferenceFrameTypes[\"fixedSherical\"] = 0] = \"fixedSherical\";\n ReferenceFrameTypes[ReferenceFrameTypes[\"orbital\"] = 1] = \"orbital\";\n ReferenceFrameTypes[ReferenceFrameTypes[\"trajectory\"] = 2] = \"trajectory\";\n ReferenceFrameTypes[ReferenceFrameTypes[\"synodic\"] = 3] = \"synodic\";\n})(ReferenceFrameTypes || (ReferenceFrameTypes = {}));\nvar ScaleTypes;\n(function (ScaleTypes) {\n ScaleTypes[ScaleTypes[\"linear\"] = 0] = \"linear\";\n ScaleTypes[ScaleTypes[\"log\"] = 1] = \"log\";\n ScaleTypes[ScaleTypes[\"power\"] = 2] = \"power\";\n ScaleTypes[ScaleTypes[\"squareRoot\"] = 3] = \"squareRoot\";\n ScaleTypes[ScaleTypes[\"histogramEqualization\"] = 4] = \"histogramEqualization\";\n})(ScaleTypes || (ScaleTypes = {}));\nvar SolarSystemObjects;\n(function (SolarSystemObjects) {\n SolarSystemObjects[SolarSystemObjects[\"sun\"] = 0] = \"sun\";\n SolarSystemObjects[SolarSystemObjects[\"mercury\"] = 1] = \"mercury\";\n SolarSystemObjects[SolarSystemObjects[\"venus\"] = 2] = \"venus\";\n SolarSystemObjects[SolarSystemObjects[\"mars\"] = 3] = \"mars\";\n SolarSystemObjects[SolarSystemObjects[\"jupiter\"] = 4] = \"jupiter\";\n SolarSystemObjects[SolarSystemObjects[\"saturn\"] = 5] = \"saturn\";\n SolarSystemObjects[SolarSystemObjects[\"uranus\"] = 6] = \"uranus\";\n SolarSystemObjects[SolarSystemObjects[\"neptune\"] = 7] = \"neptune\";\n SolarSystemObjects[SolarSystemObjects[\"pluto\"] = 8] = \"pluto\";\n SolarSystemObjects[SolarSystemObjects[\"moon\"] = 9] = \"moon\";\n SolarSystemObjects[SolarSystemObjects[\"io\"] = 10] = \"io\";\n SolarSystemObjects[SolarSystemObjects[\"europa\"] = 11] = \"europa\";\n SolarSystemObjects[SolarSystemObjects[\"ganymede\"] = 12] = \"ganymede\";\n SolarSystemObjects[SolarSystemObjects[\"callisto\"] = 13] = \"callisto\";\n SolarSystemObjects[SolarSystemObjects[\"ioShadow\"] = 14] = \"ioShadow\";\n SolarSystemObjects[SolarSystemObjects[\"europaShadow\"] = 15] = \"europaShadow\";\n SolarSystemObjects[SolarSystemObjects[\"ganymedeShadow\"] = 16] = \"ganymedeShadow\";\n SolarSystemObjects[SolarSystemObjects[\"callistoShadow\"] = 17] = \"callistoShadow\";\n SolarSystemObjects[SolarSystemObjects[\"sunEclipsed\"] = 18] = \"sunEclipsed\";\n SolarSystemObjects[SolarSystemObjects[\"earth\"] = 19] = \"earth\";\n SolarSystemObjects[SolarSystemObjects[\"custom\"] = 20] = \"custom\";\n SolarSystemObjects[SolarSystemObjects[\"undefined\"] = 65536] = \"undefined\";\n})(SolarSystemObjects || (SolarSystemObjects = {}));\n// I'm not aware of any smart TypeScripty way to automate the construction of this table :-(\nvar baseEngineSettingTypeInfo = {\n \"actualPlanetScale/boolean\": true,\n \"constellations/boolean\": true,\n \"constellationBoundryColor/string\": true,\n \"constellationFigureColor/string\": true,\n \"constellationsEnabled/string\": true,\n \"constellationSelectionColor/string\": true,\n \"crosshairsColor/string\": true,\n \"earthCutawayView/boolean\": true,\n //\"fovCamera/number\": true, // skipping because not settable\n //\"fovEyepiece/number\": true, // skipping because not settable\n //\"fovTelescope/number\": true, // skipping because not settable\n \"localHorizonMode/boolean\": true,\n \"galacticMode/boolean\": true,\n \"locationAltitude/number\": true,\n \"locationLat/number\": true,\n \"locationLng/number\": true,\n \"milkyWayModel/boolean\": true,\n \"showAltAzGrid/boolean\": true,\n \"showAltAzGridText/boolean\": true,\n //\"showClouds/boolean\": true, // skipping because not settable\n \"showConstellations/boolean\": true,\n \"showConstellationBoundries/boolean\": true,\n \"showConstellationFigures/boolean\": true,\n \"showConstellationLabels/boolean\": true,\n \"showConstellationPictures/boolean\": true,\n \"showConstellationSelection/boolean\": true,\n \"showCrosshairs/boolean\": true,\n \"showEarthSky/boolean\": true,\n \"showEcliptic/boolean\": true,\n \"showEclipticGrid/boolean\": true,\n \"showEclipticGridText/boolean\": true,\n \"showEclipticOverviewText/boolean\": true,\n \"showElevationModel/boolean\": true,\n \"showEquatorialGridText/boolean\": true,\n //\"showFieldOfView/boolean\": true, // skipping because not settable\n \"showGalacticGrid/boolean\": true,\n \"showGalacticGridText/boolean\": true,\n \"showGrid/boolean\": true,\n \"showHorizon/boolean\": true,\n //\"showHorizonPanorama/boolean\": true, // skipping because not settable\n \"showISSModel/boolean\": true,\n //\"showMoonsAsPointSource/boolean\": true, // skipping because not settable\n \"showPrecessionChart/boolean\": true,\n \"showSkyGrids/boolean\": true,\n \"showSkyNode/boolean\": true,\n \"showSkyOverlays/boolean\": true,\n \"showSkyOverlaysIn3d/boolean\": true,\n \"showSolarSystem/boolean\": true,\n \"smoothPan/boolean\": true,\n \"solarSystemCMB/boolean\": true,\n \"solarSystemCosmos/boolean\": true,\n \"solarSystemMilkyWay/boolean\": true,\n \"solarSystemOrbits/boolean\": true,\n \"solarSystemOverlays/boolean\": true,\n \"solarSystemLighting/boolean\": true,\n \"solarSystemMultiRes/boolean\": true,\n \"solarSystemMinorPlanets/boolean\": true,\n \"solarSystemMinorOrbits/boolean\": true,\n \"solarSystemPlanets/boolean\": true,\n \"solarSystemStars/boolean\": true,\n \"minorPlanetsFilter/number\": true,\n \"planetOrbitsFilter/number\": true,\n \"solarSystemScale/number\": true,\n};\n/** Type guard function for BaseEngineSetting. */\nfunction src_isBaseEngineSetting(obj) {\n var key = obj[0] + \"/\" + typeof obj[1];\n return (key in baseEngineSettingTypeInfo);\n}\nvar baseLayerSettingTypeInfo = {\n \"astronomical/boolean\": true,\n \"enabled/boolean\": true,\n \"fadeSpan/number\": true,\n \"name/string\": true,\n \"opacity/number\": true,\n \"opened/boolean\": true,\n \"referenceFrame/string\": true,\n \"version/number\": true,\n};\n/** Type guard function for BaseLayerSetting. */\nfunction src_isBaseLayerSetting(obj) {\n var key = obj[0] + \"/\" + typeof obj[1];\n return key in baseLayerSettingTypeInfo;\n}\nvar baseImageSetLayerSettingTypeInfo = {\n \"colorMapperName/string\": true,\n \"overrideDefaultLayer/boolean\": true,\n};\n/** Type guard function for BaseImageSetLayerSetting. */\nfunction src_isBaseImageSetLayerSetting(obj) {\n var key = obj[0] + \"/\" + typeof obj[1];\n return (key in baseImageSetLayerSettingTypeInfo) || src_isBaseLayerSetting(obj);\n}\n// See implementation below -- we need to handle enums specially\n// to make sure that inputs are in-range.\nvar baseSpreadSheetLayerSettingTypeInfo = {\n \"altColumn/number\": \"\",\n \"altType/number\": \"AltTypes\",\n \"altUnit/number\": \"AltUnits\",\n \"barChartBitmask/number\": \"\",\n \"beginRange/Date\": \"\",\n \"cartesianCustomScale/number\": \"\",\n \"cartesianScale/number\": \"AltUnits\",\n \"colorMapColumn/number\": \"\",\n \"colorMapperName/string\": \"\",\n \"coordinatesType/number\": \"CoordinatesType\",\n \"decay/number\": \"\",\n \"dynamicColor/boolean\": \"\",\n \"dynamicData/boolean\": \"\",\n \"endDateColumn/number\": \"\",\n \"endRange/Date\": \"\",\n \"geometryColumn/number\": \"\",\n \"hyperlinkColumn/number\": \"\",\n \"hyperlinkFormat/string\": \"\",\n \"latColumn/number\": \"\",\n \"lngColumn/number\": \"\",\n \"markerColumn/number\": \"\",\n \"markerIndex/number\": \"\",\n \"markerScale/number\": \"\",\n \"nameColumn/number\": \"\",\n \"normalizeColorMap/boolean\": \"\",\n \"normalizeColorMapMax/number\": \"\",\n \"normalizeColorMapMin/number\": \"\",\n \"normalizeSize/boolean\": \"\",\n \"normalizeSizeClip/boolean\": \"\",\n \"normalizeSizeMax/number\": \"\",\n \"normalizeSizeMin/number\": \"\",\n \"plotType/number\": \"PlotTypes\",\n \"pointScaleType/number\": \"PointScaleTypes\",\n \"raUnits/number\": \"RAUnits\",\n \"scaleFactor/number\": \"\",\n \"showFarSide/boolean\": \"\",\n \"sizeColumn/number\": \"\",\n \"startDateColumn/number\": \"\",\n \"timeSeries/boolean\": \"\",\n \"xAxisColumn/number\": \"\",\n \"xAxisReverse/boolean\": \"\",\n \"yAxisColumn/number\": \"\",\n \"yAxisReverse/boolean\": \"\",\n \"zAxisColumn/number\": \"\",\n \"zAxisReverse/boolean\": \"\",\n};\n/** Type guard function for BaseSpreadSheetLayerSetting. */\nfunction src_isBaseSpreadSheetLayerSetting(obj) {\n if (src_isBaseLayerSetting(obj))\n return true;\n // We want to be able to properly recognize Date objects\n var type = obj[1] instanceof Date ? 'Date' : typeof obj[1];\n var key = obj[0] + \"/\" + type;\n var enumType = baseSpreadSheetLayerSettingTypeInfo[key];\n if (enumType === undefined) {\n return false;\n }\n else if (enumType == \"\") {\n return true;\n }\n else if (enumType == \"AltTypes\") {\n return obj[1] in AltTypes;\n }\n else if (enumType == \"AltUnits\") {\n return obj[1] in AltUnits;\n }\n else if (enumType == \"CoordinatesType\") {\n return obj[1] in CoordinatesType;\n }\n else if (enumType == \"PlotTypes\") {\n return obj[1] in PlotTypes;\n }\n else if (enumType == \"PointScaleTypes\") {\n return obj[1] in PointScaleTypes;\n }\n else if (enumType == \"RAUnits\") {\n return obj[1] in RAUnits;\n }\n else {\n throw new Error('internal bug isBaseSpreadSheetLayerSetting');\n }\n}\n// See implementation below -- we need to handle enums specially\n// to make sure that inputs are in-range.\nvar baseVoTableLayerSettingTypeInfo = {\n \"altColumn/number\": \"\",\n \"altType/number\": \"AltTypes\",\n \"altUnit/number\": \"AltUnits\",\n \"beginRange/Date\": \"\",\n \"cartesianCustomScale/number\": \"\",\n \"cartesianScale/number\": \"AltUnits\",\n \"colorMapColumn/number\": \"\",\n \"coordinatesType/number\": \"CoordinatesType\",\n \"dataSourceUrl/string\": \"\",\n \"decay/number\": \"\",\n \"dynamicData/boolean\": \"\",\n \"endDateColumn/number\": \"\",\n \"endRange/Date\": \"\",\n \"hyperlinkColumn/number\": \"\",\n \"hyperlinkFormat/string\": \"\",\n \"latColumn/number\": \"\",\n \"lngColumn/number\": \"\",\n \"markerColumn/number\": \"\",\n \"markerIndex/number\": \"\",\n \"markerScale/number\": \"\",\n \"nameColumn/number\": \"\",\n \"plotType/number\": \"PlotTypes\",\n \"pointScaleType/number\": \"PointScaleTypes\",\n \"raUnits/number\": \"RAUnits\",\n \"scaleFactor/number\": \"\",\n \"showFarSide/boolean\": \"\",\n \"sizeColumn/number\": \"\",\n \"startDateColumn/number\": \"\",\n \"timeSeries/boolean\": \"\",\n \"xAxisColumn/number\": \"\",\n \"xAxisReverse/boolean\": \"\",\n \"yAxisColumn/number\": \"\",\n \"yAxisReverse/boolean\": \"\",\n \"zAxisColumn/number\": \"\",\n \"zAxisReverse/boolean\": \"\",\n};\n/** Type guard function for BaseVoTableLayerSetting. */\nfunction src_isBaseVoTableLayerSetting(obj) {\n if (src_isBaseLayerSetting(obj))\n return true;\n var key = obj[0] + \"/\" + typeof obj[1];\n var enumType = baseVoTableLayerSettingTypeInfo[key];\n if (enumType === undefined) {\n return false;\n }\n else if (enumType == \"\") {\n return true;\n }\n else if (enumType == \"AltTypes\") {\n return obj[1] in AltTypes;\n }\n else if (enumType == \"AltUnits\") {\n return obj[1] in AltUnits;\n }\n else if (enumType == \"CoordinatesType\") {\n return obj[1] in CoordinatesType;\n }\n else if (enumType == \"PlotTypes\") {\n return obj[1] in PlotTypes;\n }\n else if (enumType == \"PointScaleTypes\") {\n return obj[1] in PointScaleTypes;\n }\n else if (enumType == \"RAUnits\") {\n return obj[1] in RAUnits;\n }\n else {\n throw new Error('internal bug isBaseVoTableLayerSetting');\n }\n}\nfunction keysOf(o) { return Object.keys(o); } // eslint-disable-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/no-explicit-any\nfunction enumLookup(stringEnum, s) {\n var e_1, _a;\n try {\n for (var _b = __values(keysOf(stringEnum)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var enumKey = _c.value;\n if (stringEnum[enumKey] === s) {\n return stringEnum[enumKey];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return undefined;\n}\n//# sourceMappingURL=index.js.map\n// EXTERNAL MODULE: external {\"amd\":\"@wwtelescope/engine\",\"commonjs2\":\"@wwtelescope/engine\",\"commonjs\":\"@wwtelescope/engine\",\"root\":\"wwtlib\"}\nvar engine_root_wwtlib_ = __webpack_require__(19);\n;// CONCATENATED MODULE: ../engine-helpers/dist/src/layer.js\n// Copyright 2020-2021 the .NET Foundation\n// Licensed under the MIT License\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/** Helpers for handling generic layers settings. */\n\n\n/** A list of the names of the available settings for generic layers. */\nvar layerSettingNames = [\n \"astronomical\",\n \"color\",\n \"enabled\",\n \"fadeSpan\",\n \"name\",\n \"opacity\",\n \"opened\",\n \"referenceFrame\",\n \"version\",\n];\nvar layerSettingTypeInfo = {\n \"color/Color\": true,\n};\n/** Type guard function for `LayerSetting`. */\nfunction layer_isLayerSetting(obj) {\n var typekey = typeof obj[1];\n if (obj[1] instanceof Color) {\n typekey = \"Color\";\n }\n var key = obj[0] + \"/\" + typekey;\n return (key in layerSettingTypeInfo) || isBaseLayerSetting(obj);\n}\n/** Apply a setting to a generic `Layer` or equivalent. */\nfunction applyLayerSetting(layer, setting) {\n var funcName = \"set_\" + setting[0];\n var value = setting[1];\n layer[funcName](value);\n}\n/** Extract all of the current settings of a `Layer` or equivalent. */\nfunction layer_extractLayerSettings(layer) {\n var e_1, _a;\n var s = [];\n try {\n for (var layerSettingNames_1 = __values(layerSettingNames), layerSettingNames_1_1 = layerSettingNames_1.next(); !layerSettingNames_1_1.done; layerSettingNames_1_1 = layerSettingNames_1.next()) {\n var n = layerSettingNames_1_1.value;\n s.push([n, layer[\"get_\" + n]()]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (layerSettingNames_1_1 && !layerSettingNames_1_1.done && (_a = layerSettingNames_1.return)) _a.call(layerSettingNames_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return s;\n}\n/** Copy settings from one `Layer`, or equivalent, to another. */\nfunction copyLayerSettings(source, dest) {\n var e_2, _a;\n try {\n for (var layerSettingNames_2 = tslib_es6_values(layerSettingNames), layerSettingNames_2_1 = layerSettingNames_2.next(); !layerSettingNames_2_1.done; layerSettingNames_2_1 = layerSettingNames_2.next()) {\n var n = layerSettingNames_2_1.value;\n dest[\"set_\" + n](source[\"get_\" + n]());\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (layerSettingNames_2_1 && !layerSettingNames_2_1.done && (_a = layerSettingNames_2.return)) _a.call(layerSettingNames_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\n/** A plain-old-data class implementing `LayerSettingsInterface`. */\nvar LayerState = /** @class */ (function () {\n // Maybe possible to use remapped keys to create this type?:\n // https://www.typescriptlang.org/docs/handbook/2/mapped-types.html#key-remapping-via-as\n // Don't think we can implement functions, though, and we're currently (Aug\n // 2021) on TypeScript 3.9, while the above requires 4.1.\n function LayerState(source) {\n copyLayerSettings(source, this);\n }\n LayerState.prototype.get_astronomical = function () {\n return this.astronomical;\n };\n LayerState.prototype.set_astronomical = function (v) {\n this.astronomical = v;\n return v;\n };\n LayerState.prototype.get_color = function () {\n return this.color;\n };\n LayerState.prototype.set_color = function (v) {\n this.color = v;\n return v;\n };\n LayerState.prototype.get_enabled = function () {\n return this.enabled;\n };\n LayerState.prototype.set_enabled = function (v) {\n this.enabled = v;\n return v;\n };\n LayerState.prototype.get_endTime = function () {\n return this.endTime;\n };\n LayerState.prototype.set_endTime = function (v) {\n this.endTime = v;\n return v;\n };\n LayerState.prototype.get_fadeSpan = function () {\n return this.fadeSpan;\n };\n LayerState.prototype.set_fadeSpan = function (v) {\n this.fadeSpan = v;\n return v;\n };\n LayerState.prototype.get_fadeType = function () {\n return this.fadeType;\n };\n LayerState.prototype.set_fadeType = function (v) {\n this.fadeType = v;\n return v;\n };\n LayerState.prototype.get_name = function () {\n return this.name;\n };\n LayerState.prototype.set_name = function (v) {\n this.name = v;\n return v;\n };\n LayerState.prototype.get_opacity = function () {\n return this.opacity;\n };\n LayerState.prototype.set_opacity = function (v) {\n this.opacity = v;\n return v;\n };\n LayerState.prototype.get_opened = function () {\n return this.opened;\n };\n LayerState.prototype.set_opened = function (v) {\n this.opened = v;\n return v;\n };\n LayerState.prototype.get_referenceFrame = function () {\n return this.referenceFrame;\n };\n LayerState.prototype.set_referenceFrame = function (v) {\n this.referenceFrame = v;\n return v;\n };\n LayerState.prototype.get_startTime = function () {\n return this.startTime;\n };\n LayerState.prototype.set_startTime = function (v) {\n this.startTime = v;\n return v;\n };\n LayerState.prototype.get_version = function () {\n return this.version;\n };\n LayerState.prototype.set_version = function (v) {\n this.version = v;\n return v;\n };\n return LayerState;\n}());\n\n//# sourceMappingURL=layer.js.map\n;// CONCATENATED MODULE: ../engine-helpers/dist/src/imagesetlayer.js\n// Copyright 2020-2021 the .NET Foundation\n// Licensed under the MIT License\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/** Helpers for handling imageset layer settings. */\n\n\nvar justImageSetLayerSettingNames = [\n \"colorMapperName\",\n \"overrideDefaultLayer\",\n];\n/** A list of the names of the available settings for `ImageSetLayer`\n * instances and their equivalents (things implementing\n * {@link ImageSetLayerSettingsInterface}).\n *\n * This is a superset of the names available for generic layers.\n*/\nvar imageSetLayerSettingNames = layerSettingNames.concat(justImageSetLayerSettingNames);\n/** Type guard function for `ImageSetLayerSetting`. */\nfunction isImageSetLayerSetting(obj) {\n // No special settings specific to non-base ImageSetLayerSetting.\n return isLayerSetting(obj) || isBaseImageSetLayerSetting(obj);\n}\n/** Apply a setting to a `ImageSetLayer` or equivalent. */\nfunction applyImageSetLayerSetting(layer, setting) {\n var funcName = \"set_\" + setting[0];\n var value = setting[1];\n layer[funcName](value);\n}\n/** Extract all of the current settings of a `ImageSetLayer` or equivalent. */\nfunction extractImageSetLayerSettings(layer) {\n var e_1, _a;\n var s = extractLayerSettings(layer);\n try {\n for (var justImageSetLayerSettingNames_1 = __values(justImageSetLayerSettingNames), justImageSetLayerSettingNames_1_1 = justImageSetLayerSettingNames_1.next(); !justImageSetLayerSettingNames_1_1.done; justImageSetLayerSettingNames_1_1 = justImageSetLayerSettingNames_1.next()) {\n var n = justImageSetLayerSettingNames_1_1.value;\n s.push([n, layer[\"get_\" + n]()]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (justImageSetLayerSettingNames_1_1 && !justImageSetLayerSettingNames_1_1.done && (_a = justImageSetLayerSettingNames_1.return)) _a.call(justImageSetLayerSettingNames_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return s;\n}\n/** Copy settings from one `ImageSetLayer`, or equivalent, to another. */\nfunction copyImageSetLayerSettings(source, dest) {\n var e_2, _a;\n copyLayerSettings(source, dest);\n try {\n for (var justImageSetLayerSettingNames_2 = tslib_es6_values(justImageSetLayerSettingNames), justImageSetLayerSettingNames_2_1 = justImageSetLayerSettingNames_2.next(); !justImageSetLayerSettingNames_2_1.done; justImageSetLayerSettingNames_2_1 = justImageSetLayerSettingNames_2.next()) {\n var n = justImageSetLayerSettingNames_2_1.value;\n dest[\"set_\" + n](source[\"get_\" + n]());\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (justImageSetLayerSettingNames_2_1 && !justImageSetLayerSettingNames_2_1.done && (_a = justImageSetLayerSettingNames_2.return)) _a.call(justImageSetLayerSettingNames_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\n/** A plain-old-data class implementing `ImageSetLayerSettingsInterface`. */\nvar imagesetlayer_ImageSetLayerState = /** @class */ (function (_super) {\n __extends(ImageSetLayerState, _super);\n function ImageSetLayerState(source) {\n var _this = \n // Here we redundantly copy the generic Layer settings, but TypeScript\n // requires the super() call. Oh well.\n _super.call(this, source) || this;\n copyImageSetLayerSettings(source, _this);\n return _this;\n }\n ImageSetLayerState.prototype.get_colorMapperName = function () {\n return this.colorMapperName;\n };\n ImageSetLayerState.prototype.set_colorMapperName = function (v) {\n this.colorMapperName = v;\n return v;\n };\n ImageSetLayerState.prototype.get_overrideDefaultLayer = function () {\n return this.overrideDefaultLayer;\n };\n ImageSetLayerState.prototype.set_overrideDefaultLayer = function (v) {\n this.overrideDefaultLayer = v;\n return v;\n };\n return ImageSetLayerState;\n}(LayerState));\n\n//# sourceMappingURL=imagesetlayer.js.map\n;// CONCATENATED MODULE: ../engine-helpers/dist/src/spreadsheetlayer.js\n// Copyright 2020-2021 the .NET Foundation\n// Licensed under the MIT License\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/** Helpers for handling \"spreadsheet\" layer settings. */\n\n\nvar justSpreadSheetLayerSettingNames = [\n \"altColumn\",\n \"altType\",\n \"altUnit\",\n \"barChartBitmask\",\n \"beginRange\",\n \"cartesianCustomScale\",\n \"cartesianScale\",\n \"colorMapColumn\",\n \"colorMapperName\",\n \"coordinatesType\",\n \"decay\",\n \"dynamicColor\",\n \"dynamicData\",\n \"endDateColumn\",\n \"endRange\",\n \"geometryColumn\",\n \"hyperlinkColumn\",\n \"hyperlinkFormat\",\n \"latColumn\",\n \"lngColumn\",\n \"markerColumn\",\n \"markerIndex\",\n \"markerScale\",\n \"nameColumn\",\n \"normalizeColorMap\",\n \"normalizeColorMapMax\",\n \"normalizeColorMapMin\",\n \"normalizeSize\",\n \"normalizeSizeClip\",\n \"normalizeSizeMax\",\n \"normalizeSizeMin\",\n \"plotType\",\n \"pointScaleType\",\n \"raUnits\",\n \"scaleFactor\",\n \"showFarSide\",\n \"sizeColumn\",\n \"startDateColumn\",\n \"timeSeries\",\n \"xAxisColumn\",\n \"xAxisReverse\",\n \"yAxisColumn\",\n \"yAxisReverse\",\n \"zAxisColumn\",\n \"zAxisReverse\",\n];\n/** A list of the names of the available settings for `SpreadSheetLayer`\n * instances and their equivalents (things implementing\n * {@link SpreadSheetLayerSettingsInterface}).\n *\n * This is a superset of the names available for generic layers.\n*/\nvar spreadSheetLayerSettingNames = layerSettingNames.concat(justSpreadSheetLayerSettingNames);\n/** Type guard function for `SpreadSheetLayerSetting`. */\nfunction isSpreadSheetLayerSetting(obj) {\n // No special settings specific to non-base SpreadSheetLayerSetting.\n return isLayerSetting(obj) || isBaseSpreadSheetLayerSetting(obj);\n}\n/** Apply a setting to a `SpreadSheetLayer` or equivalent. */\nfunction applySpreadSheetLayerSetting(layer, setting) {\n var funcName = \"set_\" + setting[0];\n var value = setting[1]; // eslint-disable-line @typescript-eslint/no-explicit-any\n layer[funcName](value); // eslint-disable-line @typescript-eslint/no-explicit-any\n}\n/** Extract all of the current settings of a `SpreadSheetLayer` or equivalent. */\nfunction extractSpreadSheetLayerSettings(layer) {\n var e_1, _a;\n var s = extractLayerSettings(layer);\n try {\n for (var justSpreadSheetLayerSettingNames_1 = __values(justSpreadSheetLayerSettingNames), justSpreadSheetLayerSettingNames_1_1 = justSpreadSheetLayerSettingNames_1.next(); !justSpreadSheetLayerSettingNames_1_1.done; justSpreadSheetLayerSettingNames_1_1 = justSpreadSheetLayerSettingNames_1.next()) {\n var n = justSpreadSheetLayerSettingNames_1_1.value;\n s.push([n, layer[\"get_\" + n]()]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (justSpreadSheetLayerSettingNames_1_1 && !justSpreadSheetLayerSettingNames_1_1.done && (_a = justSpreadSheetLayerSettingNames_1.return)) _a.call(justSpreadSheetLayerSettingNames_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return s;\n}\n/** Copy settings from one `SpreadSheetLayer`, or equivalent, to another. */\nfunction copySpreadSheetLayerSettings(source, dest) {\n var e_2, _a;\n copyLayerSettings(source, dest);\n try {\n for (var justSpreadSheetLayerSettingNames_2 = tslib_es6_values(justSpreadSheetLayerSettingNames), justSpreadSheetLayerSettingNames_2_1 = justSpreadSheetLayerSettingNames_2.next(); !justSpreadSheetLayerSettingNames_2_1.done; justSpreadSheetLayerSettingNames_2_1 = justSpreadSheetLayerSettingNames_2.next()) {\n var n = justSpreadSheetLayerSettingNames_2_1.value;\n dest[\"set_\" + n](source[\"get_\" + n]());\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (justSpreadSheetLayerSettingNames_2_1 && !justSpreadSheetLayerSettingNames_2_1.done && (_a = justSpreadSheetLayerSettingNames_2.return)) _a.call(justSpreadSheetLayerSettingNames_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\n/** A plain-old-data class implementing `SpreadSheetLayerSettingsInterface`. */\nvar SpreadSheetLayerState = /** @class */ (function (_super) {\n __extends(SpreadSheetLayerState, _super);\n function SpreadSheetLayerState(source) {\n var _this = \n // Here we redundantly copy the generic Layer settings, but TypeScript\n // requires the super() call. Oh well.\n _super.call(this, source) || this;\n copySpreadSheetLayerSettings(source, _this);\n return _this;\n }\n SpreadSheetLayerState.prototype.get_altColumn = function () {\n return this.altColumn;\n };\n SpreadSheetLayerState.prototype.set_altColumn = function (v) {\n this.altColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_altType = function () {\n return this.altType;\n };\n SpreadSheetLayerState.prototype.set_altType = function (v) {\n this.altType = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_altUnit = function () {\n return this.altUnit;\n };\n SpreadSheetLayerState.prototype.set_altUnit = function (v) {\n this.altUnit = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_barChartBitmask = function () {\n return this.barChartBitmask;\n };\n SpreadSheetLayerState.prototype.set_barChartBitmask = function (v) {\n this.barChartBitmask = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_beginRange = function () {\n return this.beginRange;\n };\n SpreadSheetLayerState.prototype.set_beginRange = function (v) {\n this.beginRange = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_cartesianCustomScale = function () {\n return this.cartesianCustomScale;\n };\n SpreadSheetLayerState.prototype.set_cartesianCustomScale = function (v) {\n this.cartesianCustomScale = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_cartesianScale = function () {\n return this.cartesianScale;\n };\n SpreadSheetLayerState.prototype.set_cartesianScale = function (v) {\n this.cartesianScale = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_colorMapColumn = function () {\n return this.colorMapColumn;\n };\n SpreadSheetLayerState.prototype.set_colorMapColumn = function (v) {\n this.colorMapColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_colorMapperName = function () {\n return this.colorMapperName;\n };\n SpreadSheetLayerState.prototype.set_colorMapperName = function (v) {\n this.colorMapperName = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_coordinatesType = function () {\n return this.coordinatesType;\n };\n SpreadSheetLayerState.prototype.set_coordinatesType = function (v) {\n this.coordinatesType = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_decay = function () {\n return this.decay;\n };\n SpreadSheetLayerState.prototype.set_decay = function (v) {\n this.decay = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_dynamicColor = function () {\n return this.dynamicColor;\n };\n SpreadSheetLayerState.prototype.set_dynamicColor = function (v) {\n this.dynamicColor = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_dynamicData = function () {\n return this.dynamicData;\n };\n SpreadSheetLayerState.prototype.set_dynamicData = function (v) {\n this.dynamicData = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_endDateColumn = function () {\n return this.endDateColumn;\n };\n SpreadSheetLayerState.prototype.set_endDateColumn = function (v) {\n this.endDateColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_endRange = function () {\n return this.endRange;\n };\n SpreadSheetLayerState.prototype.set_endRange = function (v) {\n this.endRange = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_geometryColumn = function () {\n return this.geometryColumn;\n };\n SpreadSheetLayerState.prototype.set_geometryColumn = function (v) {\n this.geometryColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_hyperlinkColumn = function () {\n return this.hyperlinkColumn;\n };\n SpreadSheetLayerState.prototype.set_hyperlinkColumn = function (v) {\n this.hyperlinkColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_hyperlinkFormat = function () {\n return this.hyperlinkFormat;\n };\n SpreadSheetLayerState.prototype.set_hyperlinkFormat = function (v) {\n this.hyperlinkFormat = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_latColumn = function () {\n return this.latColumn;\n };\n SpreadSheetLayerState.prototype.set_latColumn = function (v) {\n this.latColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_lngColumn = function () {\n return this.lngColumn;\n };\n SpreadSheetLayerState.prototype.set_lngColumn = function (v) {\n this.lngColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_markerColumn = function () {\n return this.markerColumn;\n };\n SpreadSheetLayerState.prototype.set_markerColumn = function (v) {\n this.markerColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_markerIndex = function () {\n return this.markerIndex;\n };\n SpreadSheetLayerState.prototype.set_markerIndex = function (v) {\n this.markerIndex = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_markerScale = function () {\n return this.markerScale;\n };\n SpreadSheetLayerState.prototype.set_markerScale = function (v) {\n this.markerScale = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_nameColumn = function () {\n return this.nameColumn;\n };\n SpreadSheetLayerState.prototype.set_nameColumn = function (v) {\n this.nameColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_normalizeColorMap = function () {\n return this.normalizeColorMap;\n };\n SpreadSheetLayerState.prototype.set_normalizeColorMap = function (v) {\n this.normalizeColorMap = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_normalizeColorMapMax = function () {\n return this.normalizeColorMapMax;\n };\n SpreadSheetLayerState.prototype.set_normalizeColorMapMax = function (v) {\n this.normalizeColorMapMax = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_normalizeColorMapMin = function () {\n return this.normalizeColorMapMin;\n };\n SpreadSheetLayerState.prototype.set_normalizeColorMapMin = function (v) {\n this.normalizeColorMapMin = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_normalizeSize = function () {\n return this.normalizeSize;\n };\n SpreadSheetLayerState.prototype.set_normalizeSize = function (v) {\n this.normalizeSize = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_normalizeSizeClip = function () {\n return this.normalizeSizeClip;\n };\n SpreadSheetLayerState.prototype.set_normalizeSizeClip = function (v) {\n this.normalizeSizeClip = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_normalizeSizeMax = function () {\n return this.normalizeSizeMax;\n };\n SpreadSheetLayerState.prototype.set_normalizeSizeMax = function (v) {\n this.normalizeSizeMax = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_normalizeSizeMin = function () {\n return this.normalizeSizeMin;\n };\n SpreadSheetLayerState.prototype.set_normalizeSizeMin = function (v) {\n this.normalizeSizeMin = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_plotType = function () {\n return this.plotType;\n };\n SpreadSheetLayerState.prototype.set_plotType = function (v) {\n this.plotType = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_pointScaleType = function () {\n return this.pointScaleType;\n };\n SpreadSheetLayerState.prototype.set_pointScaleType = function (v) {\n this.pointScaleType = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_raUnits = function () {\n return this.raUnits;\n };\n SpreadSheetLayerState.prototype.set_raUnits = function (v) {\n this.raUnits = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_scaleFactor = function () {\n return this.scaleFactor;\n };\n SpreadSheetLayerState.prototype.set_scaleFactor = function (v) {\n this.scaleFactor = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_showFarSide = function () {\n return this.showFarSide;\n };\n SpreadSheetLayerState.prototype.set_showFarSide = function (v) {\n this.showFarSide = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_sizeColumn = function () {\n return this.sizeColumn;\n };\n SpreadSheetLayerState.prototype.set_sizeColumn = function (v) {\n this.sizeColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_startDateColumn = function () {\n return this.startDateColumn;\n };\n SpreadSheetLayerState.prototype.set_startDateColumn = function (v) {\n this.startDateColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_timeSeries = function () {\n return this.timeSeries;\n };\n SpreadSheetLayerState.prototype.set_timeSeries = function (v) {\n this.timeSeries = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_xAxisColumn = function () {\n return this.xAxisColumn;\n };\n SpreadSheetLayerState.prototype.set_xAxisColumn = function (v) {\n this.xAxisColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_xAxisReverse = function () {\n return this.xAxisReverse;\n };\n SpreadSheetLayerState.prototype.set_xAxisReverse = function (v) {\n this.xAxisReverse = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_yAxisColumn = function () {\n return this.yAxisColumn;\n };\n SpreadSheetLayerState.prototype.set_yAxisColumn = function (v) {\n this.yAxisColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_yAxisReverse = function () {\n return this.yAxisReverse;\n };\n SpreadSheetLayerState.prototype.set_yAxisReverse = function (v) {\n this.yAxisReverse = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_zAxisColumn = function () {\n return this.zAxisColumn;\n };\n SpreadSheetLayerState.prototype.set_zAxisColumn = function (v) {\n this.zAxisColumn = v;\n return v;\n };\n SpreadSheetLayerState.prototype.get_zAxisReverse = function () {\n return this.zAxisReverse;\n };\n SpreadSheetLayerState.prototype.set_zAxisReverse = function (v) {\n this.zAxisReverse = v;\n return v;\n };\n return SpreadSheetLayerState;\n}(LayerState));\n\n//# sourceMappingURL=spreadsheetlayer.js.map\n;// CONCATENATED MODULE: ../engine-helpers/dist/src/annotation.js\n// Copyright 2020-2021 the .NET Foundation\n// Licensed under the MIT License\n\n/** A list of the names of the available settings for annotations. */\nvar annotationSettingNames = [\n \"id\",\n \"label\",\n \"opacity\",\n \"showHoverLabel\",\n \"tag\",\n];\nvar annotationSettingTypeInfo = {\n \"id/string\": true,\n \"label/string\": true,\n \"opacity/number\": true,\n \"showHoverLabel/boolean\": true,\n \"tag/string\": true,\n};\n/** Type guard function for `AnnotationSetting`. */\nfunction annotation_isAnnotationSetting(obj) {\n var key = obj[0] + \"/\" + typeof obj[1];\n return key in annotationSettingTypeInfo;\n}\n/** Apply a setting to a generic `Annotation` or equivalent. */\nfunction applyAnnotationSetting(annotation, setting) {\n var funcName = \"set_\" + setting[0];\n var value = setting[1];\n annotation[funcName](value);\n}\n/** Extract all of the current settings of a `Annotation` or equivalent. */\nfunction annotation_extractAnnotationSettings(annotation) {\n var e_1, _a;\n var s = [];\n try {\n for (var annotationSettingNames_1 = __values(annotationSettingNames), annotationSettingNames_1_1 = annotationSettingNames_1.next(); !annotationSettingNames_1_1.done; annotationSettingNames_1_1 = annotationSettingNames_1.next()) {\n var n = annotationSettingNames_1_1.value;\n s.push([n, annotation[\"get_\" + n]()]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationSettingNames_1_1 && !annotationSettingNames_1_1.done && (_a = annotationSettingNames_1.return)) _a.call(annotationSettingNames_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return s;\n}\n/** Copy settings from one `Annotation`, or equivalent, to another. */\nfunction copyAnnotationSettings(source, dest) {\n var e_2, _a;\n try {\n for (var annotationSettingNames_2 = tslib_es6_values(annotationSettingNames), annotationSettingNames_2_1 = annotationSettingNames_2.next(); !annotationSettingNames_2_1.done; annotationSettingNames_2_1 = annotationSettingNames_2.next()) {\n var n = annotationSettingNames_2_1.value;\n dest[\"set_\" + n](source[\"get_\" + n]());\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (annotationSettingNames_2_1 && !annotationSettingNames_2_1.done && (_a = annotationSettingNames_2.return)) _a.call(annotationSettingNames_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\n/** A plain-old-data class implementing `AnnotationSettingsInterface`. */\nvar AnnotationState = /** @class */ (function () {\n function AnnotationState(source) {\n copyAnnotationSettings(source, this);\n }\n AnnotationState.prototype.get_id = function () {\n return this.id;\n };\n AnnotationState.prototype.set_id = function (v) {\n this.id = v;\n return v;\n };\n AnnotationState.prototype.get_label = function () {\n return this.label;\n };\n AnnotationState.prototype.set_label = function (v) {\n this.label = v;\n return v;\n };\n AnnotationState.prototype.get_opacity = function () {\n return this.opacity;\n };\n AnnotationState.prototype.set_opacity = function (v) {\n this.opacity = v;\n return v;\n };\n AnnotationState.prototype.get_showHoverLabel = function () {\n return this.showHoverLabel;\n };\n AnnotationState.prototype.set_showHoverLabel = function (v) {\n this.showHoverLabel = v;\n return v;\n };\n AnnotationState.prototype.get_tag = function () {\n return this.tag;\n };\n AnnotationState.prototype.set_tag = function (v) {\n this.tag = v;\n return v;\n };\n return AnnotationState;\n}());\n\n//# sourceMappingURL=annotation.js.map\n;// CONCATENATED MODULE: ../engine-helpers/dist/src/circleannotation.js\n// Copyright 2020-2021 the .NET Foundation\n// Licensed under the MIT License\n\n\nvar justCircleAnnotationSettingNames = [\n \"fill\",\n \"fillColor\",\n \"lineColor\",\n \"lineWidth\",\n \"radius\",\n \"skyRelative\",\n];\n/** A list of the names of the available settings for `CircleAnnotation`\n * instances and their equivalents (things implementing\n * {@link CircleAnnotationSettingsInterface}).\n *\n * This is a superset of the names available for generic annotations.\n*/\nvar circleAnnotationSettingNames = annotationSettingNames.concat(justCircleAnnotationSettingNames);\nvar circleAnnotationSettingTypeInfo = {\n \"fill/boolean\": true,\n \"fillColor/string\": true,\n \"lineColor/string\": true,\n \"lineWidth/number\": true,\n \"radius/number\": true,\n \"skyRelative/boolean\": true,\n};\n/** Type guard function for `CircleAnnotationSetting`. */\nfunction isCircleAnnotationSetting(obj) {\n var key = obj[0] + \"/\" + typeof obj[1];\n return (key in circleAnnotationSettingTypeInfo) || isAnnotationSetting(obj);\n}\n/** Apply a setting to a generic `CircleAnnotation` or equivalent. */\nfunction applyCircleAnnotationSetting(circle, setting) {\n var funcName = \"set_\" + setting[0];\n var value = setting[1];\n circle[funcName](value);\n}\n/** Extract all of the current settings of a `CircleAnnotation` or equivalent. */\nfunction extractCircleAnnotationSettings(circle) {\n var e_1, _a;\n var s = extractAnnotationSettings(circle);\n try {\n for (var justCircleAnnotationSettingNames_1 = __values(justCircleAnnotationSettingNames), justCircleAnnotationSettingNames_1_1 = justCircleAnnotationSettingNames_1.next(); !justCircleAnnotationSettingNames_1_1.done; justCircleAnnotationSettingNames_1_1 = justCircleAnnotationSettingNames_1.next()) {\n var n = justCircleAnnotationSettingNames_1_1.value;\n s.push([n, circle[\"get_\" + n]()]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (justCircleAnnotationSettingNames_1_1 && !justCircleAnnotationSettingNames_1_1.done && (_a = justCircleAnnotationSettingNames_1.return)) _a.call(justCircleAnnotationSettingNames_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return s;\n}\n/** Copy settings from one `CircleAnnotation`, or equivalent, to another. */\nfunction copyCircleAnnotationSettings(source, dest) {\n var e_2, _a;\n copyAnnotationSettings(source, dest);\n try {\n for (var justCircleAnnotationSettingNames_2 = tslib_es6_values(justCircleAnnotationSettingNames), justCircleAnnotationSettingNames_2_1 = justCircleAnnotationSettingNames_2.next(); !justCircleAnnotationSettingNames_2_1.done; justCircleAnnotationSettingNames_2_1 = justCircleAnnotationSettingNames_2.next()) {\n var n = justCircleAnnotationSettingNames_2_1.value;\n dest[\"set_\" + n](source[\"get_\" + n]());\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (justCircleAnnotationSettingNames_2_1 && !justCircleAnnotationSettingNames_2_1.done && (_a = justCircleAnnotationSettingNames_2.return)) _a.call(justCircleAnnotationSettingNames_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\n/** A plain-old-data class implementing `CircleAnnotationSettingsInterface`. */\nvar CircleAnnotationState = /** @class */ (function (_super) {\n __extends(CircleAnnotationState, _super);\n function CircleAnnotationState(source) {\n var _this = _super.call(this, source) || this;\n copyCircleAnnotationSettings(source, _this);\n return _this;\n }\n CircleAnnotationState.prototype.get_fill = function () {\n return this.fill;\n };\n CircleAnnotationState.prototype.set_fill = function (v) {\n this.fill = v;\n return v;\n };\n CircleAnnotationState.prototype.get_fillColor = function () {\n return this.fillColor;\n };\n CircleAnnotationState.prototype.set_fillColor = function (v) {\n this.fillColor = v;\n return v;\n };\n CircleAnnotationState.prototype.get_lineColor = function () {\n return this.lineColor;\n };\n CircleAnnotationState.prototype.set_lineColor = function (v) {\n this.lineColor = v;\n return v;\n };\n CircleAnnotationState.prototype.get_lineWidth = function () {\n return this.lineWidth;\n };\n CircleAnnotationState.prototype.set_lineWidth = function (v) {\n this.lineWidth = v;\n return v;\n };\n CircleAnnotationState.prototype.get_radius = function () {\n return this.radius;\n };\n CircleAnnotationState.prototype.set_radius = function (v) {\n this.radius = v;\n return v;\n };\n CircleAnnotationState.prototype.get_skyRelative = function () {\n return this.skyRelative;\n };\n CircleAnnotationState.prototype.set_skyRelative = function (v) {\n this.skyRelative = v;\n return v;\n };\n return CircleAnnotationState;\n}(AnnotationState));\n\n//# sourceMappingURL=circleannotation.js.map\n;// CONCATENATED MODULE: ../engine-helpers/dist/src/engine.js\n// Copyright 2020-2021 the .NET Foundation\n// Licensed under the MIT License\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/** Helpers for handling core engine settings. */\n\n\n/** A list of the names of the core engine settings. */\nvar engineSettingNames = [\n \"actualPlanetScale\",\n \"altAzGridColor\",\n \"constellationArtFilter\",\n \"constellationBoundariesFilter\",\n \"constellationFigureColor\",\n \"constellationFiguresFilter\",\n \"constellationBoundryColor\",\n \"constellationNamesFilter\",\n \"constellationLabelsHeight\",\n \"constellations\",\n \"constellationSelectionColor\",\n \"constellationsEnabled\",\n \"crosshairsColor\",\n \"earthCutawayView\",\n \"eclipticColor\",\n \"eclipticGridColor\",\n \"equatorialGridColor\",\n \"galacticGridColor\",\n \"galacticMode\",\n \"localHorizonMode\",\n \"locationAltitude\",\n \"locationLat\",\n \"locationLng\",\n \"milkyWayModel\",\n \"minorPlanetsFilter\",\n \"planetOrbitsFilter\",\n \"precessionChartColor\",\n \"showAltAzGrid\",\n \"showAltAzGridText\",\n \"showConstellationBoundries\",\n \"showConstellationFigures\",\n \"showConstellationLabels\",\n \"showConstellationPictures\",\n \"showConstellations\",\n \"showConstellationSelection\",\n \"showCrosshairs\",\n \"showEarthSky\",\n \"showEcliptic\",\n \"showEclipticGrid\",\n \"showEclipticGridText\",\n \"showEclipticOverviewText\",\n \"showElevationModel\",\n \"showEquatorialGridText\",\n \"showGalacticGrid\",\n \"showGalacticGridText\",\n \"showGrid\",\n \"showHorizon\",\n \"showISSModel\",\n \"showPrecessionChart\",\n \"showSkyGrids\",\n \"showSkyOverlays\",\n \"showSkyOverlaysIn3d\",\n \"showSkyNode\",\n \"showSolarSystem\",\n \"smoothPan\",\n \"solarSystemCMB\",\n \"solarSystemCosmos\",\n \"solarSystemLighting\",\n \"solarSystemMilkyWay\",\n \"solarSystemMinorPlanets\",\n \"solarSystemMultiRes\",\n \"solarSystemOrbits\",\n \"solarSystemOverlays\",\n \"solarSystemPlanets\",\n \"solarSystemScale\",\n \"solarSystemStars\",\n \"solarSystemMinorOrbits\",\n];\nvar engineSettingTypeInfo = {\n \"altAzGridColor/Color\": true,\n \"constellationArtFilter/ConstellationFilter\": true,\n \"constellationBoundariesFilter/ConstellationFilter\": true,\n \"constellationBoundryColor/Color\": true,\n \"constellationFigureColor/Color\": true,\n \"constellationFiguresFilter/ConstellationFilter\": true,\n \"constellationNamesFilter/ConstellationFilter\": true,\n \"constellationSelectionColor/Color\": true,\n \"crosshairsColor/Color\": true,\n \"eclipticColor/Color\": true,\n \"eclipticGridColor/Color\": true,\n \"equatorialGridColor/Color\": true,\n \"galacticGridColor/Color\": true,\n \"precessionChartColor/Color\": true,\n};\n/** Type guard function for `EngineSetting`. */\nfunction isEngineSetting(obj) {\n var typekey = typeof obj[1];\n if (obj[1] instanceof Color) {\n typekey = \"Color\";\n }\n else if (obj[1] instanceof ConstellationFilter) {\n typekey = \"ConstellationFilter\";\n }\n var key = obj[0] + \"/\" + typekey;\n return isBaseEngineSetting(obj) || (key in engineSettingTypeInfo);\n}\n/** Apply a setting to the engine or an equivalent. */\nfunction applyEngineSetting(engine, setting) {\n var funcName = \"set_\" + setting[0];\n var value = setting[1];\n engine[funcName](value);\n}\n/** Extract all of the current settings of the engine or an equivalent. */\nfunction extractEngineSettings(engine) {\n var e_1, _a;\n var s = [];\n try {\n for (var engineSettingNames_1 = __values(engineSettingNames), engineSettingNames_1_1 = engineSettingNames_1.next(); !engineSettingNames_1_1.done; engineSettingNames_1_1 = engineSettingNames_1.next()) {\n var n = engineSettingNames_1_1.value;\n s.push([n, engine[\"get_\" + n]()]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (engineSettingNames_1_1 && !engineSettingNames_1_1.done && (_a = engineSettingNames_1.return)) _a.call(engineSettingNames_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return s;\n}\n/** Copy settings from the engine, or an equivalent, to another. */\nfunction copyEngineSettings(source, dest) {\n var e_2, _a;\n try {\n for (var engineSettingNames_2 = tslib_es6_values(engineSettingNames), engineSettingNames_2_1 = engineSettingNames_2.next(); !engineSettingNames_2_1.done; engineSettingNames_2_1 = engineSettingNames_2.next()) {\n var n = engineSettingNames_2_1.value;\n dest[\"set_\" + n](source[\"get_\" + n]());\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (engineSettingNames_2_1 && !engineSettingNames_2_1.done && (_a = engineSettingNames_2.return)) _a.call(engineSettingNames_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\n/** A plain-old-data class implementing `EngineSettingsInterface`. */\nvar EngineState = /** @class */ (function () {\n function EngineState(source) {\n copyEngineSettings(source, this);\n }\n EngineState.prototype.get_actualPlanetScale = function () {\n return this.actualPlanetScale;\n };\n EngineState.prototype.set_actualPlanetScale = function (v) {\n this.actualPlanetScale = v;\n return v;\n };\n EngineState.prototype.get_constellationArtFilter = function () {\n return this.constellationArtFilter;\n };\n EngineState.prototype.set_constellationArtFilter = function (v) {\n this.constellationArtFilter = v;\n return v;\n };\n EngineState.prototype.get_constellationBoundariesFilter = function () {\n return this.constellationBoundariesFilter;\n };\n EngineState.prototype.set_constellationBoundariesFilter = function (v) {\n this.constellationBoundariesFilter = v;\n return v;\n };\n EngineState.prototype.get_constellationFigureColor = function () {\n return this.constellationFigureColor;\n };\n EngineState.prototype.set_constellationFigureColor = function (v) {\n this.constellationFigureColor = v;\n return v;\n };\n EngineState.prototype.get_constellationFiguresFilter = function () {\n return this.constellationFiguresFilter;\n };\n EngineState.prototype.set_constellationFiguresFilter = function (v) {\n this.constellationFiguresFilter = v;\n return v;\n };\n EngineState.prototype.get_constellationBoundryColor = function () {\n return this.constellationBoundryColor;\n };\n EngineState.prototype.set_constellationBoundryColor = function (v) {\n this.constellationBoundryColor = v;\n return v;\n };\n EngineState.prototype.get_constellationNamesFilter = function () {\n return this.constellationNamesFilter;\n };\n EngineState.prototype.set_constellationNamesFilter = function (v) {\n this.constellationNamesFilter = v;\n return v;\n };\n EngineState.prototype.get_constellations = function () {\n return this.constellations;\n };\n EngineState.prototype.set_constellations = function (v) {\n this.constellations = v;\n return v;\n };\n EngineState.prototype.get_constellationSelectionColor = function () {\n return this.constellationSelectionColor;\n };\n EngineState.prototype.set_constellationSelectionColor = function (v) {\n this.constellationSelectionColor = v;\n return v;\n };\n EngineState.prototype.get_constellationsEnabled = function () {\n return this.constellationsEnabled;\n };\n EngineState.prototype.set_constellationsEnabled = function (v) {\n this.constellationsEnabled = v;\n return v;\n };\n EngineState.prototype.get_crosshairsColor = function () {\n return this.crosshairsColor;\n };\n EngineState.prototype.set_crosshairsColor = function (v) {\n this.crosshairsColor = v;\n return v;\n };\n EngineState.prototype.get_earthCutawayView = function () {\n return this.earthCutawayView;\n };\n EngineState.prototype.set_earthCutawayView = function (v) {\n this.earthCutawayView = v;\n return v;\n };\n EngineState.prototype.get_galacticMode = function () {\n return this.galacticMode;\n };\n EngineState.prototype.set_galacticMode = function (v) {\n this.galacticMode = v;\n return v;\n };\n EngineState.prototype.get_localHorizonMode = function () {\n return this.localHorizonMode;\n };\n EngineState.prototype.set_localHorizonMode = function (v) {\n this.localHorizonMode = v;\n return v;\n };\n EngineState.prototype.get_locationAltitude = function () {\n return this.locationAltitude;\n };\n EngineState.prototype.set_locationAltitude = function (v) {\n this.locationAltitude = v;\n return v;\n };\n EngineState.prototype.get_locationLat = function () {\n return this.locationLat;\n };\n EngineState.prototype.set_locationLat = function (v) {\n this.locationLat = v;\n return v;\n };\n EngineState.prototype.get_locationLng = function () {\n return this.locationLng;\n };\n EngineState.prototype.set_locationLng = function (v) {\n this.locationLng = v;\n return v;\n };\n EngineState.prototype.get_milkyWayModel = function () {\n return this.milkyWayModel;\n };\n EngineState.prototype.set_milkyWayModel = function (v) {\n this.milkyWayModel = v;\n return v;\n };\n EngineState.prototype.get_minorPlanetsFilter = function () {\n return this.minorPlanetsFilter;\n };\n EngineState.prototype.set_minorPlanetsFilter = function (v) {\n this.minorPlanetsFilter = v;\n return v;\n };\n EngineState.prototype.get_planetOrbitsFilter = function () {\n return this.planetOrbitsFilter;\n };\n EngineState.prototype.set_planetOrbitsFilter = function (v) {\n this.planetOrbitsFilter = v;\n return v;\n };\n EngineState.prototype.get_showAltAzGrid = function () {\n return this.showAltAzGrid;\n };\n EngineState.prototype.set_showAltAzGrid = function (v) {\n this.showAltAzGrid = v;\n return v;\n };\n EngineState.prototype.get_showAltAzGridText = function () {\n return this.showAltAzGridText;\n };\n EngineState.prototype.set_showAltAzGridText = function (v) {\n this.showAltAzGridText = v;\n return v;\n };\n EngineState.prototype.get_showConstellationBoundries = function () {\n return this.showConstellationBoundries;\n };\n EngineState.prototype.set_showConstellationBoundries = function (v) {\n this.showConstellationBoundries = v;\n return v;\n };\n EngineState.prototype.get_showConstellationFigures = function () {\n return this.showConstellationFigures;\n };\n EngineState.prototype.set_showConstellationFigures = function (v) {\n this.showConstellationFigures = v;\n return v;\n };\n EngineState.prototype.get_showConstellationLabels = function () {\n return this.showConstellationLabels;\n };\n EngineState.prototype.set_showConstellationLabels = function (v) {\n this.showConstellationLabels = v;\n return v;\n };\n EngineState.prototype.get_showConstellationPictures = function () {\n return this.showConstellationPictures;\n };\n EngineState.prototype.set_showConstellationPictures = function (v) {\n this.showConstellationPictures = v;\n return v;\n };\n EngineState.prototype.get_showConstellations = function () {\n return this.showConstellations;\n };\n EngineState.prototype.set_showConstellations = function (v) {\n this.showConstellations = v;\n return v;\n };\n EngineState.prototype.get_showConstellationSelection = function () {\n return this.showConstellationSelection;\n };\n EngineState.prototype.set_showConstellationSelection = function (v) {\n this.showConstellationSelection = v;\n return v;\n };\n EngineState.prototype.get_showCrosshairs = function () {\n return this.showCrosshairs;\n };\n EngineState.prototype.set_showCrosshairs = function (v) {\n this.showCrosshairs = v;\n return v;\n };\n EngineState.prototype.get_showEarthSky = function () {\n return this.showEarthSky;\n };\n EngineState.prototype.set_showEarthSky = function (v) {\n this.showEarthSky = v;\n return v;\n };\n EngineState.prototype.get_showEcliptic = function () {\n return this.showEcliptic;\n };\n EngineState.prototype.set_showEcliptic = function (v) {\n this.showEcliptic = v;\n return v;\n };\n EngineState.prototype.get_showEclipticGrid = function () {\n return this.showEclipticGrid;\n };\n EngineState.prototype.set_showEclipticGrid = function (v) {\n this.showEclipticGrid = v;\n return v;\n };\n EngineState.prototype.get_showEclipticGridText = function () {\n return this.showEclipticGridText;\n };\n EngineState.prototype.set_showEclipticGridText = function (v) {\n this.showEclipticGridText = v;\n return v;\n };\n EngineState.prototype.get_showEclipticOverviewText = function () {\n return this.showEclipticOverviewText;\n };\n EngineState.prototype.set_showEclipticOverviewText = function (v) {\n this.showEclipticOverviewText = v;\n return v;\n };\n EngineState.prototype.get_showElevationModel = function () {\n return this.showElevationModel;\n };\n EngineState.prototype.set_showElevationModel = function (v) {\n this.showElevationModel = v;\n return v;\n };\n EngineState.prototype.get_showEquatorialGridText = function () {\n return this.showEquatorialGridText;\n };\n EngineState.prototype.set_showEquatorialGridText = function (v) {\n this.showEquatorialGridText = v;\n return v;\n };\n EngineState.prototype.get_showGalacticGrid = function () {\n return this.showGalacticGrid;\n };\n EngineState.prototype.set_showGalacticGrid = function (v) {\n this.showGalacticGrid = v;\n return v;\n };\n EngineState.prototype.get_showGalacticGridText = function () {\n return this.showGalacticGridText;\n };\n EngineState.prototype.set_showGalacticGridText = function (v) {\n this.showGalacticGridText = v;\n return v;\n };\n EngineState.prototype.get_showGrid = function () {\n return this.showGrid;\n };\n EngineState.prototype.set_showGrid = function (v) {\n this.showGrid = v;\n return v;\n };\n EngineState.prototype.get_showHorizon = function () {\n return this.showHorizon;\n };\n EngineState.prototype.set_showHorizon = function (v) {\n this.showHorizon = v;\n return v;\n };\n EngineState.prototype.get_showISSModel = function () {\n return this.showISSModel;\n };\n EngineState.prototype.set_showISSModel = function (v) {\n this.showISSModel = v;\n return v;\n };\n EngineState.prototype.get_showPrecessionChart = function () {\n return this.showPrecessionChart;\n };\n EngineState.prototype.set_showPrecessionChart = function (v) {\n this.showPrecessionChart = v;\n return v;\n };\n EngineState.prototype.get_showSkyGrids = function () {\n return this.showSkyGrids;\n };\n EngineState.prototype.set_showSkyGrids = function (v) {\n this.showSkyGrids = v;\n return v;\n };\n EngineState.prototype.get_showSkyOverlays = function () {\n return this.showSkyOverlays;\n };\n EngineState.prototype.set_showSkyOverlays = function (v) {\n this.showSkyOverlays = v;\n return v;\n };\n EngineState.prototype.get_showSkyOverlaysIn3d = function () {\n return this.showSkyOverlaysIn3d;\n };\n EngineState.prototype.set_showSkyOverlaysIn3d = function (v) {\n this.showSkyOverlaysIn3d = v;\n return v;\n };\n EngineState.prototype.get_showSkyNode = function () {\n return this.showSkyNode;\n };\n EngineState.prototype.set_showSkyNode = function (v) {\n this.showSkyNode = v;\n return v;\n };\n EngineState.prototype.get_showSolarSystem = function () {\n return this.showSolarSystem;\n };\n EngineState.prototype.set_showSolarSystem = function (v) {\n this.showSolarSystem = v;\n return v;\n };\n EngineState.prototype.get_smoothPan = function () {\n return this.smoothPan;\n };\n EngineState.prototype.set_smoothPan = function (v) {\n this.smoothPan = v;\n return v;\n };\n EngineState.prototype.get_solarSystemCMB = function () {\n return this.solarSystemCMB;\n };\n EngineState.prototype.set_solarSystemCMB = function (v) {\n this.solarSystemCMB = v;\n return v;\n };\n EngineState.prototype.get_solarSystemCosmos = function () {\n return this.solarSystemCosmos;\n };\n EngineState.prototype.set_solarSystemCosmos = function (v) {\n this.solarSystemCosmos = v;\n return v;\n };\n EngineState.prototype.get_solarSystemLighting = function () {\n return this.solarSystemLighting;\n };\n EngineState.prototype.set_solarSystemLighting = function (v) {\n this.solarSystemLighting = v;\n return v;\n };\n EngineState.prototype.get_solarSystemMilkyWay = function () {\n return this.solarSystemMilkyWay;\n };\n EngineState.prototype.set_solarSystemMilkyWay = function (v) {\n this.solarSystemMilkyWay = v;\n return v;\n };\n EngineState.prototype.get_solarSystemMinorPlanets = function () {\n return this.solarSystemMinorPlanets;\n };\n EngineState.prototype.set_solarSystemMinorPlanets = function (v) {\n this.solarSystemMinorPlanets = v;\n return v;\n };\n EngineState.prototype.get_solarSystemMultiRes = function () {\n return this.solarSystemMultiRes;\n };\n EngineState.prototype.set_solarSystemMultiRes = function (v) {\n this.solarSystemMultiRes = v;\n return v;\n };\n EngineState.prototype.get_solarSystemOrbits = function () {\n return this.solarSystemOrbits;\n };\n EngineState.prototype.set_solarSystemOrbits = function (v) {\n this.solarSystemOrbits = v;\n return v;\n };\n EngineState.prototype.get_solarSystemOverlays = function () {\n return this.solarSystemOverlays;\n };\n EngineState.prototype.set_solarSystemOverlays = function (v) {\n this.solarSystemOverlays = v;\n return v;\n };\n EngineState.prototype.get_solarSystemPlanets = function () {\n return this.solarSystemPlanets;\n };\n EngineState.prototype.set_solarSystemPlanets = function (v) {\n this.solarSystemPlanets = v;\n return v;\n };\n EngineState.prototype.get_solarSystemScale = function () {\n return this.solarSystemScale;\n };\n EngineState.prototype.set_solarSystemScale = function (v) {\n this.solarSystemScale = v;\n return v;\n };\n EngineState.prototype.get_solarSystemStars = function () {\n return this.solarSystemStars;\n };\n EngineState.prototype.set_solarSystemStars = function (v) {\n this.solarSystemStars = v;\n return v;\n };\n EngineState.prototype.get_solarSystemMinorOrbits = function () {\n return this.solarSystemMinorOrbits;\n };\n EngineState.prototype.set_solarSystemMinorOrbits = function (v) {\n this.solarSystemMinorOrbits = v;\n return v;\n };\n return EngineState;\n}());\n\n//# sourceMappingURL=engine.js.map\n;// CONCATENATED MODULE: ../engine-helpers/dist/src/polyannotation.js\n// Copyright 2020-2021 the .NET Foundation\n// Licensed under the MIT License\n\n\nvar justPolyAnnotationSettingNames = [\n \"fill\",\n \"fillColor\",\n \"lineColor\",\n \"lineWidth\",\n];\n/** A list of the names of the available settings for `PolyAnnotation`\n * instances and their equivalents (things implementing\n * {@link PolyAnnotationSettingsInterface}).\n *\n * This is a superset of the names available for generic annotations.\n*/\nvar polyAnnotationSettingNames = annotationSettingNames.concat(justPolyAnnotationSettingNames);\nvar polyAnnotationSettingTypeInfo = {\n \"fill/boolean\": true,\n \"fillColor/string\": true,\n \"lineColor/string\": true,\n \"lineWidth/number\": true,\n};\n/** Type guard function for `PolyAnnotationSetting`. */\nfunction isPolyAnnotationSetting(obj) {\n var key = obj[0] + \"/\" + typeof obj[1];\n return (key in polyAnnotationSettingTypeInfo) || isAnnotationSetting(obj);\n}\n/** Apply a setting to a generic `PolyAnnotation` or equivalent. */\nfunction applyPolyAnnotationSetting(poly, setting) {\n var funcName = \"set_\" + setting[0];\n var value = setting[1];\n poly[funcName](value);\n}\n/** Extract all of the current settings of a `PolyAnnotation` or equivalent. */\nfunction extractPolyAnnotationSettings(poly) {\n var e_1, _a;\n var s = extractAnnotationSettings(poly);\n try {\n for (var justPolyAnnotationSettingNames_1 = __values(justPolyAnnotationSettingNames), justPolyAnnotationSettingNames_1_1 = justPolyAnnotationSettingNames_1.next(); !justPolyAnnotationSettingNames_1_1.done; justPolyAnnotationSettingNames_1_1 = justPolyAnnotationSettingNames_1.next()) {\n var n = justPolyAnnotationSettingNames_1_1.value;\n s.push([n, poly[\"get_\" + n]()]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (justPolyAnnotationSettingNames_1_1 && !justPolyAnnotationSettingNames_1_1.done && (_a = justPolyAnnotationSettingNames_1.return)) _a.call(justPolyAnnotationSettingNames_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return s;\n}\n/** Copy settings from one `PolyAnnotation`, or equivalent, to another. */\nfunction copyPolyAnnotationSettings(source, dest) {\n var e_2, _a;\n copyAnnotationSettings(source, dest);\n try {\n for (var justPolyAnnotationSettingNames_2 = tslib_es6_values(justPolyAnnotationSettingNames), justPolyAnnotationSettingNames_2_1 = justPolyAnnotationSettingNames_2.next(); !justPolyAnnotationSettingNames_2_1.done; justPolyAnnotationSettingNames_2_1 = justPolyAnnotationSettingNames_2.next()) {\n var n = justPolyAnnotationSettingNames_2_1.value;\n dest[\"set_\" + n](source[\"get_\" + n]());\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (justPolyAnnotationSettingNames_2_1 && !justPolyAnnotationSettingNames_2_1.done && (_a = justPolyAnnotationSettingNames_2.return)) _a.call(justPolyAnnotationSettingNames_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\n/** A plain-old-data class implementing `PolyAnnotationSettingsInterface`. */\nvar PolyAnnotationState = /** @class */ (function (_super) {\n __extends(PolyAnnotationState, _super);\n function PolyAnnotationState(source) {\n var _this = _super.call(this, source) || this;\n copyPolyAnnotationSettings(source, _this);\n return _this;\n }\n PolyAnnotationState.prototype.get_fill = function () {\n return this.fill;\n };\n PolyAnnotationState.prototype.set_fill = function (v) {\n this.fill = v;\n return v;\n };\n PolyAnnotationState.prototype.get_fillColor = function () {\n return this.fillColor;\n };\n PolyAnnotationState.prototype.set_fillColor = function (v) {\n this.fillColor = v;\n return v;\n };\n PolyAnnotationState.prototype.get_lineColor = function () {\n return this.lineColor;\n };\n PolyAnnotationState.prototype.set_lineColor = function (v) {\n this.lineColor = v;\n return v;\n };\n PolyAnnotationState.prototype.get_lineWidth = function () {\n return this.lineWidth;\n };\n PolyAnnotationState.prototype.set_lineWidth = function (v) {\n this.lineWidth = v;\n return v;\n };\n return PolyAnnotationState;\n}(AnnotationState));\n\n//# sourceMappingURL=polyannotation.js.map\n;// CONCATENATED MODULE: ../engine-helpers/dist/src/polylineannotation.js\n// Copyright 2020-2021 the .NET Foundation\n// Licensed under the MIT License\n\n\nvar justPolyLineAnnotationSettingNames = [\n \"lineColor\",\n \"lineWidth\",\n];\n/** A list of the names of the available settings for `PolyLineAnnotation`\n * instances and their equivalents (things implementing\n * {@link PolyLineAnnotationSettingsInterface}).\n *\n * This is a superset of the names available for generic annotations.\n*/\nvar polyLineAnnotationSettingNames = annotationSettingNames.concat(justPolyLineAnnotationSettingNames);\nvar polyLineAnnotationSettingTypeInfo = {\n \"lineColor/string\": true,\n \"lineWidth/number\": true,\n};\n/** Type guard function for `PolyLineAnnotationSetting`. */\nfunction isPolyLineAnnotationSetting(obj) {\n var key = obj[0] + \"/\" + typeof obj[1];\n return (key in polyLineAnnotationSettingTypeInfo) || isAnnotationSetting(obj);\n}\n/** Apply a setting to a generic `PolyLineAnnotation` or equivalent. */\nfunction applyPolyLineAnnotationSetting(poly, setting) {\n var funcName = \"set_\" + setting[0];\n var value = setting[1];\n poly[funcName](value);\n}\n/** Extract all of the current settings of a `PolyLineAnnotation` or equivalent. */\nfunction extractPolyLineAnnotationSettings(poly) {\n var e_1, _a;\n var s = extractAnnotationSettings(poly);\n try {\n for (var justPolyLineAnnotationSettingNames_1 = __values(justPolyLineAnnotationSettingNames), justPolyLineAnnotationSettingNames_1_1 = justPolyLineAnnotationSettingNames_1.next(); !justPolyLineAnnotationSettingNames_1_1.done; justPolyLineAnnotationSettingNames_1_1 = justPolyLineAnnotationSettingNames_1.next()) {\n var n = justPolyLineAnnotationSettingNames_1_1.value;\n s.push([n, poly[\"get_\" + n]()]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (justPolyLineAnnotationSettingNames_1_1 && !justPolyLineAnnotationSettingNames_1_1.done && (_a = justPolyLineAnnotationSettingNames_1.return)) _a.call(justPolyLineAnnotationSettingNames_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return s;\n}\n/** Copy settings from one `PolyLineAnnotation`, or equivalent, to another. */\nfunction copyPolyLineAnnotationSettings(source, dest) {\n var e_2, _a;\n copyAnnotationSettings(source, dest);\n try {\n for (var justPolyLineAnnotationSettingNames_2 = tslib_es6_values(justPolyLineAnnotationSettingNames), justPolyLineAnnotationSettingNames_2_1 = justPolyLineAnnotationSettingNames_2.next(); !justPolyLineAnnotationSettingNames_2_1.done; justPolyLineAnnotationSettingNames_2_1 = justPolyLineAnnotationSettingNames_2.next()) {\n var n = justPolyLineAnnotationSettingNames_2_1.value;\n dest[\"set_\" + n](source[\"get_\" + n]());\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (justPolyLineAnnotationSettingNames_2_1 && !justPolyLineAnnotationSettingNames_2_1.done && (_a = justPolyLineAnnotationSettingNames_2.return)) _a.call(justPolyLineAnnotationSettingNames_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\n/** A plain-old-data class implementing `PolyLineAnnotationSettingsInterface`. */\nvar PolyLineAnnotationState = /** @class */ (function (_super) {\n __extends(PolyLineAnnotationState, _super);\n function PolyLineAnnotationState(source) {\n var _this = _super.call(this, source) || this;\n copyPolyLineAnnotationSettings(source, _this);\n return _this;\n }\n PolyLineAnnotationState.prototype.get_lineColor = function () {\n return this.lineColor;\n };\n PolyLineAnnotationState.prototype.set_lineColor = function (v) {\n this.lineColor = v;\n return v;\n };\n PolyLineAnnotationState.prototype.get_lineWidth = function () {\n return this.lineWidth;\n };\n PolyLineAnnotationState.prototype.set_lineWidth = function (v) {\n this.lineWidth = v;\n return v;\n };\n return PolyLineAnnotationState;\n}(AnnotationState));\n\n//# sourceMappingURL=polylineannotation.js.map\n;// CONCATENATED MODULE: ../engine-helpers/dist/src/votablelayer.js\n// Copyright 2020-2021 the .NET Foundation\n// Licensed under the MIT License\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/** Helpers for handling \"spreadsheet\" layer settings. */\n\n\nvar justVoTableLayerSettingNames = [\n \"altColumn\",\n \"altType\",\n \"altUnit\",\n \"autoUpdate\",\n \"beginRange\",\n \"cartesianCustomScale\",\n \"cartesianScale\",\n \"colorMapColumn\",\n \"coordinatesType\",\n \"dataSourceUrl\",\n \"decay\",\n \"dynamicData\",\n \"endDateColumn\",\n \"endRange\",\n \"hyperlinkColumn\",\n \"hyperlinkFormat\",\n \"latColumn\",\n \"lngColumn\",\n \"markerColumn\",\n \"markerIndex\",\n \"markerScale\",\n \"nameColumn\",\n \"plotType\",\n \"pointScaleType\",\n \"raUnits\",\n \"scaleFactor\",\n \"showFarSide\",\n \"sizeColumn\",\n \"startDateColumn\",\n \"timeSeries\",\n \"xAxisColumn\",\n \"xAxisReverse\",\n \"yAxisColumn\",\n \"yAxisReverse\",\n \"zAxisColumn\",\n \"zAxisReverse\",\n];\n/** A list of the names of the available settings for `VoTableLayer`\n * instances and their equivalents (things implementing\n * {@link VoTableLayerSettingsInterface}).\n *\n * This is a superset of the names available for generic layers.\n*/\nvar voTableLayerSettingNames = layerSettingNames.concat(justVoTableLayerSettingNames);\n/** Type guard function for `VoTableLayerSetting`. */\nfunction isVoTableLayerSetting(obj) {\n // No special settings specific to non-base VoTableLayerSetting.\n return isLayerSetting(obj) || isBaseVoTableLayerSetting(obj);\n}\n/** Apply a setting to a `VoTableLayer` or equivalent. */\nfunction applyVoTableLayerSetting(layer, setting) {\n var funcName = \"set_\" + setting[0];\n var value = setting[1]; // eslint-disable-line @typescript-eslint/no-explicit-any\n layer[funcName](value); // eslint-disable-line @typescript-eslint/no-explicit-any\n}\n/** Extract all of the current settings of a `VoTableLayer` or equivalent. */\nfunction extractVoTableLayerSettings(layer) {\n var e_1, _a;\n var s = extractLayerSettings(layer);\n try {\n for (var justVoTableLayerSettingNames_1 = __values(justVoTableLayerSettingNames), justVoTableLayerSettingNames_1_1 = justVoTableLayerSettingNames_1.next(); !justVoTableLayerSettingNames_1_1.done; justVoTableLayerSettingNames_1_1 = justVoTableLayerSettingNames_1.next()) {\n var n = justVoTableLayerSettingNames_1_1.value;\n s.push([n, layer[\"get_\" + n]()]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (justVoTableLayerSettingNames_1_1 && !justVoTableLayerSettingNames_1_1.done && (_a = justVoTableLayerSettingNames_1.return)) _a.call(justVoTableLayerSettingNames_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return s;\n}\n/** Copy settings from one `VoTableLayer`, or equivalent, to another. */\nfunction copyVoTableLayerSettings(source, dest) {\n var e_2, _a;\n copyLayerSettings(source, dest);\n try {\n for (var justVoTableLayerSettingNames_2 = tslib_es6_values(justVoTableLayerSettingNames), justVoTableLayerSettingNames_2_1 = justVoTableLayerSettingNames_2.next(); !justVoTableLayerSettingNames_2_1.done; justVoTableLayerSettingNames_2_1 = justVoTableLayerSettingNames_2.next()) {\n var n = justVoTableLayerSettingNames_2_1.value;\n dest[\"set_\" + n](source[\"get_\" + n]());\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (justVoTableLayerSettingNames_2_1 && !justVoTableLayerSettingNames_2_1.done && (_a = justVoTableLayerSettingNames_2.return)) _a.call(justVoTableLayerSettingNames_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\n/** A plain-old-data class implementing `VoTableLayerSettingsInterface`. */\nvar VoTableLayerState = /** @class */ (function (_super) {\n __extends(VoTableLayerState, _super);\n function VoTableLayerState(source) {\n var _this = \n // Here we redundantly copy the generic Layer settings, but TypeScript\n // requires the super() call. Oh well.\n _super.call(this, source) || this;\n copyVoTableLayerSettings(source, _this);\n return _this;\n }\n VoTableLayerState.prototype.get_altColumn = function () {\n return this.altColumn;\n };\n VoTableLayerState.prototype.set_altColumn = function (v) {\n this.altColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_altType = function () {\n return this.altType;\n };\n VoTableLayerState.prototype.set_altType = function (v) {\n this.altType = v;\n return v;\n };\n VoTableLayerState.prototype.get_altUnit = function () {\n return this.altUnit;\n };\n VoTableLayerState.prototype.set_altUnit = function (v) {\n this.altUnit = v;\n return v;\n };\n VoTableLayerState.prototype.get_autoUpdate = function () {\n return this.autoUpdate;\n };\n VoTableLayerState.prototype.set_autoUpdate = function (v) {\n this.autoUpdate = v;\n return v;\n };\n VoTableLayerState.prototype.get_beginRange = function () {\n return this.beginRange;\n };\n VoTableLayerState.prototype.set_beginRange = function (v) {\n this.beginRange = v;\n return v;\n };\n VoTableLayerState.prototype.get_cartesianCustomScale = function () {\n return this.cartesianCustomScale;\n };\n VoTableLayerState.prototype.set_cartesianCustomScale = function (v) {\n this.cartesianCustomScale = v;\n return v;\n };\n VoTableLayerState.prototype.get_cartesianScale = function () {\n return this.cartesianScale;\n };\n VoTableLayerState.prototype.set_cartesianScale = function (v) {\n this.cartesianScale = v;\n return v;\n };\n VoTableLayerState.prototype.get_colorMapColumn = function () {\n return this.colorMapColumn;\n };\n VoTableLayerState.prototype.set_colorMapColumn = function (v) {\n this.colorMapColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_coordinatesType = function () {\n return this.coordinatesType;\n };\n VoTableLayerState.prototype.set_coordinatesType = function (v) {\n this.coordinatesType = v;\n return v;\n };\n VoTableLayerState.prototype.get_dataSourceUrl = function () {\n return this.dataSourceUrl;\n };\n VoTableLayerState.prototype.set_dataSourceUrl = function (v) {\n this.dataSourceUrl = v;\n return v;\n };\n VoTableLayerState.prototype.get_decay = function () {\n return this.decay;\n };\n VoTableLayerState.prototype.set_decay = function (v) {\n this.decay = v;\n return v;\n };\n VoTableLayerState.prototype.get_dynamicData = function () {\n return this.dynamicData;\n };\n VoTableLayerState.prototype.set_dynamicData = function (v) {\n this.dynamicData = v;\n return v;\n };\n VoTableLayerState.prototype.get_endDateColumn = function () {\n return this.endDateColumn;\n };\n VoTableLayerState.prototype.set_endDateColumn = function (v) {\n this.endDateColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_endRange = function () {\n return this.endRange;\n };\n VoTableLayerState.prototype.set_endRange = function (v) {\n this.endRange = v;\n return v;\n };\n VoTableLayerState.prototype.get_hyperlinkColumn = function () {\n return this.hyperlinkColumn;\n };\n VoTableLayerState.prototype.set_hyperlinkColumn = function (v) {\n this.hyperlinkColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_hyperlinkFormat = function () {\n return this.hyperlinkFormat;\n };\n VoTableLayerState.prototype.set_hyperlinkFormat = function (v) {\n this.hyperlinkFormat = v;\n return v;\n };\n VoTableLayerState.prototype.get_latColumn = function () {\n return this.latColumn;\n };\n VoTableLayerState.prototype.set_latColumn = function (v) {\n this.latColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_lngColumn = function () {\n return this.lngColumn;\n };\n VoTableLayerState.prototype.set_lngColumn = function (v) {\n this.lngColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_markerColumn = function () {\n return this.markerColumn;\n };\n VoTableLayerState.prototype.set_markerColumn = function (v) {\n this.markerColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_markerIndex = function () {\n return this.markerIndex;\n };\n VoTableLayerState.prototype.set_markerIndex = function (v) {\n this.markerIndex = v;\n return v;\n };\n VoTableLayerState.prototype.get_markerScale = function () {\n return this.markerScale;\n };\n VoTableLayerState.prototype.set_markerScale = function (v) {\n this.markerScale = v;\n return v;\n };\n VoTableLayerState.prototype.get_nameColumn = function () {\n return this.nameColumn;\n };\n VoTableLayerState.prototype.set_nameColumn = function (v) {\n this.nameColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_plotType = function () {\n return this.plotType;\n };\n VoTableLayerState.prototype.set_plotType = function (v) {\n this.plotType = v;\n return v;\n };\n VoTableLayerState.prototype.get_pointScaleType = function () {\n return this.pointScaleType;\n };\n VoTableLayerState.prototype.set_pointScaleType = function (v) {\n this.pointScaleType = v;\n return v;\n };\n VoTableLayerState.prototype.get_raUnits = function () {\n return this.raUnits;\n };\n VoTableLayerState.prototype.set_raUnits = function (v) {\n this.raUnits = v;\n return v;\n };\n VoTableLayerState.prototype.get_scaleFactor = function () {\n return this.scaleFactor;\n };\n VoTableLayerState.prototype.set_scaleFactor = function (v) {\n this.scaleFactor = v;\n return v;\n };\n VoTableLayerState.prototype.get_showFarSide = function () {\n return this.showFarSide;\n };\n VoTableLayerState.prototype.set_showFarSide = function (v) {\n this.showFarSide = v;\n return v;\n };\n VoTableLayerState.prototype.get_sizeColumn = function () {\n return this.sizeColumn;\n };\n VoTableLayerState.prototype.set_sizeColumn = function (v) {\n this.sizeColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_startDateColumn = function () {\n return this.startDateColumn;\n };\n VoTableLayerState.prototype.set_startDateColumn = function (v) {\n this.startDateColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_timeSeries = function () {\n return this.timeSeries;\n };\n VoTableLayerState.prototype.set_timeSeries = function (v) {\n this.timeSeries = v;\n return v;\n };\n VoTableLayerState.prototype.get_xAxisColumn = function () {\n return this.xAxisColumn;\n };\n VoTableLayerState.prototype.set_xAxisColumn = function (v) {\n this.xAxisColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_xAxisReverse = function () {\n return this.xAxisReverse;\n };\n VoTableLayerState.prototype.set_xAxisReverse = function (v) {\n this.xAxisReverse = v;\n return v;\n };\n VoTableLayerState.prototype.get_yAxisColumn = function () {\n return this.yAxisColumn;\n };\n VoTableLayerState.prototype.set_yAxisColumn = function (v) {\n this.yAxisColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_yAxisReverse = function () {\n return this.yAxisReverse;\n };\n VoTableLayerState.prototype.set_yAxisReverse = function (v) {\n this.yAxisReverse = v;\n return v;\n };\n VoTableLayerState.prototype.get_zAxisColumn = function () {\n return this.zAxisColumn;\n };\n VoTableLayerState.prototype.set_zAxisColumn = function (v) {\n this.zAxisColumn = v;\n return v;\n };\n VoTableLayerState.prototype.get_zAxisReverse = function () {\n return this.zAxisReverse;\n };\n VoTableLayerState.prototype.set_zAxisReverse = function (v) {\n this.zAxisReverse = v;\n return v;\n };\n return VoTableLayerState;\n}(LayerState));\n\n//# sourceMappingURL=votablelayer.js.map\n;// CONCATENATED MODULE: ../engine-helpers/dist/src/index.js\n// Copyright 2020-2023 the .NET Foundation\n// Licensed under the MIT License\n\n\n\n\n\n\n// Settings-related re-exports\n\n\n\n\n\n\n\n\n\nvar SavedPromise = /** @class */ (function () {\n function SavedPromise(payload, resolve, reject) {\n this.payload = payload;\n this.resolve = resolve;\n this.reject = reject;\n }\n return SavedPromise;\n}());\nvar WWTInstance = /** @class */ (function () {\n /** Create a WWT control, attaching it to a DOM element.\n *\n * @param options Options to apply to the control.\n *\n * Compared to the underlying library, this class provides a more JavaScript-y\n * API.\n */\n function WWTInstance(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n // Ready promises\n this.readyPromises = [];\n this.readyFired = false;\n // Arrival promises\n this.arrivePromises = [];\n this.arriveSeqnum = 0;\n // Collection-loaded promises. To simplify the handling, we never load the\n // same URL more than once. Otherwise, all of the timing issues about multiple\n // requests for the same URL get gnarly to handle. And as far as the engine is\n // concerned, collection loads are idempotent.\n this.collectionLoadedPromises = [];\n this.collectionRequests = new Map();\n this.tourReadyPromises = [];\n this.tourReadySeqnum = 0;\n /** A callback to be invoked when a tour completes playing. */\n this.tourEndedCallback = null;\n var builder = new engine_root_wwtlib_.WWTControlBuilder(options.elId || \"wwt\");\n if (options.startInternalRenderLoop !== undefined) {\n builder.startRenderLoop(options.startInternalRenderLoop);\n }\n if (options.freestandingAssetBaseurl !== undefined) {\n builder.freestandingMode(options.freestandingAssetBaseurl);\n }\n if (options.startLatDeg !== undefined && options.startLngDeg !== undefined) {\n var zoom = options.startZoomDeg || 360;\n builder.initialView(options.startLatDeg, options.startLngDeg, zoom);\n }\n if (options.startMode !== undefined) {\n builder.initialMode(options.startMode);\n }\n // We pretend that these objects aren't all singletons. One day.\n this.si = builder.create();\n this.ctl = engine_root_wwtlib_.WWTControl.singleton;\n this.lm = engine_root_wwtlib_.LayerManager;\n this.stc = engine_root_wwtlib_.SpaceTimeController;\n // Override some defaults\n this.applySetting([\"showConstellationBoundries\", false]);\n this.applySetting([\"showConstellationFigures\", false]);\n this.applySetting([\"showConstellationSelection\", false]);\n this.applySetting([\"showCrosshairs\", false]);\n // Ready promise initialization:\n this.si.add_ready(function (_si) {\n var e_1, _a;\n try {\n for (var _b = tslib_es6_values(_this.readyPromises), _c = _b.next(); !_c.done; _c = _b.next()) {\n var p = _c.value;\n p.resolve();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n _this.readyFired = true;\n _this.readyPromises = [];\n });\n // Arrival promise initialization:\n this.si.add_arrived(function (_si, _args) {\n var e_2, _a;\n try {\n for (var _b = tslib_es6_values(_this.arrivePromises), _c = _b.next(); !_c.done; _c = _b.next()) {\n var p = _c.value;\n if (p.payload < _this.arriveSeqnum) {\n p.reject(\"superseded\");\n }\n else {\n p.resolve();\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n _this.arrivePromises = [];\n });\n // TourReady promise init:\n this.si.add_tourReady(function (_si) {\n var e_3, _a;\n try {\n for (var _b = tslib_es6_values(_this.tourReadyPromises), _c = _b.next(); !_c.done; _c = _b.next()) {\n var p = _c.value;\n if (p.payload < _this.tourReadySeqnum) {\n p.reject(\"superseded\");\n }\n else {\n p.resolve();\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n _this.tourReadyPromises = [];\n });\n // TourEnded event init:\n engine_root_wwtlib_.TourPlayer.add_tourEnded(function (_tpclass) {\n var tp = _this.getActiveTourPlayer();\n if (tp !== null && _this.tourEndedCallback !== null) {\n _this.tourEndedCallback(tp);\n }\n });\n }\n WWTInstance.prototype.waitForReady = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n if (_this.readyFired) {\n resolve();\n }\n else {\n _this.readyPromises.push(new SavedPromise(null, resolve, reject));\n }\n })];\n });\n });\n };\n WWTInstance.prototype.makeArrivePromise = function (instantResolve) {\n var e_4, _a;\n var _this = this;\n this.arriveSeqnum += 1;\n var seq = this.arriveSeqnum;\n try {\n for (var _b = tslib_es6_values(this.arrivePromises), _c = _b.next(); !_c.done; _c = _b.next()) {\n var p = _c.value;\n p.reject(\"superseded\");\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n this.arrivePromises = [];\n return new Promise(function (resolve, reject) {\n if (_this.arriveSeqnum > seq) {\n reject(\"superseded\");\n }\n else if (instantResolve) {\n resolve();\n }\n else {\n _this.arrivePromises.push(new SavedPromise(seq, resolve, reject));\n }\n });\n };\n /** Navigate the camera to the specified position, asynchronously.\n *\n * This wraps the underlying engine function of the same name, but homogenizing some\n * of the angular arguments to use radians.\n *\n * @param raRad The RA to seek to, in radians\n * @param decRad The declination to seek to, in radians\n * @param zoomDeg The zoom setting, in *degrees*\n * @param instant Whether to snap the camera instantly, or pan it\n * @param rollRad If specified, the roll of the target camera position, in radians\n * @returns A void promise that resolves when the camera arrives at the target position.\n */\n WWTInstance.prototype.gotoRADecZoom = function (raRad, decRad, zoomDeg, instant, rollRad) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.ctl.gotoRADecZoom(raRad * R2H, decRad * R2D, zoomDeg, instant, rollRad);\n return [2 /*return*/, this.makeArrivePromise(instant)];\n });\n });\n };\n /** Returns how long moving to a given position will take, in seconds.\n *\n * This wraps the underlying engine function of the same name, but homogenizing some\n * of the angular arguments to use radians.\n *\n * @param raRad The RA of the target position, in radians\n * @param decRad The declination of the target position, in radians\n * @param zoomDeg The zoom setting, in *degrees*\n * @param rollRad If specified, the roll of the target camera position, in radians\n * @returns The amount of time, in seconds, that moving to the given position would take.\n */\n WWTInstance.prototype.timeToRADecZoom = function (raRad, decRad, zoomDeg, rollRad) {\n var time = this.ctl.timeToRADecZoom(raRad * R2H, decRad * R2D, zoomDeg, rollRad);\n return time;\n };\n /** Command the view to show a Place.\n *\n * @param options The options for the goto command.\n */\n WWTInstance.prototype.gotoTarget = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.ctl.gotoTarget(options.place, options.noZoom, options.instant, options.trackObject);\n return [2 /*return*/, this.makeArrivePromise(options.instant)];\n });\n });\n };\n /** Add an imageset directly into the engine's database.\n *\n * If an imageset with the same URL has already been loaded, this is a no-op.\n *\n * @param imgset The imageset to add\n * @returns Either the input argument, if it was added to the engine's\n * database, or the pre-existing imageset. The pre-existing imageset will\n * have the same URL but might differ in other respects, such as its name.\n */\n WWTInstance.prototype.addImagesetToRepository = function (imgset) {\n return engine_root_wwtlib_.WWTControl.addImageSetToRepository(imgset);\n };\n /** Load a WTML collection and the imagesets that it contains.\n *\n * This function triggers a download of the specified URL, which should return\n * an XML document in the [WTML collection][wtml] format. Any `ImageSet`\n * entries in the collection, or `Place` entries containing image sets, will\n * be added to the WWT instance’s list of available imagery. Subsequent calls\n * to functions like {@link setForegroundImageByName} will be able to locate the\n * new imagesets and display them to the user.\n *\n * Each unique URL is only requested once. Once a given URL has been\n * successfully loaded, the promise returned by additional calls will resolve\n * immediately. URL uniqueness is tested with simple string equality, so if\n * you really want to load the same URL more than once you could add a\n * fragment specifier.\n *\n * If the URL is not accessible due to CORS restrictions, the request will\n * automatically be routed through the WWT’s CORS proxying service.\n *\n * [wtml]: https://docs.worldwidetelescope.org/data-guide/1/data-file-formats/collections/\n *\n * @param url: The URL of the WTML collection file to load.\n * @param loadChildFolders When true, this method will recursively\n * download and unpack the content of all Folders contained in the WTML file.\n * @returns: A promise that resolves to an initialized Folder object.\n */\n WWTInstance.prototype.loadImageCollection = function (url, loadChildFolders) {\n return __awaiter(this, void 0, void 0, function () {\n var curState, holder_1;\n var _this = this;\n return __generator(this, function (_a) {\n curState = this.collectionRequests.get(url);\n // If we've already loaded the folder, insta-resolve to it.\n if (curState !== undefined && curState !== null) {\n return [2 /*return*/, Promise.resolve(curState)];\n }\n // If we haven't even issued the request, do so.\n if (curState === undefined) {\n // Mark this URL as having an in-flight request.\n this.collectionRequests.set(url, null);\n holder_1 = { f: null };\n if (loadChildFolders === undefined) {\n loadChildFolders = false;\n }\n holder_1.f = engine_root_wwtlib_.Wtml.getWtmlFile(url, function () {\n // The folder at this URL is now fully loaded.\n var f = holder_1.f;\n _this.collectionRequests.set(url, f);\n _this.collectionLoadedPromises = _this.collectionLoadedPromises.filter(function (p) {\n if (p.payload == url) {\n p.resolve(f);\n return false;\n }\n // Don't filter out promises for other URLs.\n return true;\n });\n }, loadChildFolders);\n }\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var curState = _this.collectionRequests.get(url);\n // By the time this promise callback is called, maybe the Folder has fully\n // loaded?\n if (curState !== undefined && curState !== null) {\n resolve(curState);\n }\n else {\n // If not, queue ourselves up to be resolved when the data finally come\n // through.\n _this.collectionLoadedPromises.push(new SavedPromise(url, resolve, reject));\n }\n })];\n });\n });\n };\n // Layers\n /** Load an image set or a remote FITS file into a data layer and display it.\n *\n * The FITS file must be downloaded and processed, so this API is\n * asynchronous, and is not appropriate for files that might be large.\n *\n * The image set must have previously been created with {@link loadImageCollection}\n */\n WWTInstance.prototype.addImageSetLayer = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, _reject) {\n _this.si.addImageSetLayer(options.url, options.mode, options.name, options.goto, function (layer) {\n resolve(layer);\n });\n })];\n });\n });\n };\n /** Change the ImageSetLayer position in the layer stack. */\n WWTInstance.prototype.setImageSetLayerOrder = function (options) {\n this.si.setImageSetLayerOrder(options.id, options.order);\n };\n /** Change the \"stretch\" settings of a FITS image layer. */\n WWTInstance.prototype.stretchFitsLayer = function (options) {\n var layer = this.lm.get_layerList()[options.id];\n if (layer && layer instanceof engine_root_wwtlib_.ImageSetLayer) {\n layer.setImageScalePhysical(options.stretch, options.vmin, options.vmax);\n // This is kind of random, but follows the pywwt API implementation.\n var fits = layer.getFitsImage();\n if (fits !== null) {\n layer.get_imageSet().get_fitsProperties().transparentBlack = false;\n }\n }\n };\n /** Change the colormap settings of a FITS image layer. */\n WWTInstance.prototype.setFitsLayerColormap = function (options) {\n var layer = this.lm.get_layerList()[options.id];\n if (layer && layer instanceof engine_root_wwtlib_.ImageSetLayer) {\n layer.set_colorMapperName(options.name);\n }\n };\n /** Apply settings to a FITS image layer. */\n WWTInstance.prototype.applyFitsLayerSettings = function (options) {\n var e_5, _a;\n var layer = this.lm.get_layerList()[options.id];\n if (layer && layer instanceof engine_root_wwtlib_.ImageSetLayer) {\n try {\n for (var _b = tslib_es6_values(options.settings), _c = _b.next(); !_c.done; _c = _b.next()) {\n var setting = _c.value;\n applyImageSetLayerSetting(layer, setting);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n }\n };\n /** Update the data within a tabular data layer. */\n WWTInstance.prototype.updateTableLayer = function (options) {\n var layer = this.lm.get_layerList()[options.id];\n if (layer && layer instanceof engine_root_wwtlib_.SpreadSheetLayer) {\n layer.updateData(options.dataCsv, true, true, true);\n }\n };\n /** Apply settings to a tabular data layer. */\n WWTInstance.prototype.applyTableLayerSettings = function (options) {\n var e_6, _a;\n var layer = this.lm.get_layerList()[options.id];\n if (layer && layer instanceof engine_root_wwtlib_.SpreadSheetLayer) {\n try {\n for (var _b = tslib_es6_values(options.settings), _c = _b.next(); !_c.done; _c = _b.next()) {\n var setting = _c.value;\n applySpreadSheetLayerSetting(layer, setting);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n };\n /** Add a new HiPS catalog to the view, by name.\n *\n * The promise will resolve when the catalog metadata have fully downloaded.\n * It will reject if the name is unrecognized.\n *\n * HiPS catalogs are something of an awkward hybrid. They are managed like\n * imagesets, but rendered like spreadsheet layers. To get the\n * `SpreadSheetLayer` associated with a HiPS catalog imageset, access:\n *\n * ```\n * imgset.get_hipsProperties().get_catalogSpreadSheetLayer()\n * ```\n *\n * You can use methods like {@link applyTableLayerSettings} to modify the settings\n * of this layer by extracting its ID string with `layer.id.toString()`.\n *\n * The contents of this catalog will update dynamically as the user navigates\n * the WWT view.\n */\n WWTInstance.prototype.addCatalogHipsByName = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var imgset = _this.ctl.getImagesetByName(options.name);\n if (imgset === null) {\n reject();\n }\n else {\n _this.ctl.renderContext.addCatalogHips(imgset, function () {\n resolve(imgset);\n });\n }\n })];\n });\n });\n };\n /** Fetch the subset of catalog HiPS data contained within the current view.\n *\n * The imageset should have been loaded with the {@link addCatalogHipsByName}\n * call. The *limit* option should almost always be true, since if it is false\n * the data-fetch operation can potentially attempt to download and return\n * gigabytes of data.\n * */\n WWTInstance.prototype.getCatalogHipsDataInView = function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, _reject) {\n _this.ctl.renderContext.getCatalogHipsDataInView(options.imageset, options.limit, function (msg) {\n resolve(msg);\n });\n })];\n });\n });\n };\n // \"Mutator\" type operations -- not async.\n WWTInstance.prototype.applySetting = function (setting) {\n var funcName = \"set_\" + setting[0];\n var value = setting[1]; // eslint-disable-line @typescript-eslint/no-explicit-any\n this.si.settings[funcName](value); // eslint-disable-line @typescript-eslint/no-explicit-any\n };\n WWTInstance.prototype.setBackgroundImageByName = function (imagesetName) {\n this.ctl.setBackgroundImageByName(imagesetName);\n };\n WWTInstance.prototype.setForegroundImageByName = function (imagesetName) {\n this.ctl.setForegroundImageByName(imagesetName);\n };\n /** Set the opacity with which the foreground imageset is rendered.\n *\n * @param opacity The opacity, between 0 (invisible) and 100 (fully opaque).\n */\n WWTInstance.prototype.setForegroundOpacity = function (opacity) {\n this.si.setForegroundOpacity(opacity);\n };\n /** Set up the view to instantaneously display the specified imageset.\n *\n * This function aspires to provide a one-stop shop for configuring the engine\n * to show one arbitrary imageset. It aims to automatically choose the right,\n * or at least justifiable, values for things like the background imageset,\n * the camera position, and the zoom level.\n *\n * Because this function makes instantaneous changes, it is not appropriate\n * for interactive use. It is intended to be used as a WWT view is being\n * initialized.\n *\n * @param imageset The imageset to display.\n */\n WWTInstance.prototype.setupForImageset = function (options) {\n var bkg;\n if (options.background) {\n bkg = options.background;\n }\n else {\n bkg = this.ctl.getDefaultImageset(options.foreground.get_dataSetType(), options.foreground.get_bandPass());\n }\n var imageHeightDeg;\n if (options.foreground.get_levels() > 0) {\n // For tiled images, baseTileDegrees gives the image angular height\n // directly, modulo a factor of two uncertainty depending on how the image\n // pixel height rounds up to a power of two.\n imageHeightDeg = options.foreground.get_baseTileDegrees();\n }\n else {\n // Unfortunately, for untiled images we don't have the information needed\n // to assess the image's angular height reliably. In many cases offsetY\n // will be about half of the pixel height, but it could be anything.\n imageHeightDeg = options.foreground.get_baseTileDegrees() * options.foreground.get_offsetY() * 2;\n }\n var place = new engine_root_wwtlib_.Place();\n place.set_type(options.foreground.get_dataSetType());\n place.set_backgroundImageset(bkg);\n place.set_studyImageset(options.foreground);\n var noZoom = false;\n switch (options.foreground.get_dataSetType()) {\n case ImageSetType.sky:\n if (imageHeightDeg == 180) {\n // All-sky image -- special behavior\n noZoom = true;\n }\n else {\n place.set_RA(options.foreground.get_centerX() * D2H);\n place.set_dec(options.foreground.get_centerY());\n place.set_zoomLevel(imageHeightDeg * 6);\n }\n break;\n case ImageSetType.earth:\n case ImageSetType.planet:\n place.set_zoomLevel(120); // a pleasing default, according to me\n if (imageHeightDeg != 180) {\n // need to verify that this is right\n place.set_lng(options.foreground.get_centerX());\n place.set_lat(options.foreground.get_centerY());\n }\n break;\n default:\n // TODO: more cases ...\n place.set_zoomLevel(360);\n break;\n }\n this.ctl.renderContext.set_backgroundImageset(bkg);\n this.ctl.gotoTarget(place, noZoom, true, // instant\n true // trackObject\n );\n };\n // Tours\n /** If the tour playback mode is active, get the active TourPlayer object. */\n WWTInstance.prototype.getActiveTourPlayer = function () {\n if (this.ctl.uiController === null)\n return null;\n if (this.ctl.uiController instanceof engine_root_wwtlib_.TourPlayer)\n return this.ctl.uiController;\n return null;\n };\n /** Find out whether a tour is playing.\n *\n * For obscure reasons, this is a static method in WWT that is not attached to\n * a TourPlayer instance. We take one as an argument for future-proofiness.\n */\n WWTInstance.prototype.getIsTourPlaying = function (_player) {\n return engine_root_wwtlib_.TourPlayer.get_playing();\n };\n /** Load a tour from a URL.\n *\n * Once the tour has loaded, you can use {@link getActiveTourPlayer} to get the\n * tour player controller and the underlying tour document.\n *\n * @param url The URL of the tour to load and play.\n * @returns A promise that resolves when the tour has loaded.\n */\n WWTInstance.prototype.loadTour = function (url) {\n return __awaiter(this, void 0, void 0, function () {\n var seq, _a, _b, p;\n var e_7, _c;\n var _this = this;\n return __generator(this, function (_d) {\n this.ctl.loadTour(url);\n this.tourReadySeqnum += 1;\n seq = this.tourReadySeqnum;\n try {\n for (_a = tslib_es6_values(this.tourReadyPromises), _b = _a.next(); !_b.done; _b = _a.next()) {\n p = _b.value;\n p.reject(\"superseded\");\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_7) throw e_7.error; }\n }\n this.tourReadyPromises = [];\n return [2 /*return*/, new Promise(function (resolve, reject) {\n if (_this.tourReadySeqnum > seq) {\n reject(\"superseded\");\n }\n else {\n _this.tourReadyPromises.push(new SavedPromise(seq, resolve, reject));\n }\n })];\n });\n });\n };\n /** Load a tour from a URL and start playing it.\n *\n * @param url The URL of the tour to load and play.\n * @returns A promise that resolves when the tour has loaded and started\n * playing.\n */\n WWTInstance.prototype.loadAndPlayTour = function (url) {\n return __awaiter(this, void 0, void 0, function () {\n var seq, _a, _b, p;\n var e_8, _c;\n var _this = this;\n return __generator(this, function (_d) {\n this.ctl.playTour(url);\n this.tourReadySeqnum += 1;\n seq = this.tourReadySeqnum;\n try {\n for (_a = tslib_es6_values(this.tourReadyPromises), _b = _a.next(); !_b.done; _b = _a.next()) {\n p = _b.value;\n p.reject(\"superseded\");\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_8) throw e_8.error; }\n }\n this.tourReadyPromises = [];\n return [2 /*return*/, new Promise(function (resolve, reject) {\n if (_this.tourReadySeqnum > seq) {\n reject(\"superseded\");\n }\n else {\n _this.tourReadyPromises.push(new SavedPromise(seq, resolve, reject));\n }\n })];\n });\n });\n };\n /** Find out how far we have progressed into the tour, in seconds.\n *\n * This number does not necessarily progress monotonically due to the way that\n * WWT measures tour playback progress. We associate a start time with each\n * \"stop\" in the tour, and can measure progress through a stop, but stops do\n * not necessarily transition from one to another in linear fashion.\n *\n * That being said, this number should range between 0 and the runtime of the\n * current tour. If no tour is loaded, it will be zero.\n */\n WWTInstance.prototype.getEffectiveTourTimecode = function () {\n var player = this.getActiveTourPlayer();\n if (player === null)\n return 0.0;\n var tour = player.get_tour();\n if (tour === null)\n return 0.0;\n var idx = tour.get_currentTourstopIndex();\n if (idx < 0)\n return 0.0;\n var base = tour.elapsedTimeTillTourstop(idx);\n var stop = tour.get_tourStops()[idx];\n var delta = stop.get_tweenPosition() * stop.get_duration() * 0.001; // ms => s\n var value = base + delta;\n // It's possible for our math to yield a value slightly larger than the\n // nominal tour runtime, which can upset code that expects the value to stay\n // rigorously within that bound. So, clamp it to be sure.\n if (value < 0)\n return 0.0;\n var runTime = tour.get_runTime() * 0.001; // ms => s\n if (value > runTime)\n return runTime;\n return value;\n };\n /** \"Seek\" tour playback to approximately the specified timecode (in seconds).\n *\n * The tour will start playing back.\n *\n * This operation is approximate because WWT can only resume playback from the\n * beginning of a \"tour stop\". So, if the desired timecode is in the middle of\n * such a stop, playback will start there, not at the exact value that was\n * commanded. This can be a little annoying when a slide is long.\n *\n * If no tour or tour player is active, nothing happens.\n */\n WWTInstance.prototype.seekToTourTimecode = function (value) {\n var player = this.getActiveTourPlayer();\n if (player === null)\n return;\n var tour = player.get_tour();\n if (tour === null)\n return;\n // Figure out the stop index that best matches the specified timecode.\n var stops = tour.get_tourStops();\n var index = stops.length - 1;\n for (var i = 0; i < stops.length; i++) {\n var tStart = tour.elapsedTimeTillTourstop(i);\n if (tStart >= value) {\n index = i - 1;\n break;\n }\n }\n if (index < 0) {\n index = 0;\n }\n // Apply the change.\n player.playFromTourstop(stops[index]);\n };\n /** Capture the current frame as an image.\n *\n * This function returns a Promise whose resolved value is the image\n * represented as a `Blob`.\n */\n WWTInstance.prototype.captureFrame = function (options) {\n var _this = this;\n return new Promise(function (resolve, _reject) {\n _this.ctl.captureFrame(function (blob) { return resolve(blob); }, options.width, options.height, options.format);\n });\n };\n /** Capture a video as a sequence of frames using the given parameters\n *\n * This function returns a readable stream whose values are the exported frames.\n */\n WWTInstance.prototype.captureVideo = function (options) {\n var wwtControl = this.ctl;\n var videoStream = new ReadableStream({\n start: function (controller) {\n function stream() {\n var received = 0;\n wwtControl.captureVideo(function (blob) {\n received++;\n controller.enqueue(blob);\n if (received >= options.totalFrames) {\n controller.close();\n }\n }, options.width, options.height, options.framesPerSecond, options.totalFrames, options.format);\n }\n return stream();\n }\n });\n return videoStream;\n };\n return WWTInstance;\n}());\n\n//# sourceMappingURL=index.js.map\n;// CONCATENATED MODULE: ./src/store.ts\n// Copyright 2020-2023 the .NET Foundation\n// Licensed under the MIT License\n\n\n\n\n\n\n/** The class of the global `$wwt` magic singleton. */\nvar WWTGlobalState = /** @class */ (function () {\n function WWTGlobalState() {\n this.inst = null;\n this.onLinkedCallbacks = [];\n }\n WWTGlobalState.prototype.link = function (inst) {\n var e_1, _a;\n if (this.inst !== null)\n throw new Error(\"must unlink WWT Pinia global state before relinking\");\n this.inst = inst;\n try {\n for (var _b = tslib_es6_values(this.onLinkedCallbacks), _c = _b.next(); !_c.done; _c = _b.next()) {\n var cb = _c.value;\n cb();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.onLinkedCallbacks = [];\n };\n WWTGlobalState.prototype.unlink = function () {\n this.inst = null;\n };\n return WWTGlobalState;\n}());\n\n/** This class holds basic information about an imageset.\n *\n * Discover imagesets through the {@link engineStore.availableImagesets}\n * state variable. In standard practice there will be hundreds of available\n * imagesets of many different kinds.\n *\n * Imagesets may be uniquely identified by their associated image data {@link url}.\n * (If you really need to have multiple imagesets associated with the same URL,\n * add a `#fragment` to the end.)\n */\nvar ImagesetInfo = /** @class */ (function () {\n function ImagesetInfo(url, name, type, description, extension, id) {\n if (id === void 0) { id = null; }\n this.url = url;\n this.name = name;\n this.type = type;\n this.description = description;\n this.extension = extension;\n this.id = id;\n }\n ImagesetInfo.fromImageset = function (imageset) {\n var _a, _b;\n return new ImagesetInfo(imageset.get_url(), imageset.get_name(), imageset.get_dataSetType(), imageset.get_creditsText(), imageset.get_extension(), (_b = (_a = imageset.get_hipsProperties()) === null || _a === void 0 ? void 0 : _a.get_catalogSpreadSheetLayer().id.toString()) !== null && _b !== void 0 ? _b : null);\n };\n return ImagesetInfo;\n}());\n\n/** Information about a spreadsheet (data table) layer. */\nvar SpreadSheetLayerInfo = /** @class */ (function () {\n function SpreadSheetLayerInfo(id, referenceFrame, name) {\n this.id = id;\n this.referenceFrame = referenceFrame;\n this.name = name !== null && name !== void 0 ? name : id;\n }\n SpreadSheetLayerInfo.prototype.setName = function (name) {\n this.name = name;\n };\n return SpreadSheetLayerInfo;\n}());\n\n/** Information about an active imageset layer. */\nvar ImageSetLayerState = /** @class */ (function () {\n function ImageSetLayerState(source) {\n this.guidText = source.id.toString();\n this.settings = new imagesetlayer_ImageSetLayerState(source);\n var fits = source.get_imageSet().get_fitsProperties();\n this.scaleType = fits.scaleType;\n this.vmin = fits.lowerCut;\n this.vmax = fits.upperCut;\n this.colormapName = fits.colorMapName;\n }\n ImageSetLayerState.prototype.getGuid = function () {\n return this.guidText;\n };\n return ImageSetLayerState;\n}());\n\n/** This function creates the list of currently active layers.\n * Keeping this functionality outside of the store allows us to use it from\n * inside either an action or a mutation.\n */\nfunction activeLayersList(wwt) {\n if (wwt.inst === null)\n throw new Error('cannot get activeLayersList without linking to WWTInstance');\n var layers = [];\n function accum(lm) {\n var e_2, _a, e_3, _b;\n try {\n for (var _c = tslib_es6_values(lm.layers), _d = _c.next(); !_d.done; _d = _c.next()) {\n var layer = _d.value;\n layers.push(layer.id.toString());\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n try {\n for (var _e = tslib_es6_values(Object.entries(lm.childMaps)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var _g = __read(_f.value, 2), _mapname = _g[0], sublm = _g[1];\n accum(sublm);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n var rootlm = wwt.inst.lm.get_allMaps()[wwt.inst.ctl.getCurrentReferenceFrame()];\n if (rootlm) {\n accum(rootlm);\n }\n return layers;\n}\n/** This function creates the list of currently available imagesets.\n * Keeping this functionality outside of the store allows us to use it from\n * inside either an action or a mutation.\n */\nfunction availableImagesets() {\n return engine_root_wwtlib_.WWTControl.getImageSets().map(ImagesetInfo.fromImageset);\n}\n/** The [Pinia] “use store” function defining the state of the WWT engine.\n *\n * [Pinia]: https://pinia.vuejs.org/core-concepts/#Defining-a-Store\n *\n * According to modern conventions, this function should be named\n * `useWWTEngineStore()`. Calling it returns a [Pinia store\n * object](https://pinia.vuejs.org/api/modules/pinia.html#Store) that allows you\n * to access and modify the WWT state. To get a broad sense of how Pinia store\n * objects may be used in general, [explore the Pinia\n * documentation](https://pinia.vuejs.org/core-concepts/).\n *\n * See [The WWT Pinia Interface](#md:the-wwt-pinia-interface) below for an\n * organized overview of all of the ways your code can control WWT using this\n * framework.\n *\n * ## Example\n *\n * If you were implementing a WWT-aware component using the Vue [“Composition\n * API”][comp-api] with a `\n *\n * \n * ```\n *\n * If you wanted to define a Vue component manually in TypeScript using the\n * Options API, you could manually connect some of its state or methods to the\n * WWT Pinia store with code like:\n *\n * ```ts\n * import { defineComponent } from \"vue\";\n * import { mapActions } from \"pinia\";\n * import { engineStore } from \"@wwtelescope/engine-pinia\";\n *\n * export class MyWWTAwareComponent extends defineComponent({\n * methods: {\n * ...mapActions(engineStore, [\"gotoRADecZoom\"])\n * }\n * }) {}\n * ```\n *\n * This would define a component with an associated method named `gotoRADecZoom`\n * that would be magically wired up to the corresponding {@link gotoRADecZoom}\n * store action. However, the whole point of the {@link WWTAwareComponent} class\n * is to make it so that you don’t need to write this code yourself: it exposes\n * all of the store’s state and methods in a predefined component. Instead of\n * manually mapping out of the store as written above, you can just extend it\n * and get everything “for free”.\n *\n * # The WWT Pinia Interface\n *\n * Here we document all of the available WWT interfaces, grouping them by\n * category. As a reminder, in the Pinia paradigm, state is expressed in [state\n * variables] and [getters], and modified either directly or through [actions]\n * (which can be asynchronous).\n *\n * [state variables]: https://pinia.vuejs.org/core-concepts/state.html\n *\n * [getters]: https://pinia.vuejs.org/core-concepts/getters.html\n *\n * [actions]: https://pinia.vuejs.org/core-concepts/actions.html\n *\n * ## Initialization\n *\n * Actions:\n *\n * - {@link waitForReady}\n * - {@link setupForImageset}\n *\n * ## Basic View Information\n *\n * State:\n *\n * - {@link currentTime}\n * - {@link clockDiscontinuities}\n * - {@link clockRate}\n * - {@link decRad}\n * - {@link raRad}\n * - {@link zoomDeg}\n * - {@link rollRad}\n *\n * Getters:\n *\n * - {@link findRADecForScreenPoint}\n * - {@link findScreenPointForRADec}\n *\n * Actions:\n *\n * - {@link gotoRADecZoom}\n * - {@link timeToRADecZoom}\n * - {@link gotoTarget}\n * - {@link setClockRate}\n * - {@link setClockSync}\n * - {@link setTime}\n * - {@link setTrackedObject}\n * - {@link zoom}\n * - {@link move}\n * - {@link tilt}\n *\n * ## Image Sets\n *\n * State:\n *\n * - {@link availableImagesets}\n * - {@link backgroundImageset}\n * - {@link foregroundImageset}\n * - {@link foregroundOpacity}\n * - {@link renderType}\n *\n * Getters:\n *\n * - {@link lookupImageset}\n *\n * Actions:\n *\n * - {@link loadImageCollection}\n * - {@link addImagesetToRepository}\n * - {@link setBackgroundImageByName}\n * - {@link setForegroundImageByName}\n * - {@link setForegroundOpacity}\n * - {@link setupForImageset}\n *\n *\n * ## General Layer Management\n *\n * State:\n *\n * - {@link activeLayers}\n *\n * Getters:\n *\n * - {@link layerById}\n *\n * Actions:\n *\n * - {@link deleteLayer}\n *\n * ## Imageset Layers (including FITS imagery)\n *\n * State:\n *\n * - {@link activeLayers}\n * - {@link imagesetLayers}\n *\n * Getters:\n *\n * - {@link activeImagesetLayerStates}\n * - {@link imagesetForLayer}\n * - {@link imagesetStateForLayer}\n * - {@link imagesetLayerById}\n *\n * Actions:\n *\n * - {@link addImageSetLayer}\n * - {@link loadFitsLayer} (deprecated)\n * - {@link applyFitsLayerSettings}\n * - {@link setFitsLayerColormap}\n * - {@link stretchFitsLayer}\n * - {@link setImageSetLayerOrder}\n * - {@link deleteLayer}\n *\n * ## Tabular (“Spreadsheet”) Data Layers\n *\n * State:\n *\n * - {@link activeLayers}\n * - {@link spreadSheetLayers}\n *\n * Getters:\n *\n * - {@link spreadSheetLayer}\n * - {@link spreadsheetState}\n * - {@link spreadSheetLayerById}\n * - {@link spreadsheetStateById}\n *\n * Actions:\n *\n * - {@link createTableLayer}\n * - {@link applyTableLayerSettings}\n * - {@link updateTableLayer}\n * - {@link deleteLayer}\n *\n * ## Annotations\n *\n * Actions:\n *\n * - {@link addAnnotation}\n * - {@link clearAnnotations}\n * - {@link removeAnnotation}\n *\n * ## Progressive HiPS Catalogs\n *\n * These have some characteristics of both imagesets and tabular (\"spreadsheet\")\n * data layers.\n *\n * Getters:\n *\n * - {@link layerForHipsCatalog}\n * - {@link spreadsheetStateForHipsCatalog}\n *\n * Actions:\n *\n * - {@link addCatalogHipsByName}\n * - {@link applyTableLayerSettings}\n * - {@link getCatalogHipsDataInView}\n * - {@link removeCatalogHipsByName}\n *\n * ## Tours\n *\n * State:\n *\n * - {@link isTourPlayerActive}\n * - {@link isTourPlaying}\n * - {@link tourCompletions}\n * - {@link tourRunTime}\n * - {@link tourStopStartTimes}\n * - {@link tourTimecode}\n *\n * Actions:\n *\n * - {@link loadTour}\n * - {@link seekToTourTimecode}\n * - {@link setTourPlayerLeaveSettingsWhenStopped}\n * - {@link startTour}\n * - {@link toggleTourPlayPauseState}\n *\n * ## Miscellaneous\n *\n * State:\n *\n * - {@link showWebGl2Warning}\n *\n * Actions:\n *\n * - {@link applySetting}\n * - {@link viewAsTourXml}\n * - {@link captureFrame}\n * - {@link captureVideo}\n * - {@link clearTileCache}\n */\nvar engineStore = defineStore('wwt-engine', {\n // NOTE: We were originally alphabetizing these all, but now I think it will\n // be better to group topically related fields.\n // Through typedoc magic, these fields are documented via the docstrings that\n // appear in the `WWTEnginePiniaState` interface definition.\n state: function () { return ({\n activeLayers: [],\n availableImagesets: [],\n backgroundImageset: null,\n clockDiscontinuities: 0,\n clockRate: 1.0,\n currentTime: new Date(),\n decRad: 0.0,\n foregroundImageset: null,\n foregroundOpacity: 100,\n imagesetLayers: {},\n isTourPlayerActive: false,\n isTourPlaying: false,\n raRad: 0.0,\n renderType: ImageSetType.sky,\n rollRad: 0,\n spreadSheetLayers: {},\n timeAtStartup: Date.now(),\n tourCompletions: 0,\n tourRunTime: null,\n tourStopStartTimes: [],\n tourTimecode: 0.0,\n showWebGl2Warning: false,\n zoomDeg: 0.0,\n }); },\n getters: {\n /** Look up an [Imageset](../../engine/classes/Imageset-1.html) in the engine’s\n * table of ones with registered names.\n *\n * This delegates to\n * [WWTControl.getImagesetByName()](../../engine/classes/WWTControl-1.html#getimagesetbyname),\n * which has very eager name-matching rules. But if nothing matches, null is\n * returned.\n *\n * Imagesets are not added to the engine’s list of names automatically. In\n * order for an imageset to be findable by this function, its containing\n * folder must have been loaded using the {@link loadImageCollection} action.\n */\n lookupImageset: function (_state) {\n var _this = this;\n return function (imagesetName) {\n if (_this.$wwt.inst === null)\n throw new Error('cannot lookupImageset without linking to WWTInstance');\n return _this.$wwt.inst.ctl.getImagesetByName(imagesetName);\n };\n },\n /** Get the right ascension and declination, in degrees, for x, y coordinates on the screen */\n findRADecForScreenPoint: function (_state) {\n var _this = this;\n return function (pt) {\n if (_this.$wwt.inst === null)\n throw new Error('cannot findRADecForScreenPoint without linking to WWTInstance');\n var coords = _this.$wwt.inst.ctl.getCoordinatesForScreenPoint(pt.x, pt.y);\n return { ra: (15 * coords.x + 720) % 360, dec: coords.y };\n };\n },\n /** Given an RA and Dec position, return the x, y coordinates of the screen point */\n findScreenPointForRADec: function (_state) {\n var _this = this;\n return function (pt) {\n if (_this.$wwt.inst === null)\n throw new Error('cannot findScreenPointForRADec without linking to WWTInstance');\n return _this.$wwt.inst.ctl.getScreenPointForCoordinates(pt.ra / 15, pt.dec);\n };\n },\n /** Look up the reactive state for an active imageset layer.\n *\n * These layers are created using the {@link addImageSetLayer} action. The state\n * returned by this function is part of the reactive store, so you can\n * wire it up to your UI and it will update as the layer settings are changed.\n * If you need \"runtime\" state not captured in the reactivity system, you may\n * need to use {@link imagesetForLayer} instead.\n *\n * @param guidtext The GUID of the layer to query, as a string\n * @returns The layer state, or null if the GUID is unrecognized\n */\n imagesetStateForLayer: function (state) {\n return function (guidtext) {\n return state.imagesetLayers[guidtext] || null;\n };\n },\n // NOTE that this getter is defined in a weird way. This is intentional as a\n // \"bug fix\" but I forget the reasoning: see commit\n // efa9bf14656aa97b6f7609ec411e768dfb42bdf8 . This makes it so tha this\n // docstring is no rendered in the HTML docs :-(\n /** Get the reactive state for the active imageset layers\n *\n * These layers are created using the {@link addImageSetLayer} action. The state\n * structures returned by this function are part of the reactive store, so\n * you can wire them up to your UI and they will update correctly. The list is\n * returned in the engine's render order.\n *\n * @returns The layer states\n */\n activeImagesetLayerStates: function () {\n var e_4, _a;\n var states = [];\n try {\n for (var _b = tslib_es6_values(this.activeLayers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var guid = _c.value;\n var layerState = this.imagesetLayers[guid];\n if (layerState) {\n states.push(layerState);\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return states;\n },\n catalogLayerKey: function (_state) {\n return function (catalog) {\n var _a;\n return (_a = catalog.id) !== null && _a !== void 0 ? _a : \"\";\n };\n },\n /** Look up the WWT engine object for an active imageset layer.\n *\n * This getter gets the WWT `Imageset` object associated with an imageset\n * layer. The returned object is *not* part of the Vue(x) reactivity system,\n * so you shouldn't use it to set up UI elements, but you can obtain more\n * detailed information about the imageset than is stored in the state\n * management system. For UI purposes, use {@link imagesetStateForLayer}.\n *\n * @param guidtext The GUID of the layer to query, as a string\n * @returns The layer's underlying imageset, or null if the GUID is\n * unrecognized\n */\n imagesetForLayer: function (_state) {\n var _this = this;\n return function (guidtext) {\n if (_this.$wwt.inst === null)\n throw new Error('cannot get imagesetForLayer without linking to WWTInstance');\n var layer = _this.$wwt.inst.lm.get_layerList()[guidtext];\n if (layer !== null && layer instanceof engine_root_wwtlib_.ImageSetLayer) {\n return layer.get_imageSet();\n }\n else {\n return null;\n }\n };\n },\n /** Get the actual WWT `ImageSetLayer` for the imageset layer with the given ID.\n *\n * Do not use this function for UI purposes -- the WWT layer object is not\n * integrated into the reactive state system, and so if you use it as a basis\n * for UI elements, those elements will not be updated properly if/when the\n * layer's settings change. Use {@link imagesetStateForLayer} instead.\n *\n * @param id The imageset layer's identifier.\n */\n imagesetLayerById: function (_state) {\n var _this = this;\n return function (id) {\n if (_this.$wwt.inst === null)\n throw new Error('cannot get imagesetLayerById without linking to WWTInstance');\n var layer = _this.layerById(id);\n if (layer !== null && layer instanceof engine_root_wwtlib_.ImageSetLayer) {\n return layer;\n }\n else {\n return null;\n }\n };\n },\n /** Get the actual WWT `SpreadSheetLayer` for the named HiPS catalog.\n *\n * Do not use this function for UI purposes -- the WWT layer object is not\n * integrated into the reactive state system, and so if you use it as a basis\n * for UI elements, those elements will not be updated properly if/when the\n * layer's settings change. Use {@link spreadsheetStateForHipsCatalog} instead.\n *\n * @param name The `datasetName` of the HiPS catalog\n */\n layerForHipsCatalog: function (_state) {\n var _this = this;\n return function (name) {\n if (_this.$wwt.inst === null)\n throw new Error('cannot get layerForHipsCatalog without linking to WWTInstance');\n var id = engine_root_wwtlib_.Guid.createFrom(name).toString();\n return _this.spreadSheetLayerById(id);\n };\n },\n /** Get the actual WWT `Layer` for the layer with the given ID.\n *\n * Do not use this function for UI purposes -- the WWT layer object is not\n * integrated into the reactive state system, and so if you use it as a\n * basis for UI elements, those elements will not be updated properly\n * if/when the layer's settings change. If you know the specific type of\n * your layer, you can use functions like {@link imagesetStateForLayer} or\n * {@link spreadSheetStateById} to get reactive data structures.\n *\n * @param id The layer's identifier.\n */\n layerById: function (_state) {\n var _this = this;\n return function (id) {\n if (_this.$wwt.inst === null)\n throw new Error('cannot get layerById without linking to WWTInstance');\n return _this.$wwt.inst.lm.get_layerList()[id];\n };\n },\n /** Get reactive `SpreadSheetLayer` settings for the named HiPS catalog.\n *\n * The returned data structure is a component of the app's reactive state. You can\n * therefore use the settings to construct UI elements, and they will update\n * reactively as the state evolves. The actual data structures used by WWT are\n * separate, but the two mirror each other.\n *\n * @param name The `datasetName` of the HiPS catalog\n */\n spreadsheetStateForHipsCatalog: function (state) {\n var _this = this;\n return function (name) {\n if (_this.$wwt.inst === null)\n throw new Error('cannot get spreadsheetStateForHipsCatalog without linking to WWTInstance');\n var id = engine_root_wwtlib_.Guid.createFrom(name).toString();\n return state.spreadSheetLayers[id] || null;\n };\n },\n /** Get the actual WWT `SpreadSheetLayer` for the table layer with the given ID.\n *\n * Do not use this function for UI purposes -- the WWT layer object is not\n * integrated into the reactive state system, and so if you use it as a basis\n * for UI elements, those elements will not be updated properly if/when the\n * layer's settings change. Use {@link spreadsheetState} instead.\n *\n * @param id The table layer's identifier.\n */\n spreadSheetLayerById: function (_state) {\n var _this = this;\n return function (id) {\n if (_this.$wwt.inst === null)\n throw new Error('cannot get spreadsheetLayerById without linking to WWTInstance');\n var layer = _this.layerById(id);\n if (layer !== null && layer instanceof engine_root_wwtlib_.SpreadSheetLayer) {\n return layer;\n }\n else {\n return null;\n }\n };\n },\n /** Get reactive `SpreadSheetLayer` settings for the table layer with the given ID.\n *\n * The returned data structure is a component of the app's reactive state. You can\n * therefore use the settings to construct UI elements, and they will update\n * reactively as the state evolves. The actual data structures used by WWT are\n * separate, but the two mirror each other.\n *\n * @param id The identifier of the table layer.\n */\n spreadsheetStateById: function (state) {\n return function (id) {\n return state.spreadSheetLayers[id] || null;\n };\n },\n /** Get the actual WWT `SpreadSheetLayer` for the table layer corresponding\n * to the given CatalogLayerInfo.\n *\n * Do not use this function for UI purposes -- the WWT layer object is not\n * integrated into the reactive state system, and so if you use it as a basis\n * for UI elements, those elements will not be updated properly if/when the\n * layer's settings change. Use {@link spreadsheetState} instead.\n *\n * @param id The table layer's identifier.\n */\n spreadSheetLayer: function (_state) {\n var _this = this;\n return function (catalog) {\n if (_this.$wwt.inst === null)\n throw new Error('cannot get spreadSheetLayer without linking to WWTInstance');\n var key = _this.catalogLayerKey(catalog);\n return _this.spreadSheetLayerById(key);\n };\n },\n /** Get reactive `SpreadSheetLayer` settings for the table layer corresponding to\n * the given CatalogLayerInfo.\n *\n * The returned data structure is a component of the app's reactive state. You can\n * therefore use the settings to construct UI elements, and they will update\n * reactively as the state evolves. The actual data structures used by WWT are\n * separate, but the two mirror each other.\n *\n * @param catalog A CatalogLayerInfo object corresponding to the layer.\n */\n spreadsheetState: function (state) {\n var _this = this;\n return function (catalog) {\n var key = _this.catalogLayerKey(catalog);\n return state.spreadSheetLayers[key] || null;\n };\n }\n },\n actions: {\n /** @hidden */\n internalLinkToInstance: function (wwt) {\n this.$wwt.link(wwt);\n },\n /** @hidden */\n internalUnlinkFromInstance: function () {\n this.$wwt.unlink();\n },\n /** @hidden */\n internalUpdate: function () {\n if (this.$wwt.inst === null)\n throw new Error('cannot internalUpdate without linking to WWTInstance');\n var wwt = this.$wwt.inst;\n var raRad = wwt.si.getRA() * H2R;\n if (this.raRad != raRad)\n this.raRad = raRad;\n var decRad = wwt.si.getDec() * D2R;\n if (this.decRad != decRad)\n this.decRad = decRad;\n var zoomDeg = wwt.ctl.renderContext.viewCamera.zoom;\n if (this.zoomDeg != zoomDeg)\n this.zoomDeg = zoomDeg;\n var rollRad = wwt.ctl.renderContext.viewCamera.rotation;\n if (this.rollRad != rollRad)\n this.rollRad = rollRad;\n var bg = wwt.ctl.renderContext.get_backgroundImageset() || null; // TEMP\n if (this.backgroundImageset != bg)\n this.backgroundImageset = bg;\n var time = wwt.stc.get_now();\n if (this.currentTime != time)\n this.currentTime = time;\n var fg = wwt.ctl.renderContext.get_foregroundImageset() || null; // TEMP\n if (this.foregroundImageset != fg)\n this.foregroundImageset = fg;\n if (this.foregroundOpacity != wwt.ctl.renderContext.viewCamera.opacity)\n this.foregroundOpacity = wwt.ctl.renderContext.viewCamera.opacity;\n if (this.renderType != wwt.ctl.renderType)\n this.renderType = wwt.ctl.renderType;\n var player = wwt.getActiveTourPlayer();\n this.tourTimecode = wwt.getEffectiveTourTimecode();\n if (player !== null) {\n this.isTourPlayerActive = true;\n this.isTourPlaying = wwt.getIsTourPlaying(player);\n }\n else {\n this.isTourPlayerActive = false;\n this.isTourPlaying = false;\n }\n var showWebGl2Warning = !wwt.si.isUsingWebGl2()\n && (Date.now() - this.timeAtStartup) < 15000;\n if (this.showWebGl2Warning != showWebGl2Warning) {\n this.showWebGl2Warning = showWebGl2Warning;\n }\n },\n /** @hidden */\n internalIncrementTourCompletions: function () {\n this.tourCompletions += 1;\n },\n /** Alter one [WWT engine setting](../../engine/modules.html#enginesetting). */\n applySetting: function (setting) {\n if (this.$wwt.inst === null)\n throw new Error('cannot applySetting without linking to WWTInstance');\n this.$wwt.inst.applySetting(setting);\n },\n /** Set the current background [Imageset](../../engine/classes/Imageset-1.html)\n * based on its name.\n *\n * The name lookup here is effectively done using {@link lookupImageset}. If\n * the name is not found, the current background imageset remains unchanged.\n *\n * Changing the background imageset may change the value of {@link renderType},\n * and the overall \"mode\" of the WWT renderer.\n */\n setBackgroundImageByName: function (imagesetName) {\n if (this.$wwt.inst === null)\n throw new Error('cannot setBackgroundImageByName without linking to WWTInstance');\n this.$wwt.inst.setBackgroundImageByName(imagesetName);\n },\n /** Set the current foreground [Imageset](../../engine/classes/Imageset-1.html)\n * based on its name.\n *\n * The name lookup here is effectively done using {@link lookupImageset}. If\n * the name is not found, the current foreground imageset remains unchanged.\n */\n setForegroundImageByName: function (imagesetName) {\n if (this.$wwt.inst === null)\n throw new Error('cannot setForegroundImageByName without linking to WWTInstance');\n this.$wwt.inst.setForegroundImageByName(imagesetName);\n },\n /** Set the opacity of the foreground imageset.\n *\n * Valid values are between 0 (invisible) and 100 (fully opaque).\n */\n setForegroundOpacity: function (opacity) {\n if (this.$wwt.inst === null)\n throw new Error('cannot setForegroundOpacity without linking to WWTInstance');\n this.$wwt.inst.setForegroundOpacity(opacity);\n this.foregroundOpacity = opacity;\n },\n /** Set up the background and foreground imagesets according to\n * [the options](../../engine-helpers/interfaces/SetupForImagesetOptions.html)\n *\n * The main use of this interface is that it provides a mechanism to guess\n * the appropriate background imageset given a foreground imageset that you\n * want to show.\n */\n setupForImageset: function (options) {\n if (this.$wwt.inst === null)\n throw new Error('cannot setupForImageset without linking to WWTInstance');\n this.$wwt.inst.setupForImageset(options);\n },\n /** Set the zoom level of the view.\n *\n * This action may result in an action that takes a perceptible amount of\n * time to resolve, if the \"smooth pan\" renderer option is enabled. To have\n * proper asynchronous feedback about when the zoom operation completes, use\n * {@link gotoRADecZoom}.\n */\n zoom: function (factor) {\n if (this.$wwt.inst === null)\n throw new Error('cannot zoom without linking to WWTInstance');\n this.$wwt.inst.ctl.zoom(factor);\n },\n /** Moves the position of the view */\n move: function (args) {\n if (this.$wwt.inst === null)\n throw new Error('cannot move without linking to WWTInstance');\n this.$wwt.inst.ctl.move(args.x, args.y);\n },\n /** Tilts the position of the view */\n tilt: function (args) {\n if (this.$wwt.inst === null)\n throw new Error('cannot tilt without linking to WWTInstance');\n this.$wwt.inst.ctl._tilt(args.x, args.y);\n },\n /** Set the current time of WWT's internal clock.\n *\n * Altering this causes an increment in {@link clockDiscontinuities}.\n */\n setTime: function (time) {\n if (this.$wwt.inst === null)\n throw new Error('cannot setTime without linking to WWTInstance');\n this.$wwt.inst.stc.set_now(time);\n this.clockDiscontinuities += 1;\n },\n /** Set the rate at which the WWT clock progresses compared to wall-clock time.\n *\n * A value of 10 means that the WWT clock progresses ten times faster than\n * real time. A value of -0.1 means that the WWT clock moves backwards, ten\n * times slower than real time.\n *\n * Altering this causes an increment in {@link clockDiscontinuities}.\n */\n setClockRate: function (rate) {\n if (this.$wwt.inst === null)\n throw new Error('cannot setClockRate without linking to WWTInstance');\n if (this.$wwt.inst.stc.get_timeRate() != rate) {\n this.$wwt.inst.stc.set_timeRate(rate);\n this.clockRate = rate;\n this.clockDiscontinuities += 1;\n }\n },\n /** Set whether the WWT clock should progress with real time.\n *\n * See\n * [SpaceTimeController.set_syncToClock()](../../engine/modules/SpaceTimeController.html#set_synctoclock).\n * This interface effectively allows you to pause the WWT clock.\n *\n * Altering this causes an increment in {@link clockDiscontinuities}.\n */\n setClockSync: function (isSynced) {\n if (this.$wwt.inst === null)\n throw new Error('cannot setClockSync without linking to WWTInstance');\n if (this.$wwt.inst.stc.get_syncToClock() != isSynced) {\n this.$wwt.inst.stc.set_syncToClock(isSynced);\n if (isSynced) {\n this.clockRate = this.$wwt.inst.stc.get_timeRate();\n }\n else {\n this.clockRate = 0;\n }\n this.clockDiscontinuities += 1;\n }\n },\n /** Start playback of the currently loaded tour.\n *\n * Nothing happens if no tour is loaded.\n */\n startTour: function () {\n if (this.$wwt.inst === null)\n throw new Error('cannot start tour without linking to WWTInstance');\n var player = this.$wwt.inst.getActiveTourPlayer();\n if (player === null)\n throw new Error('no tour to start');\n player.play();\n },\n /** Toggle the play/pause state of the current tour.\n *\n * Nothing happens if no tour is loaded.\n */\n toggleTourPlayPauseState: function () {\n if (this.$wwt.inst === null)\n throw new Error('cannot play/pause tour without linking to WWTInstance');\n var player = this.$wwt.inst.getActiveTourPlayer();\n if (player === null)\n throw new Error('no tour to play/pause');\n // Despite the unclear name, this function does toggle play/pause state.\n player.pauseTour();\n },\n /** Set whether the renderer settings of tours should remain applied after\n * those tours finish playing back.\n *\n * This specialized option helps avoid jarring visual effects when tours\n * finish playing. If a tour activates a renderer option like \"local horizon\n * mode\", by default that option will turn off when the tour finishes, causing\n * the view to suddenly change. If this option is set to True, that setting\n * will remain active, preventing the sudden change.\n */\n setTourPlayerLeaveSettingsWhenStopped: function (value) {\n if (this.$wwt.inst === null)\n throw new Error('cannot setTourPlayerLeaveSettingsWhenStopped without linking to WWTInstance');\n var player = this.$wwt.inst.getActiveTourPlayer();\n if (player === null)\n throw new Error('no tour player to control');\n player.set_leaveSettingsWhenStopped(value);\n },\n /** Seek tour playback to the specified timecode.\n *\n * See {@link tourTimecode} for a definition of the tour timecode.\n *\n * An important limitation is that the engine can only seek to the very\n * beginning of a tour stop. If you request a timecode in the middle of a\n * slide, the seek will actually occur to the start time of that slide.\n */\n seekToTourTimecode: function (value) {\n if (this.$wwt.inst === null)\n throw new Error('cannot seekToTourTimecode without linking to WWTInstance');\n this.$wwt.inst.seekToTourTimecode(value);\n },\n /** Get the current view as a one-slide tour, serialized to XML */\n viewAsTourXml: function (name) {\n return __awaiter(this, void 0, void 0, function () {\n var editor, tour, blob, reader, tourXml;\n return __generator(this, function (_a) {\n engine_root_wwtlib_.WWTControl.singleton.createTour(name || \"\");\n editor = engine_root_wwtlib_.WWTControl.singleton.tourEdit;\n editor.addSlide(false);\n tour = editor.get_tour();\n if (tour === null) {\n return [2 /*return*/, Promise.resolve(null)];\n }\n blob = tour.saveToBlob();\n reader = new FileReader();\n reader.readAsText(blob);\n tourXml = \"\";\n return [2 /*return*/, new Promise(function (resolve, _reject) {\n reader.onloadend = function () {\n tourXml += reader.result;\n resolve(tourXml);\n };\n })];\n });\n });\n },\n /** Wait for the WWT engine to become ready for usage.\n *\n * You should invoke this action and wait for is completion before trying to\n * do anything else with a WWT-aware component. The action resolves when the\n * WWT engine has completed its initialization, which involes the download of\n * some supporting data files.\n */\n waitForReady: function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (this.$wwt.inst !== null) {\n return [2 /*return*/, this.$wwt.inst.waitForReady()];\n }\n else {\n return [2 /*return*/, new Promise(function (resolve, _reject) {\n var waitThenResolve = function () {\n _this.$wwt.inst.waitForReady().then(resolve);\n };\n if (_this.$wwt.inst !== null) {\n waitThenResolve();\n }\n else {\n _this.$wwt.onLinkedCallbacks.push(waitThenResolve);\n }\n })];\n }\n return [2 /*return*/];\n });\n });\n },\n /** Command the view to steer to a specific configuration.\n *\n * The async action completes when the view arrives, or when\n * a subsequent view command overrides this one.\n *\n * TODO: document semantics when not in 2D sky mode!\n */\n gotoRADecZoom: function (_a) {\n var raRad = _a.raRad, decRad = _a.decRad, zoomDeg = _a.zoomDeg, instant = _a.instant, rollRad = _a.rollRad;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n if (this.$wwt.inst === null)\n throw new Error('cannot gotoRADecZoom without linking to WWTInstance');\n return [2 /*return*/, this.$wwt.inst.gotoRADecZoom(raRad, decRad, zoomDeg, instant, rollRad)];\n });\n });\n },\n /** Returns the time it would take, in seconds, to navigate to the given target. */\n timeToRADecZoom: function (_a) {\n var raRad = _a.raRad, decRad = _a.decRad, zoomDeg = _a.zoomDeg, rollRad = _a.rollRad;\n if (this.$wwt.inst === null)\n throw new Error('cannot get timeToRADecZoom without linking to WWTInstance');\n return this.$wwt.inst.timeToRADecZoom(raRad, decRad, zoomDeg, rollRad);\n },\n /** Command the view to steer as specified in\n * [the options](../../engine-helpers/interfaces/GotoTargetOptions.html).\n *\n * The async action completes when the view arrives, or when\n * a subsequent view command overrides this one.\n */\n gotoTarget: function (options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.$wwt.inst === null)\n throw new Error('cannot gotoTarget without linking to WWTInstance');\n return [2 /*return*/, this.$wwt.inst.gotoTarget(options)];\n });\n });\n },\n /** Set the \"tracked object\" in the 3D solar system view.\n *\n * Allowed values are\n * [defined in @wwtelescope/engine-types](../../engine-types/enums/SolarSystemObjects.html).\n */\n setTrackedObject: function (obj) {\n if (this.$wwt.inst === null)\n throw new Error('cannot setTrackedObject without linking to WWTInstance');\n this.$wwt.inst.ctl.renderContext.set_solarSystemTrack(obj);\n },\n /** Request the engine to load a tour file.\n *\n * The action resolves when the load is complete. It’s asynchronous because\n * the full WTT tour file has to be downloaded.\n */\n loadTour: function (_a) {\n var url = _a.url, play = _a.play;\n return __awaiter(this, void 0, void 0, function () {\n var tourRunTime, tourStopStartTimes, player, tour, nStops, i;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (this.$wwt.inst === null)\n throw new Error('cannot loadTour without linking to WWTInstance');\n if (!play) return [3 /*break*/, 2];\n return [4 /*yield*/, this.$wwt.inst.loadAndPlayTour(url)];\n case 1:\n _b.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.$wwt.inst.loadTour(url)];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4:\n tourRunTime = null;\n tourStopStartTimes = [];\n player = this.$wwt.inst.getActiveTourPlayer();\n if (player !== null) {\n tour = player.get_tour();\n if (tour !== null) {\n tourRunTime = tour.get_runTime() * 0.001; // ms => s\n nStops = tour.get_tourStops().length;\n for (i = 0; i < nStops; i++) {\n tourStopStartTimes.push(tour.elapsedTimeTillTourstop(i));\n }\n }\n }\n this.tourRunTime = tourRunTime;\n this.tourStopStartTimes = tourStopStartTimes;\n return [2 /*return*/];\n }\n });\n });\n },\n /** Request the engine to load the specified image collection.\n *\n * The image collection is a [WTML file](https://docs.worldwidetelescope.org/data-guide/1/data-file-formats/collections/)\n * Images in collections loaded this way become usable for name-based lookup\n * by interfaces such as {@link setForegroundImageByName}.\n *\n * The action resolves to a [Folder](../../engine/classes/Folder.html) instance.\n * It’s asynchronous because the specified WTML file has to be downloaded.\n */\n loadImageCollection: function (_a) {\n var url = _a.url, loadChildFolders = _a.loadChildFolders;\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (this.$wwt.inst === null)\n throw new Error('cannot loadImageCollection without linking to WWTInstance');\n return [4 /*yield*/, this.$wwt.inst.loadImageCollection(url, loadChildFolders)];\n case 1:\n result = _b.sent();\n this.availableImagesets = availableImagesets();\n return [2 /*return*/, result];\n }\n });\n });\n },\n /** Add an imageset directly into the engine's database.\n *\n * If an imageset with the same URL has already been loaded, this is a\n * no-op.\n *\n * This returns the imageset that ultimately resides in the engine's\n * database. It could either be the input argument, if it was newly added,\n * or a pre-existing imageset in the no-op condition.\n */\n addImagesetToRepository: function (imgset) {\n if (this.$wwt.inst === null)\n throw new Error('cannot addImagesetToRepository without linking to WWTInstance');\n return this.$wwt.inst.addImagesetToRepository(imgset);\n },\n // General layers\n /** Delete the specified layer from the layer manager.\n *\n * A layer may be identified by either its name or its [id](../../engine/classes/Layer.html#id).\n */\n deleteLayer: function (id) {\n if (this.$wwt.inst === null)\n throw new Error('cannot deleteLayer without linking to WWTInstance');\n var stringId = \"\";\n if (typeof id === \"string\") {\n stringId = id;\n var guid = engine_root_wwtlib_.Guid.fromString(id);\n this.$wwt.inst.lm.deleteLayerByID(guid, true, true);\n }\n else {\n stringId = id.toString();\n this.$wwt.inst.lm.deleteLayerByID(id, true, true);\n }\n // Mirror modification in the reactive system. Here we just\n // delete willy-nilly and ignore any missing cases.\n delete this.imagesetLayers[stringId];\n delete this.spreadSheetLayers[stringId];\n this.activeLayers = activeLayersList(this.$wwt);\n },\n // Imageset layers, including FITS layers\n /** Request the creation of a image layer. Either a single FITS or an image set.\n *\n * The action resolves to a new [ImageSetLayer](../../engine/classes/ImageSetLayer.html) instance.\n * It’s asynchronous because the requested url has to be downloaded.\n */\n addImageSetLayer: function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var wwtLayer, guidText;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.$wwt.inst === null)\n throw new Error('cannot addImageSetLayer without linking to WWTInstance');\n return [4 /*yield*/, this.$wwt.inst.addImageSetLayer(options)];\n case 1:\n wwtLayer = _a.sent();\n guidText = wwtLayer.id.toString();\n this.imagesetLayers[guidText] = new ImageSetLayerState(wwtLayer);\n this.activeLayers = activeLayersList(this.$wwt);\n return [2 /*return*/, wwtLayer];\n }\n });\n });\n },\n /** Deprecated. Use addImageSetLayer instead.\n * Request the creation of a FITS image layer.\n *\n * The action resolves to a new [ImageSetLayer](../../engine/classes/ImageSetLayer.html) instance.\n * It’s asynchronous because the requested FITS file has to be downloaded.\n */\n loadFitsLayer: function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var addImageSetLayerOptions;\n return __generator(this, function (_a) {\n if (this.$wwt.inst === null)\n throw new Error('cannot loadFitsLayer without linking to WWTInstance');\n addImageSetLayerOptions = {\n url: options.url,\n mode: \"fits\",\n name: options.name,\n goto: options.gotoTarget\n };\n return [2 /*return*/, this.$wwt.inst.addImageSetLayer(addImageSetLayerOptions)];\n });\n });\n },\n /** Change the [ImageSetLayer](../../engine/classes/ImageSetLayer.html)\n * position in the draw cycle.\n */\n setImageSetLayerOrder: function (options) {\n if (this.$wwt.inst === null)\n throw new Error('cannot setImageSetLayerOrder without linking to WWTInstance');\n this.$wwt.inst.setImageSetLayerOrder(options);\n this.activeLayers = activeLayersList(this.$wwt);\n },\n /** Alter the \"stretch\" of a FITS image layer according to\n * [the options](../../engine-helpers/interfaces/StretchFitsLayerOptions.html).\n */\n stretchFitsLayer: function (options) {\n if (this.$wwt.inst === null)\n throw new Error('cannot stretchFitsLayer without linking to WWTInstance');\n this.$wwt.inst.stretchFitsLayer(options);\n // Update the reactive mirror.\n var state = this.imagesetLayers[options.id];\n if (state) {\n state.scaleType = options.stretch;\n state.vmin = options.vmin;\n state.vmax = options.vmax;\n }\n },\n /** Set the colormap used for a FITS image layer according to\n * [the options](../../engine-helpers/interfaces/SetFitsLayerColormapOptions.html).\n */\n setFitsLayerColormap: function (options) {\n if (this.$wwt.inst === null)\n throw new Error('cannot setFitsLayerColormap without linking to WWTInstance');\n this.$wwt.inst.setFitsLayerColormap(options);\n // Update the reactive mirror.\n var state = this.imagesetLayers[options.id];\n if (state) {\n state.colormapName = options.name;\n }\n },\n /** Alter one or more settings of the specified FITS image layer as specified\n * in [the options](../../engine-helpers/interfaces/ApplyFitsLayerSettingsOptions.html).\n */\n applyFitsLayerSettings: function (options) {\n var e_5, _a;\n if (this.$wwt.inst === null)\n throw new Error('cannot applyFitsLayerSettings without linking to WWTInstance');\n this.$wwt.inst.applyFitsLayerSettings(options);\n // Update the reactive mirror.\n var state = this.imagesetLayers[options.id];\n if (state) {\n try {\n for (var _b = tslib_es6_values(options.settings), _c = _b.next(); !_c.done; _c = _b.next()) {\n var s = _c.value;\n applyImageSetLayerSetting(state.settings, s);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n }\n },\n // Spreadsheet layers\n /** Request the creation of a tabular data layer.\n *\n * The action resolves to a new [SpreadSheetLayer](../../engine/classes/SpreadSheetLayer.html) instance.\n */\n createTableLayer: function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var layer, prom, wwtLayer, guidText;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.$wwt.inst === null)\n throw new Error('cannot createTableLayer without linking to WWTInstance');\n layer = this.$wwt.inst.lm.createSpreadsheetLayer(options.referenceFrame, options.name, options.dataCsv);\n // Value-add init copied from the pywwt JS component.\n // Override any column guesses:\n layer.set_lngColumn(-1);\n layer.set_latColumn(-1);\n layer.set_altColumn(-1);\n layer.set_sizeColumn(-1);\n layer.set_colorMapColumn(-1);\n layer.set_startDateColumn(-1);\n layer.set_endDateColumn(-1);\n layer.set_xAxisColumn(-1);\n layer.set_yAxisColumn(-1);\n layer.set_zAxisColumn(-1);\n layer.set_altUnit(AltUnits.meters);\n layer.set_referenceFrame(options.referenceFrame);\n if (options.referenceFrame == 'Sky') {\n layer.set_astronomical(true);\n }\n prom = Promise.resolve(layer);\n return [4 /*yield*/, prom];\n case 1:\n wwtLayer = _a.sent();\n guidText = wwtLayer.id.toString();\n this.spreadSheetLayers[guidText] = new SpreadSheetLayerState(wwtLayer);\n this.activeLayers = activeLayersList(this.$wwt);\n return [2 /*return*/, wwtLayer];\n }\n });\n });\n },\n /** Alter one or more settings of the specified tabular data layers as specified\n * in [the options](../../engine-helpers/interfaces/ApplyTableLayerSettingsOptions.html).\n */\n applyTableLayerSettings: function (options) {\n var e_6, _a;\n if (this.$wwt.inst === null)\n throw new Error('cannot applyTableLayerSettings without linking to WWTInstance');\n this.$wwt.inst.applyTableLayerSettings(options);\n // Mirror changes in the reactive framework.\n var state = this.spreadSheetLayers[options.id];\n if (state !== undefined) {\n try {\n for (var _b = tslib_es6_values(options.settings), _c = _b.next(); !_c.done; _c = _b.next()) {\n var s = _c.value;\n applySpreadSheetLayerSetting(state, s);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n },\n /** Update the contents of a tabular data layer according to\n * [the options](../../engine-helpers/interfaces/UpdateTableLayerOptions.html).\n */\n updateTableLayer: function (options) {\n if (this.$wwt.inst === null)\n throw new Error('cannot updateTableLayer without linking to WWTInstance');\n this.$wwt.inst.updateTableLayer(options);\n // Nothing to mirror in reactive-land -- this call affects the table data.\n },\n // Progressive HiPS catalogs.\n //\n // These have some characteristics of imagesets, and some characteristics\n // of spreadsheet layers.\n /** Add a \"catalog HiPS\" dataset to the current view, by name.\n *\n * If the catalog name is not in the engine's registry, the promise rejects.\n */\n addCatalogHipsByName: function (options) {\n return __awaiter(this, void 0, void 0, function () {\n var imgset, hips, wwtLayer, guidText, info;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.$wwt.inst == null)\n throw new Error('cannot addCatalogHipsByName without linking to WWTInstance');\n return [4 /*yield*/, this.$wwt.inst.addCatalogHipsByName(options)];\n case 1:\n imgset = _a.sent();\n hips = imgset.get_hipsProperties();\n if (hips !== null) {\n wwtLayer = hips.get_catalogSpreadSheetLayer();\n guidText = wwtLayer.id.toString();\n this.spreadSheetLayers[guidText] = new SpreadSheetLayerState(wwtLayer);\n info = availableImagesets().find(function (x) { return x.name === options.name; });\n if (info !== undefined) {\n info.id = guidText;\n }\n }\n this.activeLayers = activeLayersList(this.$wwt);\n return [2 /*return*/, imgset];\n }\n });\n });\n },\n /** Request an export of the catalog HiPS data within the current viewport. */\n getCatalogHipsDataInView: function (options) {\n if (this.$wwt.inst == null)\n throw new Error('cannot getCatalogHipsDataInView without linking to WWTInstance');\n return this.$wwt.inst.getCatalogHipsDataInView(options);\n },\n /** Remove a \"catalog HiPS\" dataset to the current view, by name. */\n removeCatalogHipsByName: function (name) {\n if (this.$wwt.inst == null)\n throw new Error('cannot removeCatalogHipsByName without linking to WWTInstance');\n this.$wwt.inst.ctl.removeCatalogHipsByName(name);\n var id = engine_root_wwtlib_.Guid.createFrom(name).toString();\n delete this.spreadSheetLayers[id];\n this.activeLayers = activeLayersList(this.$wwt);\n },\n // Annotations\n /** Add an [Annotation](../../engine/classes/Annotation.html) to the view. */\n addAnnotation: function (ann) {\n if (this.$wwt.inst === null)\n throw new Error('cannot addAnnotation without linking to WWTInstance');\n this.$wwt.inst.si.addAnnotation(ann);\n },\n /** Remove the specified [Annotation](../../engine/classes/Annotation.html) from the view. */\n removeAnnotation: function (ann) {\n if (this.$wwt.inst === null)\n throw new Error('cannot removeAnnotation without linking to WWTInstance');\n this.$wwt.inst.si.removeAnnotation(ann);\n },\n /** Clear all [Annotations](../../engine/classes/Annotation.html) from the view. */\n clearAnnotations: function () {\n if (this.$wwt.inst === null)\n throw new Error('cannot clearAnnotations without linking to WWTInstance');\n this.$wwt.inst.si.clearAnnotations();\n },\n // Capturing the current display\n /** Capture the current frame as an image `Blob` with the desired width, height, and format.\n * The first argument is a callback function to execute on the created `Blob`. */\n captureFrame: function (options) {\n if (this.$wwt.inst === null)\n throw new Error('cannot captureThumbnail without linking to WWTInstance');\n return this.$wwt.inst.captureFrame(options);\n },\n /** Capture a video as a stream of image `Blob`s with the desired width, height and format.\n * The number of frames per second and total frame count are specified as well. */\n captureVideo: function (options) {\n if (this.$wwt.inst === null)\n throw new Error(\"cannot captureVideo without linking to WWTInstance\");\n return this.$wwt.inst.captureVideo(options);\n },\n /** Clear the current cache of tiles.\n * The intended use case here is if a network issue caused a necessary tile to not load.\n * This should only be used when necessary, as any previously downloaded tiles will need\n * to be re-fetched.\n * */\n clearTileCache: function () {\n engine_root_wwtlib_.TileCache.clearCache();\n }\n },\n});\n\n;// CONCATENATED MODULE: ../node_modules/ts-loader/index.js??clonedRuleSet-83.use[0]!../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[3]!../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/Component.vue?vue&type=template&id=701e24aa&ts=true\n\nvar _hoisted_1 = [\"id\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createElementBlock)(\"div\", {\n id: _ctx.uniqueId,\n class: \"wwtelescope-component\"\n }, null, 8, _hoisted_1));\n}\n\n;// CONCATENATED MODULE: ./src/Component.vue?vue&type=template&id=701e24aa&ts=true\n\n;// CONCATENATED MODULE: ../node_modules/ts-loader/index.js??clonedRuleSet-83.use[0]!../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/Component.vue?vue&type=script&lang=ts\n\n\n\n\n\nvar idCounter = 0;\n// Due to something weird about how TypeDoc is handling this, the docstring for\n// this variable is in `shims-vue.d.ts`. That looks like it would be a problem\n// if we had more than one SFC `.vue` file, but we don't.\n/* harmony default export */ const Componentvue_type_script_lang_ts = ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.defineComponent)({\n props: {\n // This was required for Vuex, but is no longer used with Pinia.\n wwtNamespace: { type: String, default: \"wwt\", required: false },\n wwtFreestandingAssetBaseurl: String,\n customId: String\n },\n data: function () {\n return {\n uniqueId: \"\",\n wwt: undefined,\n renderLoopId: undefined\n };\n },\n methods: __assign({}, mapActions(engineStore, [\n \"internalIncrementTourCompletions\",\n \"internalLinkToInstance\",\n \"internalUnlinkFromInstance\",\n \"internalUpdate\",\n \"waitForReady\",\n ])),\n created: function () {\n // Create a globally unique ID for the div that the WWT engine can latch onto.\n var uid = this.customId === undefined ? \"wwtcmpt\".concat(idCounter) : this.customId;\n Object.defineProperties(this, {\n uniqueId: { get: function () { return uid; } },\n });\n idCounter += 1;\n },\n mounted: function () {\n var _this = this;\n this.wwt = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.markRaw)(new WWTInstance({\n elId: this.uniqueId,\n startInternalRenderLoop: false,\n // Start at the Galactic Center by default. RA of the GC ~= 266.4 deg; in WWT, lng = 360 - RA.\n startLatDeg: -28.9,\n startLngDeg: 93.6,\n freestandingAssetBaseurl: this.wwtFreestandingAssetBaseurl,\n }));\n // TODO: The build fails with a TypeScript error without \"as WWTInstance\"\n // Figure out why!\n this.internalLinkToInstance(this.wwt);\n var render = function () {\n var wwt = _this.wwt;\n _this.renderLoopId = window.requestAnimationFrame(render);\n wwt.ctl.renderOneFrame();\n _this.internalUpdate();\n };\n // Wait for the WWT engine to signal readiness, then wait another tick, then\n // start the rendering loop. This way, if a user wants to do some\n // initialization that has to wait for the ready signal, we won't flash any\n // weirdly-initialized content.\n this.waitForReady().then(function () {\n (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(function () {\n _this.renderLoopId = window.requestAnimationFrame(render);\n });\n });\n this.wwt.tourEndedCallback = (function (_tp) {\n _this.internalIncrementTourCompletions();\n });\n },\n unmounted: function () {\n if (this.renderLoopId !== undefined) {\n window.cancelAnimationFrame(this.renderLoopId);\n this.renderLoopId = undefined;\n }\n if (this.wwt !== undefined) {\n this.wwt.tourEndedCallback = null;\n }\n this.internalUnlinkFromInstance();\n }\n}));\n\n;// CONCATENATED MODULE: ./src/Component.vue?vue&type=script&lang=ts\n \n// EXTERNAL MODULE: ../node_modules/vue-loader/dist/exportHelper.js\nvar exportHelper = __webpack_require__(144);\n;// CONCATENATED MODULE: ./src/Component.vue\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,exportHelper/* default */.c)(Componentvue_type_script_lang_ts, [['render',render]])\n\n/* harmony default export */ const Component = (__exports__);\n;// CONCATENATED MODULE: ./src/wwtaware.ts\n// Copyright 2020-2023 the .NET Foundation\n// Licensed under the MIT License\n\n\n\n\n/** This is a helper base class for Vue components that wish to interact with a\n * {@link WWTComponent} through the Pinia state management system. It is only\n * recommended for using using Vue’s [“options API”][opt-api]. If you are\n * instead using the “composition API”, it is recommended to use\n * {@link engineStore} directly.\n *\n * [opt-api]: https://vuejs.org/guide/introduction.html#api-styles\n *\n * This class doesn’t implement any special functionality itself. All it does is\n * provide a set of state variables and methods that are pre-connected to [the\n * WWT Pinia interface][api-summary]. A component inheriting from this class can\n * use whichever ones it needs without having to set up that integration itself.\n * For that reason, **the detailed API associated with this class is\n * intentionally undocumented**, so that the in-depth documentation can be\n * centralized in one place: see [the API summary][api-summary] associated with\n * the {@link engineStore} function.\n *\n * [api-summary]: ../functions/engineStore.html#md:the-wwt-pinia-interface\n *\n * # Example\n *\n * Say that you are creating a simple WWT-powered app with a main `App.vue`\n * component that includes a WWT sub-component and a readout of the current\n * coordinates of the WWT view center. Your app Vue file might look like this:\n *\n * ```vue\n * \n *\n * \n * ```\n *\n * Because this component extends {@link WWTAwareComponent}, it automatically\n * has getters for {@link wwtRARad} and {@link wwtDecRad} that can be used to\n * set up the coordinate readout easily.\n *\n * Note that [the `extends` option is not recommended (or easily used) in the\n * Composition API][1], which is why it is recommended to use\n * {@link engineStore} directly instead.\n *\n * [1]: https://vuejs.org/api/options-composition.html#extends\n **/\nvar WWTAwareComponent = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.defineComponent)({\n props: {\n /** This property is unused. It is retained for API compatibility from the\n * days of Vuex.\n */\n wwtNamespace: { type: String, default: \"wwt\", required: false },\n /** @hidden this was a mistake; keep it just in case */\n wwtFreestandingAssetBaseurl: String,\n },\n computed: __assign(__assign({}, mapState(engineStore, {\n wwtActiveLayers: 'activeLayers',\n wwtAvailableImagesets: 'availableImagesets',\n wwtBackgroundImageset: 'backgroundImageset',\n wwtCurrentTime: 'currentTime',\n wwtClockDiscontinuities: 'clockDiscontinuities',\n wwtClockRate: 'clockRate',\n wwtDecRad: 'decRad',\n wwtForegroundImageset: 'foregroundImageset',\n wwtForegroundOpacity: 'foregroundOpacity',\n wwtImagesetLayers: 'imagesetLayers',\n wwtIsTourPlayerActive: 'isTourPlayerActive',\n wwtIsTourPlaying: 'isTourPlaying',\n wwtRARad: 'raRad',\n wwtRenderType: 'renderType',\n wwtRollRad: 'rollRad',\n wwtShowWebGl2Warning: 'showWebGl2Warning',\n wwtSpreadSheetLayers: 'spreadSheetLayers',\n wwtTourCompletions: 'tourCompletions',\n wwtTourRunTime: 'tourRunTime',\n wwtTourStopStartTimes: 'tourStopStartTimes',\n wwtTourTimecode: 'tourTimecode',\n wwtZoomDeg: 'zoomDeg',\n })), mapState(engineStore, [\n \"activeImagesetLayerStates\",\n \"findRADecForScreenPoint\",\n \"findScreenPointForRADec\",\n \"layerById\",\n \"imagesetForLayer\",\n \"imagesetLayerById\",\n \"imagesetStateForLayer\",\n \"layerForHipsCatalog\",\n \"lookupImageset\",\n \"spreadSheetLayerById\",\n \"spreadSheetLayer\",\n \"spreadsheetState\",\n \"spreadsheetStateById\",\n \"spreadsheetStateForHipsCatalog\",\n ])),\n methods: __assign({}, mapActions(engineStore, [\n \"addCatalogHipsByName\",\n \"createTableLayer\",\n \"getCatalogHipsDataInView\",\n \"gotoRADecZoom\",\n \"timeToRADecZoom\",\n \"gotoTarget\",\n \"loadImageCollection\",\n \"addImagesetToRepository\",\n \"loadFitsLayer\",\n \"addImageSetLayer\",\n \"loadTour\",\n \"viewAsTourXml\",\n \"waitForReady\",\n // Formerly mutations\n \"addAnnotation\",\n \"applyFitsLayerSettings\",\n \"applyTableLayerSettings\",\n \"applySetting\",\n 'captureFrame',\n 'captureVideo',\n \"clearAnnotations\",\n \"deleteLayer\",\n \"removeAnnotation\",\n \"removeCatalogHipsByName\",\n \"seekToTourTimecode\",\n \"setBackgroundImageByName\",\n \"setClockRate\",\n \"setClockSync\",\n \"setFitsLayerColormap\",\n \"setForegroundImageByName\",\n \"setForegroundOpacity\",\n \"setImageSetLayerOrder\",\n \"setTourPlayerLeaveSettingsWhenStopped\",\n \"setTime\",\n \"setTrackedObject\",\n \"setupForImageset\",\n \"startTour\",\n \"stretchFitsLayer\",\n \"toggleTourPlayPauseState\",\n \"updateTableLayer\",\n //\"updateAvailableImagesets\",\n \"zoom\",\n \"move\",\n \"tilt\",\n \"clearTileCache\",\n ]))\n});\n\n;// CONCATENATED MODULE: ./src/index.ts\n// Copyright 2020-2023 the .NET Foundation\n// Licensed under the MIT License\n\n\n\n// Finally, we define the `wwtPinia` thingie.\n\n\n/** A Pinia instance customized for use in WWT-based applications.\n *\n * In most cases, you would use this variable in the following way while\n * initializing your Vue app:\n *\n * ```ts\n * import { createApp } from \"vue\";\n * import { wwtPinia, WWTComponent } from \"@wwtelescope/engine-pinia\";\n *\n * import MyApp from \"./MyApp.vue\";\n *\n * createApp(MyApp)\n * .use(wwtPinia)\n * .component(\"WorldWideTelescope\", WWTComponent)\n * .mount(\"#app\");\n * ```\n *\n * Once you’ve activated the special WWT Pinia instance in this way, you can\n * interact with the WWT engine state via the {@link engineStore} interface.\n *\n * This Pinia instance is initialized with a special `$wwt` singleton value that\n * the {@link WWTComponent} uses to share global state with Pinia.\n */\nvar wwtPinia = createPinia();\nwwtPinia.use(function (_a) {\n var store = _a.store;\n store.$wwt = new WWTGlobalState();\n});\n\n;// CONCATENATED MODULE: ../node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js\n\n\n\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=index.umd.js.map","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"wwtlib\"] = factory();\n\telse\n\t\troot[\"wwtlib\"] = factory();\n})(this, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./esm/annotation.js\":\n/*!***************************!*\\\n !*** ./esm/annotation.js ***!\n \\***************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Annotation: () => (/* binding */ Annotation),\n/* harmony export */ Circle: () => (/* binding */ Circle),\n/* harmony export */ Poly: () => (/* binding */ Poly),\n/* harmony export */ PolyLine: () => (/* binding */ PolyLine)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n/* harmony import */ var _graphics_tessellator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./graphics/tessellator.js */ \"./esm/graphics/tessellator.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Web GL support for annotations.\n//\n// Annotations all share a set of supporting primitives. Each time any\n// annotation changes the primitives, they must be regenerated if they have been\n// drawn already. It is best to do updates in large batches.\n\n\n\n\n\n\n\n\n\n\n// wwtlib.Annotation\n\nfunction Annotation() {\n this.addedToPrimitives = false;\n this.annotationDirty = true;\n this._opacity = 1;\n this._showHoverLabel = false;\n}\n\nAnnotation.pointList = null;\nAnnotation.lineList = null;\nAnnotation.triangleFanPointList = null;\nAnnotation.triangleList = null;\nAnnotation.batchDirty = true;\n\nAnnotation.prepBatch = function (renderContext) {\n if (Annotation.pointList == null || Annotation.batchDirty) {\n Annotation.pointList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.PointList(renderContext);\n Annotation.lineList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.LineList();\n Annotation.triangleFanPointList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.TriangleFanList();\n Annotation.triangleList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.TriangleList();\n Annotation.lineList.set_depthBuffered(false);\n Annotation.triangleList.depthBuffered = false;\n }\n};\n\nAnnotation.drawBatch = function (renderContext) {\n Annotation.batchDirty = false;\n if (renderContext.gl == null) {\n return;\n }\n if (Annotation.pointList != null) {\n Annotation.pointList.draw(renderContext, 1, false);\n }\n if (Annotation.lineList != null) {\n Annotation.lineList.drawLines(renderContext, 1);\n }\n if (Annotation.triangleFanPointList != null) {\n Annotation.triangleFanPointList.draw(renderContext, 1);\n }\n if (Annotation.triangleList != null) {\n Annotation.triangleList.draw(renderContext, 1, 0);\n }\n};\n\nAnnotation.separation = function (Alpha1, Delta1, Alpha2, Delta2) {\n Delta1 = Delta1 / 180 * Math.PI;\n Delta2 = Delta2 / 180 * Math.PI;\n Alpha1 = Alpha1 / 12 * Math.PI;\n Alpha2 = Alpha2 / 12 * Math.PI;\n var x = Math.cos(Delta1) * Math.sin(Delta2) - Math.sin(Delta1) * Math.cos(Delta2) * Math.cos(Alpha2 - Alpha1);\n var y = Math.cos(Delta2) * Math.sin(Alpha2 - Alpha1);\n var z = Math.sin(Delta1) * Math.sin(Delta2) + Math.cos(Delta1) * Math.cos(Delta2) * Math.cos(Alpha2 - Alpha1);\n var vvalue = Math.atan2(Math.sqrt(x * x + y * y), z);\n vvalue = vvalue / Math.PI * 180;\n if (vvalue < 0) {\n vvalue += 180;\n }\n return vvalue;\n};\n\nAnnotation.colorToUint = function (col) {\n return (col.a) << 24 | (col.r << 16) | (col.g) << 8 | col.b;\n};\n\nAnnotation.colorToUintAlpha = function (col, opacity) {\n return opacity << 24 | col.r << 16 | col.g << 8 | col.b;\n};\n\nvar Annotation$ = {\n draw: function (renderContext) { },\n\n get_opacity: function () {\n return this._opacity;\n },\n\n set_opacity: function (value) {\n Annotation.batchDirty = true;\n this._opacity = value;\n return value;\n },\n\n get_id: function () {\n return this._id;\n },\n\n set_id: function (value) {\n this._id = value;\n return value;\n },\n\n get_tag: function () {\n return this._tag;\n },\n\n set_tag: function (value) {\n this._tag = value;\n return value;\n },\n\n get_label: function () {\n return this._label;\n },\n\n set_label: function (value) {\n this._label = value;\n return value;\n },\n\n get_showHoverLabel: function () {\n return this._showHoverLabel;\n },\n\n set_showHoverLabel: function (value) {\n this._showHoverLabel = value;\n return value;\n },\n\n hitTest: function (renderContext, RA, dec, x, y) {\n return false;\n },\n\n get_center: function () {\n return this.center;\n },\n\n set_center: function (value) {\n this.center = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Annotation\", [Annotation, Annotation$, null]);\n\n\n// wwtlib.Circle\n\nfunction Circle() {\n this._fill$1 = false;\n this._skyRelative$1 = false;\n this._strokeWidth$1 = 1;\n this._radius$1 = 10;\n this._lineColor$1 = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n this._fillColor$1 = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n this._ra$1 = 0;\n this._dec$1 = 0;\n Annotation.call(this);\n}\n\nvar Circle$ = {\n get_fill: function () {\n return this._fill$1;\n },\n\n set_fill: function (value) {\n Annotation.batchDirty = true;\n this._fill$1 = value;\n return value;\n },\n\n get_skyRelative: function () {\n return this._skyRelative$1;\n },\n\n set_skyRelative: function (value) {\n Annotation.batchDirty = true;\n this._skyRelative$1 = value;\n return value;\n },\n\n get_lineWidth: function () {\n return this._strokeWidth$1;\n },\n\n set_lineWidth: function (value) {\n Annotation.batchDirty = true;\n this._strokeWidth$1 = value;\n return value;\n },\n\n get_radius: function () {\n return this._radius$1;\n },\n\n set_radius: function (value) {\n Annotation.batchDirty = true;\n this._radius$1 = value;\n return value;\n },\n\n get_lineColor: function () {\n return this._lineColor$1.toString();\n },\n\n set_lineColor: function (value) {\n Annotation.batchDirty = true;\n this._lineColor$1 = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.load(value);\n return value;\n },\n\n get_fillColor: function () {\n return this._fillColor$1.toString();\n },\n\n set_fillColor: function (value) {\n Annotation.batchDirty = true;\n this._fillColor$1 = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.fromName(value);\n return value;\n },\n\n setCenter: function (ra, dec) {\n Annotation.batchDirty = true;\n this._ra$1 = ra / 15;\n this._dec$1 = dec;\n this.center = _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.raDecTo3d(this._ra$1, this._dec$1);\n },\n\n draw: function (renderContext) {\n var onScreen = true;\n var rad = this._radius$1;\n if (this._skyRelative$1) {\n rad /= renderContext.get_fovScale() / 3600;\n }\n var screenSpacePnt = renderContext.WVP.transform(this.center);\n if (screenSpacePnt.z < 0) {\n onScreen = false;\n }\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(renderContext.get_viewPoint(), this.center) < 0.55) {\n onScreen = false;\n }\n if (renderContext.gl != null) {\n if (Annotation.batchDirty || this.annotationDirty) {\n var up = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 1, 0);\n var xNormal = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.cross(this.center, up);\n var yNormal = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.cross(this.center, xNormal);\n var r = this._radius$1 / 44;\n var segments = 72;\n var radiansPerSegment = Math.PI * 2 / segments;\n var vertexList = [];\n for (var j = 0; j <= segments; j++) {\n var x = Math.cos(j * radiansPerSegment) * r;\n var y = Math.sin(j * radiansPerSegment) * r;\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(this.center.x + x * xNormal.x + y * yNormal.x, this.center.y + x * xNormal.y + y * yNormal.y, this.center.z + x * xNormal.z + y * yNormal.z));\n }\n if (this._strokeWidth$1 > 0 && vertexList.length > 1) {\n var lineColorWithOpacity = this._lineColor$1._clone();\n lineColorWithOpacity.a = Math.round(lineColorWithOpacity.a * this.get_opacity());\n for (var i = 0; i < (vertexList.length - 1); i++) {\n Annotation.lineList.addLine(vertexList[i], vertexList[i + 1], lineColorWithOpacity, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.Dates(0, 1));\n }\n }\n if (this._fill$1) {\n var fillColorWithOpacity = this._fillColor$1._clone();\n fillColorWithOpacity.a = Math.round(fillColorWithOpacity.a * this.get_opacity());\n var pos = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(this.center.x, this.center.y, this.center.z);\n vertexList.splice(0, 0, pos);\n Annotation.triangleFanPointList.addShape(vertexList, fillColorWithOpacity, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.Dates(0, 1));\n }\n this.annotationDirty = false;\n }\n } else {\n if (onScreen) {\n var ctx = renderContext.device;\n ctx.save();\n ctx.globalAlpha = this.get_opacity();\n ctx.beginPath();\n ctx.arc(screenSpacePnt.x, screenSpacePnt.y, rad, 0, Math.PI * 2, true);\n ctx.lineWidth = this._strokeWidth$1;\n ctx.fillStyle = this._fillColor$1.toString();\n if (this._fill$1) {\n ctx.fill();\n }\n ctx.globalAlpha = 1;\n ctx.strokeStyle = this._lineColor$1.toString();\n ctx.stroke();\n ctx.restore();\n }\n }\n },\n\n hitTest: function (renderContext, RA, dec, x, y) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.emptyString(this.get_id())) {\n return false;\n }\n var rad = this._radius$1;\n if (!this._skyRelative$1) {\n rad *= renderContext.get_fovScale() / 3600;\n }\n return Annotation.separation(RA, dec, this._ra$1, this._dec$1) < rad;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Circle\", [Circle, Circle$, Annotation]);\n\n\n// wwtlib.Poly\n\nfunction Poly() {\n this._points$1 = [];\n this._fill$1 = false;\n this._strokeWidth$1 = 1;\n this._lineColor$1 = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n this._fillColor$1 = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n Annotation.call(this);\n}\n\nvar Poly$ = {\n addPoint: function (x, y) {\n Annotation.batchDirty = true;\n this._points$1.push(_coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.raDecTo3d(x / 15, y));\n },\n\n get_fill: function () {\n return this._fill$1;\n },\n\n set_fill: function (value) {\n Annotation.batchDirty = true;\n this._fill$1 = value;\n return value;\n },\n\n get_lineWidth: function () {\n return this._strokeWidth$1;\n },\n\n set_lineWidth: function (value) {\n Annotation.batchDirty = true;\n this._strokeWidth$1 = value;\n return value;\n },\n\n get_lineColor: function () {\n return this._lineColor$1.toString();\n },\n\n set_lineColor: function (value) {\n Annotation.batchDirty = true;\n this._lineColor$1 = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.fromName(value);\n return value;\n },\n\n get_fillColor: function () {\n return this._fillColor$1.toString();\n },\n\n set_fillColor: function (value) {\n Annotation.batchDirty = true;\n this._fillColor$1 = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.fromName(value);\n return value;\n },\n\n draw: function (renderContext) {\n if (renderContext.gl != null) {\n if (Annotation.batchDirty || this.annotationDirty) {\n //todo can we save this work for later?\n var vertexList = this._points$1;\n\n if (this._strokeWidth$1 > 0 && this._points$1.length > 1) {\n var lineColorWithOpacity = this._lineColor$1._clone();\n lineColorWithOpacity.a = Math.round(lineColorWithOpacity.a * this.get_opacity());\n for (var i = 0; i < (this._points$1.length - 1); i++) {\n Annotation.lineList.addLine(vertexList[i], vertexList[i + 1], lineColorWithOpacity, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.Dates(0, 1));\n }\n Annotation.lineList.addLine(vertexList[this._points$1.length - 1], vertexList[0], lineColorWithOpacity, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.Dates(0, 1));\n }\n if (this._fill$1) {\n var fillColorWithOpacity = this._fillColor$1._clone();\n fillColorWithOpacity.a = Math.round(fillColorWithOpacity.a * this.get_opacity());\n var indexes = _graphics_tessellator_js__WEBPACK_IMPORTED_MODULE_4__.Tessellator.tesselateSimplePoly(vertexList);\n for (var i = 0; i < indexes.length; i += 3) {\n Annotation.triangleList.addSubdividedTriangles(vertexList[indexes[i]], vertexList[indexes[i + 1]], vertexList[indexes[i + 2]], fillColorWithOpacity, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.Dates(0, 1), 2);\n }\n }\n this.annotationDirty = false;\n }\n } else {\n var ctx = renderContext.device;\n ctx.save();\n ctx.globalAlpha = this.get_opacity();\n ctx.beginPath();\n var first = true;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._points$1);\n while ($enum1.moveNext()) {\n var pnt = $enum1.current;\n var screenSpacePnt = renderContext.WVP.transform(pnt);\n if (screenSpacePnt.z < 0) {\n ctx.restore();\n return;\n }\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(renderContext.get_viewPoint(), pnt) < 0.75) {\n ctx.restore();\n return;\n }\n if (first) {\n first = false;\n ctx.moveTo(screenSpacePnt.x, screenSpacePnt.y);\n }\n else {\n ctx.lineTo(screenSpacePnt.x, screenSpacePnt.y);\n }\n }\n ctx.closePath();\n ctx.lineWidth = this._strokeWidth$1;\n if (this._fill$1) {\n ctx.fillStyle = this._fillColor$1.toString();\n ctx.fill();\n }\n ctx.strokeStyle = this._lineColor$1.toString();\n ctx.globalAlpha = 1;\n ctx.stroke();\n ctx.restore();\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Poly\", [Poly, Poly$, Annotation]);\n\n\n// wwtlib.PolyLine\n\nfunction PolyLine() {\n this._points$1 = [];\n this._strokeWidth$1 = 1;\n this._lineColor$1 = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n Annotation.call(this);\n}\n\nvar PolyLine$ = {\n addPoint: function (x, y) {\n Annotation.batchDirty = true;\n this._points$1.push(_coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.raDecTo3d(x / 15, y));\n },\n\n get_lineWidth: function () {\n return this._strokeWidth$1;\n },\n\n set_lineWidth: function (value) {\n Annotation.batchDirty = true;\n this._strokeWidth$1 = value;\n return value;\n },\n\n get_lineColor: function () {\n return this._lineColor$1.toString();\n },\n\n set_lineColor: function (value) {\n Annotation.batchDirty = true;\n this._lineColor$1 = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.fromName(value);\n return value;\n },\n\n draw: function (renderContext) {\n if (renderContext.gl != null) {\n if (Annotation.batchDirty || this.annotationDirty) {\n //todo can we save this work for later?\n var vertexList = this._points$1;\n if (this._strokeWidth$1 > 0) {\n var lineColorWithOpacity = this._lineColor$1._clone();\n lineColorWithOpacity.a = Math.round(lineColorWithOpacity.a * this.get_opacity());\n for (var i = 0; i < (this._points$1.length - 1); i++) {\n Annotation.lineList.addLine(vertexList[i], vertexList[i + 1], lineColorWithOpacity, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.Dates(0, 1));\n }\n }\n this.annotationDirty = false;\n }\n } else {\n var ctx = renderContext.device;\n ctx.save();\n ctx.globalAlpha = this.get_opacity();\n var first = true;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._points$1);\n while ($enum1.moveNext()) {\n var pnt = $enum1.current;\n var screenSpacePnt = renderContext.WVP.transform(pnt);\n if (screenSpacePnt.z < 0) {\n ctx.restore();\n return;\n }\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(renderContext.get_viewPoint(), pnt) < 0.75) {\n ctx.restore();\n return;\n }\n if (first) {\n first = false;\n ctx.beginPath();\n ctx.moveTo(screenSpacePnt.x, screenSpacePnt.y);\n }\n else {\n ctx.lineTo(screenSpacePnt.x, screenSpacePnt.y);\n }\n }\n ctx.lineWidth = this._strokeWidth$1;\n ctx.strokeStyle = this._lineColor$1.toString();\n ctx.stroke();\n ctx.restore();\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PolyLine\", [PolyLine, PolyLine$, Annotation]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc.js\":\n/*!**************************!*\\\n !*** ./esm/astrocalc.js ***!\n \\**************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AstroCalc: () => (/* binding */ AstroCalc),\n/* harmony export */ AstroRaDec: () => (/* binding */ AstroRaDec),\n/* harmony export */ RiseSetDetails: () => (/* binding */ RiseSetDetails)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n/* harmony import */ var _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./astrocalc/coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _astrocalc_date_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./astrocalc/date.js */ \"./esm/astrocalc/date.js\");\n/* harmony import */ var _astrocalc_nutation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./astrocalc/nutation.js */ \"./esm/astrocalc/nutation.js\");\n/* harmony import */ var _astrocalc_parallax_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./astrocalc/parallax.js */ \"./esm/astrocalc/parallax.js\");\n/* harmony import */ var _astrocalc_physical_jupiter_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./astrocalc/physical_jupiter.js */ \"./esm/astrocalc/physical_jupiter.js\");\n/* harmony import */ var _astrocalc_rise_transit_set_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./astrocalc/rise_transit_set.js */ \"./esm/astrocalc/rise_transit_set.js\");\n/* harmony import */ var _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./astrocalc/elliptical.js */ \"./esm/astrocalc/elliptical.js\");\n/* harmony import */ var _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./astrocalc/galilean_moons.js */ \"./esm/astrocalc/galilean_moons.js\");\n/* harmony import */ var _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./astrocalc/moon.js */ \"./esm/astrocalc/moon.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Some miscellaneous types relating to astronomy calculations.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Global state\n\nvar galDetails = new _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_10__.GMDS();\nvar jupDetails = new _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_9__.EPD();\nvar jupPhisical = new _astrocalc_physical_jupiter_js__WEBPACK_IMPORTED_MODULE_7__.CAAPhysicalJupiterDetails();\nvar jDateLast = 0;\n\n\n// wwtlib.AstroRaDec\n\nfunction AstroRaDec(ra, dec, dist, shadow, eclipsed) {\n this.RA = 0;\n this.dec = 0;\n this.distance = 0;\n this.shadow = false;\n this.eclipsed = false;\n this.RA = ra;\n this.dec = dec;\n this.distance = dist;\n this.shadow = shadow;\n this.eclipsed = eclipsed;\n}\n\nvar AstroRaDec$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"AstroRaDec\", [AstroRaDec, AstroRaDec$, null]);\n\n\n// wwtlib.RiseSetDetails\n\nfunction RiseSetDetails(bValid, Rise, Transit, Set, neverRises) {\n this.bValid = false;\n this.rise = 0;\n this.transit = 0;\n this.set = 0;\n this.bNeverRises = false;\n this.bValid = bValid;\n this.rise = Rise;\n this.transit = Transit;\n this.set = Set;\n this.bNeverRises = neverRises;\n}\n\nvar RiseSetDetails$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"RiseSetDetails\", [RiseSetDetails, RiseSetDetails$, null]);\n\n\n// wwtlib.AstroCalc\n\nfunction AstroCalc() { }\n\nAstroCalc.getPlanet = function (jDate, planetIn, locLat, locLong, locHeight) {\n var planet = planetIn;\n locLong = -locLong;\n\n if (planet < 9) {\n var Details = _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_9__.ELL.calculate(jDate, planetIn);\n var corrected = _astrocalc_parallax_js__WEBPACK_IMPORTED_MODULE_6__.CAAParallax.equatorial2Topocentric(Details.apparentGeocentricRA, Details.apparentGeocentricDeclination, Details.apparentGeocentricDistance, locLong, locLat, locHeight, jDate);\n return new AstroRaDec(corrected.x, corrected.y, Details.apparentGeocentricDistance, false, false);\n }\n else if (planet === 9) {\n var lat = _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_11__.CAAMoon.eclipticLatitude(jDate);\n var lng = _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_11__.CAAMoon.eclipticLongitude(jDate);\n var dis = _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_11__.CAAMoon.radiusVector(jDate) / 149598000;\n var epsilon = _astrocalc_nutation_js__WEBPACK_IMPORTED_MODULE_5__.CAANutation.trueObliquityOfEcliptic(jDate);\n var d = _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__.CT.ec2Eq(lng, lat, epsilon);\n var corrected = _astrocalc_parallax_js__WEBPACK_IMPORTED_MODULE_6__.CAAParallax.equatorial2Topocentric(d.x, d.y, dis, locLong, locLat, locHeight, jDate);\n return new AstroRaDec(corrected.x, corrected.y, dis, false, false);\n }\n else {\n if (jDate !== jDateLast) {\n jupDetails = _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_9__.ELL.calculate(jDate, 4);\n jupPhisical = _astrocalc_physical_jupiter_js__WEBPACK_IMPORTED_MODULE_7__.CAAPhysicalJupiter.calculate(jDate);\n var corrected = _astrocalc_parallax_js__WEBPACK_IMPORTED_MODULE_6__.CAAParallax.equatorial2Topocentric(jupDetails.apparentGeocentricRA, jupDetails.apparentGeocentricDeclination, jupDetails.apparentGeocentricDistance, locLong, locLat, locHeight, jDate);\n jupDetails.apparentGeocentricRA = corrected.x;\n jupDetails.apparentGeocentricDeclination = corrected.y;\n galDetails = _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_10__.GM.calculate(jDate);\n jDateLast = jDate;\n }\n var jupiterDiameter = 0.000954501;\n var scale = Math.atan(0.5 * (jupiterDiameter / jupDetails.apparentGeocentricDistance)) / 3.1415927 * 180;\n var raScale = (scale / Math.cos(jupDetails.apparentGeocentricDeclination / 180 * 3.1415927)) / 15;\n var xMoon = 0;\n var yMoon = 0;\n var zMoon = 0;\n var shadow = false;\n var eclipsed = false;\n switch (planet) {\n case 10: // IO\n xMoon = galDetails.satellite1.apparentRectangularCoordinates.x;\n yMoon = galDetails.satellite1.apparentRectangularCoordinates.y;\n zMoon = galDetails.satellite1.apparentRectangularCoordinates.z;\n eclipsed = galDetails.satellite1.bInEclipse;\n shadow = galDetails.satellite1.bInShadowTransit;\n break;\n case 11: // Europa\n xMoon = galDetails.satellite2.apparentRectangularCoordinates.x;\n yMoon = galDetails.satellite2.apparentRectangularCoordinates.y;\n zMoon = galDetails.satellite2.apparentRectangularCoordinates.z;\n eclipsed = galDetails.satellite2.bInEclipse;\n shadow = galDetails.satellite2.bInShadowTransit;\n break;\n case 12: // Ganymede\n xMoon = galDetails.satellite3.apparentRectangularCoordinates.x;\n yMoon = galDetails.satellite3.apparentRectangularCoordinates.y;\n zMoon = galDetails.satellite3.apparentRectangularCoordinates.z;\n eclipsed = galDetails.satellite3.bInEclipse;\n shadow = galDetails.satellite3.bInShadowTransit;\n break;\n case 13: // Callisto\n xMoon = galDetails.satellite4.apparentRectangularCoordinates.x;\n yMoon = galDetails.satellite4.apparentRectangularCoordinates.y;\n zMoon = galDetails.satellite4.apparentRectangularCoordinates.z;\n eclipsed = galDetails.satellite4.bInEclipse;\n shadow = galDetails.satellite4.bInShadowTransit;\n break;\n case 14: // Io shadow\n xMoon = galDetails.satellite1.apparentShadowRectangularCoordinates.x;\n yMoon = galDetails.satellite1.apparentShadowRectangularCoordinates.y;\n zMoon = galDetails.satellite1.apparentShadowRectangularCoordinates.z * 0.9;\n shadow = galDetails.satellite1.bInShadowTransit;\n break;\n case 15: // Europa shadow\n xMoon = galDetails.satellite2.apparentShadowRectangularCoordinates.x;\n yMoon = galDetails.satellite2.apparentShadowRectangularCoordinates.y;\n zMoon = galDetails.satellite2.apparentShadowRectangularCoordinates.z * 0.9;\n shadow = galDetails.satellite2.bInShadowTransit;\n break;\n case 16: // Ganymede shadow\n xMoon = galDetails.satellite3.apparentShadowRectangularCoordinates.x;\n yMoon = galDetails.satellite3.apparentShadowRectangularCoordinates.y;\n zMoon = galDetails.satellite3.apparentShadowRectangularCoordinates.z * 0.9;\n shadow = galDetails.satellite3.bInShadowTransit;\n break;\n case 17: // Callisto shadow\n xMoon = galDetails.satellite4.apparentShadowRectangularCoordinates.x;\n yMoon = galDetails.satellite4.apparentShadowRectangularCoordinates.y;\n zMoon = galDetails.satellite4.apparentShadowRectangularCoordinates.z * 0.9;\n shadow = galDetails.satellite4.bInShadowTransit;\n break;\n }\n var xTemp;\n var yTemp;\n var radians = jupPhisical.p / 180 * 3.1415927;\n xTemp = xMoon * Math.cos(radians) - yMoon * Math.sin(radians);\n yTemp = xMoon * Math.sin(radians) + yMoon * Math.cos(radians);\n xMoon = xTemp;\n yMoon = yTemp;\n return new AstroRaDec(jupDetails.apparentGeocentricRA - (xMoon * raScale), jupDetails.apparentGeocentricDeclination + yMoon * scale, jupDetails.apparentGeocentricDistance + (zMoon * jupiterDiameter / 2), shadow, eclipsed);\n }\n};\n\nAstroCalc.getJulianDay = function (year, month, day) {\n return _astrocalc_date_js__WEBPACK_IMPORTED_MODULE_4__.DT.dateToJD(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(year), _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(month), day, true);\n};\n\nAstroCalc.eclipticToJ2000 = function (l, b, jNow) {\n var radec = _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__.CT.ec2Eq(l, b, _astrocalc_nutation_js__WEBPACK_IMPORTED_MODULE_5__.CAANutation.trueObliquityOfEcliptic(jNow));\n return new AstroRaDec(radec.x, radec.y, 0, false, false);\n};\n\nAstroCalc.galacticToJ2000 = function (l, b) {\n var radec = _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__.CT.g2Eq(l, b);\n return new AstroRaDec(radec.x, radec.y, 0, false, false);\n};\n\nAstroCalc.j2000ToGalactic = function (ra, dec) {\n var galactic = _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__.CT.eq2G(ra, dec);\n return new AstroRaDec(galactic.x, galactic.y, 0, false, false);\n};\n\nAstroCalc.getRiseTrinsitSet = function (jd, lat, lng, ra1, dec1, ra2, dec2, ra3, dec3, type) {\n var alt = -0.5667;\n\n switch (type) {\n case 0: // Planet or star\n alt = -0.5667;\n break;\n case 1: // Sun\n alt = -0.8333;\n break;\n case 2:\n alt = 0.125;\n break;\n }\n var RiseTransitSetTime = _astrocalc_rise_transit_set_js__WEBPACK_IMPORTED_MODULE_8__.CAARiseTransitSet.rise(jd, ra1, dec1, ra2, dec2, ra3, dec3, lng, lat, alt);\n var neverRises = false;\n if (!RiseTransitSetTime.bValid) {\n neverRises = _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.sign(lat) !== _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.sign(dec2);\n }\n return new RiseSetDetails(RiseTransitSetTime.bValid, RiseTransitSetTime.rise, RiseTransitSetTime.transit, RiseTransitSetTime.set, neverRises);\n};\n\nvar AstroCalc$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"AstroCalc\", [AstroCalc, AstroCalc$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/aberration.js\":\n/*!*************************************!*\\\n !*** ./esm/astrocalc/aberration.js ***!\n \\*************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ABR: () => (/* binding */ ABR),\n/* harmony export */ ACFT: () => (/* binding */ ACFT)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _sun_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sun.js */ \"./esm/astrocalc/sun.js\");\n// Originally `AAABERRATION.CPP`\n// \"Purpose: Implementation for the algorithms for Aberration\"\n// Last update of original: PJN / 21-04-2005\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// ACFT\n\nfunction ACFT(L2, L3, L4, L5, L6, L7, L8, Ldash, D, Mdash, F, xsin, xsint, xcos, xcost, ysin, ysint, ycos, ycost, zsin, zsint, zcos, zcost) {\n this.l2 = 0;\n this.l3 = 0;\n this.l4 = 0;\n this.l5 = 0;\n this.l6 = 0;\n this.l7 = 0;\n this.l8 = 0;\n this.ldash = 0;\n this.d = 0;\n this.mdash = 0;\n this.f = 0;\n this.xsin = 0;\n this.xsint = 0;\n this.xcos = 0;\n this.xcost = 0;\n this.ysin = 0;\n this.ysint = 0;\n this.ycos = 0;\n this.ycost = 0;\n this.zsin = 0;\n this.zsint = 0;\n this.zcos = 0;\n this.zcost = 0;\n this.l2 = L2;\n this.l3 = L3;\n this.l4 = L4;\n this.l5 = L5;\n this.l6 = L6;\n this.l7 = L7;\n this.l8 = L8;\n this.ldash = Ldash;\n this.d = D;\n this.mdash = Mdash;\n this.f = F;\n this.xsin = xsin;\n this.xsint = xsint;\n this.xcos = xcos;\n this.xcost = xcost;\n this.ysin = ysin;\n this.ysint = ysint;\n this.ycos = ycos;\n this.ycost = ycost;\n this.zsin = zsin;\n this.zsint = zsint;\n this.zcos = zcos;\n this.zcost = zcost;\n}\n\nvar ACFT$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ACFT\", [ACFT, ACFT$, null]);\n\n\n// Coefficients\n\nconst g_ACft = [new ACFT(0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1719914, -2, -25, 0, 25, -13, 1578089, 156, 10, 32, 684185, -358), new ACFT(0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6434, 141, 28007, -107, 25697, -95, -5904, -130, 11141, -48, -2559, -55), new ACFT(0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 715, 0, 0, 0, 6, 0, -657, 0, -15, 0, -282, 0), new ACFT(0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 715, 0, 0, 0, 0, 0, -656, 0, 0, 0, -285, 0), new ACFT(0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 486, -5, -236, -4, -216, -4, -446, 5, -94, 0, -193, 0), new ACFT(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, 2, 0, -147, 0, -6, 0, -61, 0), new ACFT(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, -59, 0), new ACFT(0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 39, 0, 0, 0, 0, 0, -36, 0, 0, 0, -16, 0), new ACFT(0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 33, 0, -10, 0, -9, 0, -30, 0, -5, 0, -13, 0), new ACFT(0, 2, 0, -1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, -28, 0, 0, 0, -12, 0), new ACFT(0, 3, -8, 3, 0, 0, 0, 0, 0, 0, 0, 8, 0, -28, 0, 25, 0, 8, 0, 11, 0, 3, 0), new ACFT(0, 5, -8, 3, 0, 0, 0, 0, 0, 0, 0, 8, 0, -28, 0, -25, 0, -8, 0, -11, 0, -3, 0), new ACFT(2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, -19, 0, 0, 0, -8, 0), new ACFT(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -19, 0, 0, 0, 0, 0, 17, 0, 0, 0, 8, 0), new ACFT(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, -16, 0, 0, 0, -7, 0), new ACFT(0, 1, 0, -2, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 15, 0, 1, 0, 7, 0), new ACFT(0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 16, 0, 0, 0, 1, 0, -15, 0, -3, 0, -6, 0), new ACFT(0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 11, 0, -1, 0, -1, 0, -10, 0, -1, 0, -5, 0), new ACFT(2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -11, 0, -10, 0, 0, 0, -4, 0, 0, 0), new ACFT(0, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -11, 0, -2, 0, -2, 0, 9, 0, -1, 0, 4, 0), new ACFT(0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, -8, 0, -8, 0, 6, 0, -3, 0, 3, 0), new ACFT(0, 3, 0, -2, 0, 0, 0, 0, 0, 0, 0, -10, 0, 0, 0, 0, 0, 9, 0, 0, 0, 4, 0), new ACFT(1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, -9, 0, 0, 0, -4, 0), new ACFT(2, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 0, 0, 0, 0, -8, 0, 0, 0, -4, 0), new ACFT(0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, -8, 0, 0, 0, -3, 0, 0, 0), new ACFT(2, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9, 0, 8, 0, 0, 0, 3, 0, 0, 0), new ACFT(0, 3, -2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, -8, 0, 0, 0, -3, 0), new ACFT(0, 0, 0, 0, 0, 0, 0, 1, 2, -1, 0, 8, 0, 0, 0, 0, 0, -7, 0, 0, 0, -3, 0), new ACFT(8, -12, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, -7, 0, -6, 0, 4, 0, -3, 0, 2, 0), new ACFT(8, -14, 0, 0, 0, 0, 0, 0, 0, 0, 0, -4, 0, -7, 0, 6, 0, -4, 0, 3, 0, -2, 0), new ACFT(0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, -6, 0, -5, 0, -4, 0, 5, 0, -2, 0, 2, 0), new ACFT(3, -4, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, -2, 0, -7, 0, 1, 0, -4, 0), new ACFT(0, 2, 0, -2, 0, 0, 0, 0, 0, 0, 0, 4, 0, -6, 0, -5, 0, -4, 0, -2, 0, -2, 0), new ACFT(3, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7, 0, -6, 0, 0, 0, -3, 0, 0, 0), new ACFT(0, 2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, -5, 0, -4, 0, -5, 0, -2, 0, -2, 0), new ACFT(0, 0, 0, 0, 0, 0, 0, 1, -2, 0, 0, 5, 0, 0, 0, 0, 0, -5, 0, 0, 0, -2, 0)];\n\n\n// ABR - was CAAAberration\n\nfunction ABR() { }\n\nABR.earthVelocity = function (JD) {\n var T = (JD - 2451545) / 36525;\n var L2 = 3.1761467 + 1021.3285546 * T;\n var L3 = 1.7534703 + 628.3075849 * T;\n var L4 = 6.2034809 + 334.0612431 * T;\n var L5 = 0.5995465 + 52.9690965 * T;\n var L6 = 0.8740168 + 21.3299095 * T;\n var L7 = 5.4812939 + 7.4781599 * T;\n var L8 = 5.3118863 + 3.8133036 * T;\n var Ldash = 3.8103444 + 8399.6847337 * T;\n var D = 5.1984667 + 7771.3771486 * T;\n var Mdash = 2.3555559 + 8328.6914289 * T;\n var F = 1.6279052 + 8433.4661601 * T;\n var velocity = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.C3D();\n var nAberrationCoefficients = g_ACft.length;\n for (var i = 0; i < nAberrationCoefficients; i++) {\n var Argument = g_ACft[i].l2 * L2 + g_ACft[i].l3 * L3 + g_ACft[i].l4 * L4 + g_ACft[i].l5 * L5 + g_ACft[i].l6 * L6 + g_ACft[i].l7 * L7 + g_ACft[i].l8 * L8 + g_ACft[i].ldash * Ldash + g_ACft[i].d * D + g_ACft[i].mdash * Mdash + g_ACft[i].f * F;\n velocity.x += (g_ACft[i].xsin + g_ACft[i].xsint * T) * Math.sin(Argument);\n velocity.x += (g_ACft[i].xcos + g_ACft[i].xcost * T) * Math.cos(Argument);\n velocity.y += (g_ACft[i].ysin + g_ACft[i].ysint * T) * Math.sin(Argument);\n velocity.y += (g_ACft[i].ycos + g_ACft[i].ycost * T) * Math.cos(Argument);\n velocity.z += (g_ACft[i].zsin + g_ACft[i].zsint * T) * Math.sin(Argument);\n velocity.z += (g_ACft[i].zcos + g_ACft[i].zcost * T) * Math.cos(Argument);\n }\n return velocity;\n};\n\nABR.eclipticAberration = function (Lambda, Beta, JD) {\n var aberration = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.COR();\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var e = 0.016708634 - 4.2037E-05 * T - 1.267E-07 * Tsquared;\n var pi = 102.93735 + 1.71946 * T + 0.00046 * Tsquared;\n var k = 20.49552;\n var SunLongitude = _sun_js__WEBPACK_IMPORTED_MODULE_2__.CAASun.geometricEclipticLongitude(JD);\n pi = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(pi);\n Lambda = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Lambda);\n Beta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Beta);\n SunLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(SunLongitude);\n aberration.x = (-k * Math.cos(SunLongitude - Lambda) + e * k * Math.cos(pi - Lambda)) / Math.cos(Beta) / 3600;\n aberration.y = -k * Math.sin(Beta) * (Math.sin(SunLongitude - Lambda) - e * Math.sin(pi - Lambda)) / 3600;\n return aberration;\n};\n\nABR.equatorialAberration = function (Alpha, Delta, JD) {\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Alpha * 15);\n Delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta);\n var cosAlpha = Math.cos(Alpha);\n var sinAlpha = Math.sin(Alpha);\n var cosDelta = Math.cos(Delta);\n var sinDelta = Math.sin(Delta);\n var velocity = ABR.earthVelocity(JD);\n var aberration = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.COR();\n aberration.x = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2H((velocity.y * cosAlpha - velocity.x * sinAlpha) / (17314463350 * cosDelta));\n aberration.y = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(-(((velocity.x * cosAlpha + velocity.y * sinAlpha) * sinDelta - velocity.z * cosDelta) / 17314463350));\n return aberration;\n};\n\nvar ABR$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ABR\", [ABR, ABR$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/angular_separation.js\":\n/*!*********************************************!*\\\n !*** ./esm/astrocalc/angular_separation.js ***!\n \\*********************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ASEP: () => (/* binding */ ASEP)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAANGULARSEPARATION.CPP`\n// \"Purpose: Implementation for the algorithms which obtain various separation distances between celestial objects\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// ASEP - was CAAAngularSeparation\n\nfunction ASEP() { }\n\nASEP.separation = function (Alpha1, Delta1, Alpha2, Delta2) {\n Delta1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta1);\n Delta2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta2);\n Alpha1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha1);\n Alpha2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha2);\n var x = Math.cos(Delta1) * Math.sin(Delta2) - Math.sin(Delta1) * Math.cos(Delta2) * Math.cos(Alpha2 - Alpha1);\n var y = Math.cos(Delta2) * Math.sin(Alpha2 - Alpha1);\n var z = Math.sin(Delta1) * Math.sin(Delta2) + Math.cos(Delta1) * Math.cos(Delta2) * Math.cos(Alpha2 - Alpha1);\n var vvalue = Math.atan2(Math.sqrt(x * x + y * y), z);\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n if (vvalue < 0) {\n vvalue += 180;\n }\n return vvalue;\n};\n\nASEP.positionAngle = function (alpha1, delta1, alpha2, delta2) {\n var Alpha1;\n var Delta1;\n var Alpha2;\n var Delta2;\n Delta1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(delta1);\n Delta2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(delta2);\n Alpha1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(alpha1);\n Alpha2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(alpha2);\n var DeltaAlpha = Alpha1 - Alpha2;\n var demoninator = Math.cos(Delta2) * Math.tan(Delta1) - Math.sin(Delta2) * Math.cos(DeltaAlpha);\n var numerator = Math.sin(DeltaAlpha);\n var vvalue = Math.atan2(numerator, demoninator);\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n return vvalue;\n};\n\nASEP.distanceFromGreatArc = function (Alpha1, Delta1, Alpha2, Delta2, Alpha3, Delta3) {\n Delta1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta1);\n Delta2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta2);\n Delta3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta3);\n Alpha1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha1);\n Alpha2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha2);\n Alpha3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha3);\n var X1 = Math.cos(Delta1) * Math.cos(Alpha1);\n var X2 = Math.cos(Delta2) * Math.cos(Alpha2);\n var Y1 = Math.cos(Delta1) * Math.sin(Alpha1);\n var Y2 = Math.cos(Delta2) * Math.sin(Alpha2);\n var Z1 = Math.sin(Delta1);\n var Z2 = Math.sin(Delta2);\n var A = Y1 * Z2 - Z1 * Y2;\n var B = Z1 * X2 - X1 * Z2;\n var C = X1 * Y2 - Y1 * X2;\n var m = Math.tan(Alpha3);\n var n = Math.tan(Delta3) / Math.cos(Alpha3);\n var vvalue = Math.asin((A + B * m + C * n) / (Math.sqrt(A * A + B * B + C * C) * Math.sqrt(1 + m * m + n * n)));\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n if (vvalue < 0) {\n vvalue = Math.abs(vvalue);\n }\n return vvalue;\n};\n\nvar ASEP$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ASEP\", [ASEP, ASEP$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/coordinate_transformation.js\":\n/*!****************************************************!*\\\n !*** ./esm/astrocalc/coordinate_transformation.js ***!\n \\****************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ C3D: () => (/* binding */ C3D),\n/* harmony export */ COR: () => (/* binding */ COR),\n/* harmony export */ CT: () => (/* binding */ CT)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n// Originally `AACOORDINATETRANSFORMATION.CPP`\n// \"Purpose: Implementation for the algorithms which convert between the various celestial coordinate systems\"\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n// COR - was CAA2DCoordinate\n\nfunction COR() {\n this.x = 0;\n this.y = 0;\n this.x = 0;\n this.y = 0;\n}\n\nCOR.create = function (x, y) {\n var item = new COR();\n item.x = x;\n item.y = y;\n return item;\n};\n\nvar COR$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"COR\", [COR, COR$, null]);\n\n\n// C3D - was CAA3DCoordinate\n\nfunction C3D() {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.x = 0;\n this.y = 0;\n this.z = 0;\n}\n\nC3D.create = function (x, y, z) {\n var item = new C3D();\n item.x = x;\n item.y = y;\n item.z = z;\n return item;\n};\n\nvar C3D$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"C3D\", [C3D, C3D$, null]);\n\n\n// CT - was CAACoordinateTransformation\n\nfunction CT() {\n}\n\nCT.eq2Ec = function (Alpha, Delta, Epsilon) {\n Alpha = CT.h2R(Alpha);\n Delta = CT.d2R(Delta);\n Epsilon = CT.d2R(Epsilon);\n var Ecliptic = new COR();\n Ecliptic.x = CT.r2D(Math.atan2(Math.sin(Alpha) * Math.cos(Epsilon) + Math.tan(Delta) * Math.sin(Epsilon), Math.cos(Alpha)));\n if (Ecliptic.x < 0) {\n Ecliptic.x += 360;\n }\n Ecliptic.y = CT.r2D(Math.asin(Math.sin(Delta) * Math.cos(Epsilon) - Math.cos(Delta) * Math.sin(Epsilon) * Math.sin(Alpha)));\n return Ecliptic;\n};\n\nCT.ec2Eq = function (Lambda, Beta, Epsilon) {\n Lambda = CT.d2R(Lambda);\n Beta = CT.d2R(Beta);\n Epsilon = CT.d2R(Epsilon);\n var Equatorial = new COR();\n Equatorial.x = CT.r2H(Math.atan2(Math.sin(Lambda) * Math.cos(Epsilon) - Math.tan(Beta) * Math.sin(Epsilon), Math.cos(Lambda)));\n if (Equatorial.x < 0) {\n Equatorial.x += 24;\n }\n Equatorial.y = CT.r2D(Math.asin(Math.sin(Beta) * Math.cos(Epsilon) + Math.cos(Beta) * Math.sin(Epsilon) * Math.sin(Lambda)));\n return Equatorial;\n};\n\nCT.eq2H = function (LocalHourAngle, Delta, Latitude) {\n LocalHourAngle = CT.h2R(LocalHourAngle);\n Delta = CT.d2R(Delta);\n Latitude = CT.d2R(Latitude);\n var Horizontal = new COR();\n Horizontal.x = CT.r2D(Math.atan2(Math.sin(LocalHourAngle), Math.cos(LocalHourAngle) * Math.sin(Latitude) - Math.tan(Delta) * Math.cos(Latitude)));\n if (Horizontal.x < 0) {\n Horizontal.x += 360;\n }\n Horizontal.y = CT.r2D(Math.asin(Math.sin(Latitude) * Math.sin(Delta) + Math.cos(Latitude) * Math.cos(Delta) * Math.cos(LocalHourAngle)));\n return Horizontal;\n};\n\nCT.h2Eq = function (Azimuth, Altitude, Latitude) {\n Azimuth = CT.d2R(Azimuth);\n Altitude = CT.d2R(Altitude);\n Latitude = CT.d2R(Latitude);\n var Equatorial = new COR();\n Equatorial.x = CT.r2H(Math.atan2(Math.sin(Azimuth), Math.cos(Azimuth) * Math.sin(Latitude) + Math.tan(Altitude) * Math.cos(Latitude)));\n if (Equatorial.x < 0) {\n Equatorial.x += 24;\n }\n Equatorial.y = CT.r2D(Math.asin(Math.sin(Latitude) * Math.sin(Altitude) - Math.cos(Latitude) * Math.cos(Altitude) * Math.cos(Azimuth)));\n return Equatorial;\n};\n\nCT.eq2G = function (Alpha, Delta) {\n Alpha = 192.25 - CT.h2D(Alpha);\n Alpha = CT.d2R(Alpha);\n Delta = CT.d2R(Delta);\n var Galactic = new COR();\n Galactic.x = CT.r2D(Math.atan2(Math.sin(Alpha), Math.cos(Alpha) * Math.sin(CT.d2R(27.4)) - Math.tan(Delta) * Math.cos(CT.d2R(27.4))));\n Galactic.x = 303 - Galactic.x;\n if (Galactic.x >= 360) {\n Galactic.x -= 360;\n }\n Galactic.y = CT.r2D(Math.asin(Math.sin(Delta) * Math.sin(CT.d2R(27.4)) + Math.cos(Delta) * Math.cos(CT.d2R(27.4)) * Math.cos(Alpha)));\n return Galactic;\n};\n\nCT.g2Eq = function (l, b) {\n l -= 123;\n l = CT.d2R(l);\n b = CT.d2R(b);\n var Equatorial = new COR();\n Equatorial.x = CT.r2D(Math.atan2(Math.sin(l), Math.cos(l) * Math.sin(CT.d2R(27.4)) - Math.tan(b) * Math.cos(CT.d2R(27.4))));\n Equatorial.x += 12.25;\n if (Equatorial.x < 0) {\n Equatorial.x += 360;\n }\n Equatorial.x = CT.d2H(Equatorial.x);\n Equatorial.y = CT.r2D(Math.asin(Math.sin(b) * Math.sin(CT.d2R(27.4)) + Math.cos(b) * Math.cos(CT.d2R(27.4)) * Math.cos(l)));\n return Equatorial;\n};\n\nCT.d2R = function (Degrees) {\n return Degrees * 0.0174532925199433;\n};\n\nCT.r2D = function (Radians) {\n return Radians * 57.2957795130823;\n};\n\nCT.r2H = function (Radians) {\n return Radians * 3.81971863420549;\n};\n\nCT.h2R = function (Hours) {\n return Hours * 0.261799387799149;\n};\n\nCT.h2D = function (Hours) {\n return Hours * 15;\n};\n\nCT.d2H = function (Degrees) {\n return Degrees / 15;\n};\n\nCT.PI = function () {\n return 3.14159265358979;\n};\n\nCT.m360 = function (Degrees) {\n return Degrees - Math.floor(Degrees / 360) * 360;\n};\n\nCT.m24 = function (HourAngle) {\n return HourAngle - Math.floor(HourAngle / 24) * 24;\n};\n\nCT.dmS2D = function (Degrees, Minutes, Seconds) {\n return CT.dmS2Dp(Degrees, Minutes, Seconds, true);\n};\n\nCT.dmS2Dp = function (Degrees, Minutes, Seconds, bPositive) {\n if (!bPositive) {\n console.assert(Degrees >= 0);\n console.assert(Minutes >= 0);\n console.assert(Seconds >= 0);\n }\n if (bPositive) {\n return Degrees + Minutes / 60 + Seconds / 3600;\n }\n else {\n return -Degrees - Minutes / 60 - Seconds / 3600;\n }\n};\n\nvar CT$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CT\", [CT, CT$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/date.js\":\n/*!*******************************!*\\\n !*** ./esm/astrocalc/date.js ***!\n \\*******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CalD: () => (/* binding */ CalD),\n/* harmony export */ DAY_OF_WEEK: () => (/* binding */ DAY_OF_WEEK),\n/* harmony export */ DT: () => (/* binding */ DT)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n// Originally `AADATE.CPP`\n// \"Purpose: Implementation for the algorithms which convert between the\n// Gregorian and Julian calendars and the Julian Day\"\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// CalD\n\nfunction CalD() {\n this.year = 0;\n this.month = 0;\n this.day = 0;\n this.year = 0;\n this.month = 0;\n this.day = 0;\n}\n\nCalD.create = function (year, month, day) {\n var item = new CalD();\n item.year = year;\n item.month = month;\n item.day = day;\n return item;\n};\n\nvar CalD$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"CalD\", [CalD, CalD$, null]);\n\n\n// DAY_OF_WEEK\n\nvar DAY_OF_WEEK = {\n SUNDAY: 0,\n MONDAY: 1,\n TUESDAY: 2,\n WEDNESDAY: 3,\n THURSDAY: 4,\n FRIDAY: 5,\n SATURDAY: 6\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"DAY_OF_WEEK\", DAY_OF_WEEK);\n\n\n// DT\n\nfunction DT() {\n this.m_dblJulian = 0;\n this.m_bGregorianCalendar = false;\n this.m_dblJulian = 0;\n this.m_bGregorianCalendar = false;\n}\n\nDT.create = function (Year, Month, Day, bGregorianCalendar) {\n var item = new DT();\n item.set(Year, Month, Day, 0, 0, 0, bGregorianCalendar);\n return item;\n};\n\nDT.createHMS = function (Year, Month, Day, Hour, Minute, Second, bGregorianCalendar) {\n var item = new DT();\n item.set(Year, Month, Day, Hour, Minute, Second, bGregorianCalendar);\n return item;\n};\n\nDT.createJD = function (JD, bGregorianCalendar) {\n var item = new DT();\n item.setJD(JD, bGregorianCalendar);\n return item;\n};\n\nDT.dateToJD = function (Year, Month, Day, bGregorianCalendar) {\n var Y = Year;\n var M = Month;\n if (M < 3) {\n Y = Y - 1;\n M = M + 12;\n }\n var A = 0;\n var B = 0;\n if (bGregorianCalendar) {\n A = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((Y / 100));\n B = 2 - A + _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((A / 4));\n }\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((365.25 * (Y + 4716))) + _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((30.6001 * (M + 1))) + Day + B - 1524.5;\n};\n\nDT.isLeap = function (Year, bGregorianCalendar) {\n if (bGregorianCalendar) {\n if (!(Year % 100)) {\n return (!(Year % 400)) ? true : false;\n }\n else {\n return (!(Year % 4)) ? true : false;\n }\n }\n else {\n return (!(Year % 4)) ? true : false;\n }\n};\n\nDT.afterPapalReform = function (Year, Month, Day) {\n return ((Year > 1582) || ((Year === 1582) && (Month > 10)) || ((Year === 1582) && (Month === 10) && (Day >= 15)));\n};\n\nDT.afterPapalReformJD = function (JD) {\n return (JD >= 2299160.5);\n};\n\nDT.dayOfYearJD = function (JD, Year, bGregorianCalendar) {\n return JD - DT.dateToJD(Year, 1, 1, bGregorianCalendar) + 1;\n};\n\nDT.daysInMonthForMonth = function (Month, bLeap) {\n console.assert(Month >= 1 && Month <= 12);\n var MonthLength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0];\n if (bLeap) {\n MonthLength[1]++;\n }\n return MonthLength[Month - 1];\n};\n\nDT.INT = function (vvalue) {\n if (vvalue >= 0) {\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(vvalue);\n }\n else {\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((vvalue - 1));\n }\n};\n\nvar DT$ = {\n julian: function () {\n return this.m_dblJulian;\n },\n\n day: function () {\n var D = this.get();\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[2]);\n },\n\n month: function () {\n var D = this.get();\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[1]);\n },\n\n year: function () {\n var D = this.get();\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[0]);\n },\n\n hour: function () {\n var D = this.get();\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[3]);\n },\n\n minute: function () {\n var D = this.get();\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[4]);\n },\n\n second: function () {\n var D = this.get();\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[5]);\n },\n\n set: function (Year, Month, Day, Hour, Minute, Second, bGregorianCalendar) {\n var dblDay = Day + (Hour / 24) + (Minute / 1440) + (Second / 86400);\n this.setJD(DT.dateToJD(Year, Month, dblDay, bGregorianCalendar), bGregorianCalendar);\n },\n\n setJD: function (JD, bGregorianCalendar) {\n this.m_dblJulian = JD;\n this.setInGregorianCalendar(bGregorianCalendar);\n },\n\n setInGregorianCalendar: function (bGregorianCalendar) {\n var bAfterPapalReform = (this.m_dblJulian >= 2299160.5);\n this.m_bGregorianCalendar = bGregorianCalendar && bAfterPapalReform;\n },\n\n get: function () {\n var Year;\n var Month;\n var Day;\n var Hour;\n var Minute;\n var Second;\n var JD = this.m_dblJulian + 0.5;\n var tempZ = Math.floor(JD);\n var F = JD - tempZ;\n var Z = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(tempZ);\n var A;\n if (this.m_bGregorianCalendar) {\n var alpha = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((Z - 1867216.25) / 36524.25));\n A = Z + 1 + alpha - _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((alpha / 4));\n }\n else {\n A = Z;\n }\n var B = A + 1524;\n var C = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((B - 122.1) / 365.25));\n var D = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((365.25 * C));\n var E = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((B - D) / 30.6001));\n var dblDay = B - D - _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((30.6001 * E)) + F;\n Day = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(dblDay);\n if (E < 14) {\n Month = E - 1;\n }\n else {\n Month = E - 13;\n }\n if (Month > 2) {\n Year = C - 4716;\n }\n else {\n Year = C - 4715;\n }\n tempZ = Math.floor(dblDay);\n F = dblDay - tempZ;\n Hour = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((F * 24));\n Minute = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((F - Hour / 24) * 1440));\n Second = (F - (Hour / 24) - (Minute / 1440)) * 86400;\n return [Year, Month, Day, Hour, Minute, Second];\n },\n\n dayOfWeek: function () {\n return (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((this.m_dblJulian + 1.5)) % 7);\n },\n\n dayOfYear: function () {\n var year = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(this.get()[0]);\n return DT.dayOfYearJD(this.m_dblJulian, year, DT.afterPapalReform(year, 1, 1));\n },\n\n daysInMonth: function () {\n var D = this.get();\n var Year = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[0]);\n var Month = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[1]);\n return DT.daysInMonthForMonth(Month, DT.isLeap(Year, this.m_bGregorianCalendar));\n },\n\n daysInYear: function () {\n var D = this.get();\n var Year = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[0]);\n if (DT.isLeap(Year, this.m_bGregorianCalendar)) {\n return 366;\n }\n else {\n return 365;\n }\n },\n\n leap: function () {\n return DT.isLeap(this.year(), this.m_bGregorianCalendar);\n },\n\n inGregorianCalendar: function () {\n return this.m_bGregorianCalendar;\n },\n\n fractionalYear: function () {\n var D = this.get();\n var Year = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[0]);\n var Month = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[1]);\n var Day = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[2]);\n var Hour = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[3]);\n var Minute = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(D[4]);\n var Second = D[5];\n var DaysInYear;\n if (DT.isLeap(Year, this.m_bGregorianCalendar)) {\n DaysInYear = 366;\n }\n else {\n DaysInYear = 365;\n }\n return Year + ((this.m_dblJulian - DT.dateToJD(Year, 1, 1, DT.afterPapalReform(Year, 1, 1))) / DaysInYear);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"DT\", [DT, DT$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/dynamical_time.js\":\n/*!*****************************************!*\\\n !*** ./esm/astrocalc/dynamical_time.js ***!\n \\*****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DYT: () => (/* binding */ DYT)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _date_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./date.js */ \"./esm/astrocalc/date.js\");\n// Originally `AADYNAMICALTIME.CPP`\n// \"Purpose: Implementation for the algorithms which calculate the difference between Dynamical Time and Universal Time\"\n// Last update of original: PJN / 28-01-2007\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// Constants\n\nconst deltaTTable = [121, 112, 103, 95, 88, 82, 77, 72, 68, 63, 60, 56, 53, 51, 48, 46, 44, 42, 40, 38, 35, 33, 31, 29, 26, 24, 22, 20, 18, 16, 14, 12, 11, 10, 9, 8, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 15, 15, 14, 13, 13.1, 12.5, 12.2, 12, 12, 12, 12, 12, 12, 11.9, 11.6, 11, 10.2, 9.2, 8.2, 7.1, 6.2, 5.6, 5.4, 5.3, 5.4, 5.6, 5.9, 6.2, 6.5, 6.8, 7.1, 7.3, 7.5, 7.6, 7.7, 7.3, 6.2, 5.2, 2.7, 1.4, -1.2, -2.8, -3.8, -4.8, -5.5, -5.3, -5.6, -5.7, -5.9, -6, -6.3, -6.5, -6.2, -4.7, -2.8, -0.1, 2.6, 5.3, 7.7, 10.4, 13.3, 16, 18.2, 20.2, 21.2, 22.4, 23.5, 23.8, 24.3, 24, 23.9, 23.9, 23.7, 24, 24.3, 25.3, 26.2, 27.3, 28.2, 29.1, 30, 30.7, 31.4, 32.2, 33.1, 34, 35, 36.5, 38.3, 40.18, 42.2, 44.5, 46.5, 48.5, 50.54, 52.2, 53.8, 54.9, 55.8, 56.86, 58.31, 59.99, 61.63, 62.97];\n\n\n// DYT - was CAADynamicalTime\n\nfunction DYT() { }\n\nDYT.deltaT = function (JD) {\n var date = _date_js__WEBPACK_IMPORTED_MODULE_2__.DT.createJD(JD, _date_js__WEBPACK_IMPORTED_MODULE_2__.DT.afterPapalReformJD(JD));\n var y = date.fractionalYear();\n var T = (y - 2000) / 100;\n var Delta;\n if (y < 948) {\n Delta = 2177 + (497 * T) + (44.1 * T * T);\n }\n else if (y < 1620) {\n Delta = 102 + (102 * T) + (25.3 * T * T);\n }\n else if (y < 1998) {\n var Index = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(((y - 1620) / 2));\n console.assert(Index < deltaTTable.length);\n y = y / 2 - Index - 810;\n Delta = (deltaTTable[Index] + (deltaTTable[Index + 1] - deltaTTable[Index]) * y);\n }\n else if (y <= 2000) {\n var nLookupSize = deltaTTable.length;\n Delta = deltaTTable[nLookupSize - 1];\n }\n else if (y < 2100) {\n Delta = 102 + (102 * T) + (25.3 * T * T) + 0.37 * (y - 2100);\n }\n else {\n Delta = 102 + (102 * T) + (25.3 * T * T);\n }\n return Delta;\n};\n\nvar DYT$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"DYT\", [DYT, DYT$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/earth.js\":\n/*!********************************!*\\\n !*** ./esm/astrocalc/earth.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAEarth: () => (/* binding */ CAAEarth),\n/* harmony export */ VSC: () => (/* binding */ VSC)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAEARTH.CPP`\n// \"Purpose: Implementation for the algorithms which calculate the position of Earth\"\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// VSC\n\nfunction VSC(a, b, c) {\n this.a = 0;\n this.b = 0;\n this.c = 0;\n this.a = a;\n this.b = b;\n this.c = c;\n}\n\nvar VSC$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"VSC\", [VSC, VSC$, null]);\n\n\n// Coefficients\n\nconst g_L0EarthCoefficients = [new VSC(175347046, 0, 0), new VSC(3341656, 4.6692568, 6283.07585), new VSC(34894, 4.6261, 12566.1517), new VSC(3497, 2.7441, 5753.3849), new VSC(3418, 2.8289, 3.5231), new VSC(3136, 3.6277, 77713.7715), new VSC(2676, 4.4181, 7860.4194), new VSC(2343, 6.1352, 3930.2097), new VSC(1324, 0.7425, 11506.7698), new VSC(1273, 2.0371, 529.691), new VSC(1199, 1.1096, 1577.3435), new VSC(990, 5.233, 5884.927), new VSC(902, 2.045, 26.298), new VSC(857, 3.508, 398.149), new VSC(780, 1.179, 5223.694), new VSC(753, 2.533, 5507.553), new VSC(505, 4.583, 18849.228), new VSC(492, 4.205, 775.523), new VSC(357, 2.92, 0.067), new VSC(317, 5.849, 11790.629), new VSC(284, 1.899, 796.288), new VSC(271, 0.315, 10977.079), new VSC(243, 0.345, 5486.778), new VSC(206, 4.806, 2544.314), new VSC(205, 1.869, 5573.143), new VSC(202, 2.458, 6069.777), new VSC(156, 0.833, 213.299), new VSC(132, 3.411, 2942.463), new VSC(126, 1.083, 20.775), new VSC(115, 0.645, 0.98), new VSC(103, 0.636, 4694.003), new VSC(102, 0.976, 15720.839), new VSC(102, 4.267, 7.114), new VSC(99, 6.21, 2146.17), new VSC(98, 0.68, 155.42), new VSC(86, 5.98, 161000.69), new VSC(85, 1.3, 6275.96), new VSC(85, 3.67, 71430.7), new VSC(80, 1.81, 17260.15), new VSC(79, 3.04, 12036.46), new VSC(75, 1.76, 5088.63), new VSC(74, 3.5, 3154.69), new VSC(74, 4.68, 801.82), new VSC(70, 0.83, 9437.76), new VSC(62, 3.98, 8827.39), new VSC(61, 1.82, 7084.9), new VSC(57, 2.78, 6286.6), new VSC(56, 4.39, 14143.5), new VSC(56, 3.47, 6279.55), new VSC(52, 0.19, 12139.55), new VSC(52, 1.33, 1748.02), new VSC(51, 0.28, 5856.48), new VSC(49, 0.49, 1194.45), new VSC(41, 5.37, 8429.24), new VSC(41, 2.4, 19651.05), new VSC(39, 6.17, 10447.39), new VSC(37, 6.04, 10213.29), new VSC(37, 2.57, 1059.38), new VSC(36, 1.71, 2352.87), new VSC(36, 1.78, 6812.77), new VSC(33, 0.59, 17789.85), new VSC(30, 0.44, 83996.85), new VSC(30, 2.74, 1349.87), new VSC(25, 3.16, 4690.48)];\nconst g_L1EarthCoefficients = [new VSC(628331966747, 0, 0), new VSC(206059, 2.678235, 6283.07585), new VSC(4303, 2.6351, 12566.1517), new VSC(425, 1.59, 3.523), new VSC(119, 5.796, 26.298), new VSC(109, 2.966, 1577.344), new VSC(93, 2.59, 18849.23), new VSC(72, 1.14, 529.69), new VSC(68, 1.87, 398.15), new VSC(67, 4.41, 5507.55), new VSC(59, 2.89, 5223.69), new VSC(56, 2.17, 155.42), new VSC(45, 0.4, 796.3), new VSC(36, 0.47, 775.52), new VSC(29, 2.65, 7.11), new VSC(21, 5.43, 0.98), new VSC(19, 1.85, 5486.78), new VSC(19, 4.97, 213.3), new VSC(17, 2.99, 6275.96), new VSC(16, 0.03, 2544.31), new VSC(16, 1.43, 2146.17), new VSC(15, 1.21, 10977.08), new VSC(12, 2.83, 1748.02), new VSC(12, 3.26, 5088.63), new VSC(12, 5.27, 1194.45), new VSC(12, 2.08, 4694), new VSC(11, 0.77, 553.57), new VSC(10, 1.3, 6286.6), new VSC(10, 4.24, 1349.87), new VSC(9, 2.7, 242.73), new VSC(9, 5.64, 951.72), new VSC(8, 5.3, 2352.87), new VSC(6, 2.65, 9437.76), new VSC(6, 4.67, 4690.48)];\nconst g_L2EarthCoefficients = [new VSC(52919, 0, 0), new VSC(8720, 1.0721, 6283.0758), new VSC(309, 0.867, 12566.152), new VSC(27, 0.05, 3.52), new VSC(16, 5.19, 26.3), new VSC(16, 3.68, 155.42), new VSC(10, 0.76, 18849.23), new VSC(9, 2.06, 77713.77), new VSC(7, 0.83, 775.52), new VSC(5, 4.66, 1577.34), new VSC(4, 1.03, 7.11), new VSC(4, 3.44, 5573.14), new VSC(3, 5.14, 796.3), new VSC(3, 6.05, 5507.55), new VSC(3, 1.19, 242.73), new VSC(3, 6.12, 529.69), new VSC(3, 0.31, 398.15), new VSC(3, 2.28, 553.57), new VSC(2, 4.38, 5223.69), new VSC(2, 3.75, 0.98)];\nconst g_L3EarthCoefficients = [new VSC(289, 5.844, 6283.076), new VSC(35, 0, 0), new VSC(17, 5.49, 12566.15), new VSC(3, 5.2, 155.42), new VSC(1, 4.72, 3.52), new VSC(1, 5.3, 18849.23), new VSC(1, 5.97, 242.73)];\nconst g_L4EarthCoefficients = [new VSC(114, 3.142, 0), new VSC(8, 4.13, 6283.08), new VSC(1, 3.84, 12566.15)];\nconst g_L5EarthCoefficients = [new VSC(1, 3.14, 0)];\nconst g_B0EarthCoefficients = [new VSC(280, 3.199, 84334.662), new VSC(102, 5.422, 5507.553), new VSC(80, 3.88, 5223.69), new VSC(44, 3.7, 2352.87), new VSC(32, 4, 1577.34)];\nconst g_B1EarthCoefficients = [new VSC(9, 3.9, 5507.55), new VSC(6, 1.73, 5223.69)];\nconst g_B2EarthCoefficients = [new VSC(22378, 3.38509, 10213.28555), new VSC(282, 0, 0), new VSC(173, 5.256, 20426.571), new VSC(27, 3.87, 30639.86)];\nconst g_B3EarthCoefficients = [new VSC(647, 4.992, 10213.286), new VSC(20, 3.14, 0), new VSC(6, 0.77, 20426.57), new VSC(3, 5.44, 30639.86)];\nconst g_B4EarthCoefficients = [new VSC(14, 0.32, 10213.29)];\nconst g_R0EarthCoefficients = [new VSC(100013989, 0, 0), new VSC(1670700, 3.0984635, 6283.07585), new VSC(13956, 3.05525, 12566.1517), new VSC(3084, 5.1985, 77713.7715), new VSC(1628, 1.1739, 5753.3849), new VSC(1576, 2.8469, 7860.4194), new VSC(925, 5.453, 11506.77), new VSC(542, 4.564, 3930.21), new VSC(472, 3.661, 5884.927), new VSC(346, 0.964, 5507.553), new VSC(329, 5.9, 5223.694), new VSC(307, 0.299, 5573.143), new VSC(243, 4.273, 11790.629), new VSC(212, 5.847, 1577.344), new VSC(186, 5.022, 10977.079), new VSC(175, 3.012, 18849.228), new VSC(110, 5.055, 5486.778), new VSC(98, 0.89, 6069.78), new VSC(86, 5.69, 15720.84), new VSC(86, 1.27, 161000.69), new VSC(65, 0.27, 17260.15), new VSC(63, 0.92, 529.69), new VSC(57, 2.01, 83996.85), new VSC(56, 5.24, 71430.7), new VSC(49, 3.25, 2544.31), new VSC(47, 2.58, 775.52), new VSC(45, 5.54, 9437.76), new VSC(43, 6.01, 6275.96), new VSC(39, 5.36, 4694), new VSC(38, 2.39, 8827.39), new VSC(37, 0.83, 19651.05), new VSC(37, 4.9, 12139.55), new VSC(36, 1.67, 12036.46), new VSC(35, 1.84, 2942.46), new VSC(33, 0.24, 7084.9), new VSC(32, 0.18, 5088.63), new VSC(32, 1.78, 398.15), new VSC(28, 1.21, 6286.6), new VSC(28, 1.9, 6279.55), new VSC(26, 4.59, 10447.39)];\nconst g_R1EarthCoefficients = [new VSC(103019, 1.10749, 6283.07585), new VSC(1721, 1.0644, 12566.1517), new VSC(702, 3.142, 0), new VSC(32, 1.02, 18849.23), new VSC(31, 2.84, 5507.55), new VSC(25, 1.32, 5223.69), new VSC(18, 1.42, 1577.34), new VSC(10, 5.91, 10977.08), new VSC(9, 1.42, 6275.96), new VSC(9, 0.27, 5486.78)];\nconst g_R2EarthCoefficients = [new VSC(4359, 5.7846, 6283.0758), new VSC(124, 5.579, 12566.152), new VSC(12, 3.14, 0), new VSC(9, 3.63, 77713.77), new VSC(6, 1.87, 5573.14), new VSC(3, 5.47, 18849.23)];\nconst g_R3EarthCoefficients = [new VSC(145, 4.273, 6283.076), new VSC(7, 3.92, 12566.15)];\nconst g_R4EarthCoefficients = [new VSC(4, 2.56, 6283.08)];\nconst g_L1EarthCoefficientsJ2000 = [new VSC(628307584999, 0, 0), new VSC(206059, 2.678235, 6283.07585), new VSC(4303, 2.6351, 12566.1517), new VSC(425, 1.59, 3.523), new VSC(119, 5.796, 26.298), new VSC(109, 2.966, 1577.344), new VSC(93, 2.59, 18849.23), new VSC(72, 1.14, 529.69), new VSC(68, 1.87, 398.15), new VSC(67, 4.41, 5507.55), new VSC(59, 2.89, 5223.69), new VSC(56, 2.17, 155.42), new VSC(45, 0.4, 796.3), new VSC(36, 0.47, 775.52), new VSC(29, 2.65, 7.11), new VSC(21, 5.43, 0.98), new VSC(19, 1.85, 5486.78), new VSC(19, 4.97, 213.3), new VSC(17, 2.99, 6275.96), new VSC(16, 0.03, 2544.31), new VSC(16, 1.43, 2146.17), new VSC(15, 1.21, 10977.08), new VSC(12, 2.83, 1748.02), new VSC(12, 3.26, 5088.63), new VSC(12, 5.27, 1194.45), new VSC(12, 2.08, 4694), new VSC(11, 0.77, 553.57), new VSC(10, 1.3, 6286.6), new VSC(10, 4.24, 1349.87), new VSC(9, 2.7, 242.73), new VSC(9, 5.64, 951.72), new VSC(8, 5.3, 2352.87), new VSC(6, 2.65, 9437.76), new VSC(6, 4.67, 4690.48)];\nconst g_L2EarthCoefficientsJ2000 = [new VSC(8722, 1.0725, 6283.0758), new VSC(991, 3.1416, 0), new VSC(295, 0.437, 12566.152), new VSC(27, 0.05, 3.52), new VSC(16, 5.19, 26.3), new VSC(16, 3.69, 155.42), new VSC(9, 0.3, 18849.23), new VSC(9, 2.06, 77713.77), new VSC(7, 0.83, 775.52), new VSC(5, 4.66, 1577.34), new VSC(4, 1.03, 7.11), new VSC(4, 3.44, 5573.14), new VSC(3, 5.14, 796.3), new VSC(3, 6.05, 5507.55), new VSC(3, 1.19, 242.73), new VSC(3, 6.12, 529.69), new VSC(3, 0.3, 398.15), new VSC(3, 2.28, 553.57), new VSC(2, 4.38, 5223.69), new VSC(2, 3.75, 0.98)];\nconst g_L3EarthCoefficientsJ2000 = [new VSC(289, 5.842, 6283.076), new VSC(21, 6.05, 12566.15), new VSC(3, 5.2, 155.42), new VSC(3, 3.14, 0), new VSC(1, 4.72, 3.52), new VSC(1, 5.97, 242.73), new VSC(1, 5.54, 18849.23)];\nconst g_L4EarthCoefficientsJ2000 = [new VSC(8, 4.14, 6283.08), new VSC(1, 3.28, 12566.15)];\nconst g_B1EarthCoefficientsJ2000 = [new VSC(227778, 3.413766, 6283.07585), new VSC(3806, 3.3706, 12566.1517), new VSC(3620, 0, 0), new VSC(72, 3.33, 18849.23), new VSC(8, 3.89, 5507.55), new VSC(8, 1.79, 5223.69), new VSC(6, 5.2, 2352.87)];\nconst g_B2EarthCoefficientsJ2000 = [new VSC(9721, 5.1519, 6283.07585), new VSC(233, 3.1416, 0), new VSC(134, 0.644, 12566.152), new VSC(7, 1.07, 18849.23)];\nconst g_B3EarthCoefficientsJ2000 = [new VSC(276, 0.595, 6283.076), new VSC(17, 3.14, 0), new VSC(4, 0.12, 12566.15)];\nconst g_B4EarthCoefficientsJ2000 = [new VSC(6, 2.27, 6283.08), new VSC(1, 0, 0)];\n\n\n// CAAEarth\n\nfunction CAAEarth() { }\n\nCAAEarth.eclipticLongitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var rho5 = rho4 * rho;\n var nL0Coefficients = g_L0EarthCoefficients.length;\n var L0 = 0;\n var i;\n for (i = 0; i < nL0Coefficients; i++) {\n L0 += g_L0EarthCoefficients[i].a * Math.cos(g_L0EarthCoefficients[i].b + g_L0EarthCoefficients[i].c * rho);\n }\n var nL1Coefficients = g_L1EarthCoefficients.length;\n var L1 = 0;\n for (i = 0; i < nL1Coefficients; i++) {\n L1 += g_L1EarthCoefficients[i].a * Math.cos(g_L1EarthCoefficients[i].b + g_L1EarthCoefficients[i].c * rho);\n }\n var nL2Coefficients = g_L2EarthCoefficients.length;\n var L2 = 0;\n for (i = 0; i < nL2Coefficients; i++) {\n L2 += g_L2EarthCoefficients[i].a * Math.cos(g_L2EarthCoefficients[i].b + g_L2EarthCoefficients[i].c * rho);\n }\n var nL3Coefficients = g_L3EarthCoefficients.length;\n var L3 = 0;\n for (i = 0; i < nL3Coefficients; i++) {\n L3 += g_L3EarthCoefficients[i].a * Math.cos(g_L3EarthCoefficients[i].b + g_L3EarthCoefficients[i].c * rho);\n }\n var nL4Coefficients = g_L4EarthCoefficients.length;\n var L4 = 0;\n for (i = 0; i < nL4Coefficients; i++) {\n L4 += g_L4EarthCoefficients[i].a * Math.cos(g_L4EarthCoefficients[i].b + g_L4EarthCoefficients[i].c * rho);\n }\n var nL5Coefficients = g_L5EarthCoefficients.length;\n var L5 = 0;\n for (i = 0; i < nL5Coefficients; i++) {\n L5 += g_L5EarthCoefficients[i].a * Math.cos(g_L5EarthCoefficients[i].b + g_L5EarthCoefficients[i].c * rho);\n }\n var vvalue = (L0 + L1 * rho + L2 * rhosquared + L3 * rhocubed + L4 * rho4 + L5 * rho5) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue));\n return vvalue;\n};\n\nCAAEarth.eclipticLatitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nB0Coefficients = g_B0EarthCoefficients.length;\n var B0 = 0;\n var i;\n for (i = 0; i < nB0Coefficients; i++) {\n B0 += g_B0EarthCoefficients[i].a * Math.cos(g_B0EarthCoefficients[i].b + g_B0EarthCoefficients[i].c * rho);\n }\n var nB1Coefficients = g_B1EarthCoefficients.length;\n var B1 = 0;\n for (i = 0; i < nB1Coefficients; i++) {\n B1 += g_B1EarthCoefficients[i].a * Math.cos(g_B1EarthCoefficients[i].b + g_B1EarthCoefficients[i].c * rho);\n }\n var nB2Coefficients = g_B2EarthCoefficients.length;\n var B2 = 0;\n for (i = 0; i < nB2Coefficients; i++) {\n B2 += g_B2EarthCoefficients[i].a * Math.cos(g_B2EarthCoefficients[i].b + g_B2EarthCoefficients[i].c * rho);\n }\n var nB3Coefficients = g_B3EarthCoefficients.length;\n var B3 = 0;\n for (i = 0; i < nB3Coefficients; i++) {\n B3 += g_B3EarthCoefficients[i].a * Math.cos(g_B3EarthCoefficients[i].b + g_B3EarthCoefficients[i].c * rho);\n }\n var nB4Coefficients = g_B4EarthCoefficients.length;\n var B4 = 0;\n for (i = 0; i < nB4Coefficients; i++) {\n B4 += g_B4EarthCoefficients[i].a * Math.cos(g_B4EarthCoefficients[i].b + g_B4EarthCoefficients[i].c * rho);\n }\n var vvalue = (B0 + B1 * rho + B2 * rhosquared + B3 * rhocubed + B4 * rho4) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n return vvalue;\n};\n\nCAAEarth.radiusVector = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nR0Coefficients = g_R0EarthCoefficients.length;\n var R0 = 0;\n var i;\n for (i = 0; i < nR0Coefficients; i++) {\n R0 += g_R0EarthCoefficients[i].a * Math.cos(g_R0EarthCoefficients[i].b + g_R0EarthCoefficients[i].c * rho);\n }\n var nR1Coefficients = g_R1EarthCoefficients.length;\n var R1 = 0;\n for (i = 0; i < nR1Coefficients; i++) {\n R1 += g_R1EarthCoefficients[i].a * Math.cos(g_R1EarthCoefficients[i].b + g_R1EarthCoefficients[i].c * rho);\n }\n var nR2Coefficients = g_R2EarthCoefficients.length;\n var R2 = 0;\n for (i = 0; i < nR2Coefficients; i++) {\n R2 += g_R2EarthCoefficients[i].a * Math.cos(g_R2EarthCoefficients[i].b + g_R2EarthCoefficients[i].c * rho);\n }\n var nR3Coefficients = g_R3EarthCoefficients.length;\n var R3 = 0;\n for (i = 0; i < nR3Coefficients; i++) {\n R3 += g_R3EarthCoefficients[i].a * Math.cos(g_R3EarthCoefficients[i].b + g_R3EarthCoefficients[i].c * rho);\n }\n var nR4Coefficients = g_R4EarthCoefficients.length;\n var R4 = 0;\n for (i = 0; i < nR4Coefficients; i++) {\n R4 += g_R4EarthCoefficients[i].a * Math.cos(g_R4EarthCoefficients[i].b + g_R4EarthCoefficients[i].c * rho);\n }\n return (R0 + R1 * rho + R2 * rhosquared + R3 * rhocubed + R4 * rho4) / 100000000;\n};\n\nCAAEarth.sunMeanAnomaly = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(357.5291092 + 35999.0502909 * T - 0.0001536 * Tsquared + Tcubed / 24490000);\n};\n\nCAAEarth.eccentricity = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n return 1 - 0.002516 * T - 7.4E-06 * Tsquared;\n};\n\nCAAEarth.eclipticLongitudeJ2000 = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nL0Coefficients = g_L0EarthCoefficients.length;\n var L0 = 0;\n var i;\n for (i = 0; i < nL0Coefficients; i++) {\n L0 += g_L0EarthCoefficients[i].a * Math.cos(g_L0EarthCoefficients[i].b + g_L0EarthCoefficients[i].c * rho);\n }\n var nL1Coefficients = g_L1EarthCoefficientsJ2000.length;\n var L1 = 0;\n for (i = 0; i < nL1Coefficients; i++) {\n L1 += g_L1EarthCoefficientsJ2000[i].a * Math.cos(g_L1EarthCoefficientsJ2000[i].b + g_L1EarthCoefficientsJ2000[i].c * rho);\n }\n var nL2Coefficients = g_L2EarthCoefficientsJ2000.length;\n var L2 = 0;\n for (i = 0; i < nL2Coefficients; i++) {\n L2 += g_L2EarthCoefficientsJ2000[i].a * Math.cos(g_L2EarthCoefficientsJ2000[i].b + g_L2EarthCoefficientsJ2000[i].c * rho);\n }\n var nL3Coefficients = g_L3EarthCoefficientsJ2000.length;\n var L3 = 0;\n for (i = 0; i < nL3Coefficients; i++) {\n L3 += g_L3EarthCoefficientsJ2000[i].a * Math.cos(g_L3EarthCoefficientsJ2000[i].b + g_L3EarthCoefficientsJ2000[i].c * rho);\n }\n var nL4Coefficients = g_L4EarthCoefficientsJ2000.length;\n var L4 = 0;\n for (i = 0; i < nL4Coefficients; i++) {\n L4 += g_L4EarthCoefficientsJ2000[i].a * Math.cos(g_L4EarthCoefficientsJ2000[i].b + g_L4EarthCoefficientsJ2000[i].c * rho);\n }\n var vvalue = (L0 + L1 * rho + L2 * rhosquared + L3 * rhocubed + L4 * rho4) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue));\n return vvalue;\n};\n\nCAAEarth.eclipticLatitudeJ2000 = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nB0Coefficients = g_B0EarthCoefficients.length;\n var B0 = 0;\n var i;\n for (i = 0; i < nB0Coefficients; i++) {\n B0 += g_B0EarthCoefficients[i].a * Math.cos(g_B0EarthCoefficients[i].b + g_B0EarthCoefficients[i].c * rho);\n }\n var nB1Coefficients = g_B1EarthCoefficientsJ2000.length;\n var B1 = 0;\n for (i = 0; i < nB1Coefficients; i++) {\n B1 += g_B1EarthCoefficientsJ2000[i].a * Math.cos(g_B1EarthCoefficientsJ2000[i].b + g_B1EarthCoefficientsJ2000[i].c * rho);\n }\n var nB2Coefficients = g_B2EarthCoefficientsJ2000.length;\n var B2 = 0;\n for (i = 0; i < nB2Coefficients; i++) {\n B2 += g_B2EarthCoefficientsJ2000[i].a * Math.cos(g_B2EarthCoefficientsJ2000[i].b + g_B2EarthCoefficientsJ2000[i].c * rho);\n }\n var nB3Coefficients = g_B3EarthCoefficientsJ2000.length;\n var B3 = 0;\n for (i = 0; i < nB3Coefficients; i++) {\n B3 += g_B3EarthCoefficientsJ2000[i].a * Math.cos(g_B3EarthCoefficientsJ2000[i].b + g_B3EarthCoefficientsJ2000[i].c * rho);\n }\n var nB4Coefficients = g_B4EarthCoefficientsJ2000.length;\n var B4 = 0;\n for (i = 0; i < nB4Coefficients; i++) {\n B4 += g_B4EarthCoefficientsJ2000[i].a * Math.cos(g_B4EarthCoefficientsJ2000[i].b + g_B4EarthCoefficientsJ2000[i].c * rho);\n }\n var vvalue = (B0 + B1 * rho + B2 * rhosquared + B3 * rhocubed + B4 * rho4) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n return vvalue;\n};\n\nvar CAAEarth$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAEarth\", [CAAEarth, CAAEarth$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/ecliptical_elements.js\":\n/*!**********************************************!*\\\n !*** ./esm/astrocalc/ecliptical_elements.js ***!\n \\**********************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAEclipticalElementDetails: () => (/* binding */ CAAEclipticalElementDetails),\n/* harmony export */ CAAEclipticalElements: () => (/* binding */ CAAEclipticalElements)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAECLIPTICALELEMENTS.CPP`\n// \"Purpose: Implementation for the algorithms which map the ecliptical elements from one equinox to another\"\n// Last update of original: PJN / 29-11-2006\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// CAAEclipticalElementDetails\n\nfunction CAAEclipticalElementDetails() {\n this.i = 0;\n this.w = 0;\n this.omega = 0;\n this.i = 0;\n this.w = 0;\n this.omega = 0;\n}\n\nvar CAAEclipticalElementDetails$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAEclipticalElementDetails\", [CAAEclipticalElementDetails, CAAEclipticalElementDetails$, null]);\n\n\n// CAAEclipticalElements\n\nfunction CAAEclipticalElements() { }\n\nCAAEclipticalElements.calculate = function (i0, w0, omega0, JD0, JD) {\n var T = (JD0 - 2451545) / 36525;\n var Tsquared = T * T;\n var t = (JD - JD0) / 36525;\n var tsquared = t * t;\n var tcubed = tsquared * t;\n var i0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(i0);\n var omega0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(omega0);\n var eta = (47.0029 - 0.06603 * T + 0.000598 * Tsquared) * t + (-0.03302 + 0.000598 * T) * tsquared + 6E-05 * tcubed;\n eta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, eta));\n var pi = 174.876384 * 3600 + 3289.4789 * T + 0.60622 * Tsquared - (869.8089 + 0.50491 * T) * t + 0.03536 * tsquared;\n pi = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, pi));\n var p = (5029.0966 + 2.22226 * T - 4.2E-05 * Tsquared) * t + (1.11113 - 4.2E-05 * T) * tsquared - 6E-06 * tcubed;\n p = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, p));\n var sini0rad = Math.sin(i0rad);\n var cosi0rad = Math.cos(i0rad);\n var sinomega0rad_pi = Math.sin(omega0rad - pi);\n var cosomega0rad_pi = Math.cos(omega0rad - pi);\n var sineta = Math.sin(eta);\n var coseta = Math.cos(eta);\n var A = sini0rad * sinomega0rad_pi;\n var B = -sineta * cosi0rad + coseta * sini0rad * cosomega0rad_pi;\n var irad = Math.asin(Math.sqrt(A * A + B * B));\n var details = new CAAEclipticalElementDetails();\n details.i = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(irad);\n var cosi = cosi0rad * coseta + sini0rad * sineta * cosomega0rad_pi;\n if (cosi < 0) {\n details.i = 180 - details.i;\n }\n var phi = pi + p;\n details.omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.atan2(A, B) + phi));\n A = -sineta * sinomega0rad_pi;\n B = sini0rad * coseta - cosi0rad * sineta * cosomega0rad_pi;\n var deltaw = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.atan2(A, B));\n details.w = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(w0 + deltaw);\n return details;\n};\n\nCAAEclipticalElements.fK4B1950ToFK5J2000 = function (i0, w0, omega0) {\n var L = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(5.19856209);\n var J = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(0.00651966);\n var i0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(i0);\n var omega0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(omega0);\n var sini0rad = Math.sin(i0rad);\n var cosi0rad = Math.cos(i0rad);\n var cosJ = Math.cos(J);\n var sinJ = Math.sin(J);\n var W = L + omega0rad;\n var cosW = Math.cos(W);\n var sinW = Math.sin(W);\n var A = sinJ * sinW;\n var B = sini0rad * cosJ + cosi0rad * sinJ * cosW;\n var details = new CAAEclipticalElementDetails();\n details.i = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.asin(Math.sqrt(A * A + B * B)));\n var cosi = cosi0rad * cosJ - sini0rad * sinJ * cosW;\n if (cosi < 0) {\n details.i = 180 - details.i;\n }\n details.w = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(w0 + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.atan2(A, B)));\n details.omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.atan2(sini0rad * sinW, cosi0rad * sinJ + sini0rad * cosJ * cosW)) - 4.50001688);\n return details;\n};\n\nvar CAAEclipticalElements$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAEclipticalElements\", [CAAEclipticalElements, CAAEclipticalElements$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/elements_planetary_orbit.js\":\n/*!***************************************************!*\\\n !*** ./esm/astrocalc/elements_planetary_orbit.js ***!\n \\***************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EPO: () => (/* binding */ EPO)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAELEMENTSPLANETARYORBIT.CPP`\n// \"Purpose: Implementation for the algorithms to calculate the elements of the planetary orbits\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// EPO - was CAAElementsPlanetaryOrbit\n\nfunction EPO() { }\n\nEPO.mercuryMeanLongitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(252.250906 + 149474.0722491 * T + 0.0003035 * Tsquared + 1.8E-08 * Tcubed);\n};\n\nEPO.mercurySemimajorAxis = function (UnnamedParameter1) {\n return 0.38709831;\n};\n\nEPO.mercuryEccentricity = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return 0.20563175 + 2.0407E-05 * T - 2.83E-08 * Tsquared - 1.8E-10 * Tcubed;\n};\n\nEPO.mercuryInclination = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(7.004986 + 0.0018215 * T - 1.81E-05 * Tsquared + 5.6E-08 * Tcubed);\n};\n\nEPO.mercuryLongitudeAscendingNode = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(48.330893 + 1.1861883 * T + 0.00017542 * Tsquared + 2.15E-07 * Tcubed);\n};\n\nEPO.mercuryLongitudePerihelion = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(77.456119 + 1.5564776 * T + 0.00029544 * Tsquared + 9E-09 * Tcubed);\n};\n\nEPO.venusMeanLongitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(181.979801 + 58519.2130302 * T + 0.00031014 * Tsquared + 1.5E-08 * Tcubed);\n};\n\nEPO.venusSemimajorAxis = function (UnnamedParameter1) {\n return 0.72332982;\n};\n\nEPO.venusEccentricity = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return 0.00677192 - 4.7765E-05 * T + 9.81E-08 * Tsquared + 4.6E-10 * Tcubed;\n};\n\nEPO.venusInclination = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(3.394662 + 0.0010037 * T - 8.8E-07 * Tsquared - 7E-09 * Tcubed);\n};\n\nEPO.venusLongitudeAscendingNode = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(76.67992 + 0.9011206 * T + 0.00040618 * Tsquared - 9.3E-08 * Tcubed);\n};\n\nEPO.venusLongitudePerihelion = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(131.563703 + 1.4022288 * T - 0.00107618 * Tsquared - 5.678E-06 * Tcubed);\n};\n\nEPO.earthMeanLongitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(100.466457 + 36000.7698278 * T + 0.00030322 * Tsquared + 2E-08 * Tcubed);\n};\n\nEPO.earthSemimajorAxis = function (UnnamedParameter1) {\n return 1.000001018;\n};\n\nEPO.earthEccentricity = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return 0.01670863 - 4.2037E-05 * T - 1.267E-07 * Tsquared + 1.4E-10 * Tcubed;\n};\n\nEPO.earthInclination = function (UnnamedParameter1) {\n return 0;\n};\n\nEPO.earthLongitudePerihelion = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(102.937348 + 1.17195366 * T + 0.00045688 * Tsquared - 1.8E-08 * Tcubed);\n};\n\nEPO.marsMeanLongitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(355.433 + 19141.6964471 * T + 0.00031052 * Tsquared + 1.6E-08 * Tcubed);\n};\n\nEPO.marsSemimajorAxis = function (UnnamedParameter1) {\n return 1.523679342;\n};\n\nEPO.marsEccentricity = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return 0.09340065 + 9.0484E-05 * T - 8.06E-08 * Tsquared - 2.5E-10 * Tcubed;\n};\n\nEPO.marsInclination = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(1.849726 - 0.0006011 * T + 1.276E-05 * Tsquared - 7E-09 * Tcubed);\n};\n\nEPO.marsLongitudeAscendingNode = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(49.588093 + 0.7720959 * T + 1.557E-05 * Tsquared + 2.267E-06 * Tcubed);\n};\n\nEPO.marsLongitudePerihelion = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(336.060234 + 1.8410449 * T + 0.00013477 * Tsquared + 5.36E-07 * Tcubed);\n};\n\nEPO.jupiterMeanLongitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(34.351519 + 3036.3027748 * T + 0.0002233 * Tsquared + 3.7E-08 * Tcubed);\n};\n\nEPO.jupiterSemimajorAxis = function (JD) {\n var T = (JD - 2451545) / 36525;\n return 5.202603209 + 1.913E-07 * T;\n};\n\nEPO.jupiterEccentricity = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return 0.04849793 + 0.000163225 * T - 4.714E-07 * Tsquared - 2.01E-09 * Tcubed;\n};\n\nEPO.jupiterInclination = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(1.303267 - 0.0054965 * T + 4.66E-06 * Tsquared - 2E-09 * Tcubed);\n};\n\nEPO.jupiterLongitudeAscendingNode = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(100.464407 + 1.0209774 * T + 0.00040315 * Tsquared + 4.04E-07 * Tcubed);\n};\n\nEPO.jupiterLongitudePerihelion = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(14.331207 + 1.6126352 * T + 0.00103042 * Tsquared - 4.464E-06 * Tcubed);\n};\n\nEPO.saturnMeanLongitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(50.077444 + 1223.5110686 * T + 0.00051908 * Tsquared - 3E-08 * Tcubed);\n};\n\nEPO.saturnSemimajorAxis = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n return 9.554909192 - 2.139E-06 * T + 4E-09 * Tsquared;\n};\n\nEPO.saturnEccentricity = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return 0.05554814 - 0.0003446641 * T - 6.436E-07 * Tsquared + 3.4E-09 * Tcubed;\n};\n\nEPO.saturnInclination = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(2.488879 - 0.0037362 * T - 1.519E-05 * Tsquared + 8.7E-08 * Tcubed);\n};\n\nEPO.saturnLongitudeAscendingNode = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(113.665503 + 0.877088 * T - 0.00012176 * Tsquared - 2.249E-06 * Tcubed);\n};\n\nEPO.saturnLongitudePerihelion = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(93.057237 + 1.19637613 * T + 0.00083753 * Tsquared + 4.928E-06 * Tcubed);\n};\n\nEPO.uranusMeanLongitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(314.055005 + 429.8640561 * T + 0.0003039 * Tsquared + 2.6E-08 * Tcubed);\n};\n\nEPO.uranusSemimajorAxis = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n return 19.218446062 - 3.72E-08 * T + 9.8E-10 * Tsquared;\n};\n\nEPO.uranusEccentricity = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return 0.04638122 - 2.7293E-05 * T + 7.89E-08 * Tsquared + 2.4E-10 * Tcubed;\n};\n\nEPO.uranusInclination = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(0.773197 + 0.0007744 * T + 3.749E-05 * Tsquared - 9.2E-08 * Tcubed);\n};\n\nEPO.uranusLongitudeAscendingNode = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(74.005957 + 0.5211278 * T + 0.00133947 * Tsquared + 1.8484E-05 * Tcubed);\n};\n\nEPO.uranusLongitudePerihelion = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(173.005291 + 1.486379 * T + 0.00021406 * Tsquared + 4.34E-07 * Tcubed);\n};\n\nEPO.neptuneMeanLongitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(304.348665 + 219.8833092 * T + 0.00030882 * Tsquared + 1.8E-08 * Tcubed);\n};\n\nEPO.neptuneSemimajorAxis = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n return 30.110386869 - 1.663E-07 * T + 6.9E-10 * Tsquared;\n};\n\nEPO.neptuneEccentricity = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tcubed = T * T * T;\n return 0.00945575 + 6.033E-06 * T - 5E-11 * Tcubed;\n};\n\nEPO.neptuneInclination = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(1.769953 - 0.0093082 * T - 7.08E-06 * Tsquared + 2.7E-08 * Tcubed);\n};\n\nEPO.neptuneLongitudeAscendingNode = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(131.784057 + 1.1022039 * T + 0.00025952 * Tsquared - 6.37E-07 * Tcubed);\n};\n\nEPO.neptuneLongitudePerihelion = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(48.120276 + 1.4262957 * T + 0.00038434 * Tsquared + 2E-08 * Tcubed);\n};\n\nEPO.mercuryMeanLongitudeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(252.250906 + 149472.6746358 * T - 5.36E-06 * Tsquared + 2E-09 * Tcubed);\n};\n\nEPO.mercuryInclinationJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(7.004986 - 0.0059516 * T + 8E-07 * Tsquared + 4.3E-08 * Tcubed);\n};\n\nEPO.mercuryLongitudeAscendingNodeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(48.330893 - 0.1254227 * T - 8.833E-05 * Tsquared - 2E-07 * Tcubed);\n};\n\nEPO.mercuryLongitudePerihelionJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(77.456119 + 0.1588643 * T - 1.342E-05 * Tsquared - 7E-09 * Tcubed);\n};\n\nEPO.venusMeanLongitudeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(181.979801 + 58517.815676 * T + 1.65E-06 * Tsquared - 2E-09 * Tcubed);\n};\n\nEPO.venusInclinationJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(3.394662 - 0.0008568 * T - 3.244E-05 * Tsquared + 9E-09 * Tcubed);\n};\n\nEPO.venusLongitudeAscendingNodeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(76.67992 - 0.2780134 * T - 0.00014257 * Tsquared - 1.64E-07 * Tcubed);\n};\n\nEPO.venusLongitudePerihelionJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(131.563703 + 0.0048746 * T - 0.00138467 * Tsquared - 5.695E-06 * Tcubed);\n};\n\nEPO.earthMeanLongitudeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(100.466457 + 35999.3728565 * T - 5.68E-06 * Tsquared - 1E-09 * Tcubed);\n};\n\nEPO.earthInclinationJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return 0.0130548 * T - 9.31E-06 * Tsquared - 3.4E-08 * Tcubed;\n};\n\nEPO.earthLongitudeAscendingNodeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(174.873176 - 0.241098 * T + 4.262E-05 * Tsquared + 1E-09 * Tcubed);\n};\n\nEPO.earthLongitudePerihelionJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(102.937348 + 0.3225654 * T + 0.00014799 * Tsquared - 3.9E-08 * Tcubed);\n};\n\nEPO.marsMeanLongitudeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(355.433 + 19140.2993039 * T + 2.62E-06 * Tsquared - 3E-09 * Tcubed);\n};\n\nEPO.marsInclinationJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(1.849726 - 0.0081477 * T - 2.255E-05 * Tsquared - 2.9E-08 * Tcubed);\n};\n\nEPO.marsLongitudeAscendingNodeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(49.588093 - 0.295025 * T - 0.00064048 * Tsquared - 1.964E-06 * Tcubed);\n};\n\nEPO.marsLongitudePerihelionJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(336.060234 + 0.4439016 * T - 0.00017313 * Tsquared + 5.18E-07 * Tcubed);\n};\n\nEPO.jupiterMeanLongitudeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(34.351519 + 3034.9056606 * T - 8.501E-05 * Tsquared + 1.6E-08 * Tcubed);\n};\n\nEPO.jupiterInclinationJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(1.303267 - 0.0019877 * T + 3.32E-05 * Tsquared + 9.7E-08 * Tcubed);\n};\n\nEPO.jupiterLongitudeAscendingNodeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(100.464407 + 0.1767232 * T + 0.000907 * Tsquared - 7.272E-06 * Tcubed);\n};\n\nEPO.jupiterLongitudePerihelionJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(14.331207 + 0.2155209 * T + 0.00072211 * Tsquared - 4.485E-06 * Tcubed);\n};\n\nEPO.saturnMeanLongitudeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(50.077444 + 1222.1138488 * T + 0.00021004 * Tsquared - 4.6E-08 * Tcubed);\n};\n\nEPO.saturnInclinationJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(2.488879 + 0.0025514 * T - 4.906E-05 * Tsquared + 1.7E-08 * Tcubed);\n};\n\nEPO.saturnLongitudeAscendingNodeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(113.665503 - 0.2566722 * T - 0.00018399 * Tsquared + 4.8E-07 * Tcubed);\n};\n\nEPO.saturnLongitudePerihelionJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(93.057237 + 0.5665415 * T + 0.0005285 * Tsquared + 4.912E-06 * Tcubed);\n};\n\nEPO.uranusMeanLongitudeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(314.055005 + 428.4669983 * T - 4.86E-06 * Tsquared + 6E-09 * Tcubed);\n};\n\nEPO.uranusInclinationJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(0.773197 - 0.0016869 * T + 3.49E-06 * Tsquared + 1.6E-08 * Tcubed);\n};\n\nEPO.uranusLongitudeAscendingNodeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(74.005957 + 0.0741431 * T + 0.00040539 * Tsquared + 1.19E-07 * Tcubed);\n};\n\nEPO.uranusLongitudePerihelionJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(173.005291 + 0.0893212 * T - 9.47E-05 * Tsquared + 4.14E-07 * Tcubed);\n};\n\nEPO.neptuneMeanLongitudeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(304.348665 + 218.4862002 * T + 5.9E-07 * Tsquared - 2E-09 * Tcubed);\n};\n\nEPO.neptuneInclinationJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(1.769953 + 0.0002256 * T + 2.3E-07 * Tsquared);\n};\n\nEPO.neptuneLongitudeAscendingNodeJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(131.784057 - 0.0061651 * T - 2.19E-06 * Tsquared - 7.8E-08 * Tcubed);\n};\n\nEPO.neptuneLongitudePerihelionJ2000 = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(48.120276 + 0.0291866 * T + 7.61E-05 * Tsquared);\n};\n\nvar EPO$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"EPO\", [EPO, EPO$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/elliptical.js\":\n/*!*************************************!*\\\n !*** ./esm/astrocalc/elliptical.js ***!\n \\*************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ELL: () => (/* binding */ ELL),\n/* harmony export */ EO: () => (/* binding */ EO),\n/* harmony export */ EOD: () => (/* binding */ EOD),\n/* harmony export */ EOE: () => (/* binding */ EOE),\n/* harmony export */ EPD: () => (/* binding */ EPD)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n/* harmony import */ var _fk5_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./fk5.js */ \"./esm/astrocalc/fk5.js\");\n/* harmony import */ var _nutation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./nutation.js */ \"./esm/astrocalc/nutation.js\");\n/* harmony import */ var _sun_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./sun.js */ \"./esm/astrocalc/sun.js\");\n/* harmony import */ var _mercury_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./mercury.js */ \"./esm/astrocalc/mercury.js\");\n/* harmony import */ var _venus_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./venus.js */ \"./esm/astrocalc/venus.js\");\n/* harmony import */ var _mars_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./mars.js */ \"./esm/astrocalc/mars.js\");\n/* harmony import */ var _jupiter_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./jupiter.js */ \"./esm/astrocalc/jupiter.js\");\n/* harmony import */ var _saturn_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./saturn.js */ \"./esm/astrocalc/saturn.js\");\n/* harmony import */ var _uranus_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./uranus.js */ \"./esm/astrocalc/uranus.js\");\n/* harmony import */ var _neptune_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./neptune.js */ \"./esm/astrocalc/neptune.js\");\n/* harmony import */ var _pluto_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./pluto.js */ \"./esm/astrocalc/pluto.js\");\n/* harmony import */ var _aberration_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./aberration.js */ \"./esm/astrocalc/aberration.js\");\n/* harmony import */ var _kepler_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./kepler.js */ \"./esm/astrocalc/kepler.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n// Originally `AAELLIPTICAL.CPP`\n// \"Purpose: Implementation for the algorithms for an elliptical orbit\"\n// Last update of original: PJN / 05-06-2006\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// EOE - was CAAEllipticalObjectElements\n\nfunction EOE() {\n this.a = 0;\n this.e = 0;\n this.i = 0;\n this.w = 0;\n this.omega = 0;\n this.jdEquinox = 0;\n this.t = 0;\n this.n = 0;\n this.meanAnnomolyOut = 0;\n this.a = 0;\n this.e = 0;\n this.i = 0;\n this.w = 0;\n this.omega = 0;\n this.jdEquinox = 0;\n this.t = 0;\n}\n\nEOE._create = function (br) {\n var tmp = new EOE();\n tmp.a = br.readSingle();\n tmp.e = br.readSingle();\n tmp.i = br.readSingle();\n tmp.w = br.readSingle();\n tmp.omega = br.readSingle();\n tmp.jdEquinox = br.readSingle();\n tmp.t = br.readSingle();\n return tmp;\n};\n\nvar EOE$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"EOE\", [EOE, EOE$, null]);\n\n\n// EPD - was CAAEllipticalPlanetaryDetails\n\nfunction EPD() {\n this.apparentGeocentricLongitude = 0;\n this.apparentGeocentricLatitude = 0;\n this.apparentGeocentricDistance = 0;\n this.apparentLightTime = 0;\n this.apparentGeocentricRA = 0;\n this.apparentGeocentricDeclination = 0;\n this.apparentGeocentricLongitude = 0;\n this.apparentGeocentricLatitude = 0;\n this.apparentGeocentricDistance = 0;\n this.apparentLightTime = 0;\n this.apparentGeocentricRA = 0;\n this.apparentGeocentricDeclination = 0;\n}\n\nvar EPD$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"EPD\", [EPD, EPD$, null]);\n\n\n// EOD - was CAAEllipticalObjectDetails\n\nfunction EOD() {\n this.heliocentricRectangularEquatorial = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.C3D();\n this.heliocentricRectangularEcliptical = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.C3D();\n this.heliocentricEclipticLongitude = 0;\n this.heliocentricEclipticLatitude = 0;\n this.trueGeocentricRA = 0;\n this.trueGeocentricDeclination = 0;\n this.trueGeocentricDistance = 0;\n this.trueGeocentricLightTime = 0;\n this.astrometricGeocenticRA = 0;\n this.astrometricGeocentricDeclination = 0;\n this.astrometricGeocentricDistance = 0;\n this.astrometricGeocentricLightTime = 0;\n this.elongation = 0;\n this.phaseAngle = 0;\n this.heliocentricEclipticLongitude = 0;\n this.heliocentricEclipticLatitude = 0;\n this.trueGeocentricRA = 0;\n this.trueGeocentricDeclination = 0;\n this.trueGeocentricDistance = 0;\n this.trueGeocentricLightTime = 0;\n this.astrometricGeocenticRA = 0;\n this.astrometricGeocentricDeclination = 0;\n this.astrometricGeocentricDistance = 0;\n this.astrometricGeocentricLightTime = 0;\n this.elongation = 0;\n this.phaseAngle = 0;\n}\n\nvar EOD$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"EOD\", [EOD, EOD$, null]);\n\n\n// EO - was EllipticalObject\n\nvar EO = {\n SUN: 0,\n MERCURY: 1,\n VENUS: 2,\n MARS: 3,\n JUPITER: 4,\n SATURN: 5,\n URANUS: 6,\n NEPTUNE: 7,\n PLUTO: 8\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"EO\", EO);\n\n\n// ELL - was CAAElliptical\n\nfunction ELL() { }\n\nELL.distanceToLightTime = function (Distance) {\n return Distance * 0.0057755183;\n};\n\nELL.calculate = function (JD, oobject) {\n var details = new EPD();\n var JD0 = JD;\n var L0 = 0;\n var B0 = 0;\n var R0 = 0;\n var cosB0 = 0;\n if (!!oobject) {\n L0 = _earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.eclipticLongitude(JD0);\n B0 = _earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.eclipticLatitude(JD0);\n R0 = _earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.radiusVector(JD0);\n L0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(L0);\n B0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(B0);\n cosB0 = Math.cos(B0);\n }\n var L = 0;\n var B = 0;\n var R = 0;\n var Lrad;\n var Brad;\n var cosB;\n var cosL;\n var x;\n var y;\n var z;\n var bRecalc = true;\n var bFirstRecalc = true;\n var LPrevious = 0;\n var BPrevious = 0;\n var RPrevious = 0;\n while (bRecalc) {\n switch (oobject) {\n case 0:\n L = _sun_js__WEBPACK_IMPORTED_MODULE_6__.CAASun.geometricEclipticLongitude(JD0);\n B = _sun_js__WEBPACK_IMPORTED_MODULE_6__.CAASun.geometricEclipticLatitude(JD0);\n R = _earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.radiusVector(JD0);\n break;\n case 1:\n L = _mercury_js__WEBPACK_IMPORTED_MODULE_7__.CAAMercury.eclipticLongitude(JD0);\n B = _mercury_js__WEBPACK_IMPORTED_MODULE_7__.CAAMercury.eclipticLatitude(JD0);\n R = _mercury_js__WEBPACK_IMPORTED_MODULE_7__.CAAMercury.radiusVector(JD0);\n break;\n case 2:\n L = _venus_js__WEBPACK_IMPORTED_MODULE_8__.CAAVenus.eclipticLongitude(JD0);\n B = _venus_js__WEBPACK_IMPORTED_MODULE_8__.CAAVenus.eclipticLatitude(JD0);\n R = _venus_js__WEBPACK_IMPORTED_MODULE_8__.CAAVenus.radiusVector(JD0);\n break;\n case 3:\n L = _mars_js__WEBPACK_IMPORTED_MODULE_9__.CAAMars.eclipticLongitude(JD0);\n B = _mars_js__WEBPACK_IMPORTED_MODULE_9__.CAAMars.eclipticLatitude(JD0);\n R = _mars_js__WEBPACK_IMPORTED_MODULE_9__.CAAMars.radiusVector(JD0);\n break;\n case 4:\n L = _jupiter_js__WEBPACK_IMPORTED_MODULE_10__.CAAJupiter.eclipticLongitude(JD0);\n B = _jupiter_js__WEBPACK_IMPORTED_MODULE_10__.CAAJupiter.eclipticLatitude(JD0);\n R = _jupiter_js__WEBPACK_IMPORTED_MODULE_10__.CAAJupiter.radiusVector(JD0);\n break;\n case 5:\n L = _saturn_js__WEBPACK_IMPORTED_MODULE_11__.CAASaturn.eclipticLongitude(JD0);\n B = _saturn_js__WEBPACK_IMPORTED_MODULE_11__.CAASaturn.eclipticLatitude(JD0);\n R = _saturn_js__WEBPACK_IMPORTED_MODULE_11__.CAASaturn.radiusVector(JD0);\n break;\n case 6:\n L = _uranus_js__WEBPACK_IMPORTED_MODULE_12__.CAAUranus.eclipticLongitude(JD0);\n B = _uranus_js__WEBPACK_IMPORTED_MODULE_12__.CAAUranus.eclipticLatitude(JD0);\n R = _uranus_js__WEBPACK_IMPORTED_MODULE_12__.CAAUranus.radiusVector(JD0);\n break;\n case 7:\n L = _neptune_js__WEBPACK_IMPORTED_MODULE_13__.CAANeptune.eclipticLongitude(JD0);\n B = _neptune_js__WEBPACK_IMPORTED_MODULE_13__.CAANeptune.eclipticLatitude(JD0);\n R = _neptune_js__WEBPACK_IMPORTED_MODULE_13__.CAANeptune.radiusVector(JD0);\n break;\n case 8:\n L = _pluto_js__WEBPACK_IMPORTED_MODULE_14__.CAAPluto.eclipticLongitude(JD0);\n B = _pluto_js__WEBPACK_IMPORTED_MODULE_14__.CAAPluto.eclipticLatitude(JD0);\n R = _pluto_js__WEBPACK_IMPORTED_MODULE_14__.CAAPluto.radiusVector(JD0);\n break;\n default:\n console.assert(false);\n break;\n }\n if (!bFirstRecalc) {\n bRecalc = ((Math.abs(L - LPrevious) > 1E-05) || (Math.abs(B - BPrevious) > 1E-05) || (Math.abs(R - RPrevious) > 1E-06));\n LPrevious = L;\n BPrevious = B;\n RPrevious = R;\n }\n else {\n bFirstRecalc = false;\n }\n if (bRecalc) {\n var distance = 0;\n if (!!oobject) {\n Lrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(L);\n Brad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(B);\n cosB = Math.cos(Brad);\n cosL = Math.cos(Lrad);\n x = R * cosB * cosL - R0 * cosB0 * Math.cos(L0);\n y = R * cosB * Math.sin(Lrad) - R0 * cosB0 * Math.sin(L0);\n z = R * Math.sin(Brad) - R0 * Math.sin(B0);\n distance = Math.sqrt(x * x + y * y + z * z);\n }\n else {\n distance = R;\n }\n JD0 = JD - ELL.distanceToLightTime(distance);\n }\n }\n Lrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(L);\n Brad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(B);\n cosB = Math.cos(Brad);\n cosL = Math.cos(Lrad);\n x = R * cosB * cosL - R0 * cosB0 * Math.cos(L0);\n y = R * cosB * Math.sin(Lrad) - R0 * cosB0 * Math.sin(L0);\n z = R * Math.sin(Brad) - R0 * Math.sin(B0);\n var x2 = x * x;\n var y2 = y * y;\n details.apparentGeocentricLatitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(Math.atan2(z, Math.sqrt(x2 + y2)));\n details.apparentGeocentricDistance = Math.sqrt(x2 + y2 + z * z);\n details.apparentGeocentricLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(Math.atan2(y, x)));\n details.apparentLightTime = ELL.distanceToLightTime(details.apparentGeocentricDistance);\n var Aberration = _aberration_js__WEBPACK_IMPORTED_MODULE_15__.ABR.eclipticAberration(details.apparentGeocentricLongitude, details.apparentGeocentricLatitude, JD);\n details.apparentGeocentricLongitude += Aberration.x;\n details.apparentGeocentricLatitude += Aberration.y;\n var DeltaLong = _fk5_js__WEBPACK_IMPORTED_MODULE_4__.CAAFK5.correctionInLongitude(details.apparentGeocentricLongitude, details.apparentGeocentricLatitude, JD);\n details.apparentGeocentricLatitude += _fk5_js__WEBPACK_IMPORTED_MODULE_4__.CAAFK5.correctionInLatitude(details.apparentGeocentricLongitude, JD);\n details.apparentGeocentricLongitude += DeltaLong;\n var NutationInLongitude = _nutation_js__WEBPACK_IMPORTED_MODULE_5__.CAANutation.nutationInLongitude(JD);\n var Epsilon = _nutation_js__WEBPACK_IMPORTED_MODULE_5__.CAANutation.trueObliquityOfEcliptic(JD);\n details.apparentGeocentricLongitude += _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.dmS2D(0, 0, NutationInLongitude);\n var ApparentEqu = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.ec2Eq(details.apparentGeocentricLongitude, details.apparentGeocentricLatitude, Epsilon);\n details.apparentGeocentricRA = ApparentEqu.x;\n details.apparentGeocentricDeclination = ApparentEqu.y;\n return details;\n};\n\nELL.semiMajorAxisFromPerihelionDistance = function (q, e) {\n return q / (1 - e);\n};\n\nELL.meanMotionFromSemiMajorAxis = function (a) {\n return 0.9856076686 / (a * Math.sqrt(a));\n};\n\nELL.calculateRectangularJD = function (JD, elements) {\n var JD0 = JD;\n var omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(elements.omega);\n var w = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(elements.w);\n var i = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(elements.i);\n var sinEpsilon = 0;\n var cosEpsilon = 1;\n var sinOmega = Math.sin(omega);\n var cosOmega = Math.cos(omega);\n var cosi = Math.cos(i);\n var sini = Math.sin(i);\n var F = cosOmega;\n var G = sinOmega * cosEpsilon;\n var H = sinOmega * sinEpsilon;\n var P = -sinOmega * cosi;\n var Q = cosOmega * cosi * cosEpsilon - sini * sinEpsilon;\n var R = cosOmega * cosi * sinEpsilon + sini * cosEpsilon;\n var a = Math.sqrt(F * F + P * P);\n var b = Math.sqrt(G * G + Q * Q);\n var c = Math.sqrt(H * H + R * R);\n var A = Math.atan2(F, P);\n var B = Math.atan2(G, Q);\n var C = Math.atan2(H, R);\n var M = elements.n * (JD0 - elements.t);\n elements.meanAnnomolyOut = M;\n var E = _kepler_js__WEBPACK_IMPORTED_MODULE_16__.CAAKepler.calculate(M, elements.e);\n E = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(E);\n var v = 2 * Math.atan(Math.sqrt((1 + elements.e) / (1 - elements.e)) * Math.tan(E / 2));\n var r = elements.a * (1 - elements.e * Math.cos(E));\n var x = r * a * Math.sin(A + w + v);\n var y = r * b * Math.sin(B + w + v);\n var z = r * c * Math.sin(C + w + v);\n return _double3d_js__WEBPACK_IMPORTED_MODULE_17__.Vector3d.create(x, z, y);\n};\n\nELL.calculateRectangular = function (elements, meanAnomoly) {\n var omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(elements.omega);\n var w = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(elements.w);\n var i = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(elements.i);\n var sinEpsilon = 0;\n var cosEpsilon = 1;\n var sinOmega = Math.sin(omega);\n var cosOmega = Math.cos(omega);\n var cosi = Math.cos(i);\n var sini = Math.sin(i);\n var F = cosOmega;\n var G = sinOmega * cosEpsilon;\n var H = sinOmega * sinEpsilon;\n var P = -sinOmega * cosi;\n var Q = cosOmega * cosi * cosEpsilon - sini * sinEpsilon;\n var R = cosOmega * cosi * sinEpsilon + sini * cosEpsilon;\n var a = Math.sqrt(F * F + P * P);\n var b = Math.sqrt(G * G + Q * Q);\n var c = Math.sqrt(H * H + R * R);\n var A = Math.atan2(F, P);\n var B = Math.atan2(G, Q);\n var C = Math.atan2(H, R);\n var n = elements.n;\n var M = meanAnomoly;\n var E = _kepler_js__WEBPACK_IMPORTED_MODULE_16__.CAAKepler.calculate(M, elements.e);\n E = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(E);\n var v = 2 * Math.atan(Math.sqrt((1 + elements.e) / (1 - elements.e)) * Math.tan(E / 2));\n var r = elements.a * (1 - elements.e * Math.cos(E));\n var x = r * a * Math.sin(A + w + v);\n var y = r * b * Math.sin(B + w + v);\n var z = r * c * Math.sin(C + w + v);\n return _double3d_js__WEBPACK_IMPORTED_MODULE_17__.Vector3d.create(x, z, y);\n};\n\nELL.calculateElements = function (JD, elements) {\n var Epsilon = _nutation_js__WEBPACK_IMPORTED_MODULE_5__.CAANutation.meanObliquityOfEcliptic(elements.jdEquinox);\n var JD0 = JD;\n var details = new EOD();\n Epsilon = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(Epsilon);\n var omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(elements.omega);\n var w = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(elements.w);\n var i = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(elements.i);\n var sinEpsilon = Math.sin(Epsilon);\n var cosEpsilon = Math.cos(Epsilon);\n var sinOmega = Math.sin(omega);\n var cosOmega = Math.cos(omega);\n var cosi = Math.cos(i);\n var sini = Math.sin(i);\n var F = cosOmega;\n var G = sinOmega * cosEpsilon;\n var H = sinOmega * sinEpsilon;\n var P = -sinOmega * cosi;\n var Q = cosOmega * cosi * cosEpsilon - sini * sinEpsilon;\n var R = cosOmega * cosi * sinEpsilon + sini * cosEpsilon;\n var a = Math.sqrt(F * F + P * P);\n var b = Math.sqrt(G * G + Q * Q);\n var c = Math.sqrt(H * H + R * R);\n var A = Math.atan2(F, P);\n var B = Math.atan2(G, Q);\n var C = Math.atan2(H, R);\n var n = ELL.meanMotionFromSemiMajorAxis(elements.a);\n var SunCoord = _sun_js__WEBPACK_IMPORTED_MODULE_6__.CAASun.equatorialRectangularCoordinatesAnyEquinox(JD, elements.jdEquinox);\n for (var j = 0; j < 2; j++) {\n var M = n * (JD0 - elements.t);\n var E = _kepler_js__WEBPACK_IMPORTED_MODULE_16__.CAAKepler.calculate(M, elements.e);\n E = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(E);\n var v = 2 * Math.atan(Math.sqrt((1 + elements.e) / (1 - elements.e)) * Math.tan(E / 2));\n var r = elements.a * (1 - elements.e * Math.cos(E));\n var x = r * a * Math.sin(A + w + v);\n var y = r * b * Math.sin(B + w + v);\n var z = r * c * Math.sin(C + w + v);\n if (!j) {\n details.heliocentricRectangularEquatorial.x = x;\n details.heliocentricRectangularEquatorial.y = y;\n details.heliocentricRectangularEquatorial.z = z;\n var u = omega + v;\n var cosu = Math.cos(u);\n var sinu = Math.sin(u);\n details.heliocentricRectangularEcliptical.x = r * (cosOmega * cosu - sinOmega * sinu * cosi);\n details.heliocentricRectangularEcliptical.y = r * (sinOmega * cosu + cosOmega * sinu * cosi);\n details.heliocentricRectangularEcliptical.z = r * sini * sinu;\n details.heliocentricEclipticLongitude = Math.atan2(y, x);\n details.heliocentricEclipticLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.m24(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(details.heliocentricEclipticLongitude) / 15);\n details.heliocentricEclipticLatitude = Math.asin(z / r);\n details.heliocentricEclipticLatitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(details.heliocentricEclipticLatitude);\n }\n var psi = SunCoord.x + x;\n var nu = SunCoord.y + y;\n var sigma = SunCoord.z + z;\n var Alpha = Math.atan2(nu, psi);\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(Alpha);\n var Delta = Math.atan2(sigma, Math.sqrt(psi * psi + nu * nu));\n Delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(Delta);\n var Distance = Math.sqrt(psi * psi + nu * nu + sigma * sigma);\n if (!j) {\n details.trueGeocentricRA = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.m24(Alpha / 15);\n details.trueGeocentricDeclination = Delta;\n details.trueGeocentricDistance = Distance;\n details.trueGeocentricLightTime = ELL.distanceToLightTime(Distance);\n }\n else {\n details.astrometricGeocenticRA = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.m24(Alpha / 15);\n details.astrometricGeocentricDeclination = Delta;\n details.astrometricGeocentricDistance = Distance;\n details.astrometricGeocentricLightTime = ELL.distanceToLightTime(Distance);\n var RES = Math.sqrt(SunCoord.x * SunCoord.x + SunCoord.y * SunCoord.y + SunCoord.z * SunCoord.z);\n details.elongation = Math.acos((RES * RES + Distance * Distance - r * r) / (2 * RES * Distance));\n details.elongation = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(details.elongation);\n details.phaseAngle = Math.acos((r * r + Distance * Distance - RES * RES) / (2 * r * Distance));\n details.phaseAngle = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(details.phaseAngle);\n }\n if (!j) {\n JD0 = JD - details.trueGeocentricLightTime;\n }\n }\n return details;\n};\n\nELL.instantaneousVelocity = function (r, a) {\n return 42.1219 * Math.sqrt((1 / r) - (1 / (2 * a)));\n};\n\nELL.velocityAtPerihelion = function (e, a) {\n return 29.7847 / Math.sqrt(a) * Math.sqrt((1 + e) / (1 - e));\n};\n\nELL.velocityAtAphelion = function (e, a) {\n return 29.7847 / Math.sqrt(a) * Math.sqrt((1 - e) / (1 + e));\n};\n\nELL.lengthOfEllipse = function (e, a) {\n var b = a * Math.sqrt(1 - e * e);\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.PI() * (3 * (a + b) - Math.sqrt((a + 3 * b) * (3 * a + b)));\n};\n\nELL.cometMagnitude = function (g, delta, k, r) {\n return g + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(delta) + k * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r);\n};\n\nELL.minorPlanetMagnitude = function (H, delta, G, r, PhaseAngle) {\n PhaseAngle = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(PhaseAngle);\n var phi1 = Math.exp(-3.33 * Math.pow(Math.tan(PhaseAngle / 2), 0.63));\n var phi2 = Math.exp(-1.87 * Math.pow(Math.tan(PhaseAngle / 2), 1.22));\n return H + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * delta) - 2.5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10((1 - G) * phi1 + G * phi2);\n};\n\nvar ELL$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ELL\", [ELL, ELL$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/equation_of_time.js\":\n/*!*******************************************!*\\\n !*** ./esm/astrocalc/equation_of_time.js ***!\n \\*******************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EOT: () => (/* binding */ EOT)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _nutation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nutation.js */ \"./esm/astrocalc/nutation.js\");\n/* harmony import */ var _sun_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sun.js */ \"./esm/astrocalc/sun.js\");\n// Originally `AAEQUATIONOFTIME.CPP`\n// \"Purpose: Implementation for the algorithms to calculate the \"Equation of Time\"\"\n// Last update of original: PJN / 05-07-2005\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n// EOT\n\nfunction EOT() { }\n\nEOT.calculate = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var rho5 = rho4 * rho;\n var L0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(280.4664567 + 360007.6982779 * rho + 0.03032028 * rhosquared + rhocubed / 49931 - rho4 / 15300 - rho5 / 2000000);\n var SunLong = _sun_js__WEBPACK_IMPORTED_MODULE_3__.CAASun.apparentEclipticLongitude(JD);\n var SunLat = _sun_js__WEBPACK_IMPORTED_MODULE_3__.CAASun.apparentEclipticLatitude(JD);\n var epsilon = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.trueObliquityOfEcliptic(JD);\n var Equatorial = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.ec2Eq(SunLong, SunLat, epsilon);\n epsilon = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(epsilon);\n var E = L0 - 0.0057183 - Equatorial.x * 15 + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.nutationInLongitude(JD)) * Math.cos(epsilon);\n if (E > 180) {\n E = -(360 - E);\n }\n E *= 4;\n return E;\n};\n\nvar EOT$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"EOT\", [EOT, EOT$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/fk5.js\":\n/*!******************************!*\\\n !*** ./esm/astrocalc/fk5.js ***!\n \\******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAFK5: () => (/* binding */ CAAFK5)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAFK5.CPP`\n// \"Purpose: Implementation for the algorithms to convert to the FK5 standard reference frame\"\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// CAAFK5\n\nfunction CAAFK5() { }\n\nCAAFK5.correctionInLongitude = function (Longitude, Latitude, JD) {\n var T = (JD - 2451545) / 36525;\n var Ldash = Longitude - 1.397 * T - 0.00031 * T * T;\n Ldash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Ldash);\n Longitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Longitude);\n Latitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Latitude);\n var vvalue = -0.09033 + 0.03916 * (Math.cos(Ldash) + Math.sin(Ldash)) * Math.tan(Latitude);\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, vvalue);\n};\n\nCAAFK5.correctionInLatitude = function (Longitude, JD) {\n var T = (JD - 2451545) / 36525;\n var Ldash = Longitude - 1.397 * T - 0.00031 * T * T;\n Ldash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Ldash);\n Longitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Longitude);\n var vvalue = 0.03916 * (Math.cos(Ldash) - Math.sin(Ldash));\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, vvalue);\n};\n\nCAAFK5.convertVSOPToFK5J2000 = function (vvalue) {\n var result = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.C3D();\n result.x = vvalue.x + 4.4036E-07 * vvalue.y - 1.90919E-07 * vvalue.z;\n result.y = -4.79966E-07 * vvalue.x + 0.917482137087 * vvalue.y - 0.397776982902 * vvalue.z;\n result.z = 0.397776982902 * vvalue.y + 0.917482137087 * vvalue.z;\n return result;\n};\n\nCAAFK5.convertVSOPToFK5B1950 = function (vvalue) {\n var result = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.C3D();\n result.x = 0.999925702634 * vvalue.x + 0.012189716217 * vvalue.y + 1.1134016E-05 * vvalue.z;\n result.y = -0.011179418036 * vvalue.x + 0.917413998946 * vvalue.y - 0.397777041885 * vvalue.z;\n result.z = -0.004859003787 * vvalue.x + 0.397747363646 * vvalue.y + 0.917482111428 * vvalue.z;\n return result;\n};\n\nCAAFK5.convertVSOPToFK5AnyEquinox = function (vvalue, JDEquinox) {\n var t = (JDEquinox - 2451545) / 36525;\n var tsquared = t * t;\n var tcubed = tsquared * t;\n var sigma = 2306.2181 * t + 0.30188 * tsquared + 0.017988 * tcubed;\n sigma = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, sigma));\n var zeta = 2306.2181 * t + 1.09468 * tsquared + 0.018203 * tcubed;\n zeta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, zeta));\n var phi = 2004.3109 * t - 0.42665 * tsquared - 0.041833 * tcubed;\n phi = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, phi));\n var cossigma = Math.cos(sigma);\n var coszeta = Math.cos(zeta);\n var cosphi = Math.cos(phi);\n var sinsigma = Math.sin(sigma);\n var sinzeta = Math.sin(zeta);\n var sinphi = Math.sin(phi);\n var xx = cossigma * coszeta * cosphi - sinsigma * sinzeta;\n var xy = sinsigma * coszeta + cossigma * sinzeta * cosphi;\n var xz = cossigma * sinphi;\n var yx = -cossigma * sinzeta - sinsigma * coszeta * cosphi;\n var yy = cossigma * coszeta - sinsigma * sinzeta * cosphi;\n var yz = -sinsigma * sinphi;\n var zx = -coszeta * sinphi;\n var zy = -sinzeta * sinphi;\n var zz = cosphi;\n var result = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.C3D();\n result.x = xx * vvalue.x + yx * vvalue.y + zx * vvalue.z;\n result.y = xy * vvalue.x + yy * vvalue.y + zy * vvalue.z;\n result.z = xz * vvalue.x + yz * vvalue.y + zz * vvalue.z;\n return result;\n};\n\nvar CAAFK5$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAFK5\", [CAAFK5, CAAFK5$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/galilean_moons.js\":\n/*!*****************************************!*\\\n !*** ./esm/astrocalc/galilean_moons.js ***!\n \\*****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GM: () => (/* binding */ GM),\n/* harmony export */ GMD: () => (/* binding */ GMD),\n/* harmony export */ GMDS: () => (/* binding */ GMDS)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _sun_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sun.js */ \"./esm/astrocalc/sun.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n/* harmony import */ var _jupiter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./jupiter.js */ \"./esm/astrocalc/jupiter.js\");\n/* harmony import */ var _elliptical_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./elliptical.js */ \"./esm/astrocalc/elliptical.js\");\n/* harmony import */ var _elements_planetary_orbit_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./elements_planetary_orbit.js */ \"./esm/astrocalc/elements_planetary_orbit.js\");\n// Originally `AAGALILEANMOONS.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the positions of the 4 great moons of Jupiter\"\n// Last update of original: PJN / 06-01-2004\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n\n\n\n// GMD - was CAAGalileanMoonDetail\n\nfunction GMD() {\n this.meanLongitude = 0;\n this.trueLongitude = 0;\n this.tropicalLongitude = 0;\n this.equatorialLatitude = 0;\n this.r = 0;\n this.eclipticRectangularCoordinates = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.C3D();\n this.trueRectangularCoordinates = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.C3D();\n this.apparentRectangularCoordinates = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.C3D();\n this.bInTransit = false;\n this.bInOccultation = false;\n this.bInEclipse = false;\n this.bInShadowTransit = false;\n this.apparentShadowRectangularCoordinates = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.C3D();\n this.meanLongitude = 0;\n this.trueLongitude = 0;\n this.tropicalLongitude = 0;\n this.equatorialLatitude = 0;\n this.r = 0;\n this.bInTransit = false;\n this.bInOccultation = false;\n this.bInEclipse = false;\n this.bInShadowTransit = false;\n}\n\nvar GMD$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"GMD\", [GMD, GMD$, null]);\n\n\n// GMDS - was CAAGalileanMoonsDetails\n\nfunction GMDS() {\n this.satellite1 = new GMD();\n this.satellite2 = new GMD();\n this.satellite3 = new GMD();\n this.satellite4 = new GMD();\n}\n\nvar GMDS$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"GMDS\", [GMDS, GMDS$, null]);\n\n\n// GM - was CAAGalileanMoons\n\nfunction GM() { }\n\nGM.calculate = function (JD) {\n var sunlong = _sun_js__WEBPACK_IMPORTED_MODULE_2__.CAASun.geometricEclipticLongitude(JD);\n var sunlongrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(sunlong);\n var beta = _sun_js__WEBPACK_IMPORTED_MODULE_2__.CAASun.geometricEclipticLatitude(JD);\n var betarad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(beta);\n var R = _earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.radiusVector(JD);\n var DELTA = 5;\n var PreviousEarthLightTravelTime = 0;\n var EarthLightTravelTime = _elliptical_js__WEBPACK_IMPORTED_MODULE_5__.ELL.distanceToLightTime(DELTA);\n var JD1 = JD - EarthLightTravelTime;\n var bIterate = true;\n var x = 0;\n var y = 0;\n var z = 0;\n var l = 0;\n var lrad = 0;\n var b = 0;\n var brad = 0;\n var r = 0;\n while (bIterate) {\n l = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.eclipticLongitude(JD1);\n lrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l);\n b = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.eclipticLatitude(JD1);\n brad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(b);\n r = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.radiusVector(JD1);\n x = r * Math.cos(brad) * Math.cos(lrad) + R * Math.cos(sunlongrad);\n y = r * Math.cos(brad) * Math.sin(lrad) + R * Math.sin(sunlongrad);\n z = r * Math.sin(brad) + R * Math.sin(betarad);\n DELTA = Math.sqrt(x * x + y * y + z * z);\n EarthLightTravelTime = _elliptical_js__WEBPACK_IMPORTED_MODULE_5__.ELL.distanceToLightTime(DELTA);\n bIterate = (Math.abs(EarthLightTravelTime - PreviousEarthLightTravelTime) > 2E-06);\n if (bIterate) {\n JD1 = JD - EarthLightTravelTime;\n PreviousEarthLightTravelTime = EarthLightTravelTime;\n }\n }\n var details1 = GM.calculateHelper(JD, sunlongrad, betarad, R);\n GM.fillInPhenomenaDetails(details1.satellite1);\n GM.fillInPhenomenaDetails(details1.satellite2);\n GM.fillInPhenomenaDetails(details1.satellite3);\n GM.fillInPhenomenaDetails(details1.satellite4);\n JD1 = JD - EarthLightTravelTime;\n l = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.eclipticLongitude(JD1);\n lrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l);\n b = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.eclipticLatitude(JD1);\n brad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(b);\n r = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.radiusVector(JD1);\n x = r * Math.cos(brad) * Math.cos(lrad);\n y = r * Math.cos(brad) * Math.sin(lrad);\n z = r * Math.sin(brad);\n DELTA = Math.sqrt(x * x + y * y + z * z);\n var SunLightTravelTime = _elliptical_js__WEBPACK_IMPORTED_MODULE_5__.ELL.distanceToLightTime(DELTA);\n var details2 = GM.calculateHelper(JD + SunLightTravelTime - EarthLightTravelTime, sunlongrad, betarad, 0);\n GM.fillInPhenomenaDetails(details2.satellite1);\n GM.fillInPhenomenaDetails(details2.satellite2);\n GM.fillInPhenomenaDetails(details2.satellite3);\n GM.fillInPhenomenaDetails(details2.satellite4);\n details1.satellite1.bInEclipse = details2.satellite1.bInOccultation;\n details1.satellite2.bInEclipse = details2.satellite2.bInOccultation;\n details1.satellite3.bInEclipse = details2.satellite3.bInOccultation;\n details1.satellite4.bInEclipse = details2.satellite4.bInOccultation;\n details1.satellite1.bInShadowTransit = details2.satellite1.bInTransit;\n details1.satellite2.bInShadowTransit = details2.satellite2.bInTransit;\n details1.satellite3.bInShadowTransit = details2.satellite3.bInTransit;\n details1.satellite4.bInShadowTransit = details2.satellite4.bInTransit;\n details1.satellite1.apparentShadowRectangularCoordinates = details2.satellite1.apparentRectangularCoordinates;\n details1.satellite2.apparentShadowRectangularCoordinates = details2.satellite2.apparentRectangularCoordinates;\n details1.satellite3.apparentShadowRectangularCoordinates = details2.satellite3.apparentRectangularCoordinates;\n details1.satellite4.apparentShadowRectangularCoordinates = details2.satellite4.apparentRectangularCoordinates;\n return details1;\n};\n\nGM.calculateHelper = function (JD, sunlongrad, betarad, R) {\n var details = new GMDS();\n var DELTA = 5;\n var PreviousLightTravelTime = 0;\n var LightTravelTime = _elliptical_js__WEBPACK_IMPORTED_MODULE_5__.ELL.distanceToLightTime(DELTA);\n var x = 0;\n var y = 0;\n var z = 0;\n var l = 0;\n var lrad = 0;\n var b = 0;\n var brad = 0;\n var r = 0;\n var JD1 = JD - LightTravelTime;\n var bIterate = true;\n while (bIterate) {\n l = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.eclipticLongitude(JD1);\n lrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l);\n b = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.eclipticLatitude(JD1);\n brad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(b);\n r = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.radiusVector(JD1);\n x = r * Math.cos(brad) * Math.cos(lrad) + R * Math.cos(sunlongrad);\n y = r * Math.cos(brad) * Math.sin(lrad) + R * Math.sin(sunlongrad);\n z = r * Math.sin(brad) + R * Math.sin(betarad);\n DELTA = Math.sqrt(x * x + y * y + z * z);\n LightTravelTime = _elliptical_js__WEBPACK_IMPORTED_MODULE_5__.ELL.distanceToLightTime(DELTA);\n bIterate = (Math.abs(LightTravelTime - PreviousLightTravelTime) > 2E-06);\n if (bIterate) {\n JD1 = JD - LightTravelTime;\n PreviousLightTravelTime = LightTravelTime;\n }\n }\n var lambda0 = Math.atan2(y, x);\n var beta0 = Math.atan(z / Math.sqrt(x * x + y * y));\n var t = JD - 2443000.5 - LightTravelTime;\n var l1 = 106.07719 + 203.48895579 * t;\n var l1rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l1);\n var l2 = 175.73161 + 101.374724735 * t;\n var l2rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l2);\n var l3 = 120.55883 + 50.317609207 * t;\n var l3rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l3);\n var l4 = 84.44459 + 21.571071177 * t;\n var l4rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l4);\n var pi1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(97.0881 + 0.16138586 * t));\n var pi2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(154.8663 + 0.04726307 * t));\n var pi3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(188.184 + 0.00712734 * t));\n var pi4 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(335.2868 + 0.00184 * t));\n var w1 = 312.3346 - 0.13279386 * t;\n var w1rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(w1);\n var w2 = 100.4411 - 0.03263064 * t;\n var w2rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(w2);\n var w3 = 119.1942 - 0.00717703 * t;\n var w3rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(w3);\n var w4 = 322.6186 - 0.00175934 * t;\n var w4rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(w4);\n var GAMMA = 0.33033 * Math.sin(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(163.679 + 0.0010512 * t)) + 0.03439 * Math.sin(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(34.486 - 0.0161731 * t));\n var philambda = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(199.6766 + 0.1737919 * t);\n var psi = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(316.5182 - 2.08E-06 * t);\n var G = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(30.23756 + 0.0830925701 * t + GAMMA);\n var Gdash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(31.97853 + 0.0334597339 * t);\n var PI = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(13.469942);\n var Sigma1 = 0.47259 * Math.sin(2 * (l1rad - l2rad)) + -0.03478 * Math.sin(pi3 - pi4) + 0.01081 * Math.sin(l2rad - 2 * l3rad + pi3) + 0.00738 * Math.sin(philambda) + 0.00713 * Math.sin(l2rad - 2 * l3rad + pi2) + -0.00674 * Math.sin(pi1 + pi3 - 2 * PI - 2 * G) + 0.00666 * Math.sin(l2rad - 2 * l3rad + pi4) + 0.00445 * Math.sin(l1rad - pi3) + -0.00354 * Math.sin(l1rad - l2rad) + -0.00317 * Math.sin(2 * psi - 2 * PI) + 0.00265 * Math.sin(l1rad - pi4) + -0.00186 * Math.sin(G) + 0.00162 * Math.sin(pi2 - pi3) + 0.00158 * Math.sin(4 * (l1rad - l2rad)) + -0.00155 * Math.sin(l1rad - l3rad) + -0.00138 * Math.sin(psi + w3rad - 2 * PI - 2 * G) + -0.00115 * Math.sin(2 * (l1rad - 2 * l2rad + w2rad)) + 0.00089 * Math.sin(pi2 - pi4) + 0.00085 * Math.sin(l1rad + pi3 - 2 * PI - 2 * G) + 0.00083 * Math.sin(w2rad - w3rad) + 0.00053 * Math.sin(psi - w2rad);\n var Sigma2 = 1.06476 * Math.sin(2 * (l2rad - l3rad)) + 0.04256 * Math.sin(l1rad - 2 * l2rad + pi3) + 0.03581 * Math.sin(l2rad - pi3) + 0.02395 * Math.sin(l1rad - 2 * l2rad + pi4) + 0.01984 * Math.sin(l2rad - pi4) + -0.01778 * Math.sin(philambda) + 0.01654 * Math.sin(l2rad - pi2) + 0.01334 * Math.sin(l2rad - 2 * l3rad + pi2) + 0.01294 * Math.sin(pi3 - pi4) + -0.01142 * Math.sin(l2rad - l3rad) + -0.01057 * Math.sin(G) + -0.00775 * Math.sin(2 * (psi - PI)) + 0.00524 * Math.sin(2 * (l1rad - l2rad)) + -0.0046 * Math.sin(l1rad - l3rad) + 0.00316 * Math.sin(psi - 2 * G + w3rad - 2 * PI) + -0.00203 * Math.sin(pi1 + pi3 - 2 * PI - 2 * G) + 0.00146 * Math.sin(psi - w3rad) + -0.00145 * Math.sin(2 * G) + 0.00125 * Math.sin(psi - w4rad) + -0.00115 * Math.sin(l1rad - 2 * l3rad + pi3) + -0.00094 * Math.sin(2 * (l2rad - w2rad)) + 0.00086 * Math.sin(2 * (l1rad - 2 * l2rad + w2rad)) + -0.00086 * Math.sin(5 * Gdash - 2 * G + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(52.225)) + -0.00078 * Math.sin(l2rad - l4rad) + -0.00064 * Math.sin(3 * l3rad - 7 * l4rad + 4 * pi4) + 0.00064 * Math.sin(pi1 - pi4) + -0.00063 * Math.sin(l1rad - 2 * l3rad + pi4) + 0.00058 * Math.sin(w3rad - w4rad) + 0.00056 * Math.sin(2 * (psi - PI - G)) + 0.00056 * Math.sin(2 * (l2rad - l4rad)) + 0.00055 * Math.sin(2 * (l1rad - l3rad)) + 0.00052 * Math.sin(3 * l3rad - 7 * l4rad + pi3 + 3 * pi4) + -0.00043 * Math.sin(l1rad - pi3) + 0.00041 * Math.sin(5 * (l2rad - l3rad)) + 0.00041 * Math.sin(pi4 - PI) + 0.00032 * Math.sin(w2rad - w3rad) + 0.00032 * Math.sin(2 * (l3rad - G - PI));\n var Sigma3 = 0.1649 * Math.sin(l3rad - pi3) + 0.09081 * Math.sin(l3rad - pi4) + -0.06907 * Math.sin(l2rad - l3rad) + 0.03784 * Math.sin(pi3 - pi4) + 0.01846 * Math.sin(2 * (l3rad - l4rad)) + -0.0134 * Math.sin(G) + -0.01014 * Math.sin(2 * (psi - PI)) + 0.00704 * Math.sin(l2rad - 2 * l3rad + pi3) + -0.0062 * Math.sin(l2rad - 2 * l3rad + pi2) + -0.00541 * Math.sin(l3rad - l4rad) + 0.00381 * Math.sin(l2rad - 2 * l3rad + pi4) + 0.00235 * Math.sin(psi - w3rad) + 0.00198 * Math.sin(psi - w4rad) + 0.00176 * Math.sin(philambda) + 0.0013 * Math.sin(3 * (l3rad - l4rad)) + 0.00125 * Math.sin(l1rad - l3rad) + -0.00119 * Math.sin(5 * Gdash - 2 * G + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(52.225)) + 0.00109 * Math.sin(l1rad - l2rad) + -0.001 * Math.sin(3 * l3rad - 7 * l4rad + 4 * pi4) + 0.00091 * Math.sin(w3rad - w4rad) + 0.0008 * Math.sin(3 * l3rad - 7 * l4rad + pi3 + 3 * pi4) + -0.00075 * Math.sin(2 * l2rad - 3 * l3rad + pi3) + 0.00072 * Math.sin(pi1 + pi3 - 2 * PI - 2 * G) + 0.00069 * Math.sin(pi4 - PI) + -0.00058 * Math.sin(2 * l3rad - 3 * l4rad + pi4) + -0.00057 * Math.sin(l3rad - 2 * l4rad + pi4) + 0.00056 * Math.sin(l3rad + pi3 - 2 * PI - 2 * G) + -0.00052 * Math.sin(l2rad - 2 * l3rad + pi1) + -0.0005 * Math.sin(pi2 - pi3) + 0.00048 * Math.sin(l3rad - 2 * l4rad + pi3) + -0.00045 * Math.sin(2 * l2rad - 3 * l3rad + pi4) + -0.00041 * Math.sin(pi2 - pi4) + -0.00038 * Math.sin(2 * G) + -0.00037 * Math.sin(pi3 - pi4 + w3rad - w4rad) + -0.00032 * Math.sin(3 * l3rad - 7 * l4rad + 2 * pi3 + 2 * pi4) + 0.0003 * Math.sin(4 * (l3rad - l4rad)) + 0.00029 * Math.sin(l3rad + pi4 - 2 * PI - 2 * G) + -0.00028 * Math.sin(w3rad + psi - 2 * PI - 2 * G) + 0.00026 * Math.sin(l3rad - PI - G) + 0.00024 * Math.sin(l2rad - 3 * l3rad + 2 * l4rad) + 0.00021 * Math.sin(l3rad - PI - G) + -0.00021 * Math.sin(l3rad - pi2) + 0.00017 * Math.sin(2 * (l3rad - pi3));\n var Sigma4 = 0.84287 * Math.sin(l4rad - pi4) + 0.03431 * Math.sin(pi4 - pi3) + -0.03305 * Math.sin(2 * (psi - PI)) + -0.03211 * Math.sin(G) + -0.01862 * Math.sin(l4rad - pi3) + 0.01186 * Math.sin(psi - w4rad) + 0.00623 * Math.sin(l4rad + pi4 - 2 * G - 2 * PI) + 0.00387 * Math.sin(2 * (l4rad - pi4)) + -0.00284 * Math.sin(5 * Gdash - 2 * G + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(52.225)) + -0.00234 * Math.sin(2 * (psi - pi4)) + -0.00223 * Math.sin(l3rad - l4rad) + -0.00208 * Math.sin(l4rad - PI) + 0.00178 * Math.sin(psi + w4rad - 2 * pi4) + 0.00134 * Math.sin(pi4 - PI) + 0.00125 * Math.sin(2 * (l4rad - G - PI)) + -0.00117 * Math.sin(2 * G) + -0.00112 * Math.sin(2 * (l3rad - l4rad)) + 0.00107 * Math.sin(3 * l3rad - 7 * l4rad + 4 * pi4) + 0.00102 * Math.sin(l4rad - G - PI) + 0.00096 * Math.sin(2 * l4rad - psi - w4rad) + 0.00087 * Math.sin(2 * (psi - w4rad)) + -0.00085 * Math.sin(3 * l3rad - 7 * l4rad + pi3 + 3 * pi4) + 0.00085 * Math.sin(l3rad - 2 * l4rad + pi4) + -0.00081 * Math.sin(2 * (l4rad - psi)) + 0.00071 * Math.sin(l4rad + pi4 - 2 * PI - 3 * G) + 0.00061 * Math.sin(l1rad - l4rad) + -0.00056 * Math.sin(psi - w3rad) + -0.00054 * Math.sin(l3rad - 2 * l4rad + pi3) + 0.00051 * Math.sin(l2rad - l4rad) + 0.00042 * Math.sin(2 * (psi - G - PI)) + 0.00039 * Math.sin(2 * (pi4 - w4rad)) + 0.00036 * Math.sin(psi + PI - pi4 - w4rad) + 0.00035 * Math.sin(2 * Gdash - G + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(188.37)) + -0.00035 * Math.sin(l4rad - pi4 + 2 * PI - 2 * psi) + -0.00032 * Math.sin(l4rad + pi4 - 2 * PI - G) + 0.0003 * Math.sin(2 * Gdash - 2 * G + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(149.15)) + 0.00029 * Math.sin(3 * l3rad - 7 * l4rad + 2 * pi3 + 2 * pi4) + 0.00028 * Math.sin(l4rad - pi4 + 2 * psi - 2 * PI) + -0.00028 * Math.sin(2 * (l4rad - w4rad)) + -0.00027 * Math.sin(pi3 - pi4 + w3rad - w4rad) + -0.00026 * Math.sin(5 * Gdash - 3 * G + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(188.37)) + 0.00025 * Math.sin(w4rad - w3rad) + -0.00025 * Math.sin(l2rad - 3 * l3rad + 2 * l4rad) + -0.00023 * Math.sin(3 * (l3rad - l4rad)) + 0.00021 * Math.sin(2 * l4rad - 2 * PI - 3 * G) + -0.00021 * Math.sin(2 * l3rad - 3 * l4rad + pi4) + 0.00019 * Math.sin(l4rad - pi4 - G) + -0.00019 * Math.sin(2 * l4rad - pi3 - pi4) + -0.00018 * Math.sin(l4rad - pi4 + G) + -0.00016 * Math.sin(l4rad + pi3 - 2 * PI - 2 * G);\n details.satellite1.meanLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(l1);\n details.satellite1.trueLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(l1 + Sigma1);\n var L1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(details.satellite1.trueLongitude);\n details.satellite2.meanLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(l2);\n details.satellite2.trueLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(l2 + Sigma2);\n var L2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(details.satellite2.trueLongitude);\n details.satellite3.meanLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(l3);\n details.satellite3.trueLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(l3 + Sigma3);\n var L3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(details.satellite3.trueLongitude);\n details.satellite4.meanLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(l4);\n details.satellite4.trueLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(l4 + Sigma4);\n var L4 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(details.satellite4.trueLongitude);\n var B1 = Math.atan(0.0006393 * Math.sin(L1 - w1rad) + 0.0001825 * Math.sin(L1 - w2rad) + 3.29E-05 * Math.sin(L1 - w3rad) + -3.11E-05 * Math.sin(L1 - psi) + 9.3E-06 * Math.sin(L1 - w4rad) + 7.5E-06 * Math.sin(3 * L1 - 4 * l2rad - 1.9927 * Sigma1 + w2rad) + 4.6E-06 * Math.sin(L1 + psi - 2 * PI - 2 * G));\n details.satellite1.equatorialLatitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(B1);\n var B2 = Math.atan(0.0081004 * Math.sin(L2 - w2rad) + 0.0004512 * Math.sin(L2 - w3rad) + -0.0003284 * Math.sin(L2 - psi) + 0.000116 * Math.sin(L2 - w4rad) + 2.72E-05 * Math.sin(l1rad - 2 * l3rad + 1.0146 * Sigma2 + w2rad) + -1.44E-05 * Math.sin(L2 - w1rad) + 1.43E-05 * Math.sin(L2 + psi - 2 * PI - 2 * G) + 3.5E-06 * Math.sin(L2 - psi + G) + -2.8E-06 * Math.sin(l1rad - 2 * l3rad + 1.0146 * Sigma2 + w3rad));\n details.satellite2.equatorialLatitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(B2);\n var B3 = Math.atan(0.0032402 * Math.sin(L3 - w3rad) + -0.0016911 * Math.sin(L3 - psi) + 0.0006847 * Math.sin(L3 - w4rad) + -0.0002797 * Math.sin(L3 - w2rad) + 3.21E-05 * Math.sin(L3 + psi - 2 * PI - 2 * G) + 5.1E-06 * Math.sin(L3 - psi + G) + -4.5E-06 * Math.sin(L3 - psi - G) + -4.5E-06 * Math.sin(L3 + psi - 2 * PI) + 3.7E-06 * Math.sin(L3 + psi - 2 * PI - 3 * G) + 3E-06 * Math.sin(2 * l2rad - 3 * L3 + 4.03 * Sigma3 + w2rad) + -2.1E-06 * Math.sin(2 * l2rad - 3 * L3 + 4.03 * Sigma3 + w3rad));\n details.satellite3.equatorialLatitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(B3);\n var B4 = Math.atan(-0.0076579 * Math.sin(L4 - psi) + 0.0044134 * Math.sin(L4 - w4rad) + -0.0005112 * Math.sin(L4 - w3rad) + 7.73E-05 * Math.sin(L4 + psi - 2 * PI - 2 * G) + 1.04E-05 * Math.sin(L4 - psi + G) + -1.02E-05 * Math.sin(L4 - psi - G) + 8.8E-06 * Math.sin(L4 + psi - 2 * PI - 3 * G) + -3.8E-06 * Math.sin(L4 + psi - 2 * PI - G));\n details.satellite4.equatorialLatitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(B4);\n details.satellite1.r = 5.90569 * (1 + (-0.0041339 * Math.cos(2 * (l1rad - l2rad)) + -3.87E-05 * Math.cos(l1rad - pi3) + -2.14E-05 * Math.cos(l1rad - pi4) + 1.7E-05 * Math.cos(l1rad - l2rad) + -1.31E-05 * Math.cos(4 * (l1rad - l2rad)) + 1.06E-05 * Math.cos(l1rad - l3rad) + -6.6E-06 * Math.cos(l1rad + pi3 - 2 * PI - 2 * G)));\n details.satellite2.r = 9.39657 * (1 + (0.0093848 * Math.cos(l1rad - l2rad) + -0.0003116 * Math.cos(l2rad - pi3) + -0.0001744 * Math.cos(l2rad - pi4) + -0.0001442 * Math.cos(l2rad - pi2) + 5.53E-05 * Math.cos(l2rad - l3rad) + 5.23E-05 * Math.cos(l1rad - l3rad) + -2.9E-05 * Math.cos(2 * (l1rad - l2rad)) + 1.64E-05 * Math.cos(2 * (l2rad - w2rad)) + 1.07E-05 * Math.cos(l1rad - 2 * l3rad + pi3) + -1.02E-05 * Math.cos(l2rad - pi1) + -9.1E-06 * Math.cos(2 * (l1rad - l3rad))));\n details.satellite3.r = 14.98832 * (1 + (-0.0014388 * Math.cos(l3rad - pi3) + -0.0007919 * Math.cos(l3rad - pi4) + 0.0006342 * Math.cos(l2rad - l3rad) + -0.0001761 * Math.cos(2 * (l3rad - l4rad)) + 2.94E-05 * Math.cos(l3rad - l4rad) + -1.56E-05 * Math.cos(3 * (l3rad - l4rad)) + 1.56E-05 * Math.cos(l1rad - l3rad) + -1.53E-05 * Math.cos(l1rad - l2rad) + 7E-06 * Math.cos(2 * l2rad - 3 * l3rad + pi3) + -5.1E-06 * Math.cos(l3rad + pi3 - 2 * PI - 2 * G)));\n details.satellite4.r = 26.36273 * (1 + (-0.0073546 * Math.cos(l4rad - pi4) + 0.0001621 * Math.cos(l4rad - pi3) + 9.74E-05 * Math.cos(l3rad - l4rad) + -5.43E-05 * Math.cos(l4rad + pi4 - 2 * PI - 2 * G) + -2.71E-05 * Math.cos(2 * (l4rad - pi4)) + 1.82E-05 * Math.cos(l4rad - PI) + 1.77E-05 * Math.cos(2 * (l3rad - l4rad)) + -1.67E-05 * Math.cos(2 * l4rad - psi - w4rad) + 1.67E-05 * Math.cos(psi - w4rad) + -1.55E-05 * Math.cos(2 * (l4rad - PI - G)) + 1.42E-05 * Math.cos(2 * (l4rad - psi)) + 1.05E-05 * Math.cos(l1rad - l4rad) + 9.2E-06 * Math.cos(l2rad - l4rad) + -8.9E-06 * Math.cos(l4rad - PI - G) + -6.2E-06 * Math.cos(l4rad + pi4 - 2 * PI - 3 * G) + 4.8E-06 * Math.cos(2 * (l4rad - w4rad))));\n var T0 = (JD - 2433282.423) / 36525;\n var P = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(1.3966626 * T0 + 0.0003088 * T0 * T0);\n L1 += P;\n details.satellite1.tropicalLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(L1));\n L2 += P;\n details.satellite2.tropicalLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(L2));\n L3 += P;\n details.satellite3.tropicalLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(L3));\n L4 += P;\n details.satellite4.tropicalLongitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(L4));\n psi += P;\n var T = (JD - 2415020.5) / 36525;\n var I = 3.120262 + 0.0006 * T;\n var Irad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(I);\n var X1 = details.satellite1.r * Math.cos(L1 - psi) * Math.cos(B1);\n var X2 = details.satellite2.r * Math.cos(L2 - psi) * Math.cos(B2);\n var X3 = details.satellite3.r * Math.cos(L3 - psi) * Math.cos(B3);\n var X4 = details.satellite4.r * Math.cos(L4 - psi) * Math.cos(B4);\n var X5 = 0;\n var Y1 = details.satellite1.r * Math.sin(L1 - psi) * Math.cos(B1);\n var Y2 = details.satellite2.r * Math.sin(L2 - psi) * Math.cos(B2);\n var Y3 = details.satellite3.r * Math.sin(L3 - psi) * Math.cos(B3);\n var Y4 = details.satellite4.r * Math.sin(L4 - psi) * Math.cos(B4);\n var Y5 = 0;\n var Z1 = details.satellite1.r * Math.sin(B1);\n var Z2 = details.satellite2.r * Math.sin(B2);\n var Z3 = details.satellite3.r * Math.sin(B3);\n var Z4 = details.satellite4.r * Math.sin(B4);\n var Z5 = 1;\n var omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_elements_planetary_orbit_js__WEBPACK_IMPORTED_MODULE_6__.EPO.jupiterLongitudeAscendingNode(JD));\n var i = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_elements_planetary_orbit_js__WEBPACK_IMPORTED_MODULE_6__.EPO.jupiterInclination(JD));\n var A6 = 0;\n var B6 = 0;\n var C6 = 0;\n var north = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.C3D();\n var abc = GM.rotations(X5, Y5, Z5, Irad, psi, i, omega, lambda0, beta0, north);\n A6 = abc[0];\n B6 = abc[1];\n C6 = abc[2];\n var D = Math.atan2(A6, C6);\n abc = GM.rotations(X1, Y1, Z1, Irad, psi, i, omega, lambda0, beta0, details.satellite1.eclipticRectangularCoordinates);\n A6 = abc[0];\n B6 = abc[1];\n C6 = abc[2];\n details.satellite1.trueRectangularCoordinates.x = A6 * Math.cos(D) - C6 * Math.sin(D);\n details.satellite1.trueRectangularCoordinates.y = A6 * Math.sin(D) + C6 * Math.cos(D);\n details.satellite1.trueRectangularCoordinates.z = B6;\n abc = GM.rotations(X2, Y2, Z2, Irad, psi, i, omega, lambda0, beta0, details.satellite2.eclipticRectangularCoordinates);\n A6 = abc[0];\n B6 = abc[1];\n C6 = abc[2];\n details.satellite2.trueRectangularCoordinates.x = A6 * Math.cos(D) - C6 * Math.sin(D);\n details.satellite2.trueRectangularCoordinates.y = A6 * Math.sin(D) + C6 * Math.cos(D);\n details.satellite2.trueRectangularCoordinates.z = B6;\n abc = GM.rotations(X3, Y3, Z3, Irad, psi, i, omega, lambda0, beta0, details.satellite3.eclipticRectangularCoordinates);\n A6 = abc[0];\n B6 = abc[1];\n C6 = abc[2];\n details.satellite3.trueRectangularCoordinates.x = A6 * Math.cos(D) - C6 * Math.sin(D);\n details.satellite3.trueRectangularCoordinates.y = A6 * Math.sin(D) + C6 * Math.cos(D);\n details.satellite3.trueRectangularCoordinates.z = B6;\n abc = GM.rotations(X4, Y4, Z4, Irad, psi, i, omega, lambda0, beta0, details.satellite4.eclipticRectangularCoordinates);\n A6 = abc[0];\n B6 = abc[1];\n C6 = abc[2];\n details.satellite4.trueRectangularCoordinates.x = A6 * Math.cos(D) - C6 * Math.sin(D);\n details.satellite4.trueRectangularCoordinates.y = A6 * Math.sin(D) + C6 * Math.cos(D);\n details.satellite4.trueRectangularCoordinates.z = B6;\n details.satellite1.apparentRectangularCoordinates.x = details.satellite1.trueRectangularCoordinates.x + Math.abs(details.satellite1.trueRectangularCoordinates.z) / 17295 * Math.sqrt(1 - (details.satellite1.trueRectangularCoordinates.x / details.satellite1.r) * (details.satellite1.trueRectangularCoordinates.x / details.satellite1.r));\n details.satellite1.apparentRectangularCoordinates.y = details.satellite1.trueRectangularCoordinates.y;\n details.satellite1.apparentRectangularCoordinates.z = details.satellite1.trueRectangularCoordinates.z;\n details.satellite2.apparentRectangularCoordinates.x = details.satellite2.trueRectangularCoordinates.x + Math.abs(details.satellite2.trueRectangularCoordinates.z) / 21819 * Math.sqrt(1 - (details.satellite2.trueRectangularCoordinates.x / details.satellite2.r) * (details.satellite2.trueRectangularCoordinates.x / details.satellite2.r));\n details.satellite2.apparentRectangularCoordinates.y = details.satellite2.trueRectangularCoordinates.y;\n details.satellite2.apparentRectangularCoordinates.z = details.satellite2.trueRectangularCoordinates.z;\n details.satellite3.apparentRectangularCoordinates.x = details.satellite3.trueRectangularCoordinates.x + Math.abs(details.satellite3.trueRectangularCoordinates.z) / 27558 * Math.sqrt(1 - (details.satellite3.trueRectangularCoordinates.x / details.satellite3.r) * (details.satellite3.trueRectangularCoordinates.x / details.satellite3.r));\n details.satellite3.apparentRectangularCoordinates.y = details.satellite3.trueRectangularCoordinates.y;\n details.satellite3.apparentRectangularCoordinates.z = details.satellite3.trueRectangularCoordinates.z;\n details.satellite4.apparentRectangularCoordinates.x = details.satellite4.trueRectangularCoordinates.x + Math.abs(details.satellite4.trueRectangularCoordinates.z) / 36548 * Math.sqrt(1 - (details.satellite4.trueRectangularCoordinates.x / details.satellite4.r) * (details.satellite4.trueRectangularCoordinates.x / details.satellite4.r));\n details.satellite4.apparentRectangularCoordinates.y = details.satellite4.trueRectangularCoordinates.y;\n details.satellite4.apparentRectangularCoordinates.z = details.satellite4.trueRectangularCoordinates.z;\n var W = DELTA / (DELTA + details.satellite1.trueRectangularCoordinates.z / 2095);\n details.satellite1.apparentRectangularCoordinates.x *= W;\n details.satellite1.apparentRectangularCoordinates.y *= W;\n W = DELTA / (DELTA + details.satellite2.trueRectangularCoordinates.z / 2095);\n details.satellite2.apparentRectangularCoordinates.x *= W;\n details.satellite2.apparentRectangularCoordinates.y *= W;\n W = DELTA / (DELTA + details.satellite3.trueRectangularCoordinates.z / 2095);\n details.satellite3.apparentRectangularCoordinates.x *= W;\n details.satellite3.apparentRectangularCoordinates.y *= W;\n W = DELTA / (DELTA + details.satellite4.trueRectangularCoordinates.z / 2095);\n details.satellite4.apparentRectangularCoordinates.x *= W;\n details.satellite4.apparentRectangularCoordinates.y *= W;\n return details;\n};\n\nGM.rotations = function (X, Y, Z, I, psi, i, omega, lambda0, beta0, eclipticCoord) {\n var A6;\n var B6;\n var C6;\n var phi = psi - omega;\n var A1 = X;\n var B1 = Y * Math.cos(I) - Z * Math.sin(I);\n var C1 = Y * Math.sin(I) + Z * Math.cos(I);\n var A2 = A1 * Math.cos(phi) - B1 * Math.sin(phi);\n var B2 = A1 * Math.sin(phi) + B1 * Math.cos(phi);\n var C2 = C1;\n var A3 = A2;\n var B3 = B2 * Math.cos(i) - C2 * Math.sin(i);\n var C3 = B2 * Math.sin(i) + C2 * Math.cos(i);\n var A4 = A3 * Math.cos(omega) - B3 * Math.sin(omega);\n var B4 = A3 * Math.sin(omega) + B3 * Math.cos(omega);\n var C4 = C3;\n var JupiterRadiiToAU = 1 / 2095;\n eclipticCoord.x = A4 * JupiterRadiiToAU;\n eclipticCoord.y = B4 * JupiterRadiiToAU;\n eclipticCoord.z = C4 * JupiterRadiiToAU;\n var A5 = A4 * Math.sin(lambda0) - B4 * Math.cos(lambda0);\n var B5 = A4 * Math.cos(lambda0) + B4 * Math.sin(lambda0);\n var C5 = C4;\n A6 = A5;\n B6 = C5 * Math.sin(beta0) + B5 * Math.cos(beta0);\n C6 = C5 * Math.cos(beta0) - B5 * Math.sin(beta0);\n return [A6, B6, C6];\n};\n\nGM.fillInPhenomenaDetails = function (detail) {\n var Y1 = 1.071374 * detail.apparentRectangularCoordinates.y;\n var r = Y1 * Y1 + detail.apparentRectangularCoordinates.x * detail.apparentRectangularCoordinates.x;\n if (r < 1) {\n if (detail.apparentRectangularCoordinates.z < 0) {\n detail.bInTransit = true;\n detail.bInOccultation = false;\n }\n else {\n detail.bInTransit = false;\n detail.bInOccultation = true;\n }\n }\n else {\n detail.bInTransit = false;\n detail.bInOccultation = false;\n }\n};\n\nvar GM$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"GM\", [GM, GM$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/globe.js\":\n/*!********************************!*\\\n !*** ./esm/astrocalc/globe.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAGlobe: () => (/* binding */ CAAGlobe)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAGLOBE.CPP`\n// \"Purpose: Implementation for the algorithms for the Earth's Globe\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// CAAGlobe\n\nfunction CAAGlobe() { }\n\nCAAGlobe.rhoSinThetaPrime = function (GeographicalLatitude, Height) {\n GeographicalLatitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(GeographicalLatitude);\n var U = Math.atan(0.99664719 * Math.tan(GeographicalLatitude));\n return 0.99664719 * Math.sin(U) + (Height / 6378149 * Math.sin(GeographicalLatitude));\n};\n\nCAAGlobe.rhoCosThetaPrime = function (GeographicalLatitude, Height) {\n GeographicalLatitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(GeographicalLatitude);\n var U = Math.atan(0.99664719 * Math.tan(GeographicalLatitude));\n return Math.cos(U) + (Height / 6378149 * Math.cos(GeographicalLatitude));\n};\n\nCAAGlobe.radiusOfParallelOfLatitude = function (GeographicalLatitude) {\n GeographicalLatitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(GeographicalLatitude);\n var sinGeo = Math.sin(GeographicalLatitude);\n return (6378.14 * Math.cos(GeographicalLatitude)) / Math.sqrt(1 - 0.0066943847614084 * sinGeo * sinGeo);\n};\n\nCAAGlobe.radiusOfCurvature = function (GeographicalLatitude) {\n GeographicalLatitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(GeographicalLatitude);\n var sinGeo = Math.sin(GeographicalLatitude);\n return (6378.14 * (1 - 0.0066943847614084)) / Math.pow((1 - 0.0066943847614084 * sinGeo * sinGeo), 1.5);\n};\n\nCAAGlobe.distanceBetweenPoints = function (GeographicalLatitude1, GeographicalLongitude1, GeographicalLatitude2, GeographicalLongitude2) {\n GeographicalLatitude1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(GeographicalLatitude1);\n GeographicalLatitude2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(GeographicalLatitude2);\n GeographicalLongitude1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(GeographicalLongitude1);\n GeographicalLongitude2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(GeographicalLongitude2);\n var F = (GeographicalLatitude1 + GeographicalLatitude2) / 2;\n var G = (GeographicalLatitude1 - GeographicalLatitude2) / 2;\n var lambda = (GeographicalLongitude1 - GeographicalLongitude2) / 2;\n var sinG = Math.sin(G);\n var cosG = Math.cos(G);\n var cosF = Math.cos(F);\n var sinF = Math.sin(F);\n var sinLambda = Math.sin(lambda);\n var cosLambda = Math.cos(lambda);\n var S = (sinG * sinG * cosLambda * cosLambda) + (cosF * cosF * sinLambda * sinLambda);\n var C = (cosG * cosG * cosLambda * cosLambda) + (sinF * sinF * sinLambda * sinLambda);\n var w = Math.atan(Math.sqrt(S / C));\n var R = Math.sqrt(S * C) / w;\n var D = 2 * w * 6378.14;\n var Hprime = (3 * R - 1) / (2 * C);\n var Hprime2 = (3 * R + 1) / (2 * S);\n var f = 0.00335281317789691;\n return D * (1 + (f * Hprime * sinF * sinF * cosG * cosG) - (f * Hprime2 * cosF * cosF * sinG * sinG));\n};\n\nvar CAAGlobe$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAGlobe\", [CAAGlobe, CAAGlobe$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/illuminated_fraction.js\":\n/*!***********************************************!*\\\n !*** ./esm/astrocalc/illuminated_fraction.js ***!\n \\***********************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ IFR: () => (/* binding */ IFR)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAILLUMINATEDFRACTION.CPP`\n// \"Purpose: Implementation for the algorithms for a planet's Phase Angle, Illuminated Fraction and Magnitude\"\n// Last update of original: PJN / 21-01-2005\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// IFR\n\nfunction IFR() { }\n\nIFR.phaseAngle = function (r, R, Delta) {\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(Math.acos((r * r + Delta * Delta - R * R) / (2 * r * Delta))));\n};\n\nIFR.phaseAngle2 = function (R, R0, B, L, L0, Delta) {\n B = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(B);\n L = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(L);\n L0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(L0);\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(Math.acos((R - R0 * Math.cos(B) * Math.cos(L - L0)) / Delta)));\n};\n\nIFR.phaseAngleRectangular = function (x, y, z, B, L, Delta) {\n B = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(B);\n L = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(L);\n var cosB = Math.cos(B);\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(Math.acos((x * cosB * Math.cos(L) + y * cosB * Math.sin(L) + z * Math.sin(B)) / Delta)));\n};\n\nIFR.illuminatedFraction = function (PhaseAngle) {\n PhaseAngle = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(PhaseAngle);\n return (1 + Math.cos(PhaseAngle)) / 2;\n};\n\nIFR.illuminatedFraction2 = function (r, R, Delta) {\n return (((r + Delta) * (r + Delta) - R * R) / (4 * r * Delta));\n};\n\nIFR.mercuryMagnitudeMuller = function (r, Delta, i) {\n var I_50 = i - 50;\n return 1.16 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta) + 0.02838 * I_50 + 0.0001023 * I_50 * I_50;\n};\n\nIFR.venusMagnitudeMuller = function (r, Delta, i) {\n return -4 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta) + 0.01322 * i + 4.247E-07 * i * i * i;\n};\n\nIFR.marsMagnitudeMuller = function (r, Delta, i) {\n return -1.3 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta) + 0.01486 * i;\n};\n\nIFR.jupiterMagnitudeMuller = function (r, Delta) {\n return -8.93 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta);\n};\n\nIFR.saturnMagnitudeMuller = function (r, Delta, DeltaU, B) {\n B = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(B);\n var sinB = Math.sin(B);\n return -8.68 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta) + 0.044 * Math.abs(DeltaU) - 2.6 * Math.sin(Math.abs(B)) + 1.25 * sinB * sinB;\n};\n\nIFR.uranusMagnitudeMuller = function (r, Delta) {\n return -6.85 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta);\n};\n\nIFR.neptuneMagnitudeMuller = function (r, Delta) {\n return -7.05 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta);\n};\n\nIFR.mercuryMagnitudeAA = function (r, Delta, i) {\n var i2 = i * i;\n var i3 = i2 * i;\n return -0.42 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta) + 0.038 * i - 0.000273 * i2 + 2E-06 * i3;\n};\n\nIFR.venusMagnitudeAA = function (r, Delta, i) {\n var i2 = i * i;\n var i3 = i2 * i;\n return -4.4 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta) + 0.0009 * i + 0.000239 * i2 - 6.5E-07 * i3;\n};\n\nIFR.marsMagnitudeAA = function (r, Delta, i) {\n return -1.52 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta) + 0.016 * i;\n};\n\nIFR.jupiterMagnitudeAA = function (r, Delta, i) {\n return -9.4 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta) + 0.005 * i;\n};\n\nIFR.saturnMagnitudeAA = function (r, Delta, DeltaU, B) {\n B = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(B);\n var sinB = Math.sin(B);\n return -8.88 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta) + 0.044 * Math.abs(DeltaU) - 2.6 * Math.sin(Math.abs(B)) + 1.25 * sinB * sinB;\n};\n\nIFR.uranusMagnitudeAA = function (r, Delta) {\n return -7.19 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta);\n};\n\nIFR.neptuneMagnitudeAA = function (r, Delta) {\n return -6.87 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta);\n};\n\nIFR.plutoMagnitudeAA = function (r, Delta) {\n return -1 + 5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(r * Delta);\n};\n\nvar IFR$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"IFR\", [IFR, IFR$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/interpolate.js\":\n/*!**************************************!*\\\n !*** ./esm/astrocalc/interpolate.js ***!\n \\**************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ INTP: () => (/* binding */ INTP)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n// Originally `AAINTERPOLATE.CPP`\n// \"Purpose: Implementation for the algorithms for Interpolation\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n// INTP - was CAAInterpoate\n\nfunction INTP() { }\n\nINTP.interpolate = function (n, Y1, Y2, Y3) {\n var a = Y2 - Y1;\n var b = Y3 - Y2;\n var c = Y1 + Y3 - 2 * Y2;\n return Y2 + n / 2 * (a + b + n * c);\n};\n\nINTP.interpolate2 = function (n, Y1, Y2, Y3, Y4, Y5) {\n var A = Y2 - Y1;\n var B = Y3 - Y2;\n var C = Y4 - Y3;\n var D = Y5 - Y4;\n var E = B - A;\n var F = C - B;\n var G = D - C;\n var H = F - E;\n var J = G - F;\n var K = J - H;\n var N2 = n * n;\n var N3 = N2 * n;\n var N4 = N3 * n;\n return Y3 + n * ((B + C) / 2 - (H + J) / 12) + N2 * (F / 2 - K / 24) + N3 * ((H + J) / 12) + N4 * (K / 24);\n};\n\nINTP.interpolateToHalves = function (Y1, Y2, Y3, Y4) {\n return (9 * (Y2 + Y3) - Y1 - Y4) / 16;\n};\n\nINTP.lagrangeInterpolate = function (X, n, pX, pY) {\n var V = 0;\n for (var i = 1; i <= n; i++) {\n var C = 1;\n for (var j = 1; j <= n; j++) {\n if (j !== i) {\n C = C * (X - pX[j - 1]) / (pX[i - 1] - pX[j - 1]);\n }\n }\n V += C * pY[i - 1];\n }\n return V;\n};\n\nINTP.zero = function (Y1, Y2, Y3) {\n var a = Y2 - Y1;\n var b = Y3 - Y2;\n var c = Y1 + Y3 - 2 * Y2;\n var bRecalc = true;\n var n0prev = 0;\n var n0 = n0prev;\n while (bRecalc) {\n n0 = -2 * Y2 / (a + b + c * n0prev);\n bRecalc = (Math.abs(n0 - n0prev) > 1E-12);\n if (bRecalc) {\n n0prev = n0;\n }\n }\n return n0;\n};\n\nINTP.zeroB = function (Y1, Y2, Y3, Y4, Y5) {\n var A = Y2 - Y1;\n var B = Y3 - Y2;\n var C = Y4 - Y3;\n var D = Y5 - Y4;\n var E = B - A;\n var F = C - B;\n var G = D - C;\n var H = F - E;\n var J = G - F;\n var K = J - H;\n var bRecalc = true;\n var n0prev = 0;\n var n0 = n0prev;\n while (bRecalc) {\n var n0prev2 = n0prev * n0prev;\n var n0prev3 = n0prev2 * n0prev;\n var n0prev4 = n0prev3 * n0prev;\n n0 = (-24 * Y3 + n0prev2 * (K - 12 * F) - 2 * n0prev3 * (H + J) - n0prev4 * K) / (2 * (6 * B + 6 * C - H - J));\n bRecalc = (Math.abs(n0 - n0prev) > 1E-12);\n if (bRecalc) {\n n0prev = n0;\n }\n }\n return n0;\n};\n\nINTP.zero2 = function (Y1, Y2, Y3) {\n var a = Y2 - Y1;\n var b = Y3 - Y2;\n var c = Y1 + Y3 - 2 * Y2;\n var bRecalc = true;\n var n0prev = 0;\n var n0 = n0prev;\n while (bRecalc) {\n var deltan0 = -(2 * Y2 + n0prev * (a + b + c * n0prev)) / (a + b + 2 * c * n0prev);\n n0 = n0prev + deltan0;\n bRecalc = (Math.abs(deltan0) > 1E-12);\n if (bRecalc) {\n n0prev = n0;\n }\n }\n return n0;\n};\n\nINTP.zero2B = function (Y1, Y2, Y3, Y4, Y5) {\n var A = Y2 - Y1;\n var B = Y3 - Y2;\n var C = Y4 - Y3;\n var D = Y5 - Y4;\n var E = B - A;\n var F = C - B;\n var G = D - C;\n var H = F - E;\n var J = G - F;\n var K = J - H;\n var M = K / 24;\n var N = (H + J) / 12;\n var P = F / 2 - M;\n var Q = (B + C) / 2 - N;\n var bRecalc = true;\n var n0prev = 0;\n var n0 = n0prev;\n while (bRecalc) {\n var n0prev2 = n0prev * n0prev;\n var n0prev3 = n0prev2 * n0prev;\n var n0prev4 = n0prev3 * n0prev;\n var deltan0 = -(M * n0prev4 + N * n0prev3 + P * n0prev2 + Q * n0prev + Y3) / (4 * M * n0prev3 + 3 * N * n0prev2 + 2 * P * n0prev + Q);\n n0 = n0prev + deltan0;\n bRecalc = (Math.abs(deltan0) > 1E-12);\n if (bRecalc) {\n n0prev = n0;\n }\n }\n return n0;\n};\n\nvar INTP$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"INTP\", [INTP, INTP$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/jupiter.js\":\n/*!**********************************!*\\\n !*** ./esm/astrocalc/jupiter.js ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAJupiter: () => (/* binding */ CAAJupiter)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n// Originally `AAJUPITER.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the heliocentric position of Uranus [sic]\"\n// Last update of original: PJN / 31-05-2004\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// Coefficients\n\nconst g_L0JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(59954691, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9695899, 5.0619179, 529.6909651), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(573610, 1.444062, 7.113547), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(306389, 5.417347, 1059.38193), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(97178, 4.14265, 632.78374), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(72903, 3.64043, 522.57742), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(64264, 3.41145, 103.09277), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(39806, 2.29377, 419.48464), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(38858, 1.27232, 316.39187), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27965, 1.78455, 536.80451), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13590, 5.77481, 1589.0729), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8769, 3.63, 949.1756), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8246, 3.5823, 206.1855), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7368, 5.081, 735.8765), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6263, 0.025, 213.2991), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6114, 4.5132, 1162.4747), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5305, 4.1863, 1052.2684), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5305, 1.3067, 14.2271), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4905, 1.3208, 110.2063), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4647, 4.6996, 3.9322), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3045, 4.3168, 426.5982), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2610, 1.5667, 846.0828), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2028, 1.0638, 3.1814), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1921, 0.9717, 639.8973), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1765, 2.1415, 1066.4955), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1723, 3.8804, 1265.5675), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1633, 3.582, 515.4639), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1432, 4.2968, 625.6702), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(973, 4.098, 95.979), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(884, 2.437, 412.371), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(733, 6.085, 838.969), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(731, 3.806, 1581.959), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(709, 1.293, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(692, 6.134, 2118.764), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(614, 4.109, 1478.867), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(582, 4.54, 309.278), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(495, 3.756, 323.505), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(441, 2.958, 454.909), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(417, 1.036, 2.488), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(390, 4.897, 1692.166), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(376, 4.703, 1368.66), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(341, 5.715, 533.623), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(330, 4.74, 0.048), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(262, 1.877, 0.963), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(261, 0.82, 380.128), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(257, 3.724, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(244, 5.22, 728.763), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(235, 1.227, 909.819), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(220, 1.651, 543.918), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(207, 1.855, 525.759), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(202, 1.807, 1375.774), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(197, 5.293, 1155.361), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(175, 3.73, 942.062), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(175, 3.226, 1898.351), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(175, 5.91, 956.289), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(158, 4.365, 1795.258), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(151, 3.906, 74.782), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(149, 4.377, 1685.052), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(141, 3.136, 491.558), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(138, 1.318, 1169.588), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(131, 4.169, 1045.155), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(117, 2.5, 1596.186), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(117, 3.389, 0.521), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(106, 4.554, 526.51)];\nconst g_L1JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(52993480757, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(489741, 4.220667, 529.690965), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(228919, 6.026475, 7.113547), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27655, 4.57266, 1059.38193), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20721, 5.45939, 522.57742), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12106, 0.16986, 536.80451), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6068, 4.4242, 103.0928), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5434, 3.9848, 419.4846), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4238, 5.8901, 14.2271), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2212, 5.2677, 206.1855), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1746, 4.9267, 1589.0729), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1296, 5.5513, 3.1814), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1173, 5.8565, 1052.2684), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1163, 0.5145, 3.9322), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1099, 5.307, 515.4639), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1007, 0.4648, 735.8765), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1004, 3.1504, 426.5982), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(848, 5.758, 110.206), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(827, 4.803, 213.299), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(816, 0.586, 1066.495), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(725, 5.518, 639.897), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(568, 5.989, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(474, 4.132, 412.371), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(413, 5.737, 95.979), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(345, 4.242, 632.784), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(336, 3.732, 1162.475), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(234, 4.035, 949.176), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(234, 6.243, 309.278), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(199, 1.505, 838.969), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(195, 2.219, 323.505), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(187, 6.086, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(184, 6.28, 543.918), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(171, 5.417, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(131, 0.626, 728.763), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(115, 0.68, 846.083), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(115, 5.286, 2118.764), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(108, 4.493, 956.289), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(80, 5.82, 1045.15), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(72, 5.34, 942.06), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(70, 5.97, 532.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(67, 5.73, 21.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(66, 0.13, 526.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(65, 6.09, 1581.96), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(59, 0.59, 1155.36), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(58, 0.99, 1596.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(57, 5.97, 1169.59), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(57, 1.41, 533.62), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(55, 5.43, 10.29), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(52, 5.73, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(52, 0.23, 1368.66), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(50, 6.08, 525.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(47, 3.63, 1478.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(47, 0.51, 1265.57), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 4.16, 1692.17), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34, 0.1, 302.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(33, 5.04, 220.41), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 5.37, 508.35), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 5.42, 1272.68), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 3.36, 4.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 0.76, 88.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(25, 1.61, 831.86)];\nconst g_L2JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(47234, 4.32148, 7.11355), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(38966, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30629, 2.93021, 529.69097), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3189, 1.055, 522.5774), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2729, 4.8455, 536.8045), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2723, 3.4141, 1059.3819), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1721, 4.1873, 14.2271), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(383, 5.768, 419.485), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(378, 0.76, 515.464), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(367, 6.055, 103.093), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(337, 3.786, 3.181), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(308, 0.694, 206.186), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(218, 3.814, 1589.073), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(199, 5.34, 1066.495), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(197, 2.484, 3.932), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(156, 1.406, 1052.268), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(146, 3.814, 639.897), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(142, 1.634, 426.598), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(130, 5.837, 412.371), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(117, 1.414, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(97, 4.03, 110.21), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(91, 1.11, 95.98), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(87, 2.52, 632.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(79, 4.64, 543.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(72, 2.22, 735.88), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(58, 0.83, 199.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(57, 3.12, 213.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(49, 1.67, 309.28), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 4.02, 21.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 0.62, 323.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(36, 2.33, 728.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 3.61, 10.29), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(28, 3.24, 838.97), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 4.5, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 2.51, 1162.47), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(25, 1.22, 1045.15), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(24, 3.01, 956.29), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(19, 4.29, 532.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 0.81, 508.35), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17, 4.2, 2118.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17, 1.83, 526.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 5.81, 1596.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 0.68, 942.06), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 4, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 5.95, 316.39), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 1.8, 302.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 2.52, 88.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 4.37, 1169.59), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 4.44, 525.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 1.72, 1581.96), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 2.18, 1155.36), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 3.29, 220.41), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 3.32, 831.86), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 5.76, 846.08), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 2.71, 533.62), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 2.18, 1265.57), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 0.5, 949.18)];\nconst g_L3JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6502, 2.5986, 7.1135), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1357, 1.3464, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(471, 2.475, 14.227), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(417, 3.245, 536.805), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(353, 2.974, 522.577), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(155, 2.076, 1059.382), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(87, 2.51, 515.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(44, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34, 3.83, 1066.5), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(28, 2.45, 206.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(24, 1.28, 412.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(23, 2.98, 543.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 2.1, 639.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 1.4, 419.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(19, 1.59, 103.09), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17, 2.3, 21.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17, 2.6, 1589.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 3.15, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 3.36, 1052.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 2.76, 95.98), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 2.54, 199.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 6.27, 426.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 1.76, 10.29), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 2.27, 110.21), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 3.43, 309.28), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 4.04, 728.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 2.52, 508.35), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 2.91, 1045.15), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 5.25, 323.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 4.3, 88.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 3.52, 302.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 4.09, 735.88), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 1.43, 956.29), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 4.36, 1596.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 1.25, 213.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 5.02, 838.97), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 2.24, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 2.9, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 2.36, 942.06)];\nconst g_L4JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(669, 0.853, 7.114), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 3.142, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(100, 0.743, 14.227), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(50, 1.65, 536.8), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(44, 5.82, 529.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 4.86, 522.58), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 4.29, 515.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 0.71, 1059.38), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 1.3, 543.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 2.32, 1066.5), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 0.48, 21.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 3, 412.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 0.4, 639.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 4.26, 199.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 4.91, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 4.26, 206.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 5.26, 1052.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 4.72, 95.98), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 1.29, 1589.07)];\nconst g_L5JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(50, 5.26, 7.11), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 5.25, 14.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 0.01, 536.8), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 1.1, 522.58), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 3.14, 0)];\nconst g_B0JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2268616, 3.5585261, 529.6909651), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(110090, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(109972, 3.908093, 1059.38193), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8101, 3.6051, 522.5774), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6438, 0.3063, 536.8045), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6044, 4.2588, 1589.0729), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1107, 2.9853, 1162.4747), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(944, 1.675, 426.598), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(942, 2.936, 1052.268), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(894, 1.754, 7.114), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(836, 5.179, 103.093), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(767, 2.155, 632.784), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(684, 3.678, 213.299), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(629, 0.643, 1066.495), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(559, 0.014, 846.083), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(532, 2.703, 110.206), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(464, 1.173, 949.176), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(431, 2.608, 419.485), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(351, 4.611, 2118.764), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(132, 4.778, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(123, 3.35, 1692.166), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(116, 1.387, 323.505), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(115, 5.049, 316.392), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(104, 3.701, 515.464), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(103, 2.319, 1478.867), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(102, 3.153, 1581.959)];\nconst g_B1JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(177352, 5.701665, 529.690965), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3230, 5.7794, 1059.3819), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3081, 5.4746, 522.5774), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2212, 4.7348, 536.8045), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1694, 3.1416, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(346, 4.746, 1052.268), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(234, 5.189, 1066.495), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(196, 6.186, 7.114), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(150, 3.927, 1589.073), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 3.439, 632.784), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(97, 2.91, 949.18), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(82, 5.08, 1162.47), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(77, 2.51, 103.09), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(77, 0.61, 419.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(74, 5.5, 515.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(61, 5.45, 213.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(50, 3.95, 735.88), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(46, 0.54, 110.21), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(45, 1.9, 846.08), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(37, 4.7, 543.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(36, 6.11, 316.39), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 4.92, 1581.96)];\nconst g_B2JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8094, 1.4632, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(813, 3.1416, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(742, 0.957, 522.577), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(399, 2.899, 536.805), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(342, 1.447, 1059.382), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(74, 0.41, 1052.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(46, 3.48, 1066.5), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30, 1.93, 1589.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 0.99, 515.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(23, 4.27, 7.11), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 2.92, 543.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 5.22, 632.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 4.88, 949.18), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 6.21, 1045.15)];\nconst g_B3JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(252, 3.381, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(122, 2.733, 522.577), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(49, 1.04, 536.8), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 2.31, 1052.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 2.77, 515.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 4.25, 1059.38), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 1.78, 1066.5), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 1.13, 543.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 3.14, 0)];\nconst g_B4JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 4.53, 522.58), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 4.47, 529.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 5.44, 536.8), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 4.52, 515.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 4.2, 1052.27)];\nconst g_B5JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 0.09, 522.58)];\nconst g_R0JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(520887429, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(25209327, 3.4910864, 529.69096509), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(610600, 3.841154, 1059.38193), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(282029, 2.574199, 632.783739), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(187647, 2.075904, 522.577418), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(86793, 0.71001, 419.48464), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(72063, 0.21466, 536.80451), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(65517, 5.97996, 316.39187), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30135, 2.16132, 949.17561), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29135, 1.67759, 103.09277), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(23947, 0.27458, 7.11355), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(23453, 3.54023, 735.87651), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(22284, 4.19363, 1589.0729), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13033, 2.96043, 1162.4747), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12749, 2.7155, 1052.26838), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9703, 1.9067, 206.1855), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9161, 4.4135, 213.2991), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7895, 2.4791, 426.5982), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7058, 2.1818, 1265.5675), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6138, 6.2642, 846.0828), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5477, 5.6573, 639.8973), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4170, 2.0161, 515.4639), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4137, 2.7222, 625.6702), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3503, 0.5653, 1066.4955), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2617, 2.0099, 1581.9593), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2500, 4.5518, 838.9693), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2128, 6.1275, 742.9901), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1912, 0.8562, 412.3711), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1611, 3.0887, 1368.6603), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1479, 2.6803, 1478.8666), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1231, 1.8904, 323.5054), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1217, 1.8017, 110.2063), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1015, 1.3867, 454.9094), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(999, 2.872, 309.278), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(961, 4.549, 2118.764), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(886, 4.148, 533.623), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(821, 1.593, 1898.351), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(812, 5.941, 909.819), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(777, 3.677, 728.763), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(727, 3.988, 1155.361), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(655, 2.791, 1685.052), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(654, 3.382, 1692.166), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(621, 4.823, 956.289), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(615, 2.276, 942.062), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(562, 0.081, 543.918), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(542, 0.284, 525.759)];\nconst g_R1JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1271802, 2.6493751, 529.6909651), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(61662, 3.00076, 1059.38193), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(53444, 3.89718, 522.57742), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(41390, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(31185, 4.88277, 536.80451), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11847, 2.4133, 419.48464), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9166, 4.7598, 7.1135), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3404, 3.3469, 1589.0729), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3203, 5.2108, 735.8765), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3176, 2.793, 103.0928), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2806, 3.7422, 515.4639), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2677, 4.3305, 1052.2684), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2600, 3.6344, 206.1855), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2412, 1.4695, 426.5982), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2101, 3.9276, 639.8973), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1646, 4.4163, 1066.4955), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1641, 4.4163, 625.6702), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1050, 3.1611, 213.2991), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1025, 2.5543, 412.3711), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(806, 2.678, 632.784), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(741, 2.171, 1162.475), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(677, 6.25, 838.969), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(567, 4.577, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(485, 2.469, 949.176), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(469, 4.71, 543.918), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(445, 0.403, 323.505), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(416, 5.368, 728.763), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(402, 4.605, 309.278), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(347, 4.681, 14.227), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(338, 3.168, 956.289), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(261, 5.343, 846.083), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(247, 3.923, 942.062), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(220, 4.842, 1368.66), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(203, 5.6, 1155.361), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(200, 4.439, 1045.155), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(197, 3.706, 2118.764), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(196, 3.759, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(184, 4.265, 95.979), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(180, 4.402, 532.872), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(170, 4.846, 526.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(146, 6.13, 533.623), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(133, 1.322, 110.206), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(132, 4.512, 525.759)];\nconst g_R2JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(79645, 1.35866, 529.69097), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8252, 5.7777, 522.5774), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7030, 3.2748, 536.8045), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5314, 1.8384, 1059.3819), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1861, 2.9768, 7.1135), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(964, 5.48, 515.464), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(836, 4.199, 419.485), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(498, 3.142, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(427, 2.228, 639.897), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(406, 3.783, 1066.495), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(377, 2.242, 1589.073), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(363, 5.368, 206.186), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(342, 6.099, 1052.268), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(339, 6.127, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(333, 0.003, 426.598), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(280, 4.262, 412.371), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(257, 0.963, 632.784), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(230, 0.705, 735.877), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(201, 3.069, 543.918), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(200, 4.429, 103.093), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(139, 2.932, 14.227), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 0.787, 728.763), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(95, 1.7, 838.97), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(86, 5.14, 323.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(83, 0.06, 309.28), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(80, 2.98, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(75, 1.6, 956.29), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(70, 1.51, 213.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(67, 5.47, 199.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(62, 6.1, 1045.15), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(56, 0.96, 1162.47), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(52, 5.58, 942.06), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(50, 2.72, 532.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(45, 5.52, 508.35), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(44, 0.27, 526.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 5.95, 95.98)];\nconst g_R3JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3519, 6.058, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1073, 1.6732, 536.8045), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(916, 1.413, 522.577), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(342, 0.523, 1059.382), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(255, 1.196, 7.114), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(222, 0.952, 515.464), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(90, 3.14, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(69, 2.27, 1066.5), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(58, 1.41, 543.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(58, 0.53, 639.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(51, 5.98, 412.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(47, 1.58, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(43, 6.12, 419.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(37, 1.18, 14.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34, 1.67, 1052.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34, 0.85, 206.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(31, 1.04, 1589.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30, 4.63, 426.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21, 2.5, 728.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 0.89, 199.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 0.96, 508.35), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 1.5, 1045.15), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 2.61, 735.88), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 3.56, 323.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 1.79, 309.28), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 6.28, 956.29), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 6.26, 103.09), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 3.45, 838.97)];\nconst g_R4JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(129, 0.084, 536.805), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(113, 4.249, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(83, 3.3, 522.58), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(38, 2.73, 515.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 5.69, 7.11), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 5.4, 1059.38), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 6.02, 543.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 0.77, 1066.5), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 5.68, 14.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 1.43, 412.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 5.12, 639.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 3.34, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 3.4, 1052.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 4.16, 728.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 2.9, 426.6)];\nconst g_R5JupiterCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 4.75, 536.8), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 5.92, 522.58), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 5.57, 515.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 4.3, 543.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 3.69, 7.11), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 4.13, 1059.38), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 5.49, 1066.5)];\n\n\n\n// CAAJupiter\n\nfunction CAAJupiter() { }\n\nCAAJupiter.eclipticLongitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var rho5 = rho4 * rho;\n var nL0Coefficients = g_L0JupiterCoefficients.length;\n var L0 = 0;\n var i;\n for (i = 0; i < nL0Coefficients; i++) {\n L0 += g_L0JupiterCoefficients[i].a * Math.cos(g_L0JupiterCoefficients[i].b + g_L0JupiterCoefficients[i].c * rho);\n }\n var nL1Coefficients = g_L1JupiterCoefficients.length;\n var L1 = 0;\n for (i = 0; i < nL1Coefficients; i++) {\n L1 += g_L1JupiterCoefficients[i].a * Math.cos(g_L1JupiterCoefficients[i].b + g_L1JupiterCoefficients[i].c * rho);\n }\n var nL2Coefficients = g_L2JupiterCoefficients.length;\n var L2 = 0;\n for (i = 0; i < nL2Coefficients; i++) {\n L2 += g_L2JupiterCoefficients[i].a * Math.cos(g_L2JupiterCoefficients[i].b + g_L2JupiterCoefficients[i].c * rho);\n }\n var nL3Coefficients = g_L3JupiterCoefficients.length;\n var L3 = 0;\n for (i = 0; i < nL3Coefficients; i++) {\n L3 += g_L3JupiterCoefficients[i].a * Math.cos(g_L3JupiterCoefficients[i].b + g_L3JupiterCoefficients[i].c * rho);\n }\n var nL4Coefficients = g_L4JupiterCoefficients.length;\n var L4 = 0;\n for (i = 0; i < nL4Coefficients; i++) {\n L4 += g_L4JupiterCoefficients[i].a * Math.cos(g_L4JupiterCoefficients[i].b + g_L4JupiterCoefficients[i].c * rho);\n }\n var nL5Coefficients = g_L5JupiterCoefficients.length;\n var L5 = 0;\n for (i = 0; i < nL5Coefficients; i++) {\n L5 += g_L5JupiterCoefficients[i].a * Math.cos(g_L5JupiterCoefficients[i].b + g_L5JupiterCoefficients[i].c * rho);\n }\n var vvalue = (L0 + L1 * rho + L2 * rhosquared + L3 * rhocubed + L4 * rho4 + L5 * rho5) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue));\n return vvalue;\n};\n\nCAAJupiter.eclipticLatitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var rho5 = rho4 * rho;\n var nB0Coefficients = g_B0JupiterCoefficients.length;\n var B0 = 0;\n var i;\n for (i = 0; i < nB0Coefficients; i++) {\n B0 += g_B0JupiterCoefficients[i].a * Math.cos(g_B0JupiterCoefficients[i].b + g_B0JupiterCoefficients[i].c * rho);\n }\n var nB1Coefficients = g_B1JupiterCoefficients.length;\n var B1 = 0;\n for (i = 0; i < nB1Coefficients; i++) {\n B1 += g_B1JupiterCoefficients[i].a * Math.cos(g_B1JupiterCoefficients[i].b + g_B1JupiterCoefficients[i].c * rho);\n }\n var nB2Coefficients = g_B2JupiterCoefficients.length;\n var B2 = 0;\n for (i = 0; i < nB2Coefficients; i++) {\n B2 += g_B2JupiterCoefficients[i].a * Math.cos(g_B2JupiterCoefficients[i].b + g_B2JupiterCoefficients[i].c * rho);\n }\n var nB3Coefficients = g_B3JupiterCoefficients.length;\n var B3 = 0;\n for (i = 0; i < nB3Coefficients; i++) {\n B3 += g_B3JupiterCoefficients[i].a * Math.cos(g_B3JupiterCoefficients[i].b + g_B3JupiterCoefficients[i].c * rho);\n }\n var nB4Coefficients = g_B4JupiterCoefficients.length;\n var B4 = 0;\n for (i = 0; i < nB4Coefficients; i++) {\n B4 += g_B4JupiterCoefficients[i].a * Math.cos(g_B4JupiterCoefficients[i].b + g_B4JupiterCoefficients[i].c * rho);\n }\n var nB5Coefficients = g_B5JupiterCoefficients.length;\n var B5 = 0;\n for (i = 0; i < nB5Coefficients; i++) {\n B5 += g_B5JupiterCoefficients[i].a * Math.cos(g_B5JupiterCoefficients[i].b + g_B5JupiterCoefficients[i].c * rho);\n }\n var vvalue = (B0 + B1 * rho + B2 * rhosquared + B3 * rhocubed + B4 * rho4 + B5 * rho5) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n return vvalue;\n};\n\nCAAJupiter.radiusVector = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var rho5 = rho4 * rho;\n var nR0Coefficients = g_R0JupiterCoefficients.length;\n var R0 = 0;\n var i;\n for (i = 0; i < nR0Coefficients; i++) {\n R0 += g_R0JupiterCoefficients[i].a * Math.cos(g_R0JupiterCoefficients[i].b + g_R0JupiterCoefficients[i].c * rho);\n }\n var nR1Coefficients = g_R1JupiterCoefficients.length;\n var R1 = 0;\n for (i = 0; i < nR1Coefficients; i++) {\n R1 += g_R1JupiterCoefficients[i].a * Math.cos(g_R1JupiterCoefficients[i].b + g_R1JupiterCoefficients[i].c * rho);\n }\n var nR2Coefficients = g_R2JupiterCoefficients.length;\n var R2 = 0;\n for (i = 0; i < nR2Coefficients; i++) {\n R2 += g_R2JupiterCoefficients[i].a * Math.cos(g_R2JupiterCoefficients[i].b + g_R2JupiterCoefficients[i].c * rho);\n }\n var nR3Coefficients = g_R3JupiterCoefficients.length;\n var R3 = 0;\n for (i = 0; i < nR3Coefficients; i++) {\n R3 += g_R3JupiterCoefficients[i].a * Math.cos(g_R3JupiterCoefficients[i].b + g_R3JupiterCoefficients[i].c * rho);\n }\n var nR4Coefficients = g_R4JupiterCoefficients.length;\n var R4 = 0;\n for (i = 0; i < nR4Coefficients; i++) {\n R4 += g_R4JupiterCoefficients[i].a * Math.cos(g_R4JupiterCoefficients[i].b + g_R4JupiterCoefficients[i].c * rho);\n }\n var nR5Coefficients = g_R5JupiterCoefficients.length;\n var R5 = 0;\n for (i = 0; i < nR5Coefficients; i++) {\n R5 += g_R5JupiterCoefficients[i].a * Math.cos(g_R5JupiterCoefficients[i].b + g_R5JupiterCoefficients[i].c * rho);\n }\n return (R0 + R1 * rho + R2 * rhosquared + R3 * rhocubed + R4 * rho4 + R5 * rho5) / 100000000;\n};\n\nvar CAAJupiter$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAJupiter\", [CAAJupiter, CAAJupiter$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/kepler.js\":\n/*!*********************************!*\\\n !*** ./esm/astrocalc/kepler.js ***!\n \\*********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAKepler: () => (/* binding */ CAAKepler)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAKEPLER.CPP`\n// \"Purpose: Implementation for the algorithms which solve Kepler's equation\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// CAAKepler\n\nfunction CAAKepler() { }\n\nCAAKepler.calculate = function (M, e) {\n return CAAKepler.calculateIter(M, e, 53);\n};\n\nCAAKepler.calculateIter = function (M, e, nIterations) {\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.d2R(M);\n var PI = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.PI();\n var F = 1;\n if (M < 0) {\n F = -1;\n }\n M = Math.abs(M) / (2 * PI);\n M = (M - _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(M)) * 2 * PI * F;\n if (M < 0) {\n M += 2 * PI;\n }\n F = 1;\n if (M > PI) {\n F = -1;\n }\n if (M > PI) {\n M = 2 * PI - M;\n }\n var E = PI / 2;\n var scale = PI / 4;\n for (var i = 0; i < nIterations; i++) {\n var R = E - e * Math.sin(E);\n if (M > R) {\n E += scale;\n }\n else {\n E -= scale;\n }\n scale /= 2;\n }\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__.CT.r2D(E) * F;\n};\n\nvar CAAKepler$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAKepler\", [CAAKepler, CAAKepler$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/mars.js\":\n/*!*******************************!*\\\n !*** ./esm/astrocalc/mars.js ***!\n \\*******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAMars: () => (/* binding */ CAAMars)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n// Originally `AAMARS.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the heliocentric position of Uranus [sic]\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// Coefficients\n\nconst g_L0MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(620347712, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18656368, 5.050371, 3340.6124267), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1108217, 5.4009984, 6681.2248534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(91798, 5.75479, 10021.83728), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27745, 5.9705, 3.52312), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12316, 0.84956, 2810.92146), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10610, 2.93959, 2281.2305), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8927, 4.157, 0.0173), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8716, 6.1101, 13362.4497), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7775, 3.3397, 5621.8429), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6798, 0.3646, 398.149), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4161, 0.2281, 2942.4634), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3575, 1.6619, 2544.3144), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3075, 0.857, 191.4483), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2938, 6.0789, 0.0673), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2628, 0.6481, 3337.0893), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2580, 0.03, 3344.1355), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2389, 5.039, 796.298), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1799, 0.6563, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1546, 2.9158, 1751.5395), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1528, 1.1498, 6151.5339), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1286, 3.068, 2146.1654), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1264, 3.6228, 5092.152), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1025, 3.6933, 8962.4553), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(892, 0.183, 16703.062), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(859, 2.401, 2914.014), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(833, 4.495, 3340.63), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(833, 2.464, 3340.595), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(749, 3.822, 155.42), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(724, 0.675, 3738.761), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(713, 3.663, 1059.382), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(655, 0.489, 3127.313), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(636, 2.922, 8432.764), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(553, 4.475, 1748.016), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(550, 3.81, 0.98), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(472, 3.625, 1194.447), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(426, 0.554, 6283.076), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(415, 0.497, 213.299), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(312, 0.999, 6677.702), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(307, 0.381, 6684.748), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(302, 4.486, 3532.061), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(299, 2.783, 6254.627), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(293, 4.221, 20.775), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(284, 5.769, 3149.164), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(281, 5.882, 1349.867), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(274, 0.542, 3340.545), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(274, 0.134, 3340.68), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(239, 5.372, 4136.91), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(236, 5.755, 3333.499), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(231, 1.282, 3870.303), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(221, 3.505, 382.897), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(204, 2.821, 1221.849), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(193, 3.357, 3.59), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(189, 1.491, 9492.146), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(179, 1.006, 951.718), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(174, 2.414, 553.569), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(172, 0.439, 5486.778), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(160, 3.949, 4562.461), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(144, 1.419, 135.065), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(140, 3.326, 2700.715), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(138, 4.301, 7.114), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(131, 4.045, 12303.068), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(128, 2.208, 1592.596), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(128, 1.807, 5088.629), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(117, 3.128, 7903.073), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(113, 3.701, 1589.073), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(110, 1.052, 242.729), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(105, 0.785, 8827.39), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(100, 3.243, 11773.377)];\nconst g_L1MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(334085627474, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1458227, 3.6042605, 3340.6124267), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(164901, 3.926313, 6681.224853), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(19963, 4.26594, 10021.83728), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3452, 4.7321, 3.5231), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2485, 4.6128, 13362.4497), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(842, 4.459, 2281.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(538, 5.016, 398.149), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(521, 4.994, 3344.136), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(433, 2.561, 191.448), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(430, 5.316, 155.42), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(382, 3.539, 796.298), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(314, 4.963, 16703.062), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(283, 3.16, 2544.314), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(206, 4.569, 2146.165), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(169, 1.329, 3337.089), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(158, 4.185, 1751.54), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(134, 2.233, 0.98), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(134, 5.974, 1748.016), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(118, 6.024, 6151.534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(117, 2.213, 1059.382), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 2.129, 1194.447), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 5.428, 3738.761), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(91, 1.1, 1349.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(85, 3.91, 553.57), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(83, 5.3, 6684.75), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(81, 4.43, 529.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(80, 2.25, 8962.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(73, 2.5, 951.72), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(73, 5.84, 242.73), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(71, 3.86, 2914.01), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(68, 5.02, 382.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(65, 1.02, 3340.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(65, 3.05, 3340.63), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(62, 4.15, 3149.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(57, 3.89, 4136.91), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(48, 4.87, 213.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(48, 1.18, 3333.5), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(47, 1.31, 3185.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(41, 0.71, 1592.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 2.73, 7.11), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 5.32, 20043.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(33, 5.41, 6283.08), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(28, 0.05, 9492.15), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 3.89, 1221.85), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 5.11, 2700.72)];\nconst g_L2MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(58016, 2.04979, 3340.61243), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(54188, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13908, 2.45742, 6681.22485), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2465, 2.8, 10021.8373), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(398, 3.141, 13362.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(222, 3.194, 3.523), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(121, 0.543, 155.42), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(62, 3.49, 16703.06), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(54, 3.54, 3344.14), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34, 6, 2281.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 4.14, 191.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30, 2, 796.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(23, 4.33, 242.73), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(22, 3.45, 398.15), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 5.42, 553.57), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 0.66, 0.98), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 6.11, 2146.17), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 1.22, 1748.02), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 6.1, 3185.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 4.02, 951.72), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 2.62, 1349.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 0.6, 1194.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 3.86, 6684.75), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 4.72, 2544.31), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 0.25, 382.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 0.68, 1059.38), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 3.83, 20043.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 3.88, 3738.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 5.46, 1751.54), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 2.58, 3149.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 2.38, 4136.91), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 5.48, 1592.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 2.34, 3097.88)];\nconst g_L3MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1482, 0.4443, 3340.6124), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(662, 0.885, 6681.225), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(188, 1.288, 10021.837), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(41, 1.65, 13362.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(23, 2.05, 155.42), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 1.58, 3.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 2, 16703.06), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 2.82, 242.73), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 2.02, 3344.14), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 4.59, 3185.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0.65, 553.57)];\nconst g_L4MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 3.1416, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 5.64, 6681.22), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(24, 5.14, 3340.61), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 6.03, 10021.84), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0.13, 13362.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 3.56, 155.42), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 0.49, 16703.06), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 1.32, 242.73)];\nconst g_L5MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 3.14, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 4.04, 6681.22)];\nconst g_B0MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3197135, 3.7683204, 3340.6124267), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(298033, 4.10617, 6681.224853), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(289105, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(31366, 4.44651, 10021.83728), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3484, 4.7881, 13362.4497), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(443, 5.026, 3344.136), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(443, 5.652, 3337.089), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(399, 5.131, 16703.062), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(293, 3.793, 2281.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(182, 6.136, 6151.534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(163, 4.264, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(160, 2.232, 1059.382), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(149, 2.165, 5621.843), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(143, 1.182, 3340.595), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(143, 3.213, 3340.63), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(139, 2.418, 8962.455)];\nconst g_B1MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(350069, 5.368478, 3340.612427), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14116, 3.14159, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9671, 5.4788, 6681.2249), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1472, 3.2021, 10021.8373), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(426, 3.408, 13362.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(102, 0.776, 3337.089), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(79, 3.72, 16703.06), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(33, 3.46, 5621.84), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 2.48, 2281.23)];\nconst g_B2MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16727, 0.60221, 3340.61243), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4987, 4.1416, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(302, 3.559, 6681.225), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 1.9, 13362.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21, 0.92, 10021.84), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 2.24, 3337.09), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 2.25, 16703.06)];\nconst g_B3MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(607, 1.981, 3340.612), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(43, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 1.8, 6681.22), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 3.45, 10021.84)];\nconst g_B4MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 3.46, 3340.61), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 0.5, 6681.22)];\nconst g_R0MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(153033488, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14184953, 3.47971284, 3340.6124267), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(660776, 3.817834, 6681.224853), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(46179, 4.15595, 10021.83728), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8110, 5.5596, 2810.9215), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7485, 1.7724, 5621.8429), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5523, 1.3644, 2281.2305), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3825, 4.4941, 13362.4497), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2484, 4.9255, 2942.4634), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2307, 0.0908, 2544.3144), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1999, 5.3606, 3337.0893), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1960, 4.7425, 3344.1355), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1167, 2.1126, 5092.152), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1103, 5.0091, 398.149), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(992, 5.839, 6151.534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(899, 4.408, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(807, 2.102, 1059.382), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(798, 3.448, 796.298), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(741, 1.499, 2146.165), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(726, 1.245, 8432.764), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(692, 2.134, 8962.455), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(633, 0.894, 3340.595), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(633, 2.924, 3340.63), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(630, 1.287, 1751.54), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(574, 0.829, 2914.014), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(526, 5.383, 3738.761), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(473, 5.199, 3127.313), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(348, 4.832, 16703.062), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(284, 2.907, 3532.061), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(280, 5.257, 6283.076), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(276, 1.218, 6254.627), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(275, 2.908, 1748.016), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(270, 3.764, 5884.927), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(239, 2.037, 1194.447), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(234, 5.105, 5486.778), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(228, 3.255, 6872.673), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(223, 4.199, 3149.164), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(219, 5.583, 191.448), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(208, 5.255, 3340.545), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(208, 4.846, 3340.68), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(186, 5.699, 6677.702), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(183, 5.081, 6684.748), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(179, 4.184, 3333.499), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(176, 5.953, 3870.303), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(164, 3.799, 4136.91)];\nconst g_R1MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1107433, 2.0325052, 3340.6124267), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(103176, 2.370718, 6681.224853), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12877, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10816, 2.70888, 10021.83728), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1195, 3.047, 13362.4497), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(439, 2.888, 2281.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(396, 3.423, 3344.136), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(183, 1.584, 2544.314), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(136, 3.385, 16703.062), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(128, 6.043, 3337.089), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(128, 0.63, 1059.382), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(127, 1.954, 796.298), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(118, 2.998, 2146.165), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(88, 3.42, 398.15), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(83, 3.86, 3738.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(76, 4.45, 6151.53), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(72, 2.76, 529.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(67, 2.55, 1751.54), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(66, 4.41, 1748.02), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(58, 0.54, 1194.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(54, 0.68, 8962.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(51, 3.73, 6684.75), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(49, 5.73, 3340.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(49, 1.48, 3340.63), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(48, 2.58, 3149.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(48, 2.29, 2914.01), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(39, 2.32, 4136.91)];\nconst g_R2MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(44242, 0.47931, 3340.61243), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8138, 0.87, 6681.2249), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1275, 1.2259, 10021.8373), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(187, 1.573, 13362.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(52, 3.14, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(41, 1.97, 3344.14), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 1.92, 16703.06), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 4.43, 2281.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 4.53, 3185.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 5.39, 1059.38), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 0.42, 796.3)];\nconst g_R3MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1113, 5.1499, 3340.6124), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(424, 5.613, 6681.225), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(100, 5.997, 10021.837), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 0.08, 13362.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 3.14, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0.43, 16703.06)];\nconst g_R4MarsCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 3.58, 3340.61), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 4.05, 6681.22), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 4.46, 10021.84), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 4.84, 13362.45)];\n\n\n// CAAMars\n\nfunction CAAMars() { }\n\nCAAMars.eclipticLongitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var rho5 = rho4 * rho;\n var nL0Coefficients = g_L0MarsCoefficients.length;\n var L0 = 0;\n var i;\n for (i = 0; i < nL0Coefficients; i++) {\n L0 += g_L0MarsCoefficients[i].a * Math.cos(g_L0MarsCoefficients[i].b + g_L0MarsCoefficients[i].c * rho);\n }\n var nL1Coefficients = g_L1MarsCoefficients.length;\n var L1 = 0;\n for (i = 0; i < nL1Coefficients; i++) {\n L1 += g_L1MarsCoefficients[i].a * Math.cos(g_L1MarsCoefficients[i].b + g_L1MarsCoefficients[i].c * rho);\n }\n var nL2Coefficients = g_L2MarsCoefficients.length;\n var L2 = 0;\n for (i = 0; i < nL2Coefficients; i++) {\n L2 += g_L2MarsCoefficients[i].a * Math.cos(g_L2MarsCoefficients[i].b + g_L2MarsCoefficients[i].c * rho);\n }\n var nL3Coefficients = g_L3MarsCoefficients.length;\n var L3 = 0;\n for (i = 0; i < nL3Coefficients; i++) {\n L3 += g_L3MarsCoefficients[i].a * Math.cos(g_L3MarsCoefficients[i].b + g_L3MarsCoefficients[i].c * rho);\n }\n var nL4Coefficients = g_L4MarsCoefficients.length;\n var L4 = 0;\n for (i = 0; i < nL4Coefficients; i++) {\n L4 += g_L4MarsCoefficients[i].a * Math.cos(g_L4MarsCoefficients[i].b + g_L4MarsCoefficients[i].c * rho);\n }\n var nL5Coefficients = g_L5MarsCoefficients.length;\n var L5 = 0;\n for (i = 0; i < nL5Coefficients; i++) {\n L5 += g_L5MarsCoefficients[i].a * Math.cos(g_L5MarsCoefficients[i].b + g_L5MarsCoefficients[i].c * rho);\n }\n var vvalue = (L0 + L1 * rho + L2 * rhosquared + L3 * rhocubed + L4 * rho4 + L5 * rho5) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue));\n return vvalue;\n};\n\nCAAMars.eclipticLatitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nB0Coefficients = g_B0MarsCoefficients.length;\n var B0 = 0;\n var i;\n for (i = 0; i < nB0Coefficients; i++) {\n B0 += g_B0MarsCoefficients[i].a * Math.cos(g_B0MarsCoefficients[i].b + g_B0MarsCoefficients[i].c * rho);\n }\n var nB1Coefficients = g_B1MarsCoefficients.length;\n var B1 = 0;\n for (i = 0; i < nB1Coefficients; i++) {\n B1 += g_B1MarsCoefficients[i].a * Math.cos(g_B1MarsCoefficients[i].b + g_B1MarsCoefficients[i].c * rho);\n }\n var nB2Coefficients = g_B2MarsCoefficients.length;\n var B2 = 0;\n for (i = 0; i < nB2Coefficients; i++) {\n B2 += g_B2MarsCoefficients[i].a * Math.cos(g_B2MarsCoefficients[i].b + g_B2MarsCoefficients[i].c * rho);\n }\n var nB3Coefficients = g_B3MarsCoefficients.length;\n var B3 = 0;\n for (i = 0; i < nB3Coefficients; i++) {\n B3 += g_B3MarsCoefficients[i].a * Math.cos(g_B3MarsCoefficients[i].b + g_B3MarsCoefficients[i].c * rho);\n }\n var nB4Coefficients = g_B4MarsCoefficients.length;\n var B4 = 0;\n for (i = 0; i < nB4Coefficients; i++) {\n B4 += g_B4MarsCoefficients[i].a * Math.cos(g_B4MarsCoefficients[i].b + g_B4MarsCoefficients[i].c * rho);\n }\n var vvalue = (B0 + B1 * rho + B2 * rhosquared + B3 * rhocubed + B4 * rho4) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n return vvalue;\n};\n\nCAAMars.radiusVector = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nR0Coefficients = g_R0MarsCoefficients.length;\n var R0 = 0;\n var i;\n for (i = 0; i < nR0Coefficients; i++) {\n R0 += g_R0MarsCoefficients[i].a * Math.cos(g_R0MarsCoefficients[i].b + g_R0MarsCoefficients[i].c * rho);\n }\n var nR1Coefficients = g_R1MarsCoefficients.length;\n var R1 = 0;\n for (i = 0; i < nR1Coefficients; i++) {\n R1 += g_R1MarsCoefficients[i].a * Math.cos(g_R1MarsCoefficients[i].b + g_R1MarsCoefficients[i].c * rho);\n }\n var nR2Coefficients = g_R2MarsCoefficients.length;\n var R2 = 0;\n for (i = 0; i < nR2Coefficients; i++) {\n R2 += g_R2MarsCoefficients[i].a * Math.cos(g_R2MarsCoefficients[i].b + g_R2MarsCoefficients[i].c * rho);\n }\n var nR3Coefficients = g_R3MarsCoefficients.length;\n var R3 = 0;\n for (i = 0; i < nR3Coefficients; i++) {\n R3 += g_R3MarsCoefficients[i].a * Math.cos(g_R3MarsCoefficients[i].b + g_R3MarsCoefficients[i].c * rho);\n }\n var nR4Coefficients = g_R4MarsCoefficients.length;\n var R4 = 0;\n for (i = 0; i < nR4Coefficients; i++) {\n R4 += g_R4MarsCoefficients[i].a * Math.cos(g_R4MarsCoefficients[i].b + g_R4MarsCoefficients[i].c * rho);\n }\n return (R0 + R1 * rho + R2 * rhosquared + R3 * rhocubed + R4 * rho4) / 100000000;\n};\n\nvar CAAMars$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAMars\", [CAAMars, CAAMars$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/mercury.js\":\n/*!**********************************!*\\\n !*** ./esm/astrocalc/mercury.js ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAMercury: () => (/* binding */ CAAMercury)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n// Originally `AAMERCURY.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the heliocentric position of Mercury\"\n// Last update of original: PJN / 12-05-2006\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// Coefficients\n\nconst g_L0MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(440250710, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40989415, 1.48302034, 26087.90314157), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5046294, 4.47785449, 52175.8062831), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(855347, 1.165203, 78263.709425), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(165590, 4.119692, 104351.612566), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34562, 0.77931, 130439.51571), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7583, 3.7135, 156527.4188), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3560, 1.512, 1109.3786), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1803, 4.1033, 5661.332), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1726, 0.3583, 182615.322), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1590, 2.9951, 25028.5212), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1365, 4.5992, 27197.2817), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1017, 0.8803, 31749.2352), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(714, 1.541, 24978.525), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(644, 5.303, 21535.95), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(451, 6.05, 51116.424), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(404, 3.282, 208703.225), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(352, 5.242, 20426.571), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(345, 2.792, 15874.618), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(343, 5.765, 955.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(339, 5.863, 25558.212), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(325, 1.337, 53285.185), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(273, 2.495, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(264, 3.917, 57837.138), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(260, 0.987, 4551.953), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(239, 0.113, 1059.382), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(235, 0.267, 11322.664), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(217, 0.66, 13521.751), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(209, 2.092, 47623.853), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(183, 2.629, 27043.503), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(182, 2.434, 25661.305), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(176, 4.536, 51066.428), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(173, 2.452, 24498.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(142, 3.36, 37410.567), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(138, 0.291, 10213.286), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(125, 3.721, 39609.655), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(118, 2.781, 77204.327), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(106, 4.206, 19804.827)];\nconst g_L1MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2608814706223, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1126008, 6.2170397, 26087.9031416), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(303471, 3.055655, 52175.806283), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(80538, 6.10455, 78263.70942), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21245, 2.83532, 104351.61257), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5592, 5.8268, 130439.5157), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1472, 2.5185, 156527.4188), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(388, 5.48, 182615.322), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(352, 3.052, 1109.379), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(103, 2.149, 208703.225), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(94, 6.12, 27197.28), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(91, 0, 24978.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(52, 5.62, 5661.33), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(44, 4.57, 25028.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(28, 3.04, 51066.43), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 5.09, 234791.13)];\nconst g_L2MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(53050, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16904, 4.69072, 26087.90314), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7397, 1.3474, 52175.8063), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3018, 4.4564, 78263.7094), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1107, 1.264, 104351.6126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(378, 4.32, 130439.516), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(123, 1.069, 156527.419), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(39, 4.08, 182615.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 4.63, 1109.38), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 0.79, 208703.23)];\nconst g_L3MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(188, 0.035, 52175.806), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(142, 3.125, 26087.903), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(97, 3, 78263.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(44, 6.02, 104351.61), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(35, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 2.78, 130439.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 5.82, 156527.42), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 2.57, 182615.32)];\nconst g_L4MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 3.1416, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 2.03, 26087.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 1.42, 78263.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 4.5, 52175.81), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 4.5, 104351.61), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 1.27, 130439.52)];\nconst g_L5MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 3.14, 0)];\nconst g_B0MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11737529, 1.98357499, 26087.90314157), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2388077, 5.0373896, 52175.8062831), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1222840, 3.1415927, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(543252, 1.796444, 78263.709425), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(129779, 4.832325, 104351.612566), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(31867, 1.58088, 130439.51571), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7963, 4.6097, 156527.4188), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2014, 1.3532, 182615.322), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(514, 4.378, 208703.325), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(209, 2.02, 24978.525), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(208, 4.918, 27197.282), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(132, 1.119, 234791.128), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(121, 1.813, 53285.185), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(100, 5.657, 20426.571)];\nconst g_B1MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(429151, 3.501698, 26087.903142), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(146234, 3.141593, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(22675, 0.01515, 52175.80628), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10895, 0.4854, 78263.70942), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6353, 3.4294, 104351.6126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2496, 0.1605, 130439.5157), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(860, 3.185, 156527.419), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(278, 6.21, 182615.322), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(86, 2.95, 208703.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(28, 0.29, 27197.28), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 5.98, 234791.13)];\nconst g_B2MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11831, 4.79066, 26087.90314), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1914, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1045, 1.2122, 52175.8063), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(266, 4.434, 78263.709), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(170, 1.623, 104351.613), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(96, 4.8, 130439.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(45, 1.61, 156527.42), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 4.67, 182615.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 1.43, 208703.23)];\nconst g_B3MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(235, 0.354, 26087.903), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(161, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(19, 4.36, 52175.81), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 2.51, 78263.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 6.14, 104351.61), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 3.12, 130439.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 6.27, 156527.42)];\nconst g_B4MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 1.75, 26087.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 3.14, 0)];\nconst g_R0MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(39528272, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7834132, 6.1923372, 26087.9031416), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(795526, 2.959897, 52175.806283), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(121282, 6.010642, 78263.709425), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21922, 2.7782, 104351.61257), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4354, 5.8289, 130439.5157), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(918, 2.597, 156527.419), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(290, 1.424, 25028.521), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(260, 3.028, 27197.282), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(202, 5.647, 182615.322), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(201, 5.592, 31749.235), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(142, 6.253, 24978.525), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(100, 3.734, 21535.95)];\nconst g_R1MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(217348, 4.656172, 26087.903142), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(44142, 1.42386, 52175.80628), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10094, 4.47466, 78263.70942), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2433, 1.2423, 104351.6126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1624, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(604, 4.293, 130439.516), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(153, 1.061, 156527.419), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(39, 4.11, 182615.32)];\nconst g_R2MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3118, 3.0823, 26087.9031), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1245, 6.1518, 52175.8063), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(425, 2.926, 78263.709), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(136, 5.98, 104351.613), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(42, 2.75, 130439.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(22, 3.14, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 5.8, 156527.42)];\nconst g_R3MercuryCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(33, 1.68, 26087.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(24, 4.63, 52175.81), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 1.39, 78263.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 4.44, 104351.61), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 1.21, 130439.52)];\n\n\n// CAAMercury\n\nfunction CAAMercury() { }\n\nCAAMercury.eclipticLongitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var rho5 = rho4 * rho;\n var nL0Coefficients = g_L0MercuryCoefficients.length;\n var L0 = 0;\n var i;\n for (i = 0; i < nL0Coefficients; i++) {\n L0 += g_L0MercuryCoefficients[i].a * Math.cos(g_L0MercuryCoefficients[i].b + g_L0MercuryCoefficients[i].c * rho);\n }\n var nL1Coefficients = g_L1MercuryCoefficients.length;\n var L1 = 0;\n for (i = 0; i < nL1Coefficients; i++) {\n L1 += g_L1MercuryCoefficients[i].a * Math.cos(g_L1MercuryCoefficients[i].b + g_L1MercuryCoefficients[i].c * rho);\n }\n var nL2Coefficients = g_L2MercuryCoefficients.length;\n var L2 = 0;\n for (i = 0; i < nL2Coefficients; i++) {\n L2 += g_L2MercuryCoefficients[i].a * Math.cos(g_L2MercuryCoefficients[i].b + g_L2MercuryCoefficients[i].c * rho);\n }\n var nL3Coefficients = g_L3MercuryCoefficients.length;\n var L3 = 0;\n for (i = 0; i < nL3Coefficients; i++) {\n L3 += g_L3MercuryCoefficients[i].a * Math.cos(g_L3MercuryCoefficients[i].b + g_L3MercuryCoefficients[i].c * rho);\n }\n var nL4Coefficients = g_L4MercuryCoefficients.length;\n var L4 = 0;\n for (i = 0; i < nL4Coefficients; i++) {\n L4 += g_L4MercuryCoefficients[i].a * Math.cos(g_L4MercuryCoefficients[i].b + g_L4MercuryCoefficients[i].c * rho);\n }\n var nL5Coefficients = g_L5MercuryCoefficients.length;\n var L5 = 0;\n for (i = 0; i < nL5Coefficients; i++) {\n L5 += g_L5MercuryCoefficients[i].a * Math.cos(g_L5MercuryCoefficients[i].b + g_L5MercuryCoefficients[i].c * rho);\n }\n var vvalue = (L0 + L1 * rho + L2 * rhosquared + L3 * rhocubed + L4 * rho4 + L5 * rho5) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue));\n return vvalue;\n};\n\nCAAMercury.eclipticLatitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nB0Coefficients = g_B0MercuryCoefficients.length;\n var B0 = 0;\n var i;\n for (i = 0; i < nB0Coefficients; i++) {\n B0 += g_B0MercuryCoefficients[i].a * Math.cos(g_B0MercuryCoefficients[i].b + g_B0MercuryCoefficients[i].c * rho);\n }\n var nB1Coefficients = g_B1MercuryCoefficients.length;\n var B1 = 0;\n for (i = 0; i < nB1Coefficients; i++) {\n B1 += g_B1MercuryCoefficients[i].a * Math.cos(g_B1MercuryCoefficients[i].b + g_B1MercuryCoefficients[i].c * rho);\n }\n var nB2Coefficients = g_B2MercuryCoefficients.length;\n var B2 = 0;\n for (i = 0; i < nB2Coefficients; i++) {\n B2 += g_B2MercuryCoefficients[i].a * Math.cos(g_B2MercuryCoefficients[i].b + g_B2MercuryCoefficients[i].c * rho);\n }\n var nB3Coefficients = g_B3MercuryCoefficients.length;\n var B3 = 0;\n for (i = 0; i < nB3Coefficients; i++) {\n B3 += g_B3MercuryCoefficients[i].a * Math.cos(g_B3MercuryCoefficients[i].b + g_B3MercuryCoefficients[i].c * rho);\n }\n var nB4Coefficients = g_B4MercuryCoefficients.length;\n var B4 = 0;\n for (i = 0; i < nB4Coefficients; i++) {\n B4 += g_B4MercuryCoefficients[i].a * Math.cos(g_B4MercuryCoefficients[i].b + g_B4MercuryCoefficients[i].c * rho);\n }\n var vvalue = (B0 + B1 * rho + B2 * rhosquared + B3 * rhocubed + B4 * rho4) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n return vvalue;\n};\n\nCAAMercury.radiusVector = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var nR0Coefficients = g_R0MercuryCoefficients.length;\n var R0 = 0;\n var i;\n for (i = 0; i < nR0Coefficients; i++) {\n R0 += g_R0MercuryCoefficients[i].a * Math.cos(g_R0MercuryCoefficients[i].b + g_R0MercuryCoefficients[i].c * rho);\n }\n var nR1Coefficients = g_R1MercuryCoefficients.length;\n var R1 = 0;\n for (i = 0; i < nR1Coefficients; i++) {\n R1 += g_R1MercuryCoefficients[i].a * Math.cos(g_R1MercuryCoefficients[i].b + g_R1MercuryCoefficients[i].c * rho);\n }\n var nR2Coefficients = g_R2MercuryCoefficients.length;\n var R2 = 0;\n for (i = 0; i < nR2Coefficients; i++) {\n R2 += g_R2MercuryCoefficients[i].a * Math.cos(g_R2MercuryCoefficients[i].b + g_R2MercuryCoefficients[i].c * rho);\n }\n var nR3Coefficients = g_R3MercuryCoefficients.length;\n var R3 = 0;\n for (i = 0; i < nR3Coefficients; i++) {\n R3 += g_R3MercuryCoefficients[i].a * Math.cos(g_R3MercuryCoefficients[i].b + g_R3MercuryCoefficients[i].c * rho);\n }\n return (R0 + R1 * rho + R2 * rhosquared + R3 * rhocubed) / 100000000;\n};\n\nvar CAAMercury$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAMercury\", [CAAMercury, CAAMercury$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/moon.js\":\n/*!*******************************!*\\\n !*** ./esm/astrocalc/moon.js ***!\n \\*******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAMoon: () => (/* binding */ CAAMoon),\n/* harmony export */ MoonCoefficient1: () => (/* binding */ MoonCoefficient1),\n/* harmony export */ MoonCoefficient2: () => (/* binding */ MoonCoefficient2)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n/* harmony import */ var _nutation_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nutation.js */ \"./esm/astrocalc/nutation.js\");\n// Originally `AAABERRATION.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the position of the Moon\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n// MoonCoefficient1\n\nfunction MoonCoefficient1(d, m, mdash, f) {\n this.d = 0;\n this.m = 0;\n this.mdash = 0;\n this.f = 0;\n this.d = d;\n this.m = m;\n this.mdash = mdash;\n this.f = f;\n}\n\nvar MoonCoefficient1$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"MoonCoefficient1\", [MoonCoefficient1, MoonCoefficient1$, null]);\n\n\n// MoonCoefficient2\n\nfunction MoonCoefficient2(a, b) {\n this.a = 0;\n this.b = 0;\n this.a = a;\n this.b = b;\n}\n\nvar MoonCoefficient2$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"MoonCoefficient2\", [MoonCoefficient2, MoonCoefficient2$, null]);\n\n\n// Constants\n\nconst g_MoonCoefficients1 = [new MoonCoefficient1(0, 0, 1, 0), new MoonCoefficient1(2, 0, -1, 0), new MoonCoefficient1(2, 0, 0, 0), new MoonCoefficient1(0, 0, 2, 0), new MoonCoefficient1(0, 1, 0, 0), new MoonCoefficient1(0, 0, 0, 2), new MoonCoefficient1(2, 0, -2, 0), new MoonCoefficient1(2, -1, -1, 0), new MoonCoefficient1(2, 0, 1, 0), new MoonCoefficient1(2, -1, 0, 0), new MoonCoefficient1(0, 1, -1, 0), new MoonCoefficient1(1, 0, 0, 0), new MoonCoefficient1(0, 1, 1, 0), new MoonCoefficient1(2, 0, 0, -2), new MoonCoefficient1(0, 0, 1, 2), new MoonCoefficient1(0, 0, 1, -2), new MoonCoefficient1(4, 0, -1, 0), new MoonCoefficient1(0, 0, 3, 0), new MoonCoefficient1(4, 0, -2, 0), new MoonCoefficient1(2, 1, -1, 0), new MoonCoefficient1(2, 1, 0, 0), new MoonCoefficient1(1, 0, -1, 0), new MoonCoefficient1(1, 1, 0, 0), new MoonCoefficient1(2, -1, 1, 0), new MoonCoefficient1(2, 0, 2, 0), new MoonCoefficient1(4, 0, 0, 0), new MoonCoefficient1(2, 0, -3, 0), new MoonCoefficient1(0, 1, -2, 0), new MoonCoefficient1(2, 0, -1, 2), new MoonCoefficient1(2, -1, -2, 0), new MoonCoefficient1(1, 0, 1, 0), new MoonCoefficient1(2, -2, 0, 0), new MoonCoefficient1(0, 1, 2, 0), new MoonCoefficient1(0, 2, 0, 0), new MoonCoefficient1(2, -2, -1, 0), new MoonCoefficient1(2, 0, 1, -2), new MoonCoefficient1(2, 0, 0, 2), new MoonCoefficient1(4, -1, -1, 0), new MoonCoefficient1(0, 0, 2, 2), new MoonCoefficient1(3, 0, -1, 0), new MoonCoefficient1(2, 1, 1, 0), new MoonCoefficient1(4, -1, -2, 0), new MoonCoefficient1(0, 2, -1, 0), new MoonCoefficient1(2, 2, -1, 0), new MoonCoefficient1(2, 1, -2, 0), new MoonCoefficient1(2, -1, 0, -2), new MoonCoefficient1(4, 0, 1, 0), new MoonCoefficient1(0, 0, 4, 0), new MoonCoefficient1(4, -1, 0, 0), new MoonCoefficient1(1, 0, -2, 0), new MoonCoefficient1(2, 1, 0, -2), new MoonCoefficient1(0, 0, 2, -2), new MoonCoefficient1(1, 1, 1, 0), new MoonCoefficient1(3, 0, -2, 0), new MoonCoefficient1(4, 0, -3, 0), new MoonCoefficient1(2, -1, 2, 0), new MoonCoefficient1(0, 2, 1, 0), new MoonCoefficient1(1, 1, -1, 0), new MoonCoefficient1(2, 0, 3, 0), new MoonCoefficient1(2, 0, -1, -2)];\nconst g_MoonCoefficients2 = [new MoonCoefficient2(6288774, -20905355), new MoonCoefficient2(1274027, -3699111), new MoonCoefficient2(658314, -2955968), new MoonCoefficient2(213618, -569925), new MoonCoefficient2(-185116, 48888), new MoonCoefficient2(-114332, -3149), new MoonCoefficient2(58793, 246158), new MoonCoefficient2(57066, -152138), new MoonCoefficient2(53322, -170733), new MoonCoefficient2(45758, -204586), new MoonCoefficient2(-40923, -129620), new MoonCoefficient2(-34720, 108743), new MoonCoefficient2(-30383, 104755), new MoonCoefficient2(15327, 10321), new MoonCoefficient2(-12528, 0), new MoonCoefficient2(10980, 79661), new MoonCoefficient2(10675, -34782), new MoonCoefficient2(10034, -23210), new MoonCoefficient2(8548, -21636), new MoonCoefficient2(-7888, 24208), new MoonCoefficient2(-6766, 30824), new MoonCoefficient2(-5163, -8379), new MoonCoefficient2(4987, -16675), new MoonCoefficient2(4036, -12831), new MoonCoefficient2(3994, -10445), new MoonCoefficient2(3861, -11650), new MoonCoefficient2(3665, 14403), new MoonCoefficient2(-2689, -7003), new MoonCoefficient2(-2602, 0), new MoonCoefficient2(2390, 10056), new MoonCoefficient2(-2348, 6322), new MoonCoefficient2(2236, -9884), new MoonCoefficient2(-2120, 5751), new MoonCoefficient2(-2069, 0), new MoonCoefficient2(2048, -4950), new MoonCoefficient2(-1773, 4130), new MoonCoefficient2(-1595, 0), new MoonCoefficient2(1215, -3958), new MoonCoefficient2(-1110, 0), new MoonCoefficient2(-892, 3258), new MoonCoefficient2(-810, 2616), new MoonCoefficient2(759, -1897), new MoonCoefficient2(-713, -2117), new MoonCoefficient2(-700, 2354), new MoonCoefficient2(691, 0), new MoonCoefficient2(596, 0), new MoonCoefficient2(549, -1423), new MoonCoefficient2(537, -1117), new MoonCoefficient2(520, -1571), new MoonCoefficient2(-487, -1739), new MoonCoefficient2(-399, 0), new MoonCoefficient2(-381, -4421), new MoonCoefficient2(351, 0), new MoonCoefficient2(-340, 0), new MoonCoefficient2(330, 0), new MoonCoefficient2(327, 0), new MoonCoefficient2(-323, 1165), new MoonCoefficient2(299, 0), new MoonCoefficient2(294, 0), new MoonCoefficient2(0, 8752)];\nconst g_MoonCoefficients3 = [new MoonCoefficient1(0, 0, 0, 1), new MoonCoefficient1(0, 0, 1, 1), new MoonCoefficient1(0, 0, 1, -1), new MoonCoefficient1(2, 0, 0, -1), new MoonCoefficient1(2, 0, -1, 1), new MoonCoefficient1(2, 0, -1, -1), new MoonCoefficient1(2, 0, 0, 1), new MoonCoefficient1(0, 0, 2, 1), new MoonCoefficient1(2, 0, 1, -1), new MoonCoefficient1(0, 0, 2, -1), new MoonCoefficient1(2, -1, 0, -1), new MoonCoefficient1(2, 0, -2, -1), new MoonCoefficient1(2, 0, 1, 1), new MoonCoefficient1(2, 1, 0, -1), new MoonCoefficient1(2, -1, -1, 1), new MoonCoefficient1(2, -1, 0, 1), new MoonCoefficient1(2, -1, -1, -1), new MoonCoefficient1(0, 1, -1, -1), new MoonCoefficient1(4, 0, -1, -1), new MoonCoefficient1(0, 1, 0, 1), new MoonCoefficient1(0, 0, 0, 3), new MoonCoefficient1(0, 1, -1, 1), new MoonCoefficient1(1, 0, 0, 1), new MoonCoefficient1(0, 1, 1, 1), new MoonCoefficient1(0, 1, 1, -1), new MoonCoefficient1(0, 1, 0, -1), new MoonCoefficient1(1, 0, 0, -1), new MoonCoefficient1(0, 0, 3, 1), new MoonCoefficient1(4, 0, 0, -1), new MoonCoefficient1(4, 0, -1, 1), new MoonCoefficient1(0, 0, 1, -3), new MoonCoefficient1(4, 0, -2, 1), new MoonCoefficient1(2, 0, 0, -3), new MoonCoefficient1(2, 0, 2, -1), new MoonCoefficient1(2, -1, 1, -1), new MoonCoefficient1(2, 0, -2, 1), new MoonCoefficient1(0, 0, 3, -1), new MoonCoefficient1(2, 0, 2, 1), new MoonCoefficient1(2, 0, -3, -1), new MoonCoefficient1(2, 1, -1, 1), new MoonCoefficient1(2, 1, 0, 1), new MoonCoefficient1(4, 0, 0, 1), new MoonCoefficient1(2, -1, 1, 1), new MoonCoefficient1(2, -2, 0, -1), new MoonCoefficient1(0, 0, 1, 3), new MoonCoefficient1(2, 1, 1, -1), new MoonCoefficient1(1, 1, 0, -1), new MoonCoefficient1(1, 1, 0, 1), new MoonCoefficient1(0, 1, -2, -1), new MoonCoefficient1(2, 1, -1, -1), new MoonCoefficient1(1, 0, 1, 1), new MoonCoefficient1(2, -1, -2, -1), new MoonCoefficient1(0, 1, 2, 1), new MoonCoefficient1(4, 0, -2, -1), new MoonCoefficient1(4, -1, -1, -1), new MoonCoefficient1(1, 0, 1, -1), new MoonCoefficient1(4, 0, 1, -1), new MoonCoefficient1(1, 0, -1, -1), new MoonCoefficient1(4, -1, 0, -1), new MoonCoefficient1(2, -2, 0, 1)];\nconst g_MoonCoefficients4 = [5128122, 280602, 277693, 173237, 55413, 46271, 32573, 17198, 9266, 8822, 8216, 4324, 4200, -3359, 2463, 2211, 2065, -1870, 1828, -1794, -1749, -1565, -1491, -1475, -1410, -1344, -1335, 1107, 1021, 833, 777, 671, 607, 596, 491, -451, 439, 422, 421, -366, -351, 331, 315, 302, -283, -229, 223, 223, -220, -220, -185, 181, -177, 176, 166, -164, 132, -119, 115, 107];\n\n\n// CAAMoon\n\nfunction CAAMoon() { }\n\nCAAMoon.meanLongitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(218.3164477 + 481267.88123421 * T - 0.0015786 * Tsquared + Tcubed / 538841 - T4 / 65194000);\n};\n\nCAAMoon.meanElongation = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(297.8501921 + 445267.1114034 * T - 0.0018819 * Tsquared + Tcubed / 545868 - T4 / 113065000);\n};\n\nCAAMoon.meanAnomaly = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(134.9633964 + 477198.8675055 * T + 0.0087414 * Tsquared + Tcubed / 69699 - T4 / 14712000);\n};\n\nCAAMoon.argumentOfLatitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(93.272095 + 483202.0175233 * T - 0.0036539 * Tsquared - Tcubed / 3526000 + T4 / 863310000);\n};\n\nCAAMoon.meanLongitudeAscendingNode = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(125.0445479 - 1934.1362891 * T + 0.0020754 * Tsquared + Tcubed / 467441 - T4 / 60616000);\n};\n\nCAAMoon.meanLongitudePerigee = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(83.3532465 + 4069.0137287 * T - 0.01032 * Tsquared - Tcubed / 80053 + T4 / 18999000);\n};\n\nCAAMoon.trueLongitudeAscendingNode = function (JD) {\n var TrueAscendingNode = CAAMoon.meanLongitudeAscendingNode(JD);\n var D = CAAMoon.meanElongation(JD);\n D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(D);\n var M = _earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.sunMeanAnomaly(JD);\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(M);\n var Mdash = CAAMoon.meanAnomaly(JD);\n Mdash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Mdash);\n var F = CAAMoon.argumentOfLatitude(JD);\n F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(F);\n TrueAscendingNode -= 1.4979 * Math.sin(2 * (D - F));\n TrueAscendingNode -= 0.15 * Math.sin(M);\n TrueAscendingNode -= 0.1226 * Math.sin(2 * D);\n TrueAscendingNode += 0.1176 * Math.sin(2 * F);\n TrueAscendingNode -= 0.0801 * Math.sin(2 * (Mdash - F));\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(TrueAscendingNode);\n};\n\nCAAMoon.eclipticLongitude = function (JD) {\n var Ldash = CAAMoon.meanLongitude(JD);\n var LdashDegrees = Ldash;\n Ldash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Ldash);\n var D = CAAMoon.meanElongation(JD);\n D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(D);\n var M = _earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.sunMeanAnomaly(JD);\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(M);\n var Mdash = CAAMoon.meanAnomaly(JD);\n Mdash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Mdash);\n var F = CAAMoon.argumentOfLatitude(JD);\n F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(F);\n var E = _earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.eccentricity(JD);\n var T = (JD - 2451545) / 36525;\n var A1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(119.75 + 131.849 * T);\n A1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A1);\n var A2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(53.09 + 479264.29 * T);\n A2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A2);\n var A3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(313.45 + 481266.484 * T);\n A3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A3);\n var nLCoefficients = g_MoonCoefficients1.length;\n console.assert(g_MoonCoefficients2.length === nLCoefficients);\n var SigmaL = 0;\n for (var i = 0; i < nLCoefficients; i++) {\n var ThisSigma = g_MoonCoefficients2[i].a * Math.sin(g_MoonCoefficients1[i].d * D + g_MoonCoefficients1[i].m * M + g_MoonCoefficients1[i].mdash * Mdash + g_MoonCoefficients1[i].f * F);\n if (!!g_MoonCoefficients1[i].m) {\n ThisSigma *= E;\n }\n SigmaL += ThisSigma;\n }\n SigmaL += 3958 * Math.sin(A1);\n SigmaL += 1962 * Math.sin(Ldash - F);\n SigmaL += 318 * Math.sin(A2);\n var NutationInLong = _nutation_js__WEBPACK_IMPORTED_MODULE_3__.CAANutation.nutationInLongitude(JD);\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(LdashDegrees + SigmaL / 1000000 + NutationInLong / 3600);\n};\n\nCAAMoon.eclipticLatitude = function (JD) {\n var Ldash = CAAMoon.meanLongitude(JD);\n Ldash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Ldash);\n var D = CAAMoon.meanElongation(JD);\n D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(D);\n var M = _earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.sunMeanAnomaly(JD);\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(M);\n var Mdash = CAAMoon.meanAnomaly(JD);\n Mdash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Mdash);\n var F = CAAMoon.argumentOfLatitude(JD);\n F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(F);\n var E = _earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.eccentricity(JD);\n var T = (JD - 2451545) / 36525;\n var A1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(119.75 + 131.849 * T);\n A1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A1);\n var A2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(53.09 + 479264.29 * T);\n A2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A2);\n var A3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(313.45 + 481266.484 * T);\n A3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A3);\n var nBCoefficients = g_MoonCoefficients3.length;\n console.assert(g_MoonCoefficients4.length === nBCoefficients);\n var SigmaB = 0;\n for (var i = 0; i < nBCoefficients; i++) {\n var ThisSigma = g_MoonCoefficients4[i] * Math.sin(g_MoonCoefficients3[i].d * D + g_MoonCoefficients3[i].m * M + g_MoonCoefficients3[i].mdash * Mdash + g_MoonCoefficients3[i].f * F);\n if (!!g_MoonCoefficients3[i].m) {\n ThisSigma *= E;\n }\n SigmaB += ThisSigma;\n }\n SigmaB -= 2235 * Math.sin(Ldash);\n SigmaB += 382 * Math.sin(A3);\n SigmaB += 175 * Math.sin(A1 - F);\n SigmaB += 175 * Math.sin(A1 + F);\n SigmaB += 127 * Math.sin(Ldash - Mdash);\n SigmaB -= 115 * Math.sin(Ldash + Mdash);\n return SigmaB / 1000000;\n};\n\nCAAMoon.radiusVector = function (JD) {\n var Ldash = CAAMoon.meanLongitude(JD);\n Ldash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Ldash);\n var D = CAAMoon.meanElongation(JD);\n D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(D);\n var M = _earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.sunMeanAnomaly(JD);\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(M);\n var Mdash = CAAMoon.meanAnomaly(JD);\n Mdash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Mdash);\n var F = CAAMoon.argumentOfLatitude(JD);\n F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(F);\n var E = _earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.eccentricity(JD);\n var T = (JD - 2451545) / 36525;\n var A1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(119.75 + 131.849 * T);\n A1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A1);\n var A2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(53.09 + 479264.29 * T);\n A2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A2);\n var A3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(313.45 + 481266.484 * T);\n A3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A3);\n var nRCoefficients = g_MoonCoefficients1.length;\n console.assert(g_MoonCoefficients2.length === nRCoefficients);\n var SigmaR = 0;\n for (var i = 0; i < nRCoefficients; i++) {\n var ThisSigma = g_MoonCoefficients2[i].b * Math.cos(g_MoonCoefficients1[i].d * D + g_MoonCoefficients1[i].m * M + g_MoonCoefficients1[i].mdash * Mdash + g_MoonCoefficients1[i].f * F);\n if (!!g_MoonCoefficients1[i].m) {\n ThisSigma *= E;\n }\n SigmaR += ThisSigma;\n }\n return 385000.56 + SigmaR / 1000;\n};\n\nCAAMoon.radiusVectorToHorizontalParallax = function (RadiusVector) {\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.asin(6378.14 / RadiusVector));\n};\n\nCAAMoon.horizontalParallaxToRadiusVector = function (Parallax) {\n return 6378.14 / Math.sin(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Parallax));\n};\n\nvar CAAMoon$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAMoon\", [CAAMoon, CAAMoon$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/moon_illuminated_fraction.js\":\n/*!****************************************************!*\\\n !*** ./esm/astrocalc/moon_illuminated_fraction.js ***!\n \\****************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MIFR: () => (/* binding */ MIFR)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAMOONILLUMINATEDFRACTION.CPP`\n// \"Purpose: Implementation for the algorithms for the Moon's Elongation, Phase Angle and Illuminated Fraction\"\n// Last update of original: PJN / 26-01-2007\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// MIFR\n\nfunction MIFR() {\n}\n\nMIFR.geocentricElongation = function (ObjectAlpha, ObjectDelta, SunAlpha, SunDelta) {\n ObjectAlpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(ObjectAlpha * 15);\n SunAlpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(SunAlpha * 15);\n ObjectDelta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(ObjectDelta);\n SunDelta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(SunDelta);\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.acos(Math.sin(SunDelta) * Math.sin(ObjectDelta) + Math.cos(SunDelta) * Math.cos(ObjectDelta) * Math.cos(SunAlpha - ObjectAlpha)));\n};\n\nMIFR.phaseAngle = function (GeocentricElongation, EarthObjectDistance, EarthSunDistance) {\n GeocentricElongation = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(GeocentricElongation);\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.atan2(EarthSunDistance * Math.sin(GeocentricElongation), EarthObjectDistance - EarthSunDistance * Math.cos(GeocentricElongation))));\n};\n\nMIFR.illuminatedFraction = function (PhaseAngle) {\n PhaseAngle = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(PhaseAngle);\n return (1 + Math.cos(PhaseAngle)) / 2;\n};\n\nMIFR.positionAngle = function (Alpha0, Delta0, Alpha, Delta) {\n Alpha0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha0);\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha);\n Delta0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta0);\n Delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta);\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.atan2(Math.cos(Delta0) * Math.sin(Alpha0 - Alpha), Math.sin(Delta0) * Math.cos(Delta) - Math.cos(Delta0) * Math.sin(Delta) * Math.cos(Alpha0 - Alpha))));\n};\n\nvar MIFR$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"MIFR\", [MIFR, MIFR$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/moon_nodes.js\":\n/*!*************************************!*\\\n !*** ./esm/astrocalc/moon_nodes.js ***!\n \\*************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAMoonNodes: () => (/* binding */ CAAMoonNodes)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAMOONNODES.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the dates when the Moon passes thro its nodes\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// CAAMoonNodes\n\nfunction CAAMoonNodes() { }\n\nCAAMoonNodes.k = function (Year) {\n return 13.4223 * (Year - 2000.05);\n};\n\nCAAMoonNodes.passageThroNode = function (k) {\n var T = k / 1342.23;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n var D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(183.638 + 331.73735682 * k + 0.0014852 * Tsquared + 2.09E-06 * Tcubed - 1E-08 * T4);\n var M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(17.4006 + 26.8203725 * k + 0.0001186 * Tsquared + 6E-08 * Tcubed);\n var Mdash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(38.3776 + 355.52747313 * k + 0.0123499 * Tsquared + 1.4627E-05 * Tcubed - 6.9E-08 * T4);\n var omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(123.9767 - 1.44098956 * k + 0.0020608 * Tsquared + 2.14E-06 * Tcubed - 1.6E-08 * T4);\n var V = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(299.75 + 132.85 * T - 0.009173 * Tsquared);\n var P = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(omega + 272.75 - 2.3 * T);\n var E = 1 - 0.002516 * T - 7.4E-06 * Tsquared;\n D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(D);\n var D2 = 2 * D;\n var D4 = D2 * D2;\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(M);\n Mdash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Mdash);\n var Mdash2 = 2 * Mdash;\n omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(omega);\n V = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(V);\n P = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(P);\n var JD = 2451565.1619 + 27.212220817 * k + 0.0002762 * Tsquared + 2.1E-08 * Tcubed - 8.8E-11 * T4 - 0.4721 * Math.sin(Mdash) - 0.1649 * Math.sin(D2) - 0.0868 * Math.sin(D2 - Mdash) + 0.0084 * Math.sin(D2 + Mdash) - E * 0.0083 * Math.sin(D2 - M) - E * 0.0039 * Math.sin(D2 - M - Mdash) + 0.0034 * Math.sin(Mdash2) - 0.0031 * Math.sin(D2 - Mdash2) + E * 0.003 * Math.sin(D2 + M) + E * 0.0028 * Math.sin(M - Mdash) + E * 0.0026 * Math.sin(M) + 0.0025 * Math.sin(D4) + 0.0024 * Math.sin(D) + E * 0.0022 * Math.sin(M + Mdash) + 0.0017 * Math.sin(omega) + 0.0014 * Math.sin(D4 - Mdash) + E * 0.0005 * Math.sin(D2 + M - Mdash) + E * 0.0004 * Math.sin(D2 - M + Mdash) - E * 0.0003 * Math.sin(D2 - M * M) + E * 0.0003 * Math.sin(D4 - M) + 0.0003 * Math.sin(V) + 0.0003 * Math.sin(P);\n return JD;\n};\n\nvar CAAMoonNodes$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAMoonNodes\", [CAAMoonNodes, CAAMoonNodes$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/moon_perigee_apogee.js\":\n/*!**********************************************!*\\\n !*** ./esm/astrocalc/moon_perigee_apogee.js ***!\n \\**********************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAMoonPerigeeApogee: () => (/* binding */ CAAMoonPerigeeApogee),\n/* harmony export */ MPAC: () => (/* binding */ MPAC)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAMOONPERIGEEAPOGEE.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the dates of Lunar Apogee and Perigee\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// MPAC - was MoonPerigeeApogeeCoefficient\n\nfunction MPAC(D, M, F, C, T) {\n this.d = 0;\n this.m = 0;\n this.f = 0;\n this.c = 0;\n this.t = 0;\n this.d = D;\n this.m = M;\n this.f = F;\n this.c = C;\n this.t = T;\n}\n\nvar MPAC$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"MPAC\", [MPAC, MPAC$, null]);\n\n\n// Constants\n\nconst g_MoonPerigeeApogeeCoefficients1 = [new MPAC(2, 0, 0, -1.6769, 0), new MPAC(4, 0, 0, 0.4589, 0), new MPAC(6, 0, 0, -0.1856, 0), new MPAC(8, 0, 0, 0.0883, 0), new MPAC(2, -1, 0, -0.0773, 0.00019), new MPAC(0, 1, 0, 0.0502, -0.00013), new MPAC(10, 0, 0, -0.046, 0), new MPAC(4, -1, 0, 0.0422, -0.00011), new MPAC(6, -1, 0, -0.0256, 0), new MPAC(12, 0, 0, 0.0253, 0), new MPAC(1, 0, 0, 0.0237, 0), new MPAC(8, -1, 0, 0.0162, 0), new MPAC(14, 0, 0, -0.0145, 0), new MPAC(0, 0, 2, 0.0129, 0), new MPAC(3, 0, 0, -0.0112, 0), new MPAC(10, -1, 0, -0.0104, 0), new MPAC(16, 0, 0, 0.0086, 0), new MPAC(12, -1, 0, 0.0069, 0), new MPAC(5, 0, 0, 0.0066, 0), new MPAC(2, 0, 2, -0.0053, 0), new MPAC(18, 0, 0, -0.0052, 0), new MPAC(14, -1, 0, -0.0046, 0), new MPAC(7, 0, 0, -0.0041, 0), new MPAC(2, 1, 0, 0.004, 0), new MPAC(20, 0, 0, 0.0032, 0), new MPAC(1, 1, 0, -0.0032, 0), new MPAC(16, -1, 0, 0.0031, 0), new MPAC(4, 1, 0, -0.0029, 0), new MPAC(9, 0, 0, 0.0027, 0), new MPAC(4, 0, 2, 0.0027, 0), new MPAC(2, -2, 0, -0.0027, 0), new MPAC(4, -2, 0, 0.0024, 0), new MPAC(6, -2, 0, -0.0021, 0), new MPAC(22, 0, 0, -0.0021, 0), new MPAC(18, -1, 0, -0.0021, 0), new MPAC(6, 1, 0, 0.0019, 0), new MPAC(11, 0, 0, -0.0018, 0), new MPAC(8, 1, 0, -0.0014, 0), new MPAC(4, 0, -2, -0.0014, 0), new MPAC(6, 0, 2, -0.0014, 0), new MPAC(3, 1, 0, 0.0014, 0), new MPAC(5, 1, 0, -0.0014, 0), new MPAC(13, 0, 0, 0.0013, 0), new MPAC(20, -1, 0, 0.0013, 0), new MPAC(3, 2, 0, 0.0011, 0), new MPAC(4, -2, 2, -0.0011, 0), new MPAC(1, 2, 0, -0.0011, 0), new MPAC(22, -1, 0, -0.0009, 0), new MPAC(0, 0, 4, -0.0008, 0), new MPAC(6, 0, -2, 0.0008, 0), new MPAC(2, 1, -2, 0.0008, 0), new MPAC(0, 2, 0, 0.0007, 0), new MPAC(0, -1, 2, 0.0007, 0), new MPAC(2, 0, 4, 0.0007, 0), new MPAC(0, -2, 2, -0.0006, 0), new MPAC(2, 2, -2, -0.0006, 0), new MPAC(24, 0, 0, 0.0006, 0), new MPAC(4, 0, -4, 0.0005, 0), new MPAC(2, 2, 0, 0.0005, 0), new MPAC(1, -1, 0, -0.0004, 0)];\nconst g_MoonPerigeeApogeeCoefficients2 = [new MPAC(2, 0, 0, 0.4392, 0), new MPAC(4, 0, 0, 0.0684, 0), new MPAC(0, 1, 0, 0.0456, -0.00011), new MPAC(2, -1, 0, 0.0426, -0.00011), new MPAC(0, 0, 2, 0.0212, 0), new MPAC(1, 0, 0, -0.0189, 0), new MPAC(6, 0, 0, 0.0144, 0), new MPAC(4, -1, 0, 0.0113, 0), new MPAC(2, 0, 2, 0.0047, 0), new MPAC(1, 1, 0, 0.0036, 0), new MPAC(8, 0, 0, 0.0035, 0), new MPAC(6, -1, 0, 0.0034, 0), new MPAC(2, 0, -2, -0.0034, 0), new MPAC(2, -2, 0, 0.0022, 0), new MPAC(3, 0, 0, -0.0017, 0), new MPAC(4, 0, 2, 0.0013, 0), new MPAC(8, -1, 0, 0.0011, 0), new MPAC(4, -2, 0, 0.001, 0), new MPAC(10, 0, 0, 0.0009, 0), new MPAC(3, 1, 0, 0.0007, 0), new MPAC(0, 2, 0, 0.0006, 0), new MPAC(2, 1, 0, 0.0005, 0), new MPAC(2, 2, 0, 0.0005, 0), new MPAC(6, 0, 2, 0.0004, 0), new MPAC(6, -2, 0, 0.0004, 0), new MPAC(10, -1, 0, 0.0004, 0), new MPAC(5, 0, 0, -0.0004, 0), new MPAC(4, 0, -2, -0.0004, 0), new MPAC(0, 1, 2, 0.0003, 0), new MPAC(12, 0, 0, 0.0003, 0), new MPAC(2, -1, 2, 0.0003, 0), new MPAC(1, -1, 0, -0.0003, 0)];\nconst g_MoonPerigeeApogeeCoefficients3 = [new MPAC(2, 0, 0, 63.224, 0), new MPAC(4, 0, 0, -6.99, 0), new MPAC(2, -1, 0, 2.834, 0), new MPAC(2, -1, 0, 0, -0.0071), new MPAC(6, 0, 0, 1.927, 0), new MPAC(1, 0, 0, -1.263, 0), new MPAC(8, 0, 0, -0.702, 0), new MPAC(0, 1, 0, 0.696, 0), new MPAC(0, 1, 0, 0, -0.0017), new MPAC(0, 0, 2, -0.69, 0), new MPAC(4, -1, 0, -0.629, 0), new MPAC(4, -1, 0, 0, 0.0016), new MPAC(2, 0, -2, -0.392, 0), new MPAC(10, 0, 0, 0.297, 0), new MPAC(6, -1, 0, 0.26, 0), new MPAC(3, 0, 0, 0.201, 0), new MPAC(2, 1, 0, -0.161, 0), new MPAC(1, 1, 0, 0.157, 0), new MPAC(12, 0, 0, -0.138, 0), new MPAC(8, -1, 0, -0.127, 0), new MPAC(2, 0, 2, 0.104, 0), new MPAC(2, -2, 0, 0.104, 0), new MPAC(5, 0, 0, -0.079, 0), new MPAC(14, 0, 0, 0.068, 0), new MPAC(10, -1, 0, 0.067, 0), new MPAC(4, 1, 0, 0.054, 0), new MPAC(12, -1, 0, -0.038, 0), new MPAC(4, -2, 0, -0.038, 0), new MPAC(7, 0, 0, 0.037, 0), new MPAC(4, 0, 2, -0.037, 0), new MPAC(16, 0, 0, -0.035, 0), new MPAC(3, 1, 0, -0.03, 0), new MPAC(1, -1, 0, 0.029, 0), new MPAC(6, 1, 0, -0.025, 0), new MPAC(0, 2, 0, 0.023, 0), new MPAC(14, -1, 0, 0.023, 0), new MPAC(2, 2, 0, -0.023, 0), new MPAC(6, -2, 0, 0.022, 0), new MPAC(2, -1, -2, -0.021, 0), new MPAC(9, 0, 0, -0.02, 0), new MPAC(18, 0, 0, 0.019, 0), new MPAC(6, 0, 2, 0.017, 0), new MPAC(0, -1, 2, 0.014, 0), new MPAC(16, -1, 0, -0.014, 0), new MPAC(4, 0, -20, 0.013, 0), new MPAC(8, 1, 0, 0.012, 0), new MPAC(11, 0, 0, 0.011, 0), new MPAC(5, 1, 0, 0.01, 0), new MPAC(20, 0, 0, -0.01, 0)];\nconst g_MoonPerigeeApogeeCoefficients4 = [new MPAC(2, 0, 0, -9.147, 0), new MPAC(1, 0, 0, -0.841, 0), new MPAC(0, 0, 2, 0.697, 0), new MPAC(0, 1, 0, -0.656, 0.0016), new MPAC(4, 0, 0, 0.355, 0), new MPAC(2, -1, 0, 0.159, 0), new MPAC(1, 1, 0, 0.127, 0), new MPAC(4, -1, 0, 0.065, 0), new MPAC(6, 0, 0, 0.052, 0), new MPAC(2, 1, 0, 0.043, 0), new MPAC(2, 0, 2, 0.031, 0), new MPAC(2, 0, -2, -0.023, 0), new MPAC(2, -2, 0, 0.022, 0), new MPAC(2, 2, 0, 0.019, 0), new MPAC(0, 2, 0, -0.016, 0), new MPAC(6, -1, 0, 0.014, 0), new MPAC(8, 0, 0, 0.01, 0)];\n\n\n// CAAMoonPerigeeApogee\n\nfunction CAAMoonPerigeeApogee() { }\n\nCAAMoonPerigeeApogee.k = function (Year) {\n return 13.2555 * (Year - 1999.97);\n};\n\nCAAMoonPerigeeApogee.meanPerigee = function (k) {\n var T = k / 1325.55;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n return 2451534.6698 + 27.55454989 * k - 0.0006691 * Tsquared - 1.098E-06 * Tcubed + 5.2E-09 * T4;\n};\n\nCAAMoonPerigeeApogee.meanApogee = function (k) {\n return CAAMoonPerigeeApogee.meanPerigee(k);\n};\n\nCAAMoonPerigeeApogee.truePerigee = function (k) {\n var MeanJD = CAAMoonPerigeeApogee.meanPerigee(k);\n var T = k / 1325.55;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n var D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(171.9179 + 335.9106046 * k - 0.0100383 * Tsquared - 1.156E-05 * Tcubed + 5.5E-08 * T4);\n D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(D);\n var M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(347.3477 + 27.1577721 * k - 0.000813 * Tsquared - 1E-06 * Tcubed);\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(M);\n var F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(316.6109 + 364.5287911 * k - 0.0125053 * Tsquared - 1.48E-05 * Tcubed);\n F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(F);\n var nPerigeeCoefficients = g_MoonPerigeeApogeeCoefficients1.length;\n var Sigma = 0;\n for (var i = 0; i < nPerigeeCoefficients; i++) {\n Sigma += g_MoonPerigeeApogeeCoefficients1[i].c * Math.sin(D * g_MoonPerigeeApogeeCoefficients1[i].d + M * g_MoonPerigeeApogeeCoefficients1[i].m + F * g_MoonPerigeeApogeeCoefficients1[i].f + T * g_MoonPerigeeApogeeCoefficients1[i].t);\n }\n return MeanJD + Sigma;\n};\n\nCAAMoonPerigeeApogee.trueApogee = function (k) {\n var MeanJD = CAAMoonPerigeeApogee.meanApogee(k);\n var T = k / 1325.55;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n var D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(171.9179 + 335.9106046 * k - 0.0100383 * Tsquared - 1.156E-05 * Tcubed + 5.5E-08 * T4);\n D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(D);\n var M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(347.3477 + 27.1577721 * k - 0.000813 * Tsquared - 1E-06 * Tcubed);\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(M);\n var F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(316.6109 + 364.5287911 * k - 0.0125053 * Tsquared - 1.48E-05 * Tcubed);\n F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(F);\n var nApogeeCoefficients = g_MoonPerigeeApogeeCoefficients2.length;\n var Sigma = 0;\n for (var i = 0; i < nApogeeCoefficients; i++) {\n Sigma += (g_MoonPerigeeApogeeCoefficients2[i].c + T * g_MoonPerigeeApogeeCoefficients2[i].t) * Math.sin(D * g_MoonPerigeeApogeeCoefficients2[i].d + M * g_MoonPerigeeApogeeCoefficients2[i].m + F * g_MoonPerigeeApogeeCoefficients2[i].f);\n }\n return MeanJD + Sigma;\n};\n\nCAAMoonPerigeeApogee.perigeeParallax = function (k) {\n var T = k / 1325.55;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n var D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(171.9179 + 335.9106046 * k - 0.0100383 * Tsquared - 1.156E-05 * Tcubed + 5.5E-08 * T4);\n D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(D);\n var M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(347.3477 + 27.1577721 * k - 0.000813 * Tsquared - 1E-06 * Tcubed);\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(M);\n var F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(316.6109 + 364.5287911 * k - 0.0125053 * Tsquared - 1.48E-05 * Tcubed);\n F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(F);\n var nPerigeeCoefficients = g_MoonPerigeeApogeeCoefficients3.length;\n var Parallax = 3629.215;\n for (var i = 0; i < nPerigeeCoefficients; i++) {\n Parallax += (g_MoonPerigeeApogeeCoefficients3[i].c + T * g_MoonPerigeeApogeeCoefficients3[i].t) * Math.cos(D * g_MoonPerigeeApogeeCoefficients3[i].d + M * g_MoonPerigeeApogeeCoefficients3[i].m + F * g_MoonPerigeeApogeeCoefficients3[i].f);\n }\n return Parallax / 3600;\n};\n\nCAAMoonPerigeeApogee.apogeeParallax = function (k) {\n var T = k / 1325.55;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var T4 = Tcubed * T;\n var D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(171.9179 + 335.9106046 * k - 0.0100383 * Tsquared - 1.156E-05 * Tcubed + 5.5E-08 * T4);\n D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(D);\n var M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(347.3477 + 27.1577721 * k - 0.000813 * Tsquared - 1E-06 * Tcubed);\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(M);\n var F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(316.6109 + 364.5287911 * k - 0.0125053 * Tsquared - 1.48E-05 * Tcubed);\n F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(F);\n var nApogeeCoefficients = g_MoonPerigeeApogeeCoefficients4.length;\n var Parallax = 3245.251;\n for (var i = 0; i < nApogeeCoefficients; i++) {\n Parallax += (g_MoonPerigeeApogeeCoefficients4[i].c + T * g_MoonPerigeeApogeeCoefficients4[i].t) * Math.cos(D * g_MoonPerigeeApogeeCoefficients4[i].d + M * g_MoonPerigeeApogeeCoefficients4[i].m + F * g_MoonPerigeeApogeeCoefficients4[i].f);\n }\n return Parallax / 3600;\n};\n\nvar CAAMoonPerigeeApogee$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAMoonPerigeeApogee\", [CAAMoonPerigeeApogee, CAAMoonPerigeeApogee$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/moon_phases.js\":\n/*!**************************************!*\\\n !*** ./esm/astrocalc/moon_phases.js ***!\n \\**************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAMoonPhases: () => (/* binding */ CAAMoonPhases)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAMOONPHASES.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the dates for the phases of the Moon\"\n// Last update of original: PJN / 22-02-2004\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// CAAMoonPhases\n\nfunction CAAMoonPhases() { }\n\nCAAMoonPhases.k = function (Year) {\n return 12.3685 * (Year - 2000);\n};\n\nCAAMoonPhases.meanPhase = function (k) {\n var T = k / 1236.85;\n var T2 = T * T;\n var T3 = T2 * T;\n var T4 = T3 * T;\n return 2451550.09766 + 29.530588861 * k + 0.00015437 * T2 - 1.5E-07 * T3 + 7.3E-10 * T4;\n};\n\nCAAMoonPhases.truePhase = function (k) {\n var JD = CAAMoonPhases.meanPhase(k);\n var T = k / 1236.85;\n var T2 = T * T;\n var T3 = T2 * T;\n var T4 = T3 * T;\n var E = 1 - 0.002516 * T - 7.4E-06 * T2;\n var E2 = E * E;\n var M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(2.5534 + 29.1053567 * k - 1.4E-06 * T2 - 1.1E-07 * T3);\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(M);\n var Mdash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(201.5643 + 385.81693528 * k + 0.0107582 * T2 + 1.238E-05 * T3 - 5.8E-08 * T4);\n Mdash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Mdash);\n var F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(160.7108 + 390.67050284 * k - 0.0016118 * T2 - 2.27E-06 * T3 + 1E-08 * T4);\n F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(F);\n var omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(124.7746 - 1.56375588 * k + 0.0020672 * T2 + 2.15E-06 * T3);\n omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(omega);\n var A1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(299.77 + 0.107408 * k - 0.009173 * T2);\n A1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A1);\n var A2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(251.88 + 0.016321 * k);\n A2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A2);\n var A3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(251.83 + 26.651886 * k);\n A3 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A3);\n var A4 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(349.42 + 36.412478 * k);\n A4 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A4);\n var A5 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(84.66 + 18.206239 * k);\n A5 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A5);\n var A6 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(141.74 + 53.303771 * k);\n A6 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A6);\n var A7 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(207.14 + 2.453732 * k);\n A7 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A7);\n var A8 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(154.84 + 7.30686 * k);\n A8 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A8);\n var A9 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(34.52 + 27.261239 * k);\n A9 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A9);\n var A10 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(207.19 + 0.121824 * k);\n A10 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A10);\n var A11 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(291.34 + 1.844379 * k);\n A11 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A11);\n var A12 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(161.72 + 24.198154 * k);\n A12 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A12);\n var A13 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(239.56 + 25.513099 * k);\n A13 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A13);\n var A14 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(331.55 + 3.592518 * k);\n A14 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(A14);\n var kint = Math.floor(k);\n var kfrac = k - kint;\n if (kfrac < 0) {\n kfrac = 1 + kfrac;\n }\n if (!kfrac) {\n var DeltaJD = -0.4072 * Math.sin(Mdash) + 0.17241 * E * Math.sin(M) + 0.01608 * Math.sin(2 * Mdash) + 0.01039 * Math.sin(2 * F) + 0.00739 * E * Math.sin(Mdash - M) + -0.00514 * E * Math.sin(Mdash + M) + 0.00208 * E2 * Math.sin(2 * M) + -0.00111 * Math.sin(Mdash - 2 * F) + -0.00057 * Math.sin(Mdash + 2 * F) + 0.00056 * E * Math.sin(2 * Mdash + M) + -0.00042 * Math.sin(3 * Mdash) + 0.00042 * E * Math.sin(M + 2 * F) + 0.00038 * E * Math.sin(M - 2 * F) + -0.00024 * E * Math.sin(2 * Mdash - M) + -0.00017 * Math.sin(omega) + -7E-05 * Math.sin(Mdash + 2 * M) + 4E-05 * Math.sin(2 * Mdash - 2 * F) + 4E-05 * Math.sin(3 * M) + 3E-05 * Math.sin(Mdash + M - 2 * F) + 3E-05 * Math.sin(2 * Mdash + 2 * F) + -3E-05 * Math.sin(Mdash + M + 2 * F) + 3E-05 * Math.sin(Mdash - M + 2 * F) + -2E-05 * Math.sin(Mdash - M - 2 * F) + -2E-05 * Math.sin(3 * Mdash + M) + 2E-05 * Math.sin(4 * Mdash);\n JD += DeltaJD;\n }\n else if ((kfrac === 0.25) || (kfrac === 0.75)) {\n var DeltaJD = -0.62801 * Math.sin(Mdash) + 0.17172 * E * Math.sin(M) + -0.01183 * E * Math.sin(Mdash + M) + 0.00862 * Math.sin(2 * Mdash) + 0.00804 * Math.sin(2 * F) + 0.00454 * E * Math.sin(Mdash - M) + 0.00204 * E2 * Math.sin(2 * M) + -0.0018 * Math.sin(Mdash - 2 * F) + -0.0007 * Math.sin(Mdash + 2 * F) + -0.0004 * Math.sin(3 * Mdash) + -0.00034 * E * Math.sin(2 * Mdash - M) + 0.00032 * E * Math.sin(M + 2 * F) + 0.00032 * E * Math.sin(M - 2 * F) + -0.00028 * E2 * Math.sin(Mdash + 2 * M) + 0.00027 * E * Math.sin(2 * Mdash + M) + -0.00017 * Math.sin(omega) + -5E-05 * Math.sin(Mdash - M - 2 * F) + 4E-05 * Math.sin(2 * Mdash + 2 * F) + -4E-05 * Math.sin(Mdash + M + 2 * F) + 4E-05 * Math.sin(Mdash - 2 * M) + 3E-05 * Math.sin(Mdash + M - 2 * F) + 3E-05 * Math.sin(3 * M) + 2E-05 * Math.sin(2 * Mdash - 2 * F) + 2E-05 * Math.sin(Mdash - M + 2 * F) + -2E-05 * Math.sin(3 * Mdash + M);\n JD += DeltaJD;\n var W = 0.00306 - 0.00038 * E * Math.cos(M) + 0.00026 * Math.cos(Mdash) - 2E-05 * Math.cos(Mdash - M) + 2E-05 * Math.cos(Mdash + M) + 2E-05 * Math.cos(2 * F);\n if (kfrac === 0.25) {\n JD += W;\n }\n else {\n JD -= W;\n }\n }\n else if (kfrac === 0.5) {\n var DeltaJD = -0.40614 * Math.sin(Mdash) + 0.17302 * E * Math.sin(M) + 0.01614 * Math.sin(2 * Mdash) + 0.01043 * Math.sin(2 * F) + 0.00734 * E * Math.sin(Mdash - M) + -0.00514 * E * Math.sin(Mdash + M) + 0.00209 * E2 * Math.sin(2 * M) + -0.00111 * Math.sin(Mdash - 2 * F) + -0.00057 * Math.sin(Mdash + 2 * F) + 0.00056 * E * Math.sin(2 * Mdash + M) + -0.00042 * Math.sin(3 * Mdash) + 0.00042 * E * Math.sin(M + 2 * F) + 0.00038 * E * Math.sin(M - 2 * F) + -0.00024 * E * Math.sin(2 * Mdash - M) + -0.00017 * Math.sin(omega) + -7E-05 * Math.sin(Mdash + 2 * M) + 4E-05 * Math.sin(2 * Mdash - 2 * F) + 4E-05 * Math.sin(3 * M) + 3E-05 * Math.sin(Mdash + M - 2 * F) + 3E-05 * Math.sin(2 * Mdash + 2 * F) + -3E-05 * Math.sin(Mdash + M + 2 * F) + 3E-05 * Math.sin(Mdash - M + 2 * F) + -2E-05 * Math.sin(Mdash - M - 2 * F) + -2E-05 * Math.sin(3 * Mdash + M) + 2E-05 * Math.sin(4 * Mdash);\n JD += DeltaJD;\n }\n else {\n console.assert(false);\n }\n var DeltaJD2 = 0.000325 * Math.sin(A1) + 0.000165 * Math.sin(A2) + 0.000164 * Math.sin(A3) + 0.000126 * Math.sin(A4) + 0.00011 * Math.sin(A5) + 6.2E-05 * Math.sin(A6) + 6E-05 * Math.sin(A7) + 5.6E-05 * Math.sin(A8) + 4.7E-05 * Math.sin(A9) + 4.2E-05 * Math.sin(A10) + 4E-05 * Math.sin(A11) + 3.7E-05 * Math.sin(A12) + 3.5E-05 * Math.sin(A13) + 2.3E-05 * Math.sin(A14);\n JD += DeltaJD2;\n return JD;\n};\n\nvar CAAMoonPhases$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAMoonPhases\", [CAAMoonPhases, CAAMoonPhases$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/neptune.js\":\n/*!**********************************!*\\\n !*** ./esm/astrocalc/neptune.js ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAANeptune: () => (/* binding */ CAANeptune)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n// Originally `AANEPTUNE.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the heliocentric position of Neptune\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// Coefficients\n\nconst g_L0NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(531188633, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1798476, 2.9010127, 38.1330356), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1019728, 0.4858092, 1.4844727), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(124532, 4.830081, 36.648563), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(42064, 5.41055, 2.96895), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(37715, 6.09222, 35.16409), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(33785, 1.24489, 76.26607), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16483, 8E-05, 491.55793), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9199, 4.9375, 39.6175), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8994, 0.2746, 175.1661), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4216, 1.9871, 73.2971), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3365, 1.0359, 33.6796), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2285, 4.2061, 4.4534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1434, 2.7834, 74.7816), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(900, 2.076, 109.946), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(745, 3.19, 71.813), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(506, 5.748, 114.399), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(400, 0.35, 1021.249), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(345, 3.462, 41.102), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(340, 3.304, 77.751), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(323, 2.248, 32.195), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(306, 0.497, 0.521), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(287, 4.505, 0.048), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(282, 2.246, 146.594), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(267, 4.889, 0.963), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(252, 5.782, 388.465), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(245, 1.247, 9.561), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(233, 2.505, 137.033), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(227, 1.797, 453.425), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(170, 3.324, 108.461), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(151, 2.192, 33.94), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(150, 2.997, 5.938), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(148, 0.859, 111.43), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(119, 3.677, 2.448), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(109, 2.416, 183.243), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(103, 0.041, 0.261), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(103, 4.404, 70.328), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(102, 5.705, 0.112)];\nconst g_L1NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3837687717, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16604, 4.86319, 1.48447), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15807, 2.27923, 38.13304), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3335, 3.682, 76.2661), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1306, 3.6732, 2.9689), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(605, 1.505, 35.164), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(179, 3.453, 39.618), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(107, 2.451, 4.453), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(106, 2.755, 33.68), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(73, 5.49, 36.65), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(57, 1.86, 114.4), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(57, 5.22, 0.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(35, 4.52, 74.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 5.9, 77.75), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30, 3.67, 388.47), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 5.17, 9.56), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 5.17, 2.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 5.25, 168.05)];\nconst g_L2NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(53893, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(296, 1.855, 1.484), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(281, 1.191, 38.133), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(270, 5.721, 76.266), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(23, 1.21, 2.97), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 4.43, 35.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 0.54, 2.45)];\nconst g_L3NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(31, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 1.35, 76.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 6.04, 1.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 6.11, 38.13)];\nconst g_L4NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 3.142, 0)];\nconst g_B0NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3088623, 1.4410437, 38.1330356), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27789, 5.91272, 76.26607), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27624, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15448, 3.50877, 39.61751), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15355, 2.52124, 36.64856), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2000, 1.51, 74.7816), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1968, 4.3778, 1.4845), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1015, 3.2156, 35.1641), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(606, 2.802, 73.297), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(595, 2.129, 41.102), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(589, 3.187, 2.969), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(402, 4.169, 114.399), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(280, 1.682, 77.751), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(262, 3.767, 213.299), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(254, 3.271, 453.425), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(206, 4.257, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(140, 3.53, 137.033)];\nconst g_B1NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(227279, 3.807931, 38.133036), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1803, 1.9758, 76.2661), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1433, 3.1416, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1386, 4.8256, 36.6486), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1073, 6.0805, 39.6175), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(148, 3.858, 74.782), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(136, 0.478, 1.484), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(70, 6.19, 35.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(52, 5.05, 73.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(43, 0.31, 114.4), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(37, 4.89, 41.1), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(37, 5.76, 2.97), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 5.22, 213.3)];\nconst g_B2NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9691, 5.5712, 38.133), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(79, 3.63, 76.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(72, 0.45, 36.65), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(59, 3.14, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30, 1.61, 39.62), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 5.61, 74.78)];\nconst g_B3NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(273, 1.017, 38.133), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 2.37, 36.65), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 5.33, 76.27)];\nconst g_B4NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 2.67, 38.13)];\nconst g_R0NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3007013206, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27062259, 1.32999459, 38.13303564), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1691764, 3.2518614, 36.6485629), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(807831, 5.185928, 1.484473), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(537761, 4.521139, 35.16409), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(495726, 1.571057, 491.557929), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(274572, 1.845523, 175.16606), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(135134, 3.372206, 39.617508), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(121802, 5.797544, 76.266071), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(100895, 0.377027, 73.297126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(69792, 3.79617, 2.96895), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(46688, 5.74938, 33.67962), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(24594, 0.50802, 109.94569), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16939, 1.59422, 71.81265), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14230, 1.07786, 74.7816), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12012, 1.92062, 1021.24889), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8395, 0.6782, 146.5943), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7572, 1.0715, 388.4652), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5721, 2.5906, 4.4534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4840, 1.9069, 41.102), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4483, 2.9057, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4421, 1.7499, 108.4612), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4354, 0.6799, 32.1951), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4270, 3.4134, 453.4249), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3381, 0.8481, 183.2428), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2881, 1.986, 137.033), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2879, 3.6742, 350.3321), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2636, 3.0976, 213.2991), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2530, 5.7984, 490.0735), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2523, 0.4863, 493.0424), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2306, 2.8096, 70.3282), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2087, 0.6186, 33.9402)];\nconst g_R1NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(236339, 0.70498, 38.133036), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13220, 3.32015, 1.48447), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8622, 6.2163, 35.1641), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2702, 1.8814, 39.6175), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2155, 2.0943, 2.9689), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2153, 5.1687, 76.2661), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1603, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1464, 1.1842, 33.6796), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1136, 3.9189, 36.6486), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(898, 5.241, 388.465), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(790, 0.533, 168.053), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(760, 0.021, 182.28), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(607, 1.077, 1021.249), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(572, 3.401, 484.444), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(561, 2.887, 498.671)];\nconst g_R2NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4247, 5.8991, 38.133), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(218, 0.346, 1.484), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(163, 2.239, 168.053), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(156, 4.594, 182.28), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(127, 2.848, 35.164)];\nconst g_R3NC = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(166, 4.552, 38.133)];\n\n\n// CAANeptune\n\nfunction CAANeptune() { }\n\nCAANeptune.eclipticLongitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nL0Coefficients = g_L0NC.length;\n var L0 = 0;\n var i;\n for (i = 0; i < nL0Coefficients; i++) {\n L0 += g_L0NC[i].a * Math.cos(g_L0NC[i].b + g_L0NC[i].c * rho);\n }\n var nL1Coefficients = g_L1NC.length;\n var L1 = 0;\n for (i = 0; i < nL1Coefficients; i++) {\n L1 += g_L1NC[i].a * Math.cos(g_L1NC[i].b + g_L1NC[i].c * rho);\n }\n var nL2Coefficients = g_L2NC.length;\n var L2 = 0;\n for (i = 0; i < nL2Coefficients; i++) {\n L2 += g_L2NC[i].a * Math.cos(g_L2NC[i].b + g_L2NC[i].c * rho);\n }\n var nL3Coefficients = g_L3NC.length;\n var L3 = 0;\n for (i = 0; i < nL3Coefficients; i++) {\n L3 += g_L3NC[i].a * Math.cos(g_L3NC[i].b + g_L3NC[i].c * rho);\n }\n var nL4Coefficients = g_L4NC.length;\n var L4 = 0;\n for (i = 0; i < nL4Coefficients; i++) {\n L4 += g_L4NC[i].a * Math.cos(g_L4NC[i].b + g_L4NC[i].c * rho);\n }\n var vvalue = (L0 + L1 * rho + L2 * rhosquared + L3 * rhocubed + L4 * rho4) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue));\n return vvalue;\n};\n\nCAANeptune.eclipticLatitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nB0Coefficients = g_B0NC.length;\n var B0 = 0;\n var i;\n for (i = 0; i < nB0Coefficients; i++) {\n B0 += g_B0NC[i].a * Math.cos(g_B0NC[i].b + g_B0NC[i].c * rho);\n }\n var nB1Coefficients = g_B1NC.length;\n var B1 = 0;\n for (i = 0; i < nB1Coefficients; i++) {\n B1 += g_B1NC[i].a * Math.cos(g_B1NC[i].b + g_B1NC[i].c * rho);\n }\n var nB2Coefficients = g_B2NC.length;\n var B2 = 0;\n for (i = 0; i < nB2Coefficients; i++) {\n B2 += g_B2NC[i].a * Math.cos(g_B2NC[i].b + g_B2NC[i].c * rho);\n }\n var nB3Coefficients = g_B3NC.length;\n var B3 = 0;\n for (i = 0; i < nB3Coefficients; i++) {\n B3 += g_B3NC[i].a * Math.cos(g_B3NC[i].b + g_B3NC[i].c * rho);\n }\n var nB4Coefficients = g_B4NC.length;\n var B4 = 0;\n for (i = 0; i < nB4Coefficients; i++) {\n B4 += g_B4NC[i].a * Math.cos(g_B4NC[i].b + g_B4NC[i].c * rho);\n }\n var vvalue = (B0 + B1 * rho + B2 * rhosquared + B3 * rhocubed + B4 * rho4) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n return vvalue;\n};\n\nCAANeptune.radiusVector = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var nR0Coefficients = g_R0NC.length;\n var R0 = 0;\n var i;\n for (i = 0; i < nR0Coefficients; i++) {\n R0 += g_R0NC[i].a * Math.cos(g_R0NC[i].b + g_R0NC[i].c * rho);\n }\n var nR1Coefficients = g_R1NC.length;\n var R1 = 0;\n for (i = 0; i < nR1Coefficients; i++) {\n R1 += g_R1NC[i].a * Math.cos(g_R1NC[i].b + g_R1NC[i].c * rho);\n }\n var nR2Coefficients = g_R2NC.length;\n var R2 = 0;\n for (i = 0; i < nR2Coefficients; i++) {\n R2 += g_R2NC[i].a * Math.cos(g_R2NC[i].b + g_R2NC[i].c * rho);\n }\n var nR3Coefficients = g_R3NC.length;\n var R3 = 0;\n for (i = 0; i < nR3Coefficients; i++) {\n R3 += g_R3NC[i].a * Math.cos(g_R3NC[i].b + g_R3NC[i].c * rho);\n }\n return (R0 + R1 * rho + R2 * rhosquared + R3 * rhocubed) / 100000000;\n};\n\nvar CAANeptune$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAANeptune\", [CAANeptune, CAANeptune$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/nutation.js\":\n/*!***********************************!*\\\n !*** ./esm/astrocalc/nutation.js ***!\n \\***********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAANutation: () => (/* binding */ CAANutation),\n/* harmony export */ NUC: () => (/* binding */ NUC)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n// Originally `AANUTATION.CPP`\n// \"Purpose: Implementation for the algorithms for Nutation\"\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// NUC - was NutationCoefficient\n\nfunction NUC(D, M, Mprime, F, omega, sincoeff1, sincoeff2, coscoeff1, coscoeff2) {\n this.d = 0;\n this.m = 0;\n this.mprime = 0;\n this.f = 0;\n this.omega = 0;\n this.sincoeff1 = 0;\n this.sincoeff2 = 0;\n this.coscoeff1 = 0;\n this.coscoeff2 = 0;\n this.d = D;\n this.m = M;\n this.mprime = Mprime;\n this.f = F;\n this.omega = omega;\n this.sincoeff1 = sincoeff1;\n this.sincoeff2 = sincoeff2;\n this.coscoeff1 = coscoeff1;\n this.coscoeff2 = coscoeff2;\n}\n\nvar NUC$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"NUC\", [NUC, NUC$, null]);\n\n\n// Coefficients\n\nconst g_NuC = [new NUC(0, 0, 0, 0, 1, -171996, -174.2, 92025, 8.9), new NUC(-2, 0, 0, 2, 2, -13187, -1.6, 5736, -3.1), new NUC(0, 0, 0, 2, 2, -2274, -0.2, 977, -0.5), new NUC(0, 0, 0, 0, 2, 2062, 0.2, -895, 0.5), new NUC(0, 1, 0, 0, 0, 1426, -3.4, 54, -0.1), new NUC(0, 0, 1, 0, 0, 712, 0.1, -7, 0), new NUC(-2, 1, 0, 2, 2, -517, 1.2, 224, -0.6), new NUC(0, 0, 0, 2, 1, -386, -0.4, 200, 0), new NUC(0, 0, 1, 2, 2, -301, 0, 129, -0.1), new NUC(-2, -1, 0, 2, 2, 217, -0.5, -95, 0.3), new NUC(-2, 0, 1, 0, 0, -158, 0, 0, 0), new NUC(-2, 0, 0, 2, 1, 129, 0.1, -70, 0), new NUC(0, 0, -1, 2, 2, 123, 0, -53, 0), new NUC(2, 0, 0, 0, 0, 63, 0, 0, 0), new NUC(0, 0, 1, 0, 1, 63, 0.1, -33, 0), new NUC(2, 0, -1, 2, 2, -59, 0, 26, 0), new NUC(0, 0, -1, 0, 1, -58, -0.1, 32, 0), new NUC(0, 0, 1, 2, 1, -51, 0, 27, 0), new NUC(-2, 0, 2, 0, 0, 48, 0, 0, 0), new NUC(0, 0, -2, 2, 1, 46, 0, -24, 0), new NUC(2, 0, 0, 2, 2, -38, 0, 16, 0), new NUC(0, 0, 2, 2, 2, -31, 0, 13, 0), new NUC(0, 0, 2, 0, 0, 29, 0, 0, 0), new NUC(-2, 0, 1, 2, 2, 29, 0, -12, 0), new NUC(0, 0, 0, 2, 0, 26, 0, 0, 0), new NUC(-2, 0, 0, 2, 0, -22, 0, 0, 0), new NUC(0, 0, -1, 2, 1, 21, 0, -10, 0), new NUC(0, 2, 0, 0, 0, 17, -0.1, 0, 0), new NUC(2, 0, -1, 0, 1, 16, 0, -8, 0), new NUC(-2, 2, 0, 2, 2, -16, 0.1, 7, 0), new NUC(0, 1, 0, 0, 1, -15, 0, 9, 0), new NUC(-2, 0, 1, 0, 1, -13, 0, 7, 0), new NUC(0, -1, 0, 0, 1, -12, 0, 6, 0), new NUC(0, 0, 2, -2, 0, 11, 0, 0, 0), new NUC(2, 0, -1, 2, 1, -10, 0, 5, 0), new NUC(2, 0, 1, 2, 2, -8, 0, 3, 0), new NUC(0, 1, 0, 2, 2, 7, 0, -3, 0), new NUC(-2, 1, 1, 0, 0, -7, 0, 0, 0), new NUC(0, -1, 0, 2, 2, -7, 0, 3, 0), new NUC(2, 0, 0, 2, 1, -7, 0, 3, 0), new NUC(2, 0, 1, 0, 0, 6, 0, 0, 0), new NUC(-2, 0, 2, 2, 2, 6, 0, -3, 0), new NUC(-2, 0, 1, 2, 1, 6, 0, -3, 0), new NUC(2, 0, -2, 0, 1, -6, 0, 3, 0), new NUC(2, 0, 0, 0, 1, -6, 0, 3, 0), new NUC(0, -1, 1, 0, 0, 5, 0, 0, 0), new NUC(-2, -1, 0, 2, 1, -5, 0, 3, 0), new NUC(-2, 0, 0, 0, 1, -5, 0, 3, 0), new NUC(0, 0, 2, 2, 1, -5, 0, 3, 0), new NUC(-2, 0, 2, 0, 1, 4, 0, 0, 0), new NUC(-2, 1, 0, 2, 1, 4, 0, 0, 0), new NUC(0, 0, 1, -2, 0, 4, 0, 0, 0), new NUC(-1, 0, 1, 0, 0, -4, 0, 0, 0), new NUC(-2, 1, 0, 0, 0, -4, 0, 0, 0), new NUC(1, 0, 0, 0, 0, -4, 0, 0, 0), new NUC(0, 0, 1, 2, 0, 3, 0, 0, 0), new NUC(0, 0, -2, 2, 2, -3, 0, 0, 0), new NUC(-1, -1, 1, 0, 0, -3, 0, 0, 0), new NUC(0, 1, 1, 0, 0, -3, 0, 0, 0), new NUC(0, -1, 1, 2, 2, -3, 0, 0, 0), new NUC(2, -1, -1, 2, 2, -3, 0, 0, 0), new NUC(0, 0, 3, 2, 2, -3, 0, 0, 0), new NUC(2, -1, 0, 2, 2, -3, 0, 0, 0)];\n\n\n// CAANutation\n\nfunction CAANutation() { }\n\nCAANutation.nutationInLongitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var D = 297.85036 + 445267.11148 * T - 0.0019142 * Tsquared + Tcubed / 189474;\n D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(D);\n var M = 357.52772 + 35999.05034 * T - 0.0001603 * Tsquared - Tcubed / 300000;\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(M);\n var Mprime = 134.96298 + 477198.867398 * T + 0.0086972 * Tsquared + Tcubed / 56250;\n Mprime = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(Mprime);\n var F = 93.27191 + 483202.017538 * T - 0.0036825 * Tsquared + Tcubed / 327270;\n F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(F);\n var omega = 125.04452 - 1934.136261 * T + 0.0020708 * Tsquared + Tcubed / 450000;\n omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(omega);\n var nCoefficients = g_NuC.length;\n var vvalue = 0;\n for (var i = 0; i < nCoefficients; i++) {\n var argument = g_NuC[i].d * D + g_NuC[i].m * M + g_NuC[i].mprime * Mprime + g_NuC[i].f * F + g_NuC[i].omega * omega;\n var radargument = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(argument);\n vvalue += (g_NuC[i].sincoeff1 + g_NuC[i].sincoeff2 * T) * Math.sin(radargument) * 0.0001;\n }\n return vvalue;\n};\n\nCAANutation.nutationInObliquity = function (JD) {\n var T = (JD - 2451545) / 36525;\n var Tsquared = T * T;\n var Tcubed = Tsquared * T;\n var D = 297.85036 + 445267.11148 * T - 0.0019142 * Tsquared + Tcubed / 189474;\n D = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(D);\n var M = 357.52772 + 35999.05034 * T - 0.0001603 * Tsquared - Tcubed / 300000;\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(M);\n var Mprime = 134.96298 + 477198.867398 * T + 0.0086972 * Tsquared + Tcubed / 56250;\n Mprime = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(Mprime);\n var F = 93.27191 + 483202.017538 * T - 0.0036825 * Tsquared + Tcubed / 327270;\n F = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(F);\n var omega = 125.04452 - 1934.136261 * T + 0.0020708 * Tsquared + Tcubed / 450000;\n omega = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(omega);\n var nCoefficients = g_NuC.length;\n var vvalue = 0;\n for (var i = 0; i < nCoefficients; i++) {\n var argument = g_NuC[i].d * D + g_NuC[i].m * M + g_NuC[i].mprime * Mprime + g_NuC[i].f * F + g_NuC[i].omega * omega;\n var radargument = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(argument);\n vvalue += (g_NuC[i].coscoeff1 + g_NuC[i].coscoeff2 * T) * Math.cos(radargument) * 0.0001;\n }\n return vvalue;\n};\n\nCAANutation.nutationInRightAscension = function (Alpha, Delta, Obliquity, NutationInLongitude, NutationInObliquity) {\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha);\n Delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta);\n Obliquity = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Obliquity);\n return (Math.cos(Obliquity) + Math.sin(Obliquity) * Math.sin(Alpha) * Math.tan(Delta)) * NutationInLongitude - Math.cos(Alpha) * Math.tan(Delta) * NutationInObliquity;\n};\n\nCAANutation.nutationInDeclination = function (Alpha, Delta, Obliquity, NutationInLongitude, NutationInObliquity) {\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha);\n Delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta);\n Obliquity = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Obliquity);\n return Math.sin(Obliquity) * Math.cos(Alpha) * NutationInLongitude + Math.sin(Alpha) * NutationInObliquity;\n};\n\nCAANutation.meanObliquityOfEcliptic = function (JD) {\n var U = (JD - 2451545) / 3652500;\n var Usquared = U * U;\n var Ucubed = Usquared * U;\n var U4 = Ucubed * U;\n var U5 = U4 * U;\n var U6 = U5 * U;\n var U7 = U6 * U;\n var U8 = U7 * U;\n var U9 = U8 * U;\n var U10 = U9 * U;\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(23, 26, 21.448) - _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 4680.93) * U - _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 1.55) * Usquared + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 1999.25) * Ucubed - _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 51.38) * U4 - _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 249.67) * U5 - _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 39.05) * U6 + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 7.12) * U7 + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 27.87) * U8 + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 5.79) * U9 + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 2.45) * U10;\n};\n\nCAANutation.trueObliquityOfEcliptic = function (JD) {\n return CAANutation.meanObliquityOfEcliptic(JD) + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, CAANutation.nutationInObliquity(JD));\n};\n\nvar CAANutation$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAANutation\", [CAANutation, CAANutation$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/parallax.js\":\n/*!***********************************!*\\\n !*** ./esm/astrocalc/parallax.js ***!\n \\***********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAParallax: () => (/* binding */ CAAParallax),\n/* harmony export */ CAATopocentricEclipticDetails: () => (/* binding */ CAATopocentricEclipticDetails)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _globe_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./globe.js */ \"./esm/astrocalc/globe.js\");\n/* harmony import */ var _sidereal_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sidereal.js */ \"./esm/astrocalc/sidereal.js\");\n// Originally `AAPARALLAX.CPP`\n// \"Purpose: Implementation for the algorithms which convert a geocentric set of coordinates to their topocentric equivalent\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n// CAATopocentricEclipticDetails\n\nfunction CAATopocentricEclipticDetails() {\n this.lambda = 0;\n this.beta = 0;\n this.semidiameter = 0;\n this.lambda = 0;\n this.beta = 0;\n this.semidiameter = 0;\n}\n\nvar CAATopocentricEclipticDetails$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAATopocentricEclipticDetails\", [CAATopocentricEclipticDetails, CAATopocentricEclipticDetails$, null]);\n\n\n// Constants\n\nconst g_AAParallax_C1 = Math.sin(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 8.794)));\n\n\n// CAAParallax\n\nfunction CAAParallax() { }\n\nCAAParallax.equatorial2TopocentricDelta = function (Alpha, Delta, Distance, Longitude, Latitude, Height, JD) {\n var RhoSinThetaPrime = _globe_js__WEBPACK_IMPORTED_MODULE_2__.CAAGlobe.rhoSinThetaPrime(Latitude, Height);\n var RhoCosThetaPrime = _globe_js__WEBPACK_IMPORTED_MODULE_2__.CAAGlobe.rhoCosThetaPrime(Latitude, Height);\n var theta = _sidereal_js__WEBPACK_IMPORTED_MODULE_3__.CAASidereal.apparentGreenwichSiderealTime(JD);\n Delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta);\n var cosDelta = Math.cos(Delta);\n var pi = Math.asin(g_AAParallax_C1 / Distance);\n var H = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(theta - Longitude / 15 - Alpha);\n var cosH = Math.cos(H);\n var sinH = Math.sin(H);\n var DeltaTopocentric = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.COR();\n DeltaTopocentric.x = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2H(-pi * RhoCosThetaPrime * sinH / cosDelta);\n DeltaTopocentric.y = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(-pi * (RhoSinThetaPrime * cosDelta - RhoCosThetaPrime * cosH * Math.sin(Delta)));\n return DeltaTopocentric;\n};\n\nCAAParallax.equatorial2Topocentric = function (Alpha, Delta, Distance, Longitude, Latitude, Height, JD) {\n var RhoSinThetaPrime = _globe_js__WEBPACK_IMPORTED_MODULE_2__.CAAGlobe.rhoSinThetaPrime(Latitude, Height);\n var RhoCosThetaPrime = _globe_js__WEBPACK_IMPORTED_MODULE_2__.CAAGlobe.rhoCosThetaPrime(Latitude, Height);\n var theta = _sidereal_js__WEBPACK_IMPORTED_MODULE_3__.CAASidereal.apparentGreenwichSiderealTime(JD);\n Delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta);\n var cosDelta = Math.cos(Delta);\n var pi = Math.asin(g_AAParallax_C1 / Distance);\n var sinpi = Math.sin(pi);\n var H = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(theta - Longitude / 15 - Alpha);\n var cosH = Math.cos(H);\n var sinH = Math.sin(H);\n var DeltaAlpha = Math.atan2(-RhoCosThetaPrime * sinpi * sinH, cosDelta - RhoCosThetaPrime * sinpi * cosH);\n var Topocentric = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.COR();\n Topocentric.x = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m24(Alpha + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2H(DeltaAlpha));\n Topocentric.y = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.atan2((Math.sin(Delta) - RhoSinThetaPrime * sinpi) * Math.cos(DeltaAlpha), cosDelta - RhoCosThetaPrime * sinpi * cosH));\n return Topocentric;\n};\n\nCAAParallax.ecliptic2Topocentric = function (Lambda, Beta, Semidiameter, Distance, Epsilon, Longitude, Latitude, Height, JD) {\n var S = _globe_js__WEBPACK_IMPORTED_MODULE_2__.CAAGlobe.rhoSinThetaPrime(Latitude, Height);\n var C = _globe_js__WEBPACK_IMPORTED_MODULE_2__.CAAGlobe.rhoCosThetaPrime(Latitude, Height);\n Lambda = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Lambda);\n Beta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Beta);\n Epsilon = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Epsilon);\n Longitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Longitude);\n Latitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Latitude);\n Semidiameter = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Semidiameter);\n var sine = Math.sin(Epsilon);\n var cose = Math.cos(Epsilon);\n var cosBeta = Math.cos(Beta);\n var sinBeta = Math.sin(Beta);\n var theta = _sidereal_js__WEBPACK_IMPORTED_MODULE_3__.CAASidereal.apparentGreenwichSiderealTime(JD);\n theta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(theta);\n var sintheta = Math.sin(theta);\n var pi = Math.asin(g_AAParallax_C1 / Distance);\n var sinpi = Math.sin(pi);\n var N = Math.cos(Lambda) * cosBeta - C * sinpi * Math.cos(theta);\n var Topocentric = new CAATopocentricEclipticDetails();\n Topocentric.lambda = Math.atan2(Math.sin(Lambda) * cosBeta - sinpi * (S * sine + C * cose * sintheta), N);\n var cosTopocentricLambda = Math.cos(Topocentric.lambda);\n Topocentric.beta = Math.atan(cosTopocentricLambda * (sinBeta - sinpi * (S * cose - C * sine * sintheta)) / N);\n Topocentric.semidiameter = Math.asin(cosTopocentricLambda * Math.cos(Topocentric.beta) * Math.sin(Semidiameter) / N);\n Topocentric.semidiameter = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Topocentric.semidiameter);\n Topocentric.lambda = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Topocentric.lambda));\n Topocentric.beta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Topocentric.beta);\n return Topocentric;\n};\n\nCAAParallax.parallaxToDistance = function (Parallax) {\n return g_AAParallax_C1 / Math.sin(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Parallax));\n};\n\nCAAParallax.distanceToParallax = function (Distance) {\n var pi = Math.asin(g_AAParallax_C1 / Distance);\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(pi);\n};\n\nvar CAAParallax$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAParallax\", [CAAParallax, CAAParallax$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/physical_jupiter.js\":\n/*!*******************************************!*\\\n !*** ./esm/astrocalc/physical_jupiter.js ***!\n \\*******************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAPhysicalJupiter: () => (/* binding */ CAAPhysicalJupiter),\n/* harmony export */ CAAPhysicalJupiterDetails: () => (/* binding */ CAAPhysicalJupiterDetails)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _nutation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nutation.js */ \"./esm/astrocalc/nutation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n/* harmony import */ var _jupiter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./jupiter.js */ \"./esm/astrocalc/jupiter.js\");\n// Originally `AAPHYSICALJUPITER.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the physical parameters of the Jupiter\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n\n// CAAPhysicalJupiterDetails\n\nfunction CAAPhysicalJupiterDetails() {\n this.DE = 0;\n this.DS = 0;\n this.geometricw1 = 0;\n this.geometricw2 = 0;\n this.apparentw1 = 0;\n this.apparentw2 = 0;\n this.p = 0;\n this.DE = 0;\n this.DS = 0;\n this.geometricw1 = 0;\n this.geometricw2 = 0;\n this.apparentw1 = 0;\n this.apparentw2 = 0;\n this.p = 0;\n}\n\nvar CAAPhysicalJupiterDetails$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAPhysicalJupiterDetails\", [CAAPhysicalJupiterDetails, CAAPhysicalJupiterDetails$, null]);\n\n\n// CAAPhysicalJupiter\n\nfunction CAAPhysicalJupiter() { }\n\nCAAPhysicalJupiter.calculate = function (JD) {\n var details = new CAAPhysicalJupiterDetails();\n var d = JD - 2433282.5;\n var T1 = d / 36525;\n var alpha0 = 268 + 0.1061 * T1;\n var alpha0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(alpha0);\n var delta0 = 64.5 - 0.0164 * T1;\n var delta0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(delta0);\n var W1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(17.71 + 877.90003539 * d);\n var W2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(16.838 + 870.27003539 * d);\n var l0 = _earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.eclipticLongitude(JD);\n var l0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l0);\n var b0 = _earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.eclipticLatitude(JD);\n var b0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(b0);\n var R = _earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.radiusVector(JD);\n var l = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.eclipticLongitude(JD);\n var lrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l);\n var b = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.eclipticLatitude(JD);\n var brad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(b);\n var r = _jupiter_js__WEBPACK_IMPORTED_MODULE_4__.CAAJupiter.radiusVector(JD);\n var x = r * Math.cos(brad) * Math.cos(lrad) - R * Math.cos(l0rad);\n var y = r * Math.cos(brad) * Math.sin(lrad) - R * Math.sin(l0rad);\n var z = r * Math.sin(brad) - R * Math.sin(b0rad);\n var DELTA = Math.sqrt(x * x + y * y + z * z);\n l -= 0.01299 * DELTA / (r * r);\n lrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l);\n x = r * Math.cos(brad) * Math.cos(lrad) - R * Math.cos(l0rad);\n y = r * Math.cos(brad) * Math.sin(lrad) - R * Math.sin(l0rad);\n z = r * Math.sin(brad) - R * Math.sin(b0rad);\n DELTA = Math.sqrt(x * x + y * y + z * z);\n var e0 = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.meanObliquityOfEcliptic(JD);\n var e0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(e0);\n var alphas = Math.atan2(Math.cos(e0rad) * Math.sin(lrad) - Math.sin(e0rad) * Math.tan(brad), Math.cos(lrad));\n var deltas = Math.asin(Math.cos(e0rad) * Math.sin(brad) + Math.sin(e0rad) * Math.cos(brad) * Math.sin(lrad));\n details.DS = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.asin(-Math.sin(delta0rad) * Math.sin(deltas) - Math.cos(delta0rad) * Math.cos(deltas) * Math.cos(alpha0rad - alphas)));\n var u = y * Math.cos(e0rad) - z * Math.sin(e0rad);\n var v = y * Math.sin(e0rad) + z * Math.cos(e0rad);\n var alpharad = Math.atan2(u, x);\n var alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(alpharad);\n var deltarad = Math.atan2(v, Math.sqrt(x * x + u * u));\n var delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(deltarad);\n var xi = Math.atan2(Math.sin(delta0rad) * Math.cos(deltarad) * Math.cos(alpha0rad - alpharad) - Math.sin(deltarad) * Math.cos(delta0rad), Math.cos(deltarad) * Math.sin(alpha0rad - alpharad));\n details.DE = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.asin(-Math.sin(delta0rad) * Math.sin(deltarad) - Math.cos(delta0rad) * Math.cos(deltarad) * Math.cos(alpha0rad - alpharad)));\n details.geometricw1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(W1 - _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(xi) - 5.07033 * DELTA);\n details.geometricw2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(W2 - _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(xi) - 5.02626 * DELTA);\n var C = 57.2958 * (2 * r * DELTA + R * R - r * r - DELTA * DELTA) / (4 * r * DELTA);\n if (Math.sin(lrad - l0rad) > 0) {\n details.apparentw1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(details.geometricw1 + C);\n details.apparentw2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(details.geometricw2 + C);\n }\n else {\n details.apparentw1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(details.geometricw1 - C);\n details.apparentw2 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(details.geometricw2 - C);\n }\n var NutationInLongitude = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.nutationInLongitude(JD);\n var NutationInObliquity = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.nutationInObliquity(JD);\n e0 += NutationInObliquity / 3600;\n e0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(e0);\n alpha += 0.005693 * (Math.cos(alpharad) * Math.cos(l0rad) * Math.cos(e0rad) + Math.sin(alpharad) * Math.sin(l0rad)) / Math.cos(deltarad);\n alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(alpha);\n alpharad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(alpha);\n delta += 0.005693 * (Math.cos(l0rad) * Math.cos(e0rad) * (Math.tan(e0rad) * Math.cos(deltarad) - Math.sin(alpharad) * Math.sin(deltarad)) + Math.cos(alpharad) * Math.sin(deltarad) * Math.sin(l0rad));\n deltarad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(delta);\n var NutationRA = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.nutationInRightAscension(alpha / 15, delta, e0, NutationInLongitude, NutationInObliquity);\n var alphadash = alpha + NutationRA / 3600;\n var alphadashrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(alphadash);\n var NutationDec = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.nutationInDeclination(alpha / 15, delta, e0, NutationInLongitude, NutationInObliquity);\n var deltadash = delta + NutationDec / 3600;\n var deltadashrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(deltadash);\n NutationRA = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.nutationInRightAscension(alpha0 / 15, delta0, e0, NutationInLongitude, NutationInObliquity);\n var alpha0dash = alpha0 + NutationRA / 3600;\n var alpha0dashrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(alpha0dash);\n NutationDec = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.nutationInDeclination(alpha0 / 15, delta0, e0, NutationInLongitude, NutationInObliquity);\n var delta0dash = delta0 + NutationDec / 3600;\n var delta0dashrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(delta0dash);\n details.p = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.atan2(Math.cos(delta0dashrad) * Math.sin(alpha0dashrad - alphadashrad), Math.sin(delta0dashrad) * Math.cos(deltadashrad) - Math.cos(delta0dashrad) * Math.sin(deltadashrad) * Math.cos(alpha0dashrad - alphadashrad))));\n return details;\n};\n\nvar CAAPhysicalJupiter$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAPhysicalJupiter\", [CAAPhysicalJupiter, CAAPhysicalJupiter$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/physical_mars.js\":\n/*!****************************************!*\\\n !*** ./esm/astrocalc/physical_mars.js ***!\n \\****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAPhysicalMars: () => (/* binding */ CAAPhysicalMars),\n/* harmony export */ CAAPhysicalMarsDetails: () => (/* binding */ CAAPhysicalMarsDetails)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _nutation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nutation.js */ \"./esm/astrocalc/nutation.js\");\n/* harmony import */ var _sun_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sun.js */ \"./esm/astrocalc/sun.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n/* harmony import */ var _mars_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./mars.js */ \"./esm/astrocalc/mars.js\");\n/* harmony import */ var _elliptical_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./elliptical.js */ \"./esm/astrocalc/elliptical.js\");\n/* harmony import */ var _illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./illuminated_fraction.js */ \"./esm/astrocalc/illuminated_fraction.js\");\n/* harmony import */ var _moon_illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./moon_illuminated_fraction.js */ \"./esm/astrocalc/moon_illuminated_fraction.js\");\n// Originally `AAPHYSICALMARS.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the physical parameters of Mars\"\n// Last update of original: PJN / 04-01-2004\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n\n\n\n\n// CAAPhysicalMarsDetails\n\nfunction CAAPhysicalMarsDetails() {\n this.DE = 0;\n this.DS = 0;\n this.w = 0;\n this.p = 0;\n this.x = 0;\n this.k = 0;\n this.q = 0;\n this.d = 0;\n this.DE = 0;\n this.DS = 0;\n this.w = 0;\n this.p = 0;\n this.x = 0;\n this.k = 0;\n this.q = 0;\n this.d = 0;\n}\n\nvar CAAPhysicalMarsDetails$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAPhysicalMarsDetails\", [CAAPhysicalMarsDetails, CAAPhysicalMarsDetails$, null]);\n\n\n// CAAPhysicalMars\n\nfunction CAAPhysicalMars() { }\n\nCAAPhysicalMars.calculate = function (JD) {\n var details = new CAAPhysicalMarsDetails();\n var T = (JD - 2451545) / 36525;\n var Lambda0 = 352.9065 + 1.1733 * T;\n var Lambda0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Lambda0);\n var Beta0 = 63.2818 - 0.00394 * T;\n var Beta0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Beta0);\n var l0 = _earth_js__WEBPACK_IMPORTED_MODULE_4__.CAAEarth.eclipticLongitude(JD);\n var l0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l0);\n var b0 = _earth_js__WEBPACK_IMPORTED_MODULE_4__.CAAEarth.eclipticLatitude(JD);\n var b0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(b0);\n var R = _earth_js__WEBPACK_IMPORTED_MODULE_4__.CAAEarth.radiusVector(JD);\n var PreviousLightTravelTime = 0;\n var LightTravelTime = 0;\n var x = 0;\n var y = 0;\n var z = 0;\n var bIterate = true;\n var DELTA = 0;\n var l = 0;\n var lrad = 0;\n var b = 0;\n var brad = 0;\n var r = 0;\n while (bIterate) {\n var JD2 = JD - LightTravelTime;\n l = _mars_js__WEBPACK_IMPORTED_MODULE_5__.CAAMars.eclipticLongitude(JD2);\n lrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l);\n b = _mars_js__WEBPACK_IMPORTED_MODULE_5__.CAAMars.eclipticLatitude(JD2);\n brad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(b);\n r = _mars_js__WEBPACK_IMPORTED_MODULE_5__.CAAMars.radiusVector(JD2);\n x = r * Math.cos(brad) * Math.cos(lrad) - R * Math.cos(l0rad);\n y = r * Math.cos(brad) * Math.sin(lrad) - R * Math.sin(l0rad);\n z = r * Math.sin(brad) - R * Math.sin(b0rad);\n DELTA = Math.sqrt(x * x + y * y + z * z);\n LightTravelTime = _elliptical_js__WEBPACK_IMPORTED_MODULE_6__.ELL.distanceToLightTime(DELTA);\n bIterate = (Math.abs(LightTravelTime - PreviousLightTravelTime) > 2E-06);\n if (bIterate) {\n PreviousLightTravelTime = LightTravelTime;\n }\n }\n var lambdarad = Math.atan2(y, x);\n var lambda = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(lambdarad);\n var betarad = Math.atan2(z, Math.sqrt(x * x + y * y));\n var beta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(betarad);\n details.DE = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.asin(-Math.sin(Beta0rad) * Math.sin(betarad) - Math.cos(Beta0rad) * Math.cos(betarad) * Math.cos(Lambda0rad - lambdarad)));\n var N = 49.5581 + 0.7721 * T;\n var Nrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(N);\n var ldash = l - 0.00697 / r;\n var ldashrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(ldash);\n var bdash = b - 0.000225 * (Math.cos(lrad - Nrad) / r);\n var bdashrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(bdash);\n details.DS = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.asin(-Math.sin(Beta0rad) * Math.sin(bdashrad) - Math.cos(Beta0rad) * Math.cos(bdashrad) * Math.cos(Lambda0rad - ldashrad)));\n var W = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(11.504 + 350.89200025 * (JD - LightTravelTime - 2433282.5));\n var e0 = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.meanObliquityOfEcliptic(JD);\n var e0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(e0);\n var PoleEquatorial = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.ec2Eq(Lambda0, Beta0, e0);\n var alpha0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(PoleEquatorial.x);\n var delta0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(PoleEquatorial.y);\n var u = y * Math.cos(e0rad) - z * Math.sin(e0rad);\n var v = y * Math.sin(e0rad) + z * Math.cos(e0rad);\n var alpharad = Math.atan2(u, x);\n var alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2H(alpharad);\n var deltarad = Math.atan2(v, Math.sqrt(x * x + u * u));\n var delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(deltarad);\n var xi = Math.atan2(Math.sin(delta0rad) * Math.cos(deltarad) * Math.cos(alpha0rad - alpharad) - Math.sin(deltarad) * Math.cos(delta0rad), Math.cos(deltarad) * Math.sin(alpha0rad - alpharad));\n details.w = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(W - _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(xi));\n var NutationInLongitude = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.nutationInLongitude(JD);\n var NutationInObliquity = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.nutationInObliquity(JD);\n lambda += 0.005693 * Math.cos(l0rad - lambdarad) / Math.cos(betarad);\n beta += 0.005693 * Math.sin(l0rad - lambdarad) * Math.sin(betarad);\n Lambda0 += NutationInLongitude / 3600;\n Lambda0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Lambda0);\n lambda += NutationInLongitude / 3600;\n lambdarad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(lambda);\n e0 += NutationInObliquity / 3600;\n e0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(e0rad);\n var ApparentPoleEquatorial = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.ec2Eq(Lambda0, Beta0, e0);\n var alpha0dash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(ApparentPoleEquatorial.x);\n var delta0dash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(ApparentPoleEquatorial.y);\n var ApparentMars = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.ec2Eq(lambda, beta, e0);\n var alphadash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(ApparentMars.x);\n var deltadash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(ApparentMars.y);\n details.p = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.atan2(Math.cos(delta0dash) * Math.sin(alpha0dash - alphadash), Math.sin(delta0dash) * Math.cos(deltadash) - Math.cos(delta0dash) * Math.sin(deltadash) * Math.cos(alpha0dash - alphadash))));\n var SunLambda = _sun_js__WEBPACK_IMPORTED_MODULE_3__.CAASun.geometricEclipticLongitude(JD);\n var SunBeta = _sun_js__WEBPACK_IMPORTED_MODULE_3__.CAASun.geometricEclipticLatitude(JD);\n var SunEquatorial = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.ec2Eq(SunLambda, SunBeta, e0);\n details.x = _moon_illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_8__.MIFR.positionAngle(SunEquatorial.x, SunEquatorial.y, alpha, delta);\n details.d = 9.36 / DELTA;\n details.k = _illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_7__.IFR.illuminatedFraction2(r, R, DELTA);\n details.q = (1 - details.k) * details.d;\n return details;\n};\n\nvar CAAPhysicalMars$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAPhysicalMars\", [CAAPhysicalMars, CAAPhysicalMars$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/physical_sun.js\":\n/*!***************************************!*\\\n !*** ./esm/astrocalc/physical_sun.js ***!\n \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAPhysicalSun: () => (/* binding */ CAAPhysicalSun),\n/* harmony export */ CAAPhysicalSunDetails: () => (/* binding */ CAAPhysicalSunDetails)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _nutation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nutation.js */ \"./esm/astrocalc/nutation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n// Originally `AAPHYSICALSUN.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the physical parameters of the Sun\"\n// Last update of original: PJN / 16-06-2004\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n// CAAPhysicalSunDetails\n\nfunction CAAPhysicalSunDetails() {\n this.p = 0;\n this.b0 = 0;\n this.l0 = 0;\n this.p = 0;\n this.b0 = 0;\n this.l0 = 0;\n}\n\nvar CAAPhysicalSunDetails$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAPhysicalSunDetails\", [CAAPhysicalSunDetails, CAAPhysicalSunDetails$, null]);\n\n\n// CAAPhysicalSun\n\nfunction CAAPhysicalSun() { }\n\nCAAPhysicalSun.calculate = function (JD) {\n var theta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360((JD - 2398220) * 360 / 25.38);\n var I = 7.25;\n var K = 73.6667 + 1.3958333 * (JD - 2396758) / 36525;\n var L = _earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.eclipticLongitude(JD);\n var R = _earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.radiusVector(JD);\n var SunLong = L + 180 - _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 20.4898 / R);\n var SunLongDash = SunLong + _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.nutationInLongitude(JD));\n var epsilon = _nutation_js__WEBPACK_IMPORTED_MODULE_2__.CAANutation.trueObliquityOfEcliptic(JD);\n epsilon = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(epsilon);\n SunLong = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(SunLong);\n SunLongDash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(SunLongDash);\n K = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(K);\n I = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(I);\n theta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(theta);\n var x = Math.atan(-Math.cos(SunLong) * Math.tan(epsilon));\n var y = Math.atan(-Math.cos(SunLong - K) * Math.tan(I));\n var details = new CAAPhysicalSunDetails();\n details.p = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(x + y);\n details.b0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.asin(Math.sin(SunLong - K) * Math.sin(I)));\n var eta = Math.atan(Math.tan(SunLong - K) * Math.cos(I));\n details.l0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(eta - theta));\n return details;\n};\n\nCAAPhysicalSun.timeOfStartOfRotation = function (C) {\n var JED = 2398140.227 + 27.2752316 * C;\n var M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(281.96 + 26.882476 * C);\n M = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(M);\n JED += (0.1454 * Math.sin(M) - 0.0085 * Math.sin(2 * M) - 0.0141 * Math.cos(2 * M));\n return JED;\n};\n\nvar CAAPhysicalSun$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAPhysicalSun\", [CAAPhysicalSun, CAAPhysicalSun$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/pluto.js\":\n/*!********************************!*\\\n !*** ./esm/astrocalc/pluto.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAPluto: () => (/* binding */ CAAPluto),\n/* harmony export */ PlutoCoefficient1: () => (/* binding */ PlutoCoefficient1),\n/* harmony export */ PlutoCoefficient2: () => (/* binding */ PlutoCoefficient2)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAPLUTO.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the heliocentric position of Pluto\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// PlutoCoefficient1\n\nfunction PlutoCoefficient1(j, s, p) {\n this.j = 0;\n this.s = 0;\n this.p = 0;\n this.j = j;\n this.s = s;\n this.p = p;\n}\n\nvar PlutoCoefficient1$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PlutoCoefficient1\", [PlutoCoefficient1, PlutoCoefficient1$, null]);\n\n\n// PlutoCoefficient2\n\nfunction PlutoCoefficient2(a, b) {\n this.a = 0;\n this.b = 0;\n this.a = a;\n this.b = b;\n}\n\nvar PlutoCoefficient2$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PlutoCoefficient2\", [PlutoCoefficient2, PlutoCoefficient2$, null]);\n\n\n// Coefficients\n\nconst g_PlutoArgumentCoefficients = [new PlutoCoefficient1(0, 0, 1), new PlutoCoefficient1(0, 0, 2), new PlutoCoefficient1(0, 0, 3), new PlutoCoefficient1(0, 0, 4), new PlutoCoefficient1(0, 0, 5), new PlutoCoefficient1(0, 0, 6), new PlutoCoefficient1(0, 1, -1), new PlutoCoefficient1(0, 1, 0), new PlutoCoefficient1(0, 1, 1), new PlutoCoefficient1(0, 1, 2), new PlutoCoefficient1(0, 1, 3), new PlutoCoefficient1(0, 2, -2), new PlutoCoefficient1(0, 2, -1), new PlutoCoefficient1(0, 2, 0), new PlutoCoefficient1(1, -1, 0), new PlutoCoefficient1(1, -1, 1), new PlutoCoefficient1(1, 0, -3), new PlutoCoefficient1(1, 0, -2), new PlutoCoefficient1(1, 0, -1), new PlutoCoefficient1(1, 0, 0), new PlutoCoefficient1(1, 0, 1), new PlutoCoefficient1(1, 0, 2), new PlutoCoefficient1(1, 0, 3), new PlutoCoefficient1(1, 0, 4), new PlutoCoefficient1(1, 1, -3), new PlutoCoefficient1(1, 1, -2), new PlutoCoefficient1(1, 1, -1), new PlutoCoefficient1(1, 1, 0), new PlutoCoefficient1(1, 1, 1), new PlutoCoefficient1(1, 1, 3), new PlutoCoefficient1(2, 0, -6), new PlutoCoefficient1(2, 0, -5), new PlutoCoefficient1(2, 0, -4), new PlutoCoefficient1(2, 0, -3), new PlutoCoefficient1(2, 0, -2), new PlutoCoefficient1(2, 0, -1), new PlutoCoefficient1(2, 0, 0), new PlutoCoefficient1(2, 0, 1), new PlutoCoefficient1(2, 0, 2), new PlutoCoefficient1(2, 0, 3), new PlutoCoefficient1(3, 0, -2), new PlutoCoefficient1(3, 0, -1), new PlutoCoefficient1(3, 0, 0)];\nconst g_PlutoLongitudeCoefficients = [new PlutoCoefficient2(-19799805, 19850055), new PlutoCoefficient2(897144, -4954829), new PlutoCoefficient2(611149, 1211027), new PlutoCoefficient2(-341243, -189585), new PlutoCoefficient2(129287, -34992), new PlutoCoefficient2(-38164, 30893), new PlutoCoefficient2(20442, -9987), new PlutoCoefficient2(-4063, -5071), new PlutoCoefficient2(-6016, -3336), new PlutoCoefficient2(-3956, 3039), new PlutoCoefficient2(-667, 3572), new PlutoCoefficient2(1276, 501), new PlutoCoefficient2(1152, -917), new PlutoCoefficient2(630, -1277), new PlutoCoefficient2(2571, -459), new PlutoCoefficient2(899, -1449), new PlutoCoefficient2(-1016, 1043), new PlutoCoefficient2(-2343, -1012), new PlutoCoefficient2(7042, 788), new PlutoCoefficient2(1199, -338), new PlutoCoefficient2(418, -67), new PlutoCoefficient2(120, -274), new PlutoCoefficient2(-60, -159), new PlutoCoefficient2(-82, -29), new PlutoCoefficient2(-36, -29), new PlutoCoefficient2(-40, 7), new PlutoCoefficient2(-14, 22), new PlutoCoefficient2(4, 13), new PlutoCoefficient2(5, 2), new PlutoCoefficient2(-1, 0), new PlutoCoefficient2(2, 0), new PlutoCoefficient2(-4, 5), new PlutoCoefficient2(4, -7), new PlutoCoefficient2(14, 24), new PlutoCoefficient2(-49, -34), new PlutoCoefficient2(163, -48), new PlutoCoefficient2(9, -24), new PlutoCoefficient2(-4, 1), new PlutoCoefficient2(-3, 1), new PlutoCoefficient2(1, 3), new PlutoCoefficient2(-3, -1), new PlutoCoefficient2(5, -3), new PlutoCoefficient2(0, 0)];\nconst g_PlutoLatitudeCoefficients = [new PlutoCoefficient2(-5452852, -14974862), new PlutoCoefficient2(3527812, 1672790), new PlutoCoefficient2(-1050748, 327647), new PlutoCoefficient2(178690, -292153), new PlutoCoefficient2(18650, 100340), new PlutoCoefficient2(-30697, -25823), new PlutoCoefficient2(4878, 11248), new PlutoCoefficient2(226, -64), new PlutoCoefficient2(2030, -836), new PlutoCoefficient2(69, -604), new PlutoCoefficient2(-247, -567), new PlutoCoefficient2(-57, 1), new PlutoCoefficient2(-122, 175), new PlutoCoefficient2(-49, -164), new PlutoCoefficient2(-197, 199), new PlutoCoefficient2(-25, 217), new PlutoCoefficient2(589, -248), new PlutoCoefficient2(-269, 711), new PlutoCoefficient2(185, 193), new PlutoCoefficient2(315, 807), new PlutoCoefficient2(-130, -43), new PlutoCoefficient2(5, 3), new PlutoCoefficient2(2, 17), new PlutoCoefficient2(2, 5), new PlutoCoefficient2(2, 3), new PlutoCoefficient2(3, 1), new PlutoCoefficient2(2, -1), new PlutoCoefficient2(1, -1), new PlutoCoefficient2(0, -1), new PlutoCoefficient2(0, 0), new PlutoCoefficient2(0, -2), new PlutoCoefficient2(2, 2), new PlutoCoefficient2(-7, 0), new PlutoCoefficient2(10, -8), new PlutoCoefficient2(-3, 20), new PlutoCoefficient2(6, 5), new PlutoCoefficient2(14, 17), new PlutoCoefficient2(-2, 0), new PlutoCoefficient2(0, 0), new PlutoCoefficient2(0, 0), new PlutoCoefficient2(0, 1), new PlutoCoefficient2(0, 0), new PlutoCoefficient2(1, 0)];\nconst g_PlutoRadiusCoefficients = [new PlutoCoefficient2(66865439, 68951812), new PlutoCoefficient2(-11827535, -332538), new PlutoCoefficient2(1593179, -1438890), new PlutoCoefficient2(-18444, 483220), new PlutoCoefficient2(-65977, -85431), new PlutoCoefficient2(31174, -6032), new PlutoCoefficient2(-5794, 22161), new PlutoCoefficient2(4601, 4032), new PlutoCoefficient2(-1729, 234), new PlutoCoefficient2(-415, 702), new PlutoCoefficient2(239, 723), new PlutoCoefficient2(67, -67), new PlutoCoefficient2(1034, -451), new PlutoCoefficient2(-129, 504), new PlutoCoefficient2(480, -231), new PlutoCoefficient2(2, -441), new PlutoCoefficient2(-3359, 265), new PlutoCoefficient2(7856, -7832), new PlutoCoefficient2(36, 45763), new PlutoCoefficient2(8663, 8547), new PlutoCoefficient2(-809, -769), new PlutoCoefficient2(263, -144), new PlutoCoefficient2(-126, 32), new PlutoCoefficient2(-35, -16), new PlutoCoefficient2(-19, -4), new PlutoCoefficient2(-15, 8), new PlutoCoefficient2(-4, 12), new PlutoCoefficient2(5, 6), new PlutoCoefficient2(3, 1), new PlutoCoefficient2(6, -2), new PlutoCoefficient2(2, 2), new PlutoCoefficient2(-2, -2), new PlutoCoefficient2(14, 13), new PlutoCoefficient2(-63, 13), new PlutoCoefficient2(136, -236), new PlutoCoefficient2(273, 1065), new PlutoCoefficient2(251, 149), new PlutoCoefficient2(-25, -9), new PlutoCoefficient2(9, -2), new PlutoCoefficient2(-8, 7), new PlutoCoefficient2(2, -10), new PlutoCoefficient2(19, 35), new PlutoCoefficient2(10, 3)];\n\n\n// CAAPluto\n\nfunction CAAPluto() { }\n\nCAAPluto.eclipticLongitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var J = 34.35 + 3034.9057 * T;\n var S = 50.08 + 1222.1138 * T;\n var P = 238.96 + 144.96 * T;\n var L = 0;\n var nPlutoCoefficients = g_PlutoArgumentCoefficients.length;\n for (var i = 0; i < nPlutoCoefficients; i++) {\n var Alpha = g_PlutoArgumentCoefficients[i].j * J + g_PlutoArgumentCoefficients[i].s * S + g_PlutoArgumentCoefficients[i].p * P;\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Alpha);\n L += ((g_PlutoLongitudeCoefficients[i].a * Math.sin(Alpha)) + (g_PlutoLongitudeCoefficients[i].b * Math.cos(Alpha)));\n }\n L = L / 1000000;\n L += (238.958116 + 144.96 * T);\n L = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(L);\n return L;\n};\n\nCAAPluto.eclipticLatitude = function (JD) {\n var T = (JD - 2451545) / 36525;\n var J = 34.35 + 3034.9057 * T;\n var S = 50.08 + 1222.1138 * T;\n var P = 238.96 + 144.96 * T;\n var L = 0;\n var nPlutoCoefficients = g_PlutoArgumentCoefficients.length;\n for (var i = 0; i < nPlutoCoefficients; i++) {\n var Alpha = g_PlutoArgumentCoefficients[i].j * J + g_PlutoArgumentCoefficients[i].s * S + g_PlutoArgumentCoefficients[i].p * P;\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Alpha);\n L += ((g_PlutoLatitudeCoefficients[i].a * Math.sin(Alpha)) + (g_PlutoLatitudeCoefficients[i].b * Math.cos(Alpha)));\n }\n L = L / 1000000;\n L += -3.908239;\n return L;\n};\n\nCAAPluto.radiusVector = function (JD) {\n var T = (JD - 2451545) / 36525;\n var J = 34.35 + 3034.9057 * T;\n var S = 50.08 + 1222.1138 * T;\n var P = 238.96 + 144.96 * T;\n var R = 0;\n var nPlutoCoefficients = g_PlutoArgumentCoefficients.length;\n for (var i = 0; i < nPlutoCoefficients; i++) {\n var Alpha = g_PlutoArgumentCoefficients[i].j * J + g_PlutoArgumentCoefficients[i].s * S + g_PlutoArgumentCoefficients[i].p * P;\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Alpha);\n R += ((g_PlutoRadiusCoefficients[i].a * Math.sin(Alpha)) + (g_PlutoRadiusCoefficients[i].b * Math.cos(Alpha)));\n }\n R = R / 10000000;\n R += 40.7241346;\n return R;\n};\n\nvar CAAPluto$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAPluto\", [CAAPluto, CAAPluto$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/precession.js\":\n/*!*************************************!*\\\n !*** ./esm/astrocalc/precession.js ***!\n \\*************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAPrecession: () => (/* binding */ CAAPrecession)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n// Originally `AAPRECESSION.CPP`\n// \"Purpose: Implementation for the algorithms for Precession\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// CAAPrecession\n\nfunction CAAPrecession() { }\n\nCAAPrecession.precessEquatorial = function (Alpha, Delta, JD0, JD) {\n var T = (JD0 - 2451545) / 36525;\n var Tsquared = T * T;\n var t = (JD - JD0) / 36525;\n var tsquared = t * t;\n var tcubed = tsquared * t;\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha);\n Delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta);\n var sigma = (2306.2181 + 1.39656 * T - 0.000139 * Tsquared) * t + (0.30188 - 3.44E-05 * T) * tsquared + 0.017988 * tcubed;\n sigma = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, sigma));\n var zeta = (2306.2181 + 1.39656 * T - 0.000138 * Tsquared) * t + (1.09468 + 6.6E-05 * T) * tsquared + 0.018203 * tcubed;\n zeta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, zeta));\n var phi = (2004.3109 - 0.8533 * T - 0.000217 * Tsquared) * t - (0.42665 + 0.000217 * T) * tsquared - 0.041833 * tcubed;\n phi = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, phi));\n var A = Math.cos(Delta) * Math.sin(Alpha + sigma);\n var B = Math.cos(phi) * Math.cos(Delta) * Math.cos(Alpha + sigma) - Math.sin(phi) * Math.sin(Delta);\n var C = Math.sin(phi) * Math.cos(Delta) * Math.cos(Alpha + sigma) + Math.cos(phi) * Math.sin(Delta);\n var vvalue = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.COR();\n vvalue.x = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2H(Math.atan2(A, B) + zeta);\n if (vvalue.x < 0) {\n vvalue.x += 24;\n }\n vvalue.y = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.asin(C));\n return vvalue;\n};\n\nCAAPrecession.precessEquatorialFK4 = function (Alpha, Delta, JD0, JD) {\n var T = (JD0 - 2415020.3135) / 36524.2199;\n var t = (JD - JD0) / 36524.2199;\n var tsquared = t * t;\n var tcubed = tsquared * t;\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha);\n Delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta);\n var sigma = (2304.25 + 1.396 * T) * t + 0.302 * tsquared + 0.018 * tcubed;\n sigma = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, sigma));\n var zeta = 0.791 * tsquared + 0.001 * tcubed;\n zeta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, zeta));\n zeta += sigma;\n var phi = (2004.682 - 0.853 * T) * t - 0.426 * tsquared - 0.042 * tcubed;\n phi = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, phi));\n var A = Math.cos(Delta) * Math.sin(Alpha + sigma);\n var B = Math.cos(phi) * Math.cos(Delta) * Math.cos(Alpha + sigma) - Math.sin(phi) * Math.sin(Delta);\n var C = Math.sin(phi) * Math.cos(Delta) * Math.cos(Alpha + sigma) + Math.cos(phi) * Math.sin(Delta);\n var vvalue = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.COR();\n vvalue.x = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2H(Math.atan2(A, B) + zeta);\n if (vvalue.x < 0) {\n vvalue.x += 24;\n }\n vvalue.y = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.asin(C));\n return vvalue;\n};\n\nCAAPrecession.precessEcliptic = function (Lambda, Beta, JD0, JD) {\n var T = (JD0 - 2451545) / 36525;\n var Tsquared = T * T;\n var t = (JD - JD0) / 36525;\n var tsquared = t * t;\n var tcubed = tsquared * t;\n Lambda = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Lambda);\n Beta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Beta);\n var eta = (47.0029 - 0.06603 * T + 0.000598 * Tsquared) * t + (-0.03302 + 0.000598 * T) * tsquared + 6E-05 * tcubed;\n eta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, eta));\n var pi = 174.876384 * 3600 + 3289.4789 * T + 0.60622 * Tsquared - (869.8089 + 0.50491 * T) * t + 0.03536 * tsquared;\n pi = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, pi));\n var p = (5029.0966 + 2.22226 * T - 4.2E-05 * Tsquared) * t + (1.11113 - 4.2E-05 * T) * tsquared - 6E-06 * tcubed;\n p = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, p));\n var A = Math.cos(eta) * Math.cos(Beta) * Math.sin(pi - Lambda) - Math.sin(eta) * Math.sin(Beta);\n var B = Math.cos(Beta) * Math.cos(pi - Lambda);\n var C = Math.cos(eta) * Math.sin(Beta) + Math.sin(eta) * Math.cos(Beta) * Math.sin(pi - Lambda);\n var vvalue = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.COR();\n vvalue.x = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(p + pi - Math.atan2(A, B));\n if (vvalue.x < 0) {\n vvalue.x += 360;\n }\n vvalue.y = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.asin(C));\n return vvalue;\n};\n\nCAAPrecession.equatorialPMToEcliptic = function (Alpha, Delta, Beta, PMAlpha, PMDelta, Epsilon) {\n Epsilon = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Epsilon);\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha);\n Delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta);\n Beta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Beta);\n var cosb = Math.cos(Beta);\n var sinEpsilon = Math.sin(Epsilon);\n var vvalue = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.COR();\n vvalue.x = (PMDelta * sinEpsilon * Math.cos(Alpha) + PMAlpha * Math.cos(Delta) * (Math.cos(Epsilon) * Math.cos(Delta) + sinEpsilon * Math.sin(Delta) * Math.sin(Alpha))) / (cosb * cosb);\n vvalue.y = (PMDelta * (Math.cos(Epsilon) * Math.cos(Delta) + sinEpsilon * Math.sin(Delta) * Math.sin(Alpha)) - PMAlpha * sinEpsilon * Math.cos(Alpha) * Math.cos(Delta)) / cosb;\n return vvalue;\n};\n\nCAAPrecession.adjustPositionUsingUniformProperMotion = function (t, Alpha, Delta, PMAlpha, PMDelta) {\n var vvalue = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.COR();\n vvalue.x = Alpha + (PMAlpha * t / 3600);\n vvalue.y = Delta + (PMDelta * t / 3600);\n return vvalue;\n};\n\nCAAPrecession.adjustPositionUsingMotionInSpace = function (r, DeltaR, t, Alpha, Delta, PMAlpha, PMDelta) {\n DeltaR /= 977792;\n PMAlpha /= 13751;\n PMDelta /= 206265;\n Alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(Alpha);\n Delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta);\n var x = r * Math.cos(Delta) * Math.cos(Alpha);\n var y = r * Math.cos(Delta) * Math.sin(Alpha);\n var z = r * Math.sin(Delta);\n var DeltaX = x / r * DeltaR - z * PMDelta * Math.cos(Alpha) - y * PMAlpha;\n var DeltaY = y / r * DeltaR - z * PMDelta * Math.sin(Alpha) + x * PMAlpha;\n var DeltaZ = z / r * DeltaR + r * PMDelta * Math.cos(Delta);\n x += t * DeltaX;\n y += t * DeltaY;\n z += t * DeltaZ;\n var vvalue = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.COR();\n vvalue.x = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2H(Math.atan2(y, x));\n if (vvalue.x < 0) {\n vvalue.x += 24;\n }\n vvalue.y = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.atan2(z, Math.sqrt(x * x + y * y)));\n return vvalue;\n};\n\nvar CAAPrecession$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAPrecession\", [CAAPrecession, CAAPrecession$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/rise_transit_set.js\":\n/*!*******************************************!*\\\n !*** ./esm/astrocalc/rise_transit_set.js ***!\n \\*******************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAARiseTransitSet: () => (/* binding */ CAARiseTransitSet),\n/* harmony export */ CAARiseTransitSetDetails: () => (/* binding */ CAARiseTransitSetDetails)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _dynamical_time_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dynamical_time.js */ \"./esm/astrocalc/dynamical_time.js\");\n/* harmony import */ var _interpolate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interpolate.js */ \"./esm/astrocalc/interpolate.js\");\n/* harmony import */ var _sidereal_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sidereal.js */ \"./esm/astrocalc/sidereal.js\");\n// Originally `AARISETRANSITSET.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the Rise, Transit and Set times\"\n// Last update of original: PJN / 15-10-2004\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n\n// CAARiseTransitSetDetails\n\nfunction CAARiseTransitSetDetails() {\n this.bValid = false;\n this.rise = 0;\n this.transit = 0;\n this.set = 0;\n this.bValid = false;\n this.rise = 0;\n this.transit = 0;\n this.set = 0;\n}\n\nvar CAARiseTransitSetDetails$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAARiseTransitSetDetails\", [CAARiseTransitSetDetails, CAARiseTransitSetDetails$, null]);\n\n\n// CAARiseTransitSet\n\nfunction CAARiseTransitSet() { }\n\nCAARiseTransitSet.rise = function (JD, Alpha1, Delta1, Alpha2, Delta2, Alpha3, Delta3, Longitude, Latitude, h0) {\n var details = new CAARiseTransitSetDetails();\n details.bValid = false;\n var theta0 = _sidereal_js__WEBPACK_IMPORTED_MODULE_4__.CAASidereal.apparentGreenwichSiderealTime(JD);\n theta0 *= 15;\n var deltaT = _dynamical_time_js__WEBPACK_IMPORTED_MODULE_2__.DYT.deltaT(JD);\n var Delta2Rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta2);\n var LatitudeRad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Latitude);\n var h0Rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(h0);\n var cosH0 = (Math.sin(h0Rad) - Math.sin(LatitudeRad) * Math.sin(Delta2Rad)) / (Math.cos(LatitudeRad) * Math.cos(Delta2Rad));\n if ((cosH0 > 1) || (cosH0 < -1)) {\n return details;\n }\n var H0 = Math.acos(cosH0);\n H0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(H0);\n var M0 = (Alpha2 * 15 + Longitude - theta0) / 360;\n var M1 = M0 - H0 / 360;\n var M2 = M0 + H0 / 360;\n if (M0 > 1) {\n M0 -= 1;\n }\n else if (M0 < 0) {\n M0 += 1;\n }\n if (M1 > 1) {\n M1 -= 1;\n }\n else if (M1 < 0) {\n M1 += 1;\n }\n if (M2 > 1) {\n M2 -= 1;\n }\n else if (M2 < 0) {\n M2 += 1;\n }\n for (var i = 0; i < 2; i++) {\n var theta1 = theta0 + 360.985647 * M1;\n theta1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(theta1);\n var n = M1 + deltaT / 86400;\n var Alpha = _interpolate_js__WEBPACK_IMPORTED_MODULE_3__.INTP.interpolate(n, Alpha1, Alpha2, Alpha3);\n var Delta = _interpolate_js__WEBPACK_IMPORTED_MODULE_3__.INTP.interpolate(n, Delta1, Delta2, Delta3);\n var H = theta1 - Longitude - Alpha * 15;\n var Horizontal = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.eq2H(H / 15, Delta, Latitude);\n var DeltaM = (Horizontal.y - h0) / (360 * Math.cos(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta)) * Math.cos(LatitudeRad) * Math.sin(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(H)));\n M1 += DeltaM;\n theta1 = theta0 + 360.985647 * M0;\n theta1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(theta1);\n n = M0 + deltaT / 86400;\n Alpha = _interpolate_js__WEBPACK_IMPORTED_MODULE_3__.INTP.interpolate(n, Alpha1, Alpha2, Alpha3);\n H = theta1 - Longitude - Alpha * 15;\n if (H < -180) {\n H += 360;\n }\n DeltaM = -H / 360;\n M0 += DeltaM;\n theta1 = theta0 + 360.985647 * M2;\n theta1 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(theta1);\n n = M2 + deltaT / 86400;\n Alpha = _interpolate_js__WEBPACK_IMPORTED_MODULE_3__.INTP.interpolate(n, Alpha1, Alpha2, Alpha3);\n Delta = _interpolate_js__WEBPACK_IMPORTED_MODULE_3__.INTP.interpolate(n, Delta1, Delta2, Delta3);\n H = theta1 - Longitude - Alpha * 15;\n Horizontal = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.eq2H(H / 15, Delta, Latitude);\n DeltaM = (Horizontal.y - h0) / (360 * Math.cos(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Delta)) * Math.cos(LatitudeRad) * Math.sin(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(H)));\n M2 += DeltaM;\n }\n details.bValid = true;\n details.rise = M1 * 24;\n details.set = M2 * 24;\n details.transit = M0 * 24;\n return details;\n};\n\nvar CAARiseTransitSet$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAARiseTransitSet\", [CAARiseTransitSet, CAARiseTransitSet$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/saturn.js\":\n/*!*********************************!*\\\n !*** ./esm/astrocalc/saturn.js ***!\n \\*********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAASaturn: () => (/* binding */ CAASaturn)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n// Originally `AASATURN.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the heliocentric position of Saturn\"\n// Last update of original: PJN / 31-05-2004\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// Coefficients\n\nconst g_L0SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(87401354, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11107660, 3.9620509, 213.29909544), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1414151, 4.5858152, 7.113547), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(398379, 0.52112, 206.185548), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(350769, 3.303299, 426.598191), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(206816, 0.246584, 103.092774), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(79271, 3.84007, 220.41264), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(23990, 4.66977, 110.20632), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16574, 0.43719, 419.48464), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15820, 0.93809, 632.78374), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15054, 2.7167, 639.89729), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14907, 5.76903, 316.39187), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14610, 1.56519, 3.93215), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13160, 4.44891, 14.22709), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13005, 5.98119, 11.0457), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10725, 3.1294, 202.2534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6126, 1.7633, 277.035), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5863, 0.2366, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5228, 4.2078, 3.1814), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5020, 3.1779, 433.7117), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4593, 0.6198, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4006, 2.2448, 63.7359), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3874, 3.2228, 138.5175), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3269, 0.7749, 949.1756), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2954, 0.9828, 95.9792), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2461, 2.0316, 735.8765), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1758, 3.2658, 522.5774), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1640, 5.505, 846.0828), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1581, 4.3727, 309.2783), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1391, 4.0233, 323.5054), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1124, 2.8373, 415.5525), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1087, 4.1834, 2.4477), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1017, 3.717, 227.5262), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(957, 0.507, 1265.567), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(853, 3.421, 175.166), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(849, 3.191, 209.367), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(789, 5.007, 0.963), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(749, 2.144, 853.196), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(744, 5.253, 224.345), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(687, 1.747, 1052.268), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(654, 1.599, 0.048), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(634, 2.299, 412.371), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(625, 0.97, 210.118), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(580, 3.093, 74.782), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(546, 2.127, 350.332), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(543, 1.518, 9.561), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(530, 4.449, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(478, 2.965, 137.033), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(474, 5.475, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(452, 1.044, 490.334), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(449, 1.29, 127.472), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(372, 2.278, 217.231), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(355, 3.013, 838.969), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(347, 1.539, 340.771), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(343, 0.246, 0.521), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(330, 0.247, 1581.959), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(322, 0.961, 203.738), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(322, 2.572, 647.011), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(309, 3.495, 216.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(287, 2.37, 351.817), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(278, 0.4, 211.815), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(249, 1.47, 1368.66), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(227, 4.91, 12.53), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(220, 4.204, 200.769), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(209, 1.345, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(208, 0.483, 1162.475), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(208, 1.283, 39.357), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(204, 6.011, 265.989), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(185, 3.503, 149.563), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(184, 0.973, 4.193), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(182, 5.491, 2.921), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(174, 1.863, 0.751), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(165, 0.44, 5.417), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(149, 5.736, 52.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(148, 1.535, 5.629), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(146, 6.231, 195.14), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(140, 4.295, 21.341), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(131, 4.068, 10.295), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(125, 6.277, 1898.351), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(122, 1.976, 4.666), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(118, 5.341, 554.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(117, 2.679, 1155.361), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 5.594, 1059.382), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(112, 1.105, 191.208), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(110, 0.166, 1.484), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(109, 3.438, 536.805), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(107, 4.012, 956.289), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(104, 2.192, 88.866), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(103, 1.197, 1685.052), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(101, 4.965, 269.921)];\nconst g_L1SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21354295596, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1296855, 1.8282054, 213.2990954), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(564348, 2.885001, 7.113547), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(107679, 2.277699, 206.185548), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(98323, 1.0807, 426.59819), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40255, 2.04128, 220.41264), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(19942, 1.27955, 103.09277), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10512, 2.7488, 14.22709), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6939, 0.4049, 639.8973), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4803, 2.4419, 419.4846), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4056, 2.9217, 110.2063), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3769, 3.6497, 3.9322), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3385, 2.4169, 3.1814), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3302, 1.2626, 433.7117), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3071, 2.3274, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1953, 3.5639, 11.0457), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1249, 2.628, 95.9792), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(922, 1.961, 227.526), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(706, 4.417, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(650, 6.174, 202.253), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(628, 6.111, 309.278), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(487, 6.04, 853.196), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(479, 4.988, 522.577), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(468, 4.617, 63.736), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(417, 2.117, 323.505), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(408, 1.299, 209.367), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(352, 2.317, 632.784), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(344, 3.959, 412.371), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(340, 3.634, 316.392), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(336, 3.772, 735.877), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(332, 2.861, 210.118), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(289, 2.733, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(281, 5.744, 2.448), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(266, 0.543, 647.011), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(230, 1.644, 216.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(192, 2.965, 224.345), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(173, 4.077, 846.083), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(167, 2.597, 21.341), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(136, 2.286, 10.295), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(131, 3.441, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(128, 4.095, 217.231), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(109, 6.161, 415.552), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(98, 4.73, 838.97), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(94, 3.48, 1052.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(92, 3.95, 88.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(87, 1.22, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(83, 3.11, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(78, 6.24, 302.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(67, 0.29, 4.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(66, 5.65, 9.56), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(62, 4.29, 127.47), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(62, 1.83, 195.14), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(58, 2.48, 191.96), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(57, 5.02, 137.03), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(55, 0.28, 74.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(54, 5.13, 490.33), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(51, 1.46, 536.8), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(47, 1.18, 149.56), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(47, 5.15, 515.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(46, 2.23, 956.29), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(44, 2.71, 5.42), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 0.41, 269.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 3.89, 728.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(38, 0.65, 422.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(38, 2.53, 12.53), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(37, 3.78, 2.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(35, 6.08, 5.63), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34, 3.21, 1368.66), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(33, 4.64, 277.03), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(33, 5.43, 1066.5), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(33, 0.3, 351.82), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 4.39, 1155.36), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(31, 2.43, 52.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30, 2.84, 203), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30, 6.19, 284.15), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30, 3.39, 1059.38), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 2.03, 330.62), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(28, 2.74, 265.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 4.51, 340.77)];\nconst g_L2SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(116441, 1.179879, 7.113547), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(91921, 0.07425, 213.2991), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(90592, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15277, 4.06492, 206.18555), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10631, 0.25778, 220.41264), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10605, 5.40964, 426.59819), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4265, 1.046, 14.2271), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1216, 2.9186, 103.0928), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1165, 4.6094, 639.8973), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1082, 5.6913, 433.7117), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1045, 4.0421, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1020, 0.6337, 3.1814), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(634, 4.388, 419.485), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(549, 5.573, 3.932), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(457, 1.268, 110.206), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(425, 0.209, 227.526), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(274, 4.288, 95.979), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(162, 1.381, 11.046), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(129, 1.566, 309.278), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(117, 3.881, 853.196), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(105, 4.9, 647.011), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(101, 0.893, 21.341), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(96, 2.91, 316.39), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(95, 5.63, 412.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(85, 5.73, 209.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(83, 6.05, 216.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(82, 1.02, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(75, 4.76, 210.12), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(67, 0.46, 522.58), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(66, 0.48, 10.29), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(64, 0.35, 323.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(61, 4.88, 632.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(53, 2.75, 529.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(46, 5.69, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(45, 1.67, 202.25), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(42, 5.71, 88.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 0.07, 63.74), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 1.67, 302.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(31, 4.16, 191.96), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 0.83, 224.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(25, 5.66, 735.88), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 5.94, 217.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 4.9, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17, 1.63, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 0.58, 515.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 0.21, 838.97), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 3.76, 195.14), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 4.72, 203), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 0.13, 234.64), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 3.12, 846.08), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 5.92, 536.8), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 5.6, 728.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 3.2, 1066.5), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 4.99, 422.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 0.26, 330.62), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 4.15, 860.31), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 0.46, 956.29), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 2.14, 269.92), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 5.25, 429.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 4.03, 9.56), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 5.4, 1052.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 4.46, 284.15), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 5.93, 405.26)];\nconst g_L3SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16039, 5.73945, 7.11355), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4250, 4.5854, 213.2991), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1907, 4.7608, 220.4126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1466, 5.9133, 206.1855), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1162, 5.6197, 14.2271), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1067, 3.6082, 426.5982), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(239, 3.861, 433.712), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(237, 5.768, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(166, 5.116, 3.181), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(151, 2.736, 639.897), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(131, 4.743, 227.526), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(63, 0.23, 419.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(62, 4.74, 103.09), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 5.47, 21.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 5.96, 95.98), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(39, 5.83, 110.21), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(28, 3.01, 647.01), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(25, 0.99, 3.93), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(19, 1.92, 853.2), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 4.97, 10.29), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 1.03, 412.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 4.2, 216.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 3.32, 309.28), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 3.9, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 5.62, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 1.18, 88.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 5.58, 11.05), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 5.93, 191.96), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 3.95, 209.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 3.39, 302.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 4.88, 323.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 0.38, 632.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 2.25, 522.58), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 1.06, 210.12), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 4.64, 234.64), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 3.14, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 2.31, 515.46), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 2.2, 860.31), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0.59, 529.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 4.93, 224.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0.42, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 4.77, 330.62), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 3.35, 429.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 3.2, 202.25), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 1.19, 1066.5), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 1.35, 405.26), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 4.16, 223.59), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 3.07, 654.12)];\nconst g_L4SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1662, 3.9983, 7.1135), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(257, 2.984, 220.413), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(236, 3.902, 14.227), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(149, 2.741, 213.299), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 3.142, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(110, 1.515, 206.186), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(68, 1.72, 426.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 2.05, 433.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(38, 1.24, 199.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(31, 3.01, 227.53), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 0.83, 639.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 3.71, 21.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 2.42, 419.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 1.16, 647.01), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 1.45, 95.98), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 2.12, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 4.09, 110.21), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 2.77, 412.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 3.01, 88.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0, 853.2), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0.39, 103.09), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 3.78, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 2.83, 234.64), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 5.08, 309.28), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 2.24, 216.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 5.19, 302.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 1.55, 191.96)];\nconst g_L5SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(124, 2.259, 7.114), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34, 2.16, 14.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(28, 1.2, 220.41), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 1.22, 227.53), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 0.24, 433.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 6.23, 426.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 2.97, 199.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 4.29, 206.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 6.25, 213.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 5.28, 639.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 0.24, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 3.14, 0)];\nconst g_B0SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4330678, 3.6028443, 213.2990954), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(240348, 2.852385, 426.598191), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(84746, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34116, 0.57297, 206.18555), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30863, 3.48442, 220.41264), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14734, 2.11847, 639.89729), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9917, 5.79, 419.4846), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6994, 4.736, 7.1135), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4808, 5.4331, 316.3919), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4788, 4.9651, 110.2063), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3432, 2.7326, 433.7117), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1506, 6.013, 103.0928), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1060, 5.631, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(969, 5.204, 632.784), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(942, 1.396, 853.196), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(708, 3.803, 323.505), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(552, 5.131, 202.253), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(400, 3.359, 227.526), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(319, 3.626, 209.367), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(316, 1.997, 647.011), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(314, 0.465, 217.231), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(284, 4.886, 224.345), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(236, 2.139, 11.046), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(215, 5.95, 846.083), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(209, 2.12, 415.552), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(207, 0.73, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(179, 2.954, 63.736), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(141, 0.644, 490.334), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(139, 4.595, 14.227), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(139, 1.998, 735.877), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(135, 5.245, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(122, 3.115, 522.577), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(116, 3.109, 216.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 0.963, 210.118)];\nconst g_B1SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(397555, 5.3329, 213.299095), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(49479, 3.14159, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18572, 6.09919, 426.59819), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14801, 2.30586, 206.18555), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9644, 1.6967, 220.4126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3757, 1.2543, 419.4846), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2717, 5.9117, 639.8973), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1455, 0.8516, 433.7117), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1291, 2.9177, 7.1135), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(853, 0.436, 316.392), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(298, 0.919, 632.784), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(292, 5.316, 853.196), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(284, 1.619, 227.526), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(275, 3.889, 103.093), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(172, 0.052, 647.011), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(166, 2.444, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(158, 5.209, 110.206), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(128, 1.207, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(110, 2.457, 217.231), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(82, 2.76, 210.12), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(81, 2.86, 14.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(69, 1.66, 202.25), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(65, 1.26, 216.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(61, 1.25, 209.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(59, 1.82, 323.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(46, 0.82, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(36, 1.82, 224.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34, 2.84, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(33, 1.31, 412.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 1.19, 846.08), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 4.65, 1066.5), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 4.44, 11.05)];\nconst g_B2SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20630, 0.50482, 213.2991), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3720, 3.9983, 206.1855), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1627, 6.1819, 220.4126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1346, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(706, 3.039, 419.485), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(365, 5.099, 426.598), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(330, 5.279, 433.712), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(219, 3.828, 639.897), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(139, 1.043, 7.114), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(104, 6.157, 227.526), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(93, 1.98, 316.39), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(71, 4.15, 199.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(52, 2.88, 632.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(49, 4.43, 647.01), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(41, 3.16, 853.2), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 4.53, 210.12), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(24, 1.12, 14.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21, 4.35, 217.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 5.31, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 0.85, 110.21), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17, 5.68, 216.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 4.26, 103.09), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 3, 412.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 2.53, 529.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 3.32, 202.25), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 5.56, 209.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 0.29, 323.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 1.16, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 3.61, 869.31)];\nconst g_B3SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(666, 1.99, 213.299), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(632, 5.698, 206.186), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(398, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(188, 4.338, 220.413), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(92, 4.84, 419.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(52, 3.42, 433.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(42, 2.38, 426.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 4.4, 227.53), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21, 5.85, 199.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18, 1.99, 639.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 5.37, 7.11), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 2.55, 647.01), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 3.46, 316.39), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 4.8, 632.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 0.02, 210.12), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 3.52, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 5.64, 14.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 1.22, 853.2), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 4.71, 412.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0.63, 103.09), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 3.72, 216.48)];\nconst g_B4SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(80, 1.12, 206.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 3.12, 213.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17, 2.48, 220.41), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 3.14, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 0.38, 419.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 1.56, 433.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 2.63, 227.53), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 1.28, 199.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 1.43, 426.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 0.67, 647.01), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 1.72, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 6.18, 639.9)];\nconst g_B5SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 2.82, 206.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 0.51, 220.41)];\nconst g_R0SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(955758136, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(52921382, 2.3922622, 213.29909544), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1873680, 5.2354961, 206.1855484), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1464664, 1.6476305, 426.5981909), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(821891, 5.9352, 316.39187), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(547507, 5.015326, 103.092774), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(371684, 2.271148, 220.412642), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(361778, 3.139043, 7.113547), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(140618, 5.704067, 632.783739), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(108975, 3.293136, 110.206321), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(69007, 5.941, 419.48464), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(61053, 0.94038, 639.89729), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(48913, 1.55733, 202.2534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34144, 0.19519, 277.03499), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32402, 5.47085, 949.17561), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20937, 0.46349, 735.87651), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20839, 1.52103, 433.71174), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20747, 5.33256, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15298, 3.05944, 529.69097), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14296, 2.60434, 323.50542), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12884, 1.64892, 138.5175), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11993, 5.98051, 846.08283), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11380, 1.73106, 522.57742), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9796, 5.2048, 1265.5675), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7753, 5.8519, 95.9792), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6771, 3.0043, 14.2271), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6466, 0.1773, 1052.2684), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5850, 1.4552, 415.5525), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5307, 0.5974, 63.7359), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4696, 2.1492, 227.5262), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4044, 1.6401, 209.3669), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3688, 0.7802, 412.3711), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3461, 1.8509, 175.1661), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3420, 4.9455, 1581.9593), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3401, 0.5539, 350.3321), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3376, 3.6953, 224.3448), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2976, 5.6847, 210.1177), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2885, 1.3876, 838.9693), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2881, 0.1796, 853.1964), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2508, 3.5385, 742.9901), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2448, 6.1841, 1368.6603), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2406, 2.9656, 117.3199), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2174, 0.0151, 340.7709), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2024, 5.0541, 11.0457)];\nconst g_R1SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6182981, 0.2584352, 213.2990954), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(506578, 0.711147, 206.185548), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(341394, 5.796358, 426.598191), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(188491, 0.472157, 220.412642), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(186262, 3.141593, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(143891, 1.407449, 7.113547), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(49621, 6.01744, 103.09277), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20928, 5.09246, 639.89729), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(19953, 1.1756, 419.48464), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(18840, 1.6082, 110.20632), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13877, 0.75886, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12893, 5.9433, 433.71174), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5397, 1.2885, 14.2271), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4869, 0.8679, 323.5054), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4247, 0.393, 227.5262), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3252, 1.2585, 95.9792), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3081, 3.4366, 522.5774), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2909, 4.6068, 202.2534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2856, 2.1673, 735.8765), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1988, 2.4505, 412.3711), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1941, 6.0239, 209.3669), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1581, 1.2919, 210.1177), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1340, 4.308, 853.1964), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1316, 1.253, 117.3199), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1203, 1.8665, 316.3919), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1091, 0.0753, 216.4805), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(966, 0.48, 632.784), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(954, 5.152, 647.011), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(898, 0.983, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(882, 1.885, 1052.268), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(874, 1.402, 224.345), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(785, 3.064, 838.969), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(740, 1.382, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(658, 4.144, 309.278), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(650, 1.725, 742.99), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(613, 3.033, 63.736), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(599, 2.549, 217.231), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(503, 2.13, 3.932)];\nconst g_R2SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(436902, 4.786717, 213.299095), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(71923, 2.5007, 206.18555), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(49767, 4.97168, 220.41264), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(43221, 3.8694, 426.59819), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29646, 5.9631, 7.11355), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4721, 2.4753, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4142, 4.1067, 433.7117), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3789, 3.0977, 639.8973), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2964, 1.3721, 103.0928), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2556, 2.8507, 419.4846), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2327, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2208, 6.2759, 110.2063), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2188, 5.8555, 14.2271), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1957, 4.9245, 227.5262), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(924, 5.464, 323.505), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(706, 2.971, 95.979), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(546, 4.129, 412.371), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(431, 5.178, 522.577), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(405, 4.173, 209.367), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(391, 4.481, 216.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(374, 5.834, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(361, 3.277, 647.011), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(356, 3.192, 210.118), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(326, 2.269, 853.196), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(207, 4.022, 735.877), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(204, 0.088, 202.253), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(180, 3.597, 632.784), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(178, 4.097, 440.825), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(154, 3.135, 625.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(148, 0.136, 302.165), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(133, 2.594, 191.958), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(132, 5.933, 309.278)];\nconst g_R3SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20315, 3.02187, 213.2991), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8924, 3.1914, 220.4126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6909, 4.3517, 206.1855), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4087, 4.2241, 7.1135), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3879, 2.0106, 426.5982), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1071, 4.2036, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(907, 2.283, 433.712), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(606, 3.175, 227.526), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(597, 4.135, 14.227), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(483, 1.173, 639.897), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(393, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(229, 4.698, 419.485), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(188, 4.59, 110.206), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(150, 3.202, 103.093), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(121, 3.768, 323.505), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(102, 4.71, 95.979), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(101, 5.819, 412.371), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(93, 1.44, 647.01), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(84, 2.63, 216.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(73, 4.15, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(62, 2.31, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(55, 0.31, 853.2), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(50, 2.39, 209.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(45, 4.37, 191.96), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(41, 0.69, 522.58), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40, 1.84, 302.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(38, 5.94, 88.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 4.01, 21.34)];\nconst g_R4SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1202, 1.415, 220.4126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(708, 1.162, 213.299), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(516, 6.24, 206.186), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(427, 2.469, 7.114), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(268, 0.187, 426.598), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(170, 5.959, 199.072), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(150, 0.48, 433.712), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(145, 1.442, 227.526), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(121, 2.405, 14.227), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(47, 5.57, 639.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(19, 5.86, 647.01), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17, 0.53, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 2.9, 110.21), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 0.3, 419.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 1.3, 412.37), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 2.09, 323.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 0.22, 95.98), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 2.46, 117.32), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 3.14, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 1.56, 88.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 2.28, 21.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 0.68, 216.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 1.27, 234.64)];\nconst g_R5SaturnCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(129, 5.913, 220.413), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 0.69, 7.11), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 5.91, 227.53), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 4.95, 433.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 0.67, 14.23), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 2.67, 206.19), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 1.46, 199.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 4.59, 426.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 4.63, 213.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5, 3.61, 639.9), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 4.9, 440.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 4.07, 647.01), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 4.66, 191.96), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0.49, 323.51), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 3.18, 419.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 3.7, 88.87), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 3.32, 95.98), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 0.56, 117.32)];\n\n\n// CAASaturn\n\nfunction CAASaturn() { }\n\nCAASaturn.eclipticLongitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var rho5 = rho4 * rho;\n var nL0Coefficients = g_L0SaturnCoefficients.length;\n var L0 = 0;\n var i;\n for (i = 0; i < nL0Coefficients; i++) {\n L0 += g_L0SaturnCoefficients[i].a * Math.cos(g_L0SaturnCoefficients[i].b + g_L0SaturnCoefficients[i].c * rho);\n }\n var nL1Coefficients = g_L1SaturnCoefficients.length;\n var L1 = 0;\n for (i = 0; i < nL1Coefficients; i++) {\n L1 += g_L1SaturnCoefficients[i].a * Math.cos(g_L1SaturnCoefficients[i].b + g_L1SaturnCoefficients[i].c * rho);\n }\n var nL2Coefficients = g_L2SaturnCoefficients.length;\n var L2 = 0;\n for (i = 0; i < nL2Coefficients; i++) {\n L2 += g_L2SaturnCoefficients[i].a * Math.cos(g_L2SaturnCoefficients[i].b + g_L2SaturnCoefficients[i].c * rho);\n }\n var nL3Coefficients = g_L3SaturnCoefficients.length;\n var L3 = 0;\n for (i = 0; i < nL3Coefficients; i++) {\n L3 += g_L3SaturnCoefficients[i].a * Math.cos(g_L3SaturnCoefficients[i].b + g_L3SaturnCoefficients[i].c * rho);\n }\n var nL4Coefficients = g_L4SaturnCoefficients.length;\n var L4 = 0;\n for (i = 0; i < nL4Coefficients; i++) {\n L4 += g_L4SaturnCoefficients[i].a * Math.cos(g_L4SaturnCoefficients[i].b + g_L4SaturnCoefficients[i].c * rho);\n }\n var nL5Coefficients = g_L5SaturnCoefficients.length;\n var L5 = 0;\n for (i = 0; i < nL5Coefficients; i++) {\n L5 += g_L5SaturnCoefficients[i].a * Math.cos(g_L5SaturnCoefficients[i].b + g_L5SaturnCoefficients[i].c * rho);\n }\n var vvalue = (L0 + L1 * rho + L2 * rhosquared + L3 * rhocubed + L4 * rho4 + L5 * rho5) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue));\n return vvalue;\n};\n\nCAASaturn.eclipticLatitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var rho5 = rho4 * rho;\n var nB0Coefficients = g_B0SaturnCoefficients.length;\n var B0 = 0;\n var i;\n for (i = 0; i < nB0Coefficients; i++) {\n B0 += g_B0SaturnCoefficients[i].a * Math.cos(g_B0SaturnCoefficients[i].b + g_B0SaturnCoefficients[i].c * rho);\n }\n var nB1Coefficients = g_B1SaturnCoefficients.length;\n var B1 = 0;\n for (i = 0; i < nB1Coefficients; i++) {\n B1 += g_B1SaturnCoefficients[i].a * Math.cos(g_B1SaturnCoefficients[i].b + g_B1SaturnCoefficients[i].c * rho);\n }\n var nB2Coefficients = g_B2SaturnCoefficients.length;\n var B2 = 0;\n for (i = 0; i < nB2Coefficients; i++) {\n B2 += g_B2SaturnCoefficients[i].a * Math.cos(g_B2SaturnCoefficients[i].b + g_B2SaturnCoefficients[i].c * rho);\n }\n var nB3Coefficients = g_B3SaturnCoefficients.length;\n var B3 = 0;\n for (i = 0; i < nB3Coefficients; i++) {\n B3 += g_B3SaturnCoefficients[i].a * Math.cos(g_B3SaturnCoefficients[i].b + g_B3SaturnCoefficients[i].c * rho);\n }\n var nB4Coefficients = g_B4SaturnCoefficients.length;\n var B4 = 0;\n for (i = 0; i < nB4Coefficients; i++) {\n B4 += g_B4SaturnCoefficients[i].a * Math.cos(g_B4SaturnCoefficients[i].b + g_B4SaturnCoefficients[i].c * rho);\n }\n var nB5Coefficients = g_B5SaturnCoefficients.length;\n var B5 = 0;\n for (i = 0; i < nB5Coefficients; i++) {\n B5 += g_B5SaturnCoefficients[i].a * Math.cos(g_B5SaturnCoefficients[i].b + g_B5SaturnCoefficients[i].c * rho);\n }\n var vvalue = (B0 + B1 * rho + B2 * rhosquared + B3 * rhocubed + B4 * rho4 + B5 * rho5) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n return vvalue;\n};\n\nCAASaturn.radiusVector = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var rho5 = rho4 * rho;\n var nR0Coefficients = g_R0SaturnCoefficients.length;\n var R0 = 0;\n var i;\n for (i = 0; i < nR0Coefficients; i++) {\n R0 += g_R0SaturnCoefficients[i].a * Math.cos(g_R0SaturnCoefficients[i].b + g_R0SaturnCoefficients[i].c * rho);\n }\n var nR1Coefficients = g_R1SaturnCoefficients.length;\n var R1 = 0;\n for (i = 0; i < nR1Coefficients; i++) {\n R1 += g_R1SaturnCoefficients[i].a * Math.cos(g_R1SaturnCoefficients[i].b + g_R1SaturnCoefficients[i].c * rho);\n }\n var nR2Coefficients = g_R2SaturnCoefficients.length;\n var R2 = 0;\n for (i = 0; i < nR2Coefficients; i++) {\n R2 += g_R2SaturnCoefficients[i].a * Math.cos(g_R2SaturnCoefficients[i].b + g_R2SaturnCoefficients[i].c * rho);\n }\n var nR3Coefficients = g_R3SaturnCoefficients.length;\n var R3 = 0;\n for (i = 0; i < nR3Coefficients; i++) {\n R3 += g_R3SaturnCoefficients[i].a * Math.cos(g_R3SaturnCoefficients[i].b + g_R3SaturnCoefficients[i].c * rho);\n }\n var nR4Coefficients = g_R4SaturnCoefficients.length;\n var R4 = 0;\n for (i = 0; i < nR4Coefficients; i++) {\n R4 += g_R4SaturnCoefficients[i].a * Math.cos(g_R4SaturnCoefficients[i].b + g_R4SaturnCoefficients[i].c * rho);\n }\n var nR5Coefficients = g_R5SaturnCoefficients.length;\n var R5 = 0;\n for (i = 0; i < nR5Coefficients; i++) {\n R5 += g_R5SaturnCoefficients[i].a * Math.cos(g_R5SaturnCoefficients[i].b + g_R5SaturnCoefficients[i].c * rho);\n }\n return (R0 + R1 * rho + R2 * rhosquared + R3 * rhocubed + R4 * rho4 + R5 * rho5) / 100000000;\n};\n\nvar CAASaturn$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAASaturn\", [CAASaturn, CAASaturn$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/saturn_rings.js\":\n/*!***************************************!*\\\n !*** ./esm/astrocalc/saturn_rings.js ***!\n \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAASaturnRingDetails: () => (/* binding */ CAASaturnRingDetails),\n/* harmony export */ CAASaturnRings: () => (/* binding */ CAASaturnRings)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _fk5_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fk5.js */ \"./esm/astrocalc/fk5.js\");\n/* harmony import */ var _elliptical_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./elliptical.js */ \"./esm/astrocalc/elliptical.js\");\n/* harmony import */ var _nutation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./nutation.js */ \"./esm/astrocalc/nutation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n/* harmony import */ var _saturn_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./saturn.js */ \"./esm/astrocalc/saturn.js\");\n// Originally `AASATURNRINGS.CPP`\n// \"Purpose: Implementation for the algorithms which calculate various parameters related to the Rings of Saturn\"\n// Last update of original: PJN / 08-01-2004\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n\n\n// CAASaturnRingDetails\n\nfunction CAASaturnRingDetails() {\n this.b = 0;\n this.bdash = 0;\n this.p = 0;\n this.a = 0;\n this.b = 0;\n this.deltaU = 0;\n this.b = 0;\n this.bdash = 0;\n this.p = 0;\n this.a = 0;\n this.b = 0;\n this.deltaU = 0;\n}\n\nvar CAASaturnRingDetails$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAASaturnRingDetails\", [CAASaturnRingDetails, CAASaturnRingDetails$, null]);\n\n\n// CAASaturnRings\n\nfunction CAASaturnRings() { }\n\nCAASaturnRings.calculate = function (JD) {\n var details = new CAASaturnRingDetails();\n var T = (JD - 2451545) / 36525;\n var T2 = T * T;\n var i = 28.075216 - 0.012998 * T + 4E-06 * T2;\n var irad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(i);\n var omega = 169.50847 + 1.394681 * T + 0.000412 * T2;\n var omegarad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(omega);\n var l0 = _earth_js__WEBPACK_IMPORTED_MODULE_5__.CAAEarth.eclipticLongitude(JD);\n var b0 = _earth_js__WEBPACK_IMPORTED_MODULE_5__.CAAEarth.eclipticLatitude(JD);\n l0 += _fk5_js__WEBPACK_IMPORTED_MODULE_2__.CAAFK5.correctionInLongitude(l0, b0, JD);\n var l0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l0);\n b0 += _fk5_js__WEBPACK_IMPORTED_MODULE_2__.CAAFK5.correctionInLatitude(l0, JD);\n var b0rad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(b0);\n var R = _earth_js__WEBPACK_IMPORTED_MODULE_5__.CAAEarth.radiusVector(JD);\n var DELTA = 9;\n var PreviousEarthLightTravelTime = 0;\n var EarthLightTravelTime = _elliptical_js__WEBPACK_IMPORTED_MODULE_3__.ELL.distanceToLightTime(DELTA);\n var JD1 = JD - EarthLightTravelTime;\n var bIterate = true;\n var x = 0;\n var y = 0;\n var z = 0;\n var l = 0;\n var b = 0;\n var r = 0;\n while (bIterate) {\n l = _saturn_js__WEBPACK_IMPORTED_MODULE_6__.CAASaturn.eclipticLongitude(JD1);\n b = _saturn_js__WEBPACK_IMPORTED_MODULE_6__.CAASaturn.eclipticLatitude(JD1);\n l += _fk5_js__WEBPACK_IMPORTED_MODULE_2__.CAAFK5.correctionInLongitude(l, b, JD1);\n b += _fk5_js__WEBPACK_IMPORTED_MODULE_2__.CAAFK5.correctionInLatitude(l, JD1);\n var lrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(l);\n var brad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(b);\n r = _saturn_js__WEBPACK_IMPORTED_MODULE_6__.CAASaturn.radiusVector(JD1);\n x = r * Math.cos(brad) * Math.cos(lrad) - R * Math.cos(l0rad);\n y = r * Math.cos(brad) * Math.sin(lrad) - R * Math.sin(l0rad);\n z = r * Math.sin(brad) - R * Math.sin(b0rad);\n DELTA = Math.sqrt(x * x + y * y + z * z);\n EarthLightTravelTime = _elliptical_js__WEBPACK_IMPORTED_MODULE_3__.ELL.distanceToLightTime(DELTA);\n bIterate = (Math.abs(EarthLightTravelTime - PreviousEarthLightTravelTime) > 2E-06);\n if (bIterate) {\n JD1 = JD - EarthLightTravelTime;\n PreviousEarthLightTravelTime = EarthLightTravelTime;\n }\n }\n var lambda = Math.atan2(y, x);\n var beta = Math.atan2(z, Math.sqrt(x * x + y * y));\n details.b = Math.asin(Math.sin(irad) * Math.cos(beta) * Math.sin(lambda - omegarad) - Math.cos(irad) * Math.sin(beta));\n details.a = 375.35 / DELTA;\n details.b = details.a * Math.sin(Math.abs(details.b));\n details.b = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(details.b);\n var N = 113.6655 + 0.8771 * T;\n var Nrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(N);\n var ldash = l - 0.01759 / r;\n var ldashrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(ldash);\n var bdash = b - 0.000764 * Math.cos(ldashrad - Nrad) / r;\n var bdashrad = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(bdash);\n details.bdash = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.asin(Math.sin(irad) * Math.cos(bdashrad) * Math.sin(ldashrad - omegarad) - Math.cos(irad) * Math.sin(bdashrad)));\n var U1 = Math.atan2(Math.sin(irad) * Math.sin(bdashrad) + Math.cos(irad) * Math.cos(bdashrad) * Math.sin(ldashrad - omegarad), Math.cos(bdashrad) * Math.cos(ldashrad - omegarad));\n var U2 = Math.atan2(Math.sin(irad) * Math.sin(beta) + Math.cos(irad) * Math.cos(beta) * Math.sin(lambda - omegarad), Math.cos(beta) * Math.cos(lambda - omegarad));\n details.deltaU = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.abs(U1 - U2));\n var Obliquity = _nutation_js__WEBPACK_IMPORTED_MODULE_4__.CAANutation.trueObliquityOfEcliptic(JD);\n var NutationInLongitude = _nutation_js__WEBPACK_IMPORTED_MODULE_4__.CAANutation.nutationInLongitude(JD);\n var lambda0 = omega - 90;\n var beta0 = 90 - i;\n lambda += _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(0.005693 * Math.cos(l0rad - lambda) / Math.cos(beta));\n beta += _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(0.005693 * Math.sin(l0rad - lambda) * Math.sin(beta));\n lambda = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(lambda);\n lambda += NutationInLongitude / 3600;\n lambda = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(lambda);\n lambda0 += NutationInLongitude / 3600;\n lambda0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(lambda0);\n beta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(beta);\n var GeocentricEclipticSaturn = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.ec2Eq(lambda, beta, Obliquity);\n var alpha = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(GeocentricEclipticSaturn.x);\n var delta = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(GeocentricEclipticSaturn.y);\n var GeocentricEclipticNorthPole = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.ec2Eq(lambda0, beta0, Obliquity);\n var alpha0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.h2R(GeocentricEclipticNorthPole.x);\n var delta0 = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(GeocentricEclipticNorthPole.y);\n details.p = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(Math.atan2(Math.cos(delta0) * Math.sin(alpha0 - alpha), Math.sin(delta0) * Math.cos(delta) - Math.cos(delta0) * Math.sin(delta) * Math.cos(alpha0 - alpha)));\n return details;\n};\n\nvar CAASaturnRings$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAASaturnRings\", [CAASaturnRings, CAASaturnRings$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/sidereal.js\":\n/*!***********************************!*\\\n !*** ./esm/astrocalc/sidereal.js ***!\n \\***********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAASidereal: () => (/* binding */ CAASidereal)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _date_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./date.js */ \"./esm/astrocalc/date.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _nutation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./nutation.js */ \"./esm/astrocalc/nutation.js\");\n// Originally `AASIDEREAL.CPP`\n// \"Purpose: Implementation for the algorithms which obtain sidereal time\"\n// Last update of original: PJN / 28-01-2007\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n\n// CAASidereal\n\nfunction CAASidereal() { }\n\nCAASidereal.meanGreenwichSiderealTime = function (JD) {\n var date = new _date_js__WEBPACK_IMPORTED_MODULE_2__.DT();\n date.setJD(JD, _date_js__WEBPACK_IMPORTED_MODULE_2__.DT.afterPapalReformJD(JD));\n var D = date.get();\n var Year = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(D[0]);\n var Month = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(D[1]);\n var Day = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(D[2]);\n var Hour = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(D[3]);\n var Minute = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(D[4]);\n var Second = D[5];\n date.set(Year, Month, Day, 0, 0, 0, date.inGregorianCalendar());\n var JDMidnight = date.julian();\n var T = (JDMidnight - 2451545) / 36525;\n var TSquared = T * T;\n var TCubed = TSquared * T;\n var Value = 100.46061837 + (36000.770053608 * T) + (0.000387933 * TSquared) - (TCubed / 38710000);\n Value += (((Hour * 15) + (Minute * 0.25) + (Second * 0.00416666666666667)) * 1.00273790935);\n Value = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__.CT.d2H(Value);\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__.CT.m24(Value);\n};\n\nCAASidereal.apparentGreenwichSiderealTime = function (JD) {\n var MeanObliquity = _nutation_js__WEBPACK_IMPORTED_MODULE_4__.CAANutation.meanObliquityOfEcliptic(JD);\n var TrueObliquity = MeanObliquity + _nutation_js__WEBPACK_IMPORTED_MODULE_4__.CAANutation.nutationInObliquity(JD) / 3600;\n var NutationInLongitude = _nutation_js__WEBPACK_IMPORTED_MODULE_4__.CAANutation.nutationInLongitude(JD);\n var Value = CAASidereal.meanGreenwichSiderealTime(JD) + (NutationInLongitude * Math.cos(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__.CT.d2R(TrueObliquity)) / 54000);\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__.CT.m24(Value);\n};\n\nvar CAASidereal$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAASidereal\", [CAASidereal, CAASidereal$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/stellar_magnitudes.js\":\n/*!*********************************************!*\\\n !*** ./esm/astrocalc/stellar_magnitudes.js ***!\n \\*********************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAStellarMagnitudes: () => (/* binding */ CAAStellarMagnitudes)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n// Originally `AASTELLARMAGNITUDES.CPP`\n// \"Purpose: Implementation for the algorithms which operate on the stellar magntidue system\"\n// Last update of original: PJN / 12-02-2004\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n// CAAStellarMagnitudes\n\nfunction CAAStellarMagnitudes() { }\n\nCAAStellarMagnitudes.combinedMagnitude = function (m1, m2) {\n var x = 0.4 * (m2 - m1);\n return m2 - 2.5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(Math.pow(10, x) + 1);\n};\n\nCAAStellarMagnitudes.combinedMagnitude2 = function (Magnitudes, pMagnitudes) {\n var vvalue = 0;\n for (var i = 0; i < Magnitudes; i++) {\n vvalue += Math.pow(10, -0.4 * pMagnitudes[i]);\n }\n return -2.5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(vvalue);\n};\n\nCAAStellarMagnitudes.brightnessRatio = function (m1, m2) {\n var x = 0.4 * (m2 - m1);\n return Math.pow(10, x);\n};\n\nCAAStellarMagnitudes.magnitudeDifference = function (brightnessRatio) {\n return 2.5 * _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util.log10(brightnessRatio);\n};\n\nvar CAAStellarMagnitudes$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAStellarMagnitudes\", [CAAStellarMagnitudes, CAAStellarMagnitudes$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/sun.js\":\n/*!******************************!*\\\n !*** ./esm/astrocalc/sun.js ***!\n \\******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAASun: () => (/* binding */ CAASun)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n/* harmony import */ var _fk5_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fk5.js */ \"./esm/astrocalc/fk5.js\");\n/* harmony import */ var _nutation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./nutation.js */ \"./esm/astrocalc/nutation.js\");\n// Originally `AASUN.CPP`\n// \"Purpose: Implementation for the algorithms which calculate the position of Earth\"\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n\n// CAASun\n\nfunction CAASun() { }\n\nCAASun.geometricEclipticLongitude = function (JD) {\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.eclipticLongitude(JD) + 180);\n};\n\nCAASun.geometricEclipticLatitude = function (JD) {\n return -_earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.eclipticLatitude(JD);\n};\n\nCAASun.geometricEclipticLongitudeJ2000 = function (JD) {\n return _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.eclipticLongitudeJ2000(JD) + 180);\n};\n\nCAASun.geometricEclipticLatitudeJ2000 = function (JD) {\n return -_earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.eclipticLatitudeJ2000(JD);\n};\n\nCAASun.geometricFK5EclipticLongitude = function (JD) {\n var Longitude = CAASun.geometricEclipticLongitude(JD);\n var Latitude = CAASun.geometricEclipticLatitude(JD);\n Longitude += _fk5_js__WEBPACK_IMPORTED_MODULE_3__.CAAFK5.correctionInLongitude(Longitude, Latitude, JD);\n return Longitude;\n};\n\nCAASun.geometricFK5EclipticLatitude = function (JD) {\n var Longitude = CAASun.geometricEclipticLongitude(JD);\n var Latitude = CAASun.geometricEclipticLatitude(JD);\n var SunLatCorrection = _fk5_js__WEBPACK_IMPORTED_MODULE_3__.CAAFK5.correctionInLatitude(Longitude, JD);\n Latitude += SunLatCorrection;\n return Latitude;\n};\n\nCAASun.apparentEclipticLongitude = function (JD) {\n var Longitude = CAASun.geometricFK5EclipticLongitude(JD);\n Longitude += _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, _nutation_js__WEBPACK_IMPORTED_MODULE_4__.CAANutation.nutationInLongitude(JD));\n var R = _earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.radiusVector(JD);\n Longitude -= _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.dmS2D(0, 0, 20.4898 / R);\n return Longitude;\n};\n\nCAASun.apparentEclipticLatitude = function (JD) {\n return CAASun.geometricFK5EclipticLatitude(JD);\n};\n\nCAASun.eclipticRectangularCoordinatesMeanEquinox = function (JD) {\n var Longitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(CAASun.geometricFK5EclipticLongitude(JD));\n var Latitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(CAASun.geometricFK5EclipticLatitude(JD));\n var R = _earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.radiusVector(JD);\n var epsilon = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(_nutation_js__WEBPACK_IMPORTED_MODULE_4__.CAANutation.meanObliquityOfEcliptic(JD));\n var vvalue = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.C3D();\n vvalue.x = R * Math.cos(Latitude) * Math.cos(Longitude);\n vvalue.y = R * (Math.cos(Latitude) * Math.sin(Longitude) * Math.cos(epsilon) - Math.sin(Latitude) * Math.sin(epsilon));\n vvalue.z = R * (Math.cos(Latitude) * Math.sin(Longitude) * Math.sin(epsilon) + Math.sin(Latitude) * Math.cos(epsilon));\n return vvalue;\n};\n\nCAASun.eclipticRectangularCoordinatesJ2000 = function (JD) {\n var Longitude = CAASun.geometricEclipticLongitudeJ2000(JD);\n Longitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Longitude);\n var Latitude = CAASun.geometricEclipticLatitudeJ2000(JD);\n Latitude = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.d2R(Latitude);\n var R = _earth_js__WEBPACK_IMPORTED_MODULE_2__.CAAEarth.radiusVector(JD);\n var vvalue = new _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.C3D();\n var coslatitude = Math.cos(Latitude);\n vvalue.x = R * coslatitude * Math.cos(Longitude);\n vvalue.y = R * coslatitude * Math.sin(Longitude);\n vvalue.z = R * Math.sin(Latitude);\n return vvalue;\n};\n\nCAASun.equatorialRectangularCoordinatesJ2000 = function (JD) {\n var vvalue = CAASun.eclipticRectangularCoordinatesJ2000(JD);\n vvalue = _fk5_js__WEBPACK_IMPORTED_MODULE_3__.CAAFK5.convertVSOPToFK5J2000(vvalue);\n return vvalue;\n};\n\nCAASun.equatorialRectangularCoordinatesB1950 = function (JD) {\n var vvalue = CAASun.eclipticRectangularCoordinatesJ2000(JD);\n vvalue = _fk5_js__WEBPACK_IMPORTED_MODULE_3__.CAAFK5.convertVSOPToFK5B1950(vvalue);\n return vvalue;\n};\n\nCAASun.equatorialRectangularCoordinatesAnyEquinox = function (JD, JDEquinox) {\n var vvalue = CAASun.equatorialRectangularCoordinatesJ2000(JD);\n vvalue = _fk5_js__WEBPACK_IMPORTED_MODULE_3__.CAAFK5.convertVSOPToFK5AnyEquinox(vvalue, JDEquinox);\n return vvalue;\n};\n\nvar CAASun$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAASun\", [CAASun, CAASun$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/uranus.js\":\n/*!*********************************!*\\\n !*** ./esm/astrocalc/uranus.js ***!\n \\*********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAUranus: () => (/* binding */ CAAUranus)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n// Originally `AAURANUS.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the heliocentric position of Uranus\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// Coefficients\n\nconst g_L0UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(548129294, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9260408, 0.8910642, 74.7815986), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1504248, 3.6271926, 1.4844727), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(365982, 1.899622, 73.297126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(272328, 3.358237, 149.563197), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(70328, 5.39254, 63.7359), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(68893, 6.09292, 76.26607), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(61999, 2.26952, 2.96895), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(61951, 2.85099, 11.0457), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26469, 3.14152, 71.81265), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(25711, 6.1138, 454.90937), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21079, 4.36059, 148.07872), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17819, 1.74437, 36.64856), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14613, 4.73732, 3.93215), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11163, 5.82682, 224.3448), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10998, 0.48865, 138.5175), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9527, 2.9552, 35.1641), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7546, 5.2363, 109.9457), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4220, 3.2333, 70.8494), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4052, 2.2775, 151.0477), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3490, 5.4831, 146.5943), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3355, 1.0655, 4.4534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3144, 4.752, 77.7505), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2927, 4.629, 9.5612), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2922, 5.3524, 85.8273), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2273, 4.366, 70.3282), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2149, 0.6075, 38.133), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2051, 1.5177, 0.1119), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1992, 4.9244, 277.035), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1667, 3.6274, 380.1278), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1533, 2.5859, 52.6902), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1376, 2.0428, 65.2204), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1372, 4.1964, 111.4302), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1284, 3.1135, 202.2534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1282, 0.5427, 222.8603), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1244, 0.9161, 2.4477), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1221, 0.199, 108.4612), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1151, 4.179, 33.6796), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1150, 0.9334, 3.1814), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1090, 1.775, 12.5302), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1072, 0.2356, 62.2514), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(946, 1.192, 127.472), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(708, 5.183, 213.299), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(653, 0.966, 78.714), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(628, 0.182, 984.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(607, 5.432, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(559, 3.358, 0.521), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(524, 2.013, 299.126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(483, 2.106, 0.963), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(471, 1.407, 184.727), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(467, 0.415, 145.11), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(434, 5.521, 183.243), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(405, 5.987, 8.077), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(399, 0.338, 415.552), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(396, 5.87, 351.817), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(379, 2.35, 56.622), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(310, 5.833, 145.631), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(300, 5.644, 22.091), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(294, 5.839, 39.618), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(252, 1.637, 221.376), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(249, 4.746, 225.829), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(239, 2.35, 137.033), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(224, 0.516, 84.343), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(223, 2.843, 0.261), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(220, 1.922, 67.668), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(217, 6.142, 5.938), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(216, 4.778, 340.771), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(208, 5.58, 68.844), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(202, 1.297, 0.048), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(199, 0.956, 152.532), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(194, 1.888, 456.394), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(193, 0.916, 453.425), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(187, 1.319, 0.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(182, 3.536, 79.235), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(173, 1.539, 160.609), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(172, 5.68, 219.891), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(170, 3.677, 5.417), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(169, 5.879, 18.159), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(165, 1.424, 106.977), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(163, 3.05, 112.915), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(158, 0.738, 54.175), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(147, 1.263, 59.804), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(143, 1.3, 35.425), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(139, 5.386, 32.195), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(139, 4.26, 909.819), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(124, 1.374, 7.114), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(110, 2.027, 554.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(109, 5.706, 77.963), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(104, 5.028, 0.751), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(104, 1.458, 24.379), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(103, 0.681, 14.978)];\nconst g_L1UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7502543122, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(154458, 5.242017, 74.781599), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(24456, 1.71256, 1.48447), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9258, 0.4284, 11.0457), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8266, 1.5022, 63.7359), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7842, 1.3198, 149.5632), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3899, 0.4648, 3.9322), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2284, 4.1737, 76.2661), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1927, 0.5301, 2.9689), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1233, 1.5863, 70.8494), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(791, 5.436, 3.181), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(767, 1.996, 73.297), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(482, 2.984, 85.827), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(450, 4.138, 138.517), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(446, 3.723, 224.345), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(427, 4.731, 71.813), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(354, 2.583, 148.079), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(348, 2.454, 9.561), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(317, 5.579, 52.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(206, 2.363, 2.448), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(189, 4.202, 56.622), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(184, 0.284, 151.048), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(180, 5.684, 12.53), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(171, 3.001, 78.714), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(158, 2.909, 0.963), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(155, 5.591, 4.453), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(154, 4.652, 35.164), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(152, 2.942, 77.751), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(143, 2.59, 62.251), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(121, 4.148, 127.472), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(116, 3.732, 65.22), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(102, 4.188, 145.631), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(102, 6.034, 0.112), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(88, 3.99, 18.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(88, 6.16, 202.25), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(81, 2.64, 22.09), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(72, 6.05, 70.33), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(69, 4.05, 77.96), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(59, 3.7, 67.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(47, 3.54, 351.82), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(44, 5.91, 7.11), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(43, 5.72, 5.42), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(39, 4.92, 222.86), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(36, 5.9, 33.68), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(36, 3.29, 8.08), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(36, 3.33, 71.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(35, 5.08, 38.13), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(31, 5.62, 984.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(31, 5.5, 59.8), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(31, 5.46, 160.61), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30, 1.66, 447.8), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 1.15, 462.02), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 4.52, 84.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 5.54, 131.4), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 6.15, 299.13), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 4.99, 137.03), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(25, 5.74, 380.13)];\nconst g_L2UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(53033, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2358, 2.2601, 74.7816), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(769, 4.526, 11.046), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(552, 3.258, 63.736), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(542, 2.276, 3.932), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(529, 4.923, 1.484), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(258, 3.691, 3.181), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(239, 5.858, 149.563), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(182, 6.218, 70.849), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(54, 1.44, 76.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(49, 6.03, 56.62), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(45, 3.91, 2.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(45, 0.81, 85.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(38, 1.78, 52.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(37, 4.46, 2.97), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(33, 0.86, 9.56), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29, 5.1, 73.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(24, 2.11, 18.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(22, 5.99, 138.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(22, 4.82, 78.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21, 2.4, 77.96), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21, 2.17, 224.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17, 2.54, 145.63), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17, 3.47, 12.53), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12, 0.02, 22.09), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 0.08, 127.47), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 5.16, 71.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 4.46, 62.25), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 4.26, 7.11), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 5.5, 67.67), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 1.25, 5.42), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 3.36, 447.8), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 5.45, 65.22), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 4.52, 151.05), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 5.73, 462.02)];\nconst g_L3UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(121, 0.024, 74.782), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(68, 4.12, 3.93), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(53, 2.39, 11.05), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(46, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(45, 2.04, 3.18), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(44, 2.96, 1.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(25, 4.89, 63.74), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21, 4.55, 70.85), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 2.31, 149.56), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9, 1.58, 56.62), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 0.23, 18.16), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 5.39, 76.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4, 0.95, 77.96), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 4.98, 85.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 4.13, 52.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0.37, 78.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 0.86, 145.63), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 5.66, 9.56)];\nconst g_L4UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 3.142, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 4.58, 74.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 0.35, 11.05), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 3.42, 56.62)];\nconst g_B0UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1346278, 2.6187781, 74.7815986), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(62341, 5.08111, 149.5632), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(61601, 3.14159, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9964, 1.616, 76.2661), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9926, 0.5763, 73.2971), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3259, 1.2612, 224.3448), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2972, 2.2437, 1.4845), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2010, 6.0555, 148.0787), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1522, 0.2796, 63.7359), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(924, 4.038, 151.048), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(761, 6.14, 71.813), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(522, 3.321, 138.517), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(463, 0.743, 85.827), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(437, 3.381, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(435, 0.341, 77.751), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(431, 3.554, 213.299), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(420, 5.213, 11.046), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(245, 0.788, 2.969), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(233, 2.257, 222.86), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(216, 1.591, 38.133), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(180, 3.725, 299.126), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(175, 1.236, 146.594), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(174, 1.937, 380.128), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(160, 5.336, 111.43), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(144, 5.962, 35.164), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(116, 5.739, 70.849), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(106, 0.941, 70.328), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(102, 2.619, 78.714)];\nconst g_B1UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(206366, 4.123943, 74.781599), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8563, 0.3382, 149.5632), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1726, 2.1219, 73.2971), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1374, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1369, 3.0686, 76.2661), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(451, 3.777, 1.484), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(400, 2.848, 224.345), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(307, 1.255, 148.079), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(154, 3.786, 63.736), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(112, 5.573, 151.048), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(111, 5.329, 138.517), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(83, 3.59, 71.81), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(56, 3.4, 85.83), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(54, 1.7, 77.75), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(42, 1.21, 11.05), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(41, 4.45, 78.71), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 3.77, 222.86), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30, 2.56, 2.97), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 5.34, 213.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 0.42, 380.13)];\nconst g_B2UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9212, 5.8004, 74.7816), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(557, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(286, 2.177, 149.563), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(95, 3.84, 73.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(45, 4.88, 76.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 5.46, 1.48), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15, 0.88, 138.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 2.85, 148.08), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 5.07, 63.74), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 5, 224.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8, 6.27, 78.71)];\nconst g_B3UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(268, 1.251, 74.782), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11, 3.14, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 4.01, 149.56), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 5.78, 73.3)];\nconst g_B4UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 2.85, 74.78)];\nconst g_R0UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1921264848, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(88784984, 5.60377527, 74.78159857), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3440836, 0.328361, 73.2971259), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2055653, 1.7829517, 149.5631971), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(649322, 4.522473, 76.266071), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(602248, 3.860038, 63.735898), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(496404, 1.401399, 454.909367), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(338526, 1.580027, 138.517497), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(243508, 1.570866, 71.812653), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(190522, 1.998094, 1.484473), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(161858, 2.791379, 148.078724), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(143706, 1.383686, 11.0457), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(93192, 0.17437, 36.64856), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(89806, 3.66105, 109.94569), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(71424, 4.24509, 224.3448), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(46677, 1.39977, 35.16409), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(39026, 3.36235, 277.03499), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(39010, 1.66971, 70.84945), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(36755, 3.88649, 146.59425), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30349, 0.701, 151.04767), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(29156, 3.18056, 77.75054), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(25786, 3.78538, 85.8273), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(25620, 5.25656, 380.12777), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(22637, 0.72519, 529.69097), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20473, 2.7964, 70.32818), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20472, 1.55589, 202.2534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(17901, 0.55455, 2.96895), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(15503, 5.35405, 38.13304), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14702, 4.90434, 108.46122), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12897, 2.62154, 111.43016), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(12328, 5.96039, 127.4718), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11959, 1.75044, 984.60033), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11853, 0.99343, 52.6902), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11696, 3.29826, 3.93215), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11495, 0.43774, 65.22037), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10793, 1.42105, 213.2991), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(9111, 4.9964, 62.2514), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8421, 5.2535, 222.8603), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(8402, 5.0388, 415.5525), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7449, 0.7949, 351.8166), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7329, 3.9728, 183.2428), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6046, 5.6796, 78.7138), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5524, 3.115, 9.5612), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5445, 5.1058, 145.1098), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5238, 2.6296, 33.6796), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4079, 3.2206, 340.7709), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3919, 4.2502, 39.6175), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3802, 6.1099, 184.7273), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3781, 3.4584, 456.3938), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3687, 2.4872, 453.4249), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3102, 4.1403, 219.8914), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2963, 0.8298, 56.6224), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2942, 0.4239, 299.1264), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2940, 2.1464, 137.033), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2938, 3.6766, 140.002), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2865, 0.31, 12.5302), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2538, 4.8546, 131.4039), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2364, 0.4425, 554.07), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2183, 2.9404, 305.3462)];\nconst g_R1UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1479896, 3.6720571, 74.7815986), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(71212, 6.22601, 63.7359), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(68627, 6.13411, 149.5632), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(24060, 3.14159, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(21468, 2.60177, 76.26607), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20857, 5.24625, 11.0457), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(11405, 0.01848, 70.84945), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7497, 0.4236, 73.2971), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4244, 1.4169, 85.8273), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3927, 3.1551, 71.8127), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3578, 2.3116, 224.3448), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3506, 2.5835, 138.5175), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3229, 5.255, 3.9322), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3060, 0.1532, 1.4845), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2564, 0.9808, 148.0787), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2429, 3.9944, 52.6902), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1645, 2.6535, 127.4718), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1584, 1.4305, 78.7138), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1508, 5.06, 151.0477), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1490, 2.6756, 56.6224), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1413, 4.5746, 202.2534), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1403, 1.3699, 77.7505), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1228, 1.047, 62.2514), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1033, 0.2646, 131.4039), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(992, 2.172, 65.22), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(862, 5.055, 351.817), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(744, 3.076, 35.164), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(687, 2.499, 77.963), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(647, 4.473, 70.328), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(624, 0.863, 9.561), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(604, 0.907, 984.6), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(575, 3.231, 447.796), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(562, 2.718, 462.023), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(530, 5.917, 213.299), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(528, 5.151, 2.969)];\nconst g_R2UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(22440, 0.69953, 74.7816), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4727, 1.699, 63.7359), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1682, 4.6483, 70.8494), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1650, 3.0966, 11.0457), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1434, 3.5212, 149.5632), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(770, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(500, 6.172, 76.266), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(461, 0.767, 3.932), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(390, 4.496, 56.622), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(390, 5.527, 85.827), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(292, 0.204, 52.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(287, 3.534, 73.297), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(273, 3.847, 138.517), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(220, 1.964, 131.404), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(216, 0.848, 77.963), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(205, 3.248, 78.714), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(149, 4.898, 127.472), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(129, 2.081, 3.181)];\nconst g_R3UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1164, 4.7345, 74.7816), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(212, 3.343, 63.736), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(196, 2.98, 70.849), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(105, 0.958, 11.046), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(73, 1, 149.56), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(72, 0.03, 56.62), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(55, 2.59, 3.93), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(36, 5.65, 77.96), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34, 3.82, 76.27), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32, 3.6, 131.4)];\nconst g_R4UranusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(53, 3.01, 74.78), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 1.91, 56.62)];\n\n\n// CAAUranus\n\nfunction CAAUranus() { }\n\nCAAUranus.eclipticLongitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nL0Coefficients = g_L0UranusCoefficients.length;\n var L0 = 0;\n var i;\n for (i = 0; i < nL0Coefficients; i++) {\n L0 += g_L0UranusCoefficients[i].a * Math.cos(g_L0UranusCoefficients[i].b + g_L0UranusCoefficients[i].c * rho);\n }\n var nL1Coefficients = g_L1UranusCoefficients.length;\n var L1 = 0;\n for (i = 0; i < nL1Coefficients; i++) {\n L1 += g_L1UranusCoefficients[i].a * Math.cos(g_L1UranusCoefficients[i].b + g_L1UranusCoefficients[i].c * rho);\n }\n var nL2Coefficients = g_L2UranusCoefficients.length;\n var L2 = 0;\n for (i = 0; i < nL2Coefficients; i++) {\n L2 += g_L2UranusCoefficients[i].a * Math.cos(g_L2UranusCoefficients[i].b + g_L2UranusCoefficients[i].c * rho);\n }\n var nL3Coefficients = g_L3UranusCoefficients.length;\n var L3 = 0;\n for (i = 0; i < nL3Coefficients; i++) {\n L3 += g_L3UranusCoefficients[i].a * Math.cos(g_L3UranusCoefficients[i].b + g_L3UranusCoefficients[i].c * rho);\n }\n var nL4Coefficients = g_L4UranusCoefficients.length;\n var L4 = 0;\n for (i = 0; i < nL4Coefficients; i++) {\n L4 += g_L4UranusCoefficients[i].a * Math.cos(g_L4UranusCoefficients[i].b + g_L4UranusCoefficients[i].c * rho);\n }\n var vvalue = (L0 + L1 * rho + L2 * rhosquared + L3 * rhocubed + L4 * rho4) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue));\n return vvalue;\n};\n\nCAAUranus.eclipticLatitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nB0Coefficients = g_B0UranusCoefficients.length;\n var B0 = 0;\n var i;\n for (i = 0; i < nB0Coefficients; i++) {\n B0 += g_B0UranusCoefficients[i].a * Math.cos(g_B0UranusCoefficients[i].b + g_B0UranusCoefficients[i].c * rho);\n }\n var nB1Coefficients = g_B1UranusCoefficients.length;\n var B1 = 0;\n for (i = 0; i < nB1Coefficients; i++) {\n B1 += g_B1UranusCoefficients[i].a * Math.cos(g_B1UranusCoefficients[i].b + g_B1UranusCoefficients[i].c * rho);\n }\n var nB2Coefficients = g_B2UranusCoefficients.length;\n var B2 = 0;\n for (i = 0; i < nB2Coefficients; i++) {\n B2 += g_B2UranusCoefficients[i].a * Math.cos(g_B2UranusCoefficients[i].b + g_B2UranusCoefficients[i].c * rho);\n }\n var nB3Coefficients = g_B3UranusCoefficients.length;\n var B3 = 0;\n for (i = 0; i < nB3Coefficients; i++) {\n B3 += g_B3UranusCoefficients[i].a * Math.cos(g_B3UranusCoefficients[i].b + g_B3UranusCoefficients[i].c * rho);\n }\n var nB4Coefficients = g_B4UranusCoefficients.length;\n var B4 = 0;\n for (i = 0; i < nB4Coefficients; i++) {\n B4 += g_B4UranusCoefficients[i].a * Math.cos(g_B4UranusCoefficients[i].b + g_B4UranusCoefficients[i].c * rho);\n }\n var vvalue = (B0 + B1 * rho + B2 * rhosquared + B3 * rhocubed + B4 * rho4) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n return vvalue;\n};\n\nCAAUranus.radiusVector = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nR0Coefficients = g_R0UranusCoefficients.length;\n var R0 = 0;\n var i;\n for (i = 0; i < nR0Coefficients; i++) {\n R0 += g_R0UranusCoefficients[i].a * Math.cos(g_R0UranusCoefficients[i].b + g_R0UranusCoefficients[i].c * rho);\n }\n var nR1Coefficients = g_R1UranusCoefficients.length;\n var R1 = 0;\n for (i = 0; i < nR1Coefficients; i++) {\n R1 += g_R1UranusCoefficients[i].a * Math.cos(g_R1UranusCoefficients[i].b + g_R1UranusCoefficients[i].c * rho);\n }\n var nR2Coefficients = g_R2UranusCoefficients.length;\n var R2 = 0;\n for (i = 0; i < nR2Coefficients; i++) {\n R2 += g_R2UranusCoefficients[i].a * Math.cos(g_R2UranusCoefficients[i].b + g_R2UranusCoefficients[i].c * rho);\n }\n var nR3Coefficients = g_R3UranusCoefficients.length;\n var R3 = 0;\n for (i = 0; i < nR3Coefficients; i++) {\n R3 += g_R3UranusCoefficients[i].a * Math.cos(g_R3UranusCoefficients[i].b + g_R3UranusCoefficients[i].c * rho);\n }\n var nR4Coefficients = g_R4UranusCoefficients.length;\n var R4 = 0;\n for (i = 0; i < nR4Coefficients; i++) {\n R4 += g_R4UranusCoefficients[i].a * Math.cos(g_R4UranusCoefficients[i].b + g_R4UranusCoefficients[i].c * rho);\n }\n return (R0 + R1 * rho + R2 * rhosquared + R3 * rhocubed + R4 * rho4) / 100000000;\n};\n\nvar CAAUranus$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAUranus\", [CAAUranus, CAAUranus$, null]);\n\n\n\n/***/ }),\n\n/***/ \"./esm/astrocalc/venus.js\":\n/*!********************************!*\\\n !*** ./esm/astrocalc/venus.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CAAVenus: () => (/* binding */ CAAVenus)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _earth_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./earth.js */ \"./esm/astrocalc/earth.js\");\n// Originally `AAVENUS.CPP`\n// \"Purpose: Implementation for the algorithms which obtain the heliocentric position of Venus\"\n// Last update of original: PJN / 29-12-2003\n//\n// Translated into C# and released by Microsoft, then transpiled into JavaScript\n// by ScriptSharp, for the WorldWide Telescope project.\n//\n// The legal notices in the original code are as follows:\n//\n// Copyright (c) 2003 - 2007 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com)\n//\n// All rights reserved.\n//\n// Copyright / Usage Details:\n//\n// You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise)\n// when your product is released in binary form. You are allowed to modify the source code in any way you want\n// except you cannot modify the copyright details at the top of each module. If you want to distribute source\n// code with your application, then you are only allowed to distribute versions released by the author. This is\n// to maintain a single distribution point for the source code.\n\n\n\n\n\n\n// Coefficients\n\nconst g_L0VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(317614667, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1353968, 5.5931332, 10213.2855462), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(89892, 5.3065, 20426.57109), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5477, 4.4163, 7860.4194), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3456, 2.6996, 11790.6291), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2372, 2.9938, 3930.2097), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1664, 4.2502, 1577.3435), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1438, 4.1575, 9683.5946), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1317, 5.1867, 26.2983), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1201, 6.1536, 30639.8566), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(769, 0.816, 9437.763), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(761, 1.95, 529.691), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(708, 1.065, 775.523), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(585, 3.998, 191.448), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(500, 4.123, 15720.839), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(429, 3.586, 19367.189), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(327, 5.677, 5507.553), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(326, 4.591, 10404.734), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(232, 3.163, 9153.904), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(180, 4.653, 1109.379), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(155, 5.57, 19651.048), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(128, 4.226, 20.775), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(128, 0.962, 5661.332), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(106, 1.537, 801.821)];\nconst g_L1VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1021352943053, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(95708, 2.46424, 10213.28555), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14445, 0.51625, 20426.57109), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(213, 1.795, 30639.857), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(174, 2.655, 26.298), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(152, 6.106, 1577.344), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(82, 5.7, 191.45), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(70, 2.68, 9437.76), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(52, 3.6, 775.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(38, 1.03, 529.69), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(30, 1.25, 5507.55), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(25, 6.11, 10404.73)];\nconst g_L2VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(54127, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3891, 0.3451, 10213.2855), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1338, 2.0201, 20426.5711), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(24, 2.05, 26.3), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(19, 3.54, 30639.86), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(10, 3.97, 775.52), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(7, 1.52, 1577.34), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 1, 191.45)];\nconst g_L3VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(136, 4.804, 10213.286), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(78, 3.67, 20426.57), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(26, 0, 0)];\nconst g_L4VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(114, 3.1416, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 5.21, 20426.57), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(2, 2.51, 10213.29)];\nconst g_L5VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 3.14, 0)];\nconst g_B0VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(5923638, 0.2670278, 10213.2855462), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(40108, 1.14737, 20426.57109), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(32815, 3.14737, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1011, 1.0895, 30639.8566), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(149, 6.254, 18073.705), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(138, 0.86, 1577.344), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(130, 3.672, 9437.763), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(120, 3.705, 2352.866), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(108, 4.539, 22003.915)];\nconst g_B1VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(513348, 1.803643, 10213.285546), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(4380, 3.3862, 20426.5711), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(199, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(197, 2.53, 30639.857)];\nconst g_B2VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(22378, 3.38509, 10213.28555), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(282, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(173, 5.256, 20426.571), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(27, 3.87, 30639.86)];\nconst g_B3VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(647, 4.992, 10213.286), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(20, 3.14, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(6, 0.77, 20426.57), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(3, 5.44, 30639.86)];\nconst g_B4VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(14, 0.32, 10213.29)];\nconst g_R0VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(72334821, 0, 0), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(489824, 4.021518, 10213.285546), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1658, 4.9021, 20426.5711), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1632, 2.8455, 7860.4194), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1378, 1.1285, 11790.6291), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(498, 2.587, 9683.595), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(374, 1.423, 3930.21), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(264, 5.529, 9437.763), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(237, 2.551, 15720.839), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(222, 2.013, 19367.189), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(126, 2.728, 1577.344), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(119, 3.02, 10404.734)];\nconst g_R1VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(34551, 0.89199, 10213.28555), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(234, 1.772, 20426.571), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(234, 3.142, 0)];\nconst g_R2VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1407, 5.0637, 10213.2855), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(16, 5.47, 20426.57), new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(13, 0, 0)];\nconst g_R3VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(50, 3.22, 10213.29)];\nconst g_R4VenusCoefficients = [new _earth_js__WEBPACK_IMPORTED_MODULE_2__.VSC(1, 0.92, 10213.29)];\n\n\n// CAAVenus\n\nfunction CAAVenus() { }\n\nCAAVenus.eclipticLongitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var rho5 = rho4 * rho;\n var nL0Coefficients = g_L0VenusCoefficients.length;\n var L0 = 0;\n var i;\n for (i = 0; i < nL0Coefficients; i++) {\n L0 += g_L0VenusCoefficients[i].a * Math.cos(g_L0VenusCoefficients[i].b + g_L0VenusCoefficients[i].c * rho);\n }\n var nL1Coefficients = g_L1VenusCoefficients.length;\n var L1 = 0;\n for (i = 0; i < nL1Coefficients; i++) {\n L1 += g_L1VenusCoefficients[i].a * Math.cos(g_L1VenusCoefficients[i].b + g_L1VenusCoefficients[i].c * rho);\n }\n var nL2Coefficients = g_L2VenusCoefficients.length;\n var L2 = 0;\n for (i = 0; i < nL2Coefficients; i++) {\n L2 += g_L2VenusCoefficients[i].a * Math.cos(g_L2VenusCoefficients[i].b + g_L2VenusCoefficients[i].c * rho);\n }\n var nL3Coefficients = g_L3VenusCoefficients.length;\n var L3 = 0;\n for (i = 0; i < nL3Coefficients; i++) {\n L3 += g_L3VenusCoefficients[i].a * Math.cos(g_L3VenusCoefficients[i].b + g_L3VenusCoefficients[i].c * rho);\n }\n var nL4Coefficients = g_L4VenusCoefficients.length;\n var L4 = 0;\n for (i = 0; i < nL4Coefficients; i++) {\n L4 += g_L4VenusCoefficients[i].a * Math.cos(g_L4VenusCoefficients[i].b + g_L4VenusCoefficients[i].c * rho);\n }\n var nL5Coefficients = g_L5VenusCoefficients.length;\n var L5 = 0;\n for (i = 0; i < nL5Coefficients; i++) {\n L5 += g_L5VenusCoefficients[i].a * Math.cos(g_L5VenusCoefficients[i].b + g_L5VenusCoefficients[i].c * rho);\n }\n var vvalue = (L0 + L1 * rho + L2 * rhosquared + L3 * rhocubed + L4 * rho4 + L5 * rho5) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.m360(_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue));\n return vvalue;\n};\n\nCAAVenus.eclipticLatitude = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nB0Coefficients = g_B0VenusCoefficients.length;\n var B0 = 0;\n var i;\n for (i = 0; i < nB0Coefficients; i++) {\n B0 += g_B0VenusCoefficients[i].a * Math.cos(g_B0VenusCoefficients[i].b + g_B0VenusCoefficients[i].c * rho);\n }\n var nB1Coefficients = g_B1VenusCoefficients.length;\n var B1 = 0;\n for (i = 0; i < nB1Coefficients; i++) {\n B1 += g_B1VenusCoefficients[i].a * Math.cos(g_B1VenusCoefficients[i].b + g_B1VenusCoefficients[i].c * rho);\n }\n var nB2Coefficients = g_B2VenusCoefficients.length;\n var B2 = 0;\n for (i = 0; i < nB2Coefficients; i++) {\n B2 += g_B2VenusCoefficients[i].a * Math.cos(g_B2VenusCoefficients[i].b + g_B2VenusCoefficients[i].c * rho);\n }\n var nB3Coefficients = g_B3VenusCoefficients.length;\n var B3 = 0;\n for (i = 0; i < nB3Coefficients; i++) {\n B3 += g_B3VenusCoefficients[i].a * Math.cos(g_B3VenusCoefficients[i].b + g_B3VenusCoefficients[i].c * rho);\n }\n var nB4Coefficients = g_B4VenusCoefficients.length;\n var B4 = 0;\n for (i = 0; i < nB4Coefficients; i++) {\n B4 += g_B4VenusCoefficients[i].a * Math.cos(g_B4VenusCoefficients[i].b + g_B4VenusCoefficients[i].c * rho);\n }\n var vvalue = (B0 + B1 * rho + B2 * rhosquared + B3 * rhocubed + B4 * rho4) / 100000000;\n vvalue = _coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__.CT.r2D(vvalue);\n return vvalue;\n};\n\nCAAVenus.radiusVector = function (JD) {\n var rho = (JD - 2451545) / 365250;\n var rhosquared = rho * rho;\n var rhocubed = rhosquared * rho;\n var rho4 = rhocubed * rho;\n var nR0Coefficients = g_R0VenusCoefficients.length;\n var R0 = 0;\n var i;\n for (i = 0; i < nR0Coefficients; i++) {\n R0 += g_R0VenusCoefficients[i].a * Math.cos(g_R0VenusCoefficients[i].b + g_R0VenusCoefficients[i].c * rho);\n }\n var nR1Coefficients = g_R1VenusCoefficients.length;\n var R1 = 0;\n for (i = 0; i < nR1Coefficients; i++) {\n R1 += g_R1VenusCoefficients[i].a * Math.cos(g_R1VenusCoefficients[i].b + g_R1VenusCoefficients[i].c * rho);\n }\n var nR2Coefficients = g_R2VenusCoefficients.length;\n var R2 = 0;\n for (i = 0; i < nR2Coefficients; i++) {\n R2 += g_R2VenusCoefficients[i].a * Math.cos(g_R2VenusCoefficients[i].b + g_R2VenusCoefficients[i].c * rho);\n }\n var nR3Coefficients = g_R3VenusCoefficients.length;\n var R3 = 0;\n for (i = 0; i < nR3Coefficients; i++) {\n R3 += g_R3VenusCoefficients[i].a * Math.cos(g_R3VenusCoefficients[i].b + g_R3VenusCoefficients[i].c * rho);\n }\n var nR4Coefficients = g_R4VenusCoefficients.length;\n var R4 = 0;\n for (i = 0; i < nR4Coefficients; i++) {\n R4 += g_R4VenusCoefficients[i].a * Math.cos(g_R4VenusCoefficients[i].b + g_R4VenusCoefficients[i].c * rho);\n }\n return (R0 + R1 * rho + R2 * rhosquared + R3 * rhocubed + R4 * rho4) / 100000000;\n};\n\nvar CAAVenus$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CAAVenus\", [CAAVenus, CAAVenus$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/baseplanets.js\":\n/*!****************************!*\\\n !*** ./esm/baseplanets.js ***!\n \\****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BasePlanets: () => (/* binding */ BasePlanets)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Planet-related code that can come lower in the dependency graph.\n\n\n\n\n\n\n// BasePlanets\n\nfunction BasePlanets() { }\n\nBasePlanets.drawPointPlanet = function (renderContext, location, size, color, zOrder) {\n var center = location;\n var rad = size / 2;\n if (renderContext.gl != null) {\n var ppList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_2__.PointList(renderContext);\n ppList.minSize = 20;\n ppList.addPoint(location.copy(), color._clone(), new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_2__.Dates(0, 1), size / 100);\n ppList.depthBuffered = true;\n ppList.draw(renderContext, 1, false);\n }\n else {\n var screenSpacePnt = renderContext.WVP.transform(center);\n if (screenSpacePnt.z < 0) {\n return;\n }\n if (!zOrder) {\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.dot(renderContext.get_viewPoint(), center) < 0.55) {\n return;\n }\n }\n var ctx = renderContext.device;\n ctx.save();\n ctx.beginPath();\n ctx.arc(screenSpacePnt.x, screenSpacePnt.y, rad, 0, Math.PI * 2, true);\n ctx.lineWidth = 1;\n ctx.fillStyle = color.toString();\n if (true) {\n ctx.fill();\n }\n ctx.globalAlpha = 1;\n ctx.strokeStyle = color.toString();\n ctx.stroke();\n ctx.restore();\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"BasePlanets\", [BasePlanets, {}, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/baseutil.js\":\n/*!*************************!*\\\n !*** ./esm/baseutil.js ***!\n \\*************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Util: () => (/* binding */ Util)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Miscellaneous utilities.\n\n\n\n\n// wwtlib.Util\n\nfunction Util() {\n}\n\nUtil.splitString = function (target, split) {\n var parts = [];\n var start = 0;\n var end = 0;\n for (var i = 0; i < target.length; i++) {\n var found = false;\n for (var j = 0; j < split.length; j++) {\n if (target[i] === split[j]) {\n parts.push(target.substring(start, end - start));\n found = true;\n continue;\n }\n start = i + 1;\n end = i + 1;\n }\n if (!found) {\n end++;\n }\n }\n if (end > start) {\n parts.push(target.substring(start, end - start));\n }\n return parts;\n};\n\nUtil.stringContains = function (target, chars) {\n for (var i = 0; i < chars.length; i++) {\n if (target.indexOf(chars[i]) > -1) {\n return true;\n }\n }\n return false;\n};\n\nUtil.getHashCode = function (target) {\n var hash = 0;\n if (!target.length) {\n return hash;\n }\n for (var i = 0; i < target.length; i++) {\n var c = target.charCodeAt(i);\n hash = ((hash << 5) - hash) + c;\n }\n return hash;\n};\n\nUtil.compare = function (l, r) {\n if (l === r) {\n return 0;\n }\n if (l > r) {\n return 1;\n }\n return -1;\n};\n\nUtil.logN = function (num, b) {\n return Math.log(num) / Math.log(b);\n};\n\n// Parse timespan into int with milliseconds\nUtil.parseTimeSpan = function (timespan) {\n var val = 0;\n var parts = timespan.split(':');\n if (parts.length === 3) {\n val += parseInt(parts[0]) * 3600000;\n val += parseInt(parts[1]) * 60000;\n val += _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((parseFloat(parts[2]) * 1000));\n }\n return val;\n};\n\n// convert duration to HH:MM:SS.S\nUtil.xmlDuration = function (duration) {\n var s = duration / 1000;\n var hours = Math.floor(s / 3600);\n var min = Math.floor(s / 60) - (hours * 60);\n var sec = s - ((hours * 3600) + min * 60);\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0}:{1}:{2}', hours, min, sec);\n};\n\nUtil.xmlDate = function (d) {\n var hours = d.getHours();\n var amPm = 'AM';\n if (hours > 12) {\n hours -= 12;\n amPm = 'PM';\n }\n return (d.getMonth() + 1).toString() + '/' + d.getDate().toString() + '/' + d.getFullYear().toString() + ' ' + hours.toString() + ':' + d.getMinutes().toString() + ':' + d.getSeconds().toString() + ' ' + amPm;\n};\n\nUtil.selectSingleNode = function (parent, name) {\n var node = null;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(parent.childNodes);\n while ($enum1.moveNext()) {\n var child = $enum1.current;\n if (child.nodeName === name) {\n node = child;\n break;\n }\n }\n return node;\n};\n\nUtil.getInnerText = function (node) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.emptyString(node.text)) {\n var cn = node;\n return cn.textContent;\n }\n else {\n return node.text;\n }\n};\n\nUtil.getWrappedText = function (ctx, text, width) {\n var lines = [];\n lines.push(text);\n return lines;\n};\n\nUtil.toHex = function (number) {\n var num = Math.max(0, Math.min(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(number), 255));\n return '0123456789ABCDEF'.substr((num - num % 16) / 16, 1) + '0123456789ABCDEF'.substr(num % 16, 1);\n};\n\nUtil.fromHex = function (data) {\n var val = 0;\n switch (data.substr(1, 1).toUpperCase()) {\n case 'A':\n val += 10;\n break;\n case 'B':\n val += 11;\n break;\n case 'C':\n val += 12;\n break;\n case 'D':\n val += 13;\n break;\n case 'E':\n val += 14;\n break;\n case 'F':\n val += 15;\n break;\n default:\n val += parseInt(data.substr(1, 1));\n break;\n }\n switch (data.substr(0, 1).toUpperCase()) {\n case 'A':\n val += 10 * 16;\n break;\n case 'B':\n val += 11 * 16;\n break;\n case 'C':\n val += 12 * 16;\n break;\n case 'D':\n val += 13 * 16;\n break;\n case 'E':\n val += 14 * 16;\n break;\n case 'F':\n val += 15 * 16;\n break;\n default:\n val += parseInt(data.substr(0, 1)) * 16;\n break;\n }\n return val;\n};\n\nUtil._openUrl = function (url) {\n window.open(url);\n};\n\nUtil.log10 = function (num) {\n return Math.log(num) / 2.30258509299405;\n};\n\nUtil.sign = function (num) {\n if (num < 0) {\n return -1;\n }\n return 1;\n};\n\nvar Util$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Util\", [Util, Util$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/blend_state.js\":\n/*!****************************!*\\\n !*** ./esm/blend_state.js ***!\n \\****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BlendState: () => (/* binding */ BlendState)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Blend state.\n\n\n\n\n\n// wwtlib.BlendState\n\nfunction BlendState() {\n this._switchedTime = new Date(1990, 0, 0, 0, 0, 0, 0);\n this._state = false;\n this._targetState = this._state;\n this._delayTime = 1000;\n}\n\nBlendState.create = function (initialState, delayTime) {\n var temp = new BlendState();\n temp._state = initialState;\n temp._targetState = initialState;\n temp._delayTime = delayTime;\n return temp;\n};\n\nvar BlendState$ = {\n get_state: function () {\n if (this._targetState !== this._state) {\n var ts = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now() - this._switchedTime;\n if (ts > this._delayTime) {\n this._state = this._targetState;\n }\n return true;\n }\n return this._state;\n },\n\n set_state: function (value) {\n this._switchedTime = new Date(1990, 0, 0, 0, 0, 0, 0);\n this._state = value;\n this._targetState = this._state;\n return value;\n },\n\n get_targetState: function () {\n return this._targetState;\n },\n\n set_targetState: function (value) {\n if (this._targetState !== value) {\n this._switchedTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n this._targetState = value;\n }\n return value;\n },\n\n get_opacity: function () {\n if (this._targetState !== this._state) {\n var ts = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now() - this._switchedTime;\n if (ts > this._delayTime) {\n this._state = this._targetState;\n }\n else {\n var opacity = (ts / this._delayTime);\n return (this._targetState) ? opacity : 1 - opacity;\n }\n }\n return (this._state) ? 1 : 0;\n },\n\n get_delayTime: function () {\n return this._delayTime;\n },\n\n set_delayTime: function (value) {\n this._delayTime = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"BlendState\", [BlendState, BlendState$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/camera_parameters.js\":\n/*!**********************************!*\\\n !*** ./esm/camera_parameters.js ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CameraParameters: () => (/* binding */ CameraParameters),\n/* harmony export */ InterpolationType: () => (/* binding */ InterpolationType),\n/* harmony export */ SolarSystemObjects: () => (/* binding */ SolarSystemObjects)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Camera parameters.\n\n\n\n\n\n\n\n// wwtlib.SolarSystemObjects\n\nvar SolarSystemObjects = {\n sun: 0,\n mercury: 1,\n venus: 2,\n mars: 3,\n jupiter: 4,\n saturn: 5,\n uranus: 6,\n neptune: 7,\n pluto: 8,\n moon: 9,\n io: 10,\n europa: 11,\n ganymede: 12,\n callisto: 13,\n ioShadow: 14,\n europaShadow: 15,\n ganymedeShadow: 16,\n callistoShadow: 17,\n sunEclipsed: 18,\n earth: 19,\n custom: 20,\n undefined: 65536\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"SolarSystemObjects\", SolarSystemObjects);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerEnum)(\"SolarSystemObjects\", SolarSystemObjects);\n\n\n// wwtlib.InterpolationType\n\nvar InterpolationType = {\n linear: 0,\n easeIn: 1,\n easeOut: 2,\n easeInOut: 3,\n exponential: 4,\n defaultV: 5\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"InterpolationType\", InterpolationType);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerEnum)(\"InterpolationType\", InterpolationType);\n\n\n\n// wwtlib.CameraParameters\n\nfunction CameraParameters() {\n this.lat = 0;\n this.lng = 0;\n this.zoom = 0;\n this.rotation = 0;\n this.angle = 0;\n this.raDec = false;\n this.opacity = 0;\n this.target = 0;\n this.zoom = 360;\n this.viewTarget = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n}\n\nCameraParameters.create = function (lat, lng, zoom, rotation, angle, opactity) {\n var temp = new CameraParameters();\n temp.lat = lat;\n temp.lng = lng;\n temp.zoom = zoom;\n temp.rotation = rotation;\n temp.angle = angle;\n temp.raDec = false;\n temp.opacity = opactity;\n temp.viewTarget = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, 0);\n temp.target = 20;\n temp.targetReferenceFrame = '';\n return temp;\n};\n\nCameraParameters.logN = function (num, b) {\n return Math.log(num) / Math.log(b);\n};\n\nCameraParameters.sinh = function (v) {\n return (Math.exp(v) - Math.exp(-v)) / 2;\n};\n\nCameraParameters.interpolate = function (from, to, alphaIn, type, fastDirectionMove) {\n var result = new CameraParameters();\n var alpha = CameraParameters.easeCurve(alphaIn, type);\n var alphaBIn = Math.min(1, alphaIn * 2);\n var alphaB = CameraParameters.easeCurve(alphaBIn, type);\n result.angle = to.angle * alpha + from.angle * (1 - alpha);\n result.rotation = to.rotation * alpha + from.rotation * (1 - alpha);\n if (fastDirectionMove) {\n result.lat = to.lat * alphaB + from.lat * (1 - alphaB);\n result.lng = to.lng * alphaB + from.lng * (1 - alphaB);\n }\n else {\n result.lat = to.lat * alpha + from.lat * (1 - alpha);\n result.lng = to.lng * alpha + from.lng * (1 - alpha);\n }\n result.zoom = Math.pow(2, CameraParameters.logN(to.zoom, 2) * alpha + CameraParameters.logN(from.zoom, 2) * (1 - alpha));\n result.opacity = (to.opacity * alpha + from.opacity * (1 - alpha));\n result.viewTarget = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.lerp(from.viewTarget, to.viewTarget, alpha);\n result.targetReferenceFrame = to.targetReferenceFrame;\n if (to.target === from.target) {\n result.target = to.target;\n }\n else {\n result.target = 20;\n }\n return result;\n};\n\nCameraParameters.interpolateGreatCircle = function (from, to, alphaIn, type, fastDirectionMove) {\n var result = new CameraParameters();\n var alpha = CameraParameters.easeCurve(alphaIn, type);\n var alphaBIn = Math.min(1, alphaIn * 2);\n var alphaB = CameraParameters.easeCurve(alphaBIn, type);\n result.angle = to.angle * alpha + from.angle * (1 - alpha);\n result.rotation = to.rotation * alpha + from.rotation * (1 - alpha);\n var left = _coordinates_js__WEBPACK_IMPORTED_MODULE_3__.Coordinates.geoTo3dDouble(from.lat, from.lng);\n var right = _coordinates_js__WEBPACK_IMPORTED_MODULE_3__.Coordinates.geoTo3dDouble(to.lat, to.lng);\n var mid = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.slerp(left, right, alpha);\n var midV2 = _coordinates_js__WEBPACK_IMPORTED_MODULE_3__.Coordinates.cartesianToLatLng(mid);\n result.lat = midV2.y;\n result.lng = midV2.x;\n result.zoom = Math.pow(2, CameraParameters.logN(to.zoom, 2) * alpha + CameraParameters.logN(from.zoom, 2) * (1 - alpha));\n result.opacity = (to.opacity * alpha + from.opacity * (1 - alpha));\n result.viewTarget = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.lerp(from.viewTarget, to.viewTarget, alpha);\n result.targetReferenceFrame = to.targetReferenceFrame;\n if (to.target === from.target) {\n result.target = to.target;\n }\n else {\n result.target = 20;\n }\n return result;\n};\n\nCameraParameters.easeCurve = function (alpha, type) {\n switch (type) {\n case 0:\n return alpha;\n case 4:\n return Math.pow(alpha, 2);\n case 1:\n return ((1 - alpha) * CameraParameters.sinh(alpha / (0.1085712344 * 2)) / 100) + alpha * alpha;\n case 2:\n return (alpha * (1 - CameraParameters.sinh((1 - alpha) / (0.1085712344 * 2)) / 100)) + (1 - alpha) * alpha;\n case 3:\n if (alpha < 0.5) {\n return CameraParameters.sinh(alpha / 0.1085712344) / 100;\n }\n else {\n return 1 - (CameraParameters.sinh((1 - alpha) / 0.1085712344) / 100);\n }\n default:\n return alpha;\n }\n};\n\nvar CameraParameters$ = {\n copy: function () {\n var temp = new CameraParameters();\n temp.lat = this.lat;\n temp.lng = this.lng;\n temp.zoom = this.zoom;\n temp.rotation = this.rotation;\n temp.angle = this.angle;\n temp.raDec = this.raDec;\n temp.opacity = this.opacity;\n temp.viewTarget = this.viewTarget.copy();\n temp.target = this.target;\n temp.targetReferenceFrame = this.targetReferenceFrame;\n return temp;\n },\n\n get_RA: function () {\n return ((((180 - (this.lng - 180)) / 360) * 24) % 24);\n },\n\n set_RA: function (value) {\n this.lng = 180 - (value / 24 * 360) - 180;\n this.raDec = true;\n return value;\n },\n\n get_dec: function () {\n return this.lat;\n },\n\n set_dec: function (value) {\n this.lat = value;\n return value;\n },\n\n equals: function (obj) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.canCast(obj, CameraParameters)) {\n var cam = obj;\n if (Math.abs(cam.angle - this.angle) > 0.01 || Math.abs(cam.lat - this.lat) > (cam.zoom / 10000) || Math.abs(cam.get_RA() - this.get_RA()) > (cam.zoom / 1000) || Math.abs(cam.rotation - this.rotation) > 0.1 || Math.abs(cam.zoom - this.zoom) > (Math.abs(cam.zoom) / 1000)) {\n return false;\n }\n return true;\n } else {\n return false;\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CameraParameters\", [CameraParameters, CameraParameters$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/color.js\":\n/*!**********************!*\\\n !*** ./esm/color.js ***!\n \\**********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Color: () => (/* binding */ Color),\n/* harmony export */ Colors: () => (/* binding */ Colors)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Basic color types.\n\n\n\n\n\n// wwtlib.Color\n\nfunction Color() {\n this.a = 255;\n this.b = 255;\n this.g = 255;\n this.r = 255;\n this.name = '';\n}\n\nColor.fromArgb = function (a, r, g, b) {\n var temp = new Color();\n temp.a = a;\n temp.r = r;\n temp.g = g;\n temp.b = b;\n return temp;\n};\n\nColor._fromArgbColor = function (a, col) {\n var temp = new Color();\n temp.a = a;\n temp.r = col.r;\n temp.g = col.g;\n temp.b = col.b;\n return temp;\n};\n\nColor.fromName = function (name) {\n var temp = Color.load(name);\n return temp;\n};\n\nColor.load = function (color) {\n var a = 255, r = 255, g = 255, b = 255;\n var pieces = color.split(':');\n if (pieces.length === 5) {\n a = parseInt(pieces[1]);\n r = parseInt(pieces[2]);\n g = parseInt(pieces[3]);\n b = parseInt(pieces[4]);\n }\n else if (pieces.length === 2) {\n return Color.fromName(pieces[1].toLowerCase());\n }\n else if (pieces.length === 1 && _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(pieces[0], '#')) {\n return Color.fromHex(pieces[0]);\n }\n else if (pieces.length === 1 && pieces[0].length === 8) {\n return Color.fromSimpleHex(pieces[0]);\n }\n else if (pieces.length === 1) {\n return Color._fromWindowsNamedColor(pieces[0]);\n }\n return Color.fromArgb(a, r, g, b);\n};\n\nColor._fromWindowsNamedColor = function (color) {\n switch (color.toLowerCase()) {\n case 'activeborder':\n return Color.fromArgb(255, 180, 180, 180);\n case 'activecaption':\n return Color.fromArgb(255, 153, 180, 209);\n case 'activecaptiontext':\n return Color.fromArgb(255, 0, 0, 0);\n case 'appworkspace':\n return Color.fromArgb(255, 171, 171, 171);\n case 'control':\n return Color.fromArgb(255, 240, 240, 240);\n case 'controldark':\n return Color.fromArgb(255, 160, 160, 160);\n case 'controldarkdark':\n return Color.fromArgb(255, 105, 105, 105);\n case 'controllight':\n return Color.fromArgb(255, 227, 227, 227);\n case 'controllightlight':\n return Color.fromArgb(255, 255, 255, 255);\n case 'controltext':\n return Color.fromArgb(255, 0, 0, 0);\n case 'desktop':\n return Color.fromArgb(255, 255, 255, 255);\n case 'graytext':\n return Color.fromArgb(255, 109, 109, 109);\n case 'highlight':\n return Color.fromArgb(255, 51, 153, 255);\n case 'highlighttext':\n return Color.fromArgb(255, 255, 255, 255);\n case 'hottrack':\n return Color.fromArgb(255, 0, 102, 204);\n case 'inactiveborder':\n return Color.fromArgb(255, 244, 247, 252);\n case 'inactivecaption':\n return Color.fromArgb(255, 191, 205, 219);\n case 'inactivecaptiontext':\n return Color.fromArgb(255, 0, 0, 0);\n case 'info':\n return Color.fromArgb(255, 255, 255, 225);\n case 'infotext':\n return Color.fromArgb(255, 0, 0, 0);\n case 'menu':\n return Color.fromArgb(255, 240, 240, 240);\n case 'menutext':\n return Color.fromArgb(255, 0, 0, 0);\n case 'scrollbar':\n return Color.fromArgb(255, 200, 200, 200);\n case 'window':\n return Color.fromArgb(255, 255, 255, 255);\n case 'windowframe':\n return Color.fromArgb(255, 100, 100, 100);\n case 'windowtext':\n return Color.fromArgb(255, 0, 0, 0);\n case 'transparent':\n return Color.fromArgb(0, 255, 255, 255);\n case 'aliceblue':\n return Color.fromArgb(255, 240, 248, 255);\n case 'antiquewhite':\n return Color.fromArgb(255, 250, 235, 215);\n case 'aqua':\n return Color.fromArgb(255, 0, 255, 255);\n case 'aquamarine':\n return Color.fromArgb(255, 127, 255, 212);\n case 'azure':\n return Color.fromArgb(255, 240, 255, 255);\n case 'beige':\n return Color.fromArgb(255, 245, 245, 220);\n case 'bisque':\n return Color.fromArgb(255, 255, 228, 196);\n case 'black':\n return Color.fromArgb(255, 0, 0, 0);\n case 'blanchedalmond':\n return Color.fromArgb(255, 255, 235, 205);\n case 'blue':\n return Color.fromArgb(255, 0, 0, 255);\n case 'blueviolet':\n return Color.fromArgb(255, 138, 43, 226);\n case 'brown':\n return Color.fromArgb(255, 165, 42, 42);\n case 'burlywood':\n return Color.fromArgb(255, 222, 184, 135);\n case 'cadetblue':\n return Color.fromArgb(255, 95, 158, 160);\n case 'chartreuse':\n return Color.fromArgb(255, 127, 255, 0);\n case 'chocolate':\n return Color.fromArgb(255, 210, 105, 30);\n case 'coral':\n return Color.fromArgb(255, 255, 127, 80);\n case 'cornflowerblue':\n return Color.fromArgb(255, 100, 149, 237);\n case 'cornsilk':\n return Color.fromArgb(255, 255, 248, 220);\n case 'crimson':\n return Color.fromArgb(255, 220, 20, 60);\n case 'cyan':\n return Color.fromArgb(255, 0, 255, 255);\n case 'darkblue':\n return Color.fromArgb(255, 0, 0, 139);\n case 'darkcyan':\n return Color.fromArgb(255, 0, 139, 139);\n case 'darkgoldenrod':\n return Color.fromArgb(255, 184, 134, 11);\n case 'darkgray':\n return Color.fromArgb(255, 169, 169, 169);\n case 'darkgreen':\n return Color.fromArgb(255, 0, 100, 0);\n case 'darkkhaki':\n return Color.fromArgb(255, 189, 183, 107);\n case 'darkmagenta':\n return Color.fromArgb(255, 139, 0, 139);\n case 'darkolivegreen':\n return Color.fromArgb(255, 85, 107, 47);\n case 'darkorange':\n return Color.fromArgb(255, 255, 140, 0);\n case 'darkorchid':\n return Color.fromArgb(255, 153, 50, 204);\n case 'darkred':\n return Color.fromArgb(255, 139, 0, 0);\n case 'darksalmon':\n return Color.fromArgb(255, 233, 150, 122);\n case 'darkseagreen':\n return Color.fromArgb(255, 143, 188, 139);\n case 'darkslateblue':\n return Color.fromArgb(255, 72, 61, 139);\n case 'darkslategray':\n return Color.fromArgb(255, 47, 79, 79);\n case 'darkturquoise':\n return Color.fromArgb(255, 0, 206, 209);\n case 'darkviolet':\n return Color.fromArgb(255, 148, 0, 211);\n case 'deeppink':\n return Color.fromArgb(255, 255, 20, 147);\n case 'deepskyblue':\n return Color.fromArgb(255, 0, 191, 255);\n case 'dimgray':\n return Color.fromArgb(255, 105, 105, 105);\n case 'dodgerblue':\n return Color.fromArgb(255, 30, 144, 255);\n case 'firebrick':\n return Color.fromArgb(255, 178, 34, 34);\n case 'floralwhite':\n return Color.fromArgb(255, 255, 250, 240);\n case 'forestgreen':\n return Color.fromArgb(255, 34, 139, 34);\n case 'fuchsia':\n return Color.fromArgb(255, 255, 0, 255);\n case 'gainsboro':\n return Color.fromArgb(255, 220, 220, 220);\n case 'ghostwhite':\n return Color.fromArgb(255, 248, 248, 255);\n case 'gold':\n return Color.fromArgb(255, 255, 215, 0);\n case 'goldenrod':\n return Color.fromArgb(255, 218, 165, 32);\n case 'gray':\n return Color.fromArgb(255, 128, 128, 128);\n case 'green':\n return Color.fromArgb(255, 0, 128, 0);\n case 'greenyellow':\n return Color.fromArgb(255, 173, 255, 47);\n case 'honeydew':\n return Color.fromArgb(255, 240, 255, 240);\n case 'hotpink':\n return Color.fromArgb(255, 255, 105, 180);\n case 'indianred':\n return Color.fromArgb(255, 205, 92, 92);\n case 'indigo':\n return Color.fromArgb(255, 75, 0, 130);\n case 'ivory':\n return Color.fromArgb(255, 255, 255, 240);\n case 'khaki':\n return Color.fromArgb(255, 240, 230, 140);\n case 'lavender':\n return Color.fromArgb(255, 230, 230, 250);\n case 'lavenderblush':\n return Color.fromArgb(255, 255, 240, 245);\n case 'lawngreen':\n return Color.fromArgb(255, 124, 252, 0);\n case 'lemonchiffon':\n return Color.fromArgb(255, 255, 250, 205);\n case 'lightblue':\n return Color.fromArgb(255, 173, 216, 230);\n case 'lightcoral':\n return Color.fromArgb(255, 240, 128, 128);\n case 'lightcyan':\n return Color.fromArgb(255, 224, 255, 255);\n case 'lightgoldenrodyellow':\n return Color.fromArgb(255, 250, 250, 210);\n case 'lightgray':\n return Color.fromArgb(255, 211, 211, 211);\n case 'lightgreen':\n return Color.fromArgb(255, 144, 238, 144);\n case 'lightpink':\n return Color.fromArgb(255, 255, 182, 193);\n case 'lightsalmon':\n return Color.fromArgb(255, 255, 160, 122);\n case 'lightseagreen':\n return Color.fromArgb(255, 32, 178, 170);\n case 'lightskyblue':\n return Color.fromArgb(255, 135, 206, 250);\n case 'lightslategray':\n return Color.fromArgb(255, 119, 136, 153);\n case 'lightsteelblue':\n return Color.fromArgb(255, 176, 196, 222);\n case 'lightyellow':\n return Color.fromArgb(255, 255, 255, 224);\n case 'lime':\n return Color.fromArgb(255, 0, 255, 0);\n case 'limegreen':\n return Color.fromArgb(255, 50, 205, 50);\n case 'linen':\n return Color.fromArgb(255, 250, 240, 230);\n case 'magenta':\n return Color.fromArgb(255, 255, 0, 255);\n case 'maroon':\n return Color.fromArgb(255, 128, 0, 0);\n case 'mediumaquamarine':\n return Color.fromArgb(255, 102, 205, 170);\n case 'mediumblue':\n return Color.fromArgb(255, 0, 0, 205);\n case 'mediumorchid':\n return Color.fromArgb(255, 186, 85, 211);\n case 'mediumpurple':\n return Color.fromArgb(255, 147, 112, 219);\n case 'mediumseagreen':\n return Color.fromArgb(255, 60, 179, 113);\n case 'mediumslateblue':\n return Color.fromArgb(255, 123, 104, 238);\n case 'mediumspringgreen':\n return Color.fromArgb(255, 0, 250, 154);\n case 'mediumturquoise':\n return Color.fromArgb(255, 72, 209, 204);\n case 'mediumvioletred':\n return Color.fromArgb(255, 199, 21, 133);\n case 'midnightblue':\n return Color.fromArgb(255, 25, 25, 112);\n case 'mintcream':\n return Color.fromArgb(255, 245, 255, 250);\n case 'mistyrose':\n return Color.fromArgb(255, 255, 228, 225);\n case 'moccasin':\n return Color.fromArgb(255, 255, 228, 181);\n case 'navajowhite':\n return Color.fromArgb(255, 255, 222, 173);\n case 'navy':\n return Color.fromArgb(255, 0, 0, 128);\n case 'oldlace':\n return Color.fromArgb(255, 253, 245, 230);\n case 'olive':\n return Color.fromArgb(255, 128, 128, 0);\n case 'olivedrab':\n return Color.fromArgb(255, 107, 142, 35);\n case 'orange':\n return Color.fromArgb(255, 255, 165, 0);\n case 'orangered':\n return Color.fromArgb(255, 255, 69, 0);\n case 'orchid':\n return Color.fromArgb(255, 218, 112, 214);\n case 'palegoldenrod':\n return Color.fromArgb(255, 238, 232, 170);\n case 'palegreen':\n return Color.fromArgb(255, 152, 251, 152);\n case 'paleturquoise':\n return Color.fromArgb(255, 175, 238, 238);\n case 'palevioletred':\n return Color.fromArgb(255, 219, 112, 147);\n case 'papayawhip':\n return Color.fromArgb(255, 255, 239, 213);\n case 'peachpuff':\n return Color.fromArgb(255, 255, 218, 185);\n case 'peru':\n return Color.fromArgb(255, 205, 133, 63);\n case 'pink':\n return Color.fromArgb(255, 255, 192, 203);\n case 'plum':\n return Color.fromArgb(255, 221, 160, 221);\n case 'powderblue':\n return Color.fromArgb(255, 176, 224, 230);\n case 'purple':\n return Color.fromArgb(255, 128, 0, 128);\n case 'red':\n return Color.fromArgb(255, 255, 0, 0);\n case 'rosybrown':\n return Color.fromArgb(255, 188, 143, 143);\n case 'royalblue':\n return Color.fromArgb(255, 65, 105, 225);\n case 'saddlebrown':\n return Color.fromArgb(255, 139, 69, 19);\n case 'salmon':\n return Color.fromArgb(255, 250, 128, 114);\n case 'sandybrown':\n return Color.fromArgb(255, 244, 164, 96);\n case 'seagreen':\n return Color.fromArgb(255, 46, 139, 87);\n case 'seashell':\n return Color.fromArgb(255, 255, 245, 238);\n case 'sienna':\n return Color.fromArgb(255, 160, 82, 45);\n case 'silver':\n return Color.fromArgb(255, 192, 192, 192);\n case 'skyblue':\n return Color.fromArgb(255, 135, 206, 235);\n case 'slateblue':\n return Color.fromArgb(255, 106, 90, 205);\n case 'slategray':\n return Color.fromArgb(255, 112, 128, 144);\n case 'snow':\n return Color.fromArgb(255, 255, 250, 250);\n case 'springgreen':\n return Color.fromArgb(255, 0, 255, 127);\n case 'steelblue':\n return Color.fromArgb(255, 70, 130, 180);\n case 'tan':\n return Color.fromArgb(255, 210, 180, 140);\n case 'teal':\n return Color.fromArgb(255, 0, 128, 128);\n case 'thistle':\n return Color.fromArgb(255, 216, 191, 216);\n case 'tomato':\n return Color.fromArgb(255, 255, 99, 71);\n case 'turquoise':\n return Color.fromArgb(255, 64, 224, 208);\n case 'violet':\n return Color.fromArgb(255, 238, 130, 238);\n case 'wheat':\n return Color.fromArgb(255, 245, 222, 179);\n case 'white':\n return Color.fromArgb(255, 255, 255, 255);\n case 'whitesmoke':\n return Color.fromArgb(255, 245, 245, 245);\n case 'yellow':\n return Color.fromArgb(255, 255, 255, 0);\n case 'yellowgreen':\n return Color.fromArgb(255, 154, 205, 50);\n case 'buttonface':\n return Color.fromArgb(255, 240, 240, 240);\n case 'buttonhighlight':\n return Color.fromArgb(255, 255, 255, 255);\n case 'buttonshadow':\n return Color.fromArgb(255, 160, 160, 160);\n case 'gradientactivecaption':\n return Color.fromArgb(255, 185, 209, 234);\n case 'gradientinactivecaption':\n return Color.fromArgb(255, 215, 228, 242);\n case 'menubar':\n return Color.fromArgb(255, 240, 240, 240);\n case 'menuhighlight':\n return Color.fromArgb(255, 51, 153, 255);\n }\n return Color.fromArgb(255, 255, 255, 255);\n};\n\nColor.fromHex = function (data) {\n var r = _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.fromHex(data.substr(1, 2));\n var g = _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.fromHex(data.substr(3, 2));\n var b = _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.fromHex(data.substr(5, 2));\n var a = 255;\n return Color.fromArgb(a, r, g, b);\n};\n\nColor.fromSimpleHex = function (data) {\n var a = _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.fromHex(data.substr(0, 2));\n var r = _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.fromHex(data.substr(2, 2));\n var g = _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.fromHex(data.substr(4, 2));\n var b = _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.fromHex(data.substr(6, 2));\n return Color.fromArgb(a, r, g, b);\n};\n\nColor.fromInt = function (color) {\n var r = (color & 4278190080) >>> 24;\n var g = (color & 16711680) >>> 16;\n var b = (color & 65280) >>> 8;\n var a = (color & 255);\n return Color.fromArgb(a, r, g, b);\n};\n\nvar Color$ = {\n toFormat: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.emptyString(this.name)) {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('rgb({0},{1},{2})', this.r.toString(), this.g.toString(), this.b.toString());\n }\n else {\n return this.name;\n }\n },\n\n save: function () {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.emptyString(this.name)) {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0}:{1}', 0, this.name);\n }\n else {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0}:{1}:{2}:{3}:{4}', 1, this.a, this.r, this.g, this.b);\n }\n },\n\n toString: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.emptyString(this.name)) {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('#{0}{1}{2}', _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.toHex(this.r), _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.toHex(this.g), _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.toHex(this.b));\n }\n else {\n return this.name;\n }\n },\n\n toSimpleHex: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.emptyString(this.name)) {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0}{1}{2}{3}', _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.toHex(this.a), _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.toHex(this.r), _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.toHex(this.g), _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.toHex(this.b));\n }\n else {\n return this.name;\n }\n },\n\n _clone: function () {\n return Color.fromArgb(this.a, this.r, this.g, this.b);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Color\", [Color, Color$, null]);\n\n\n// wwtlib.Colors\n\nfunction Colors() { }\n\nColors.get_black = function () {\n return Color.fromArgb(255, 0, 0, 0);\n};\n\nColors.get_blue = function () {\n return Color.fromArgb(255, 0, 0, 255);\n};\n\nColors.get_brown = function () {\n return Color.fromArgb(255, 165, 42, 42);\n};\n\nColors.get_cyan = function () {\n return Color.fromArgb(255, 0, 255, 255);\n};\n\nColors.get_darkGray = function () {\n return Color.fromArgb(255, 169, 169, 169);\n};\n\nColors.get_gray = function () {\n return Color.fromArgb(255, 128, 128, 128);\n};\n\nColors.get_green = function () {\n return Color.fromArgb(255, 0, 255, 0);\n};\n\nColors.get_lightGray = function () {\n return Color.fromArgb(255, 211, 211, 211);\n};\n\nColors.get_magenta = function () {\n return Color.fromArgb(255, 255, 0, 255);\n};\n\nColors.get_orange = function () {\n return Color.fromArgb(255, 255, 165, 0);\n};\n\nColors.get_purple = function () {\n return Color.fromArgb(255, 128, 0, 128);\n};\n\nColors.get_red = function () {\n return Color.fromArgb(255, 255, 0, 0);\n};\n\nColors.get_transparent = function () {\n return Color.fromArgb(0, 255, 255, 255);\n};\n\nColors.get_white = function () {\n return Color.fromArgb(255, 255, 255, 255);\n};\n\nColors.get_yellow = function () {\n return Color.fromArgb(255, 255, 255, 0);\n};\n\nvar Colors$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Colors\", [Colors, Colors$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/constellation_filter.js\":\n/*!*************************************!*\\\n !*** ./esm/constellation_filter.js ***!\n \\*************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ConstellationFilter: () => (/* binding */ ConstellationFilter)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _blend_state_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blend_state.js */ \"./esm/blend_state.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A filter that can match various sets of constellations.\n\n\n\n\n\n\n// wwtlib.ConstellationFilter\n//\n// This type was defined in `Constellations.js`, but we've moved it here to\n// break circular dependencies.\n\nfunction ConstellationFilter() {\n this.bits = new Array(3);\n this.oldBits = new Array(3);\n this.blendState = _blend_state_js__WEBPACK_IMPORTED_MODULE_2__.BlendState.create(false, 1000);\n this.internal = false;\n this.settingsOwned = false;\n for (var i = 0; i < 3; i++) {\n this.bits[i] = ~this.bits[i];\n this.oldBits[i] = this.bits[i];\n }\n}\n\nConstellationFilter.families = {};\n\n// These are populated in `Constellations._centroidsReady()`.\nConstellationFilter.bitIDs = {};\n\nConstellationFilter.buildConstellationFilters = function () {\n var all = ConstellationFilter.get_allConstellation();\n all.internal = true;\n ConstellationFilter.families['AllConstellation'] = all;\n ConstellationFilter.families['Zodiacal'] = ConstellationFilter.get_zodiacal();\n ConstellationFilter.families['Ursa Major Family'] = ConstellationFilter.get_ursaMajorFamily();\n ConstellationFilter.families['Perseus Family'] = ConstellationFilter.get_perseusFamily();\n ConstellationFilter.families['Hercules Family'] = ConstellationFilter.get_herculesFamily();\n ConstellationFilter.families['Orion Family'] = ConstellationFilter.get_orionFamily();\n ConstellationFilter.families['Heavenly Waters'] = ConstellationFilter.get_heavenlyWaters();\n ConstellationFilter.families['Bayer Family'] = ConstellationFilter.get_bayerFamily();\n ConstellationFilter.families['La Caille Family'] = ConstellationFilter.get_laCaileFamily();\n};\n\nConstellationFilter.saveCustomFilters = function () {\n var sb = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.StringBuilder();\n var $dict1 = ConstellationFilter.families;\n for (var $key2 in $dict1) {\n var kv = { key: $key2, value: $dict1[$key2] };\n if (!kv.value.internal) {\n sb.append(kv.key);\n sb.append(';');\n sb.appendLine(kv.value.toString());\n }\n }\n};\n\nConstellationFilter.get_allConstellation = function () {\n var all = new ConstellationFilter();\n all.setAll(true);\n return all;\n};\n\nConstellationFilter.get_zodiacal = function () {\n var zodiacal = new ConstellationFilter();\n zodiacal.set('ARI', true);\n zodiacal.set('TAU', true);\n zodiacal.set('GEM', true);\n zodiacal.set('CNC', true);\n zodiacal.set('LEO', true);\n zodiacal.set('VIR', true);\n zodiacal.set('LIB', true);\n zodiacal.set('SCO', true);\n zodiacal.set('SGR', true);\n zodiacal.set('CAP', true);\n zodiacal.set('AQR', true);\n zodiacal.set('PSC', true);\n zodiacal.internal = true;\n return zodiacal;\n};\n\nConstellationFilter.get_ursaMajorFamily = function () {\n var uma = new ConstellationFilter();\n uma.set('UMA', true);\n uma.set('UMI', true);\n uma.set('DRA', true);\n uma.set('CVN', true);\n uma.set('BOO', true);\n uma.set('COM', true);\n uma.set('CRB', true);\n uma.set('CAM', true);\n uma.set('LYN', true);\n uma.set('LMI', true);\n uma.internal = true;\n return uma;\n};\n\nConstellationFilter.get_perseusFamily = function () {\n var Perseus = new ConstellationFilter();\n Perseus.set('CAS', true);\n Perseus.set('CEP', true);\n Perseus.set('AND', true);\n Perseus.set('PER', true);\n Perseus.set('PEG', true);\n Perseus.set('CET', true);\n Perseus.set('AUR', true);\n Perseus.set('LAC', true);\n Perseus.set('TRI', true);\n Perseus.internal = true;\n return Perseus;\n};\n\nConstellationFilter.get_herculesFamily = function () {\n var hercules = new ConstellationFilter();\n hercules.set('HER', true);\n hercules.set('SGE', true);\n hercules.set('AQL', true);\n hercules.set('LYR', true);\n hercules.set('CYG', true);\n hercules.set('VUL', true);\n hercules.set('HYA', true);\n hercules.set('SEX', true);\n hercules.set('CRT', true);\n hercules.set('CRV', true);\n hercules.set('OPH', true);\n hercules.set('SER1', true);\n hercules.set('SER2', true);\n hercules.set('SCT', true);\n hercules.set('CEN', true);\n hercules.set('LUP', true);\n hercules.set('CRA', true);\n hercules.set('ARA', true);\n hercules.set('TRA', true);\n hercules.set('CRU', true);\n hercules.internal = true;\n return hercules;\n};\n\nConstellationFilter.get_orionFamily = function () {\n var orion = new ConstellationFilter();\n orion.set('ORI', true);\n orion.set('CMA', true);\n orion.set('CMI', true);\n orion.set('MON', true);\n orion.set('LEP', true);\n orion.internal = true;\n return orion;\n};\n\nConstellationFilter.get_heavenlyWaters = function () {\n var waters = new ConstellationFilter();\n waters.set('DEL', true);\n waters.set('EQU', true);\n waters.set('ERI', true);\n waters.set('PSA', true);\n waters.set('CAR', true);\n waters.set('PUP', true);\n waters.set('VEL', true);\n waters.set('PYX', true);\n waters.set('COL', true);\n waters.internal = true;\n return waters;\n};\n\nConstellationFilter.get_bayerFamily = function () {\n var bayer = new ConstellationFilter();\n bayer.set('HYA', true);\n bayer.set('DOR', true);\n bayer.set('VOL', true);\n bayer.set('APS', true);\n bayer.set('PAV', true);\n bayer.set('GRU', true);\n bayer.set('PHE', true);\n bayer.set('TUC', true);\n bayer.set('IND', true);\n bayer.set('CHA', true);\n bayer.set('MUS', true);\n bayer.internal = true;\n return bayer;\n};\n\nConstellationFilter.get_laCaileFamily = function () {\n var LaCaile = new ConstellationFilter();\n LaCaile.set('NOR', true);\n LaCaile.set('CIR', true);\n LaCaile.set('TEL', true);\n LaCaile.set('MIC', true);\n LaCaile.set('SCL', true);\n LaCaile.set('FOR', true);\n LaCaile.set('CAE', true);\n LaCaile.set('HOR', true);\n LaCaile.set('OCT', true);\n LaCaile.set('MEN', true);\n LaCaile.set('RET', true);\n LaCaile.set('PIC', true);\n LaCaile.set('ANT', true);\n LaCaile.internal = true;\n return LaCaile;\n};\n\nConstellationFilter.parse = function (val) {\n var parts = (val).split(',');\n var cf = new ConstellationFilter();\n try {\n for (var i = 0; i < 3; i++) {\n cf.bits[i] = parseInt(parts[i]);\n }\n }\n catch ($e1) { }\n return cf;\n};\n\nvar ConstellationFilter$ = {\n _saveBits: function () {\n for (var i = 0; i < 3; i++) {\n this.oldBits[i] = this.bits[i];\n }\n },\n\n _isChanged: function () {\n for (var i = 0; i < 3; i++) {\n if (this.oldBits[i] !== this.bits[i]) {\n return true;\n }\n }\n return false;\n },\n\n _checkChanged: function () {\n if (this._isChanged()) {\n this._fireChanged();\n }\n },\n\n isEnabled: function (abbrev) {\n var bitID = ConstellationFilter.bitIDs[abbrev];\n var index = bitID / 32;\n bitID = bitID % 32;\n return this.blendState.get_state() && !!((1 << bitID) & this.bits[index]);\n },\n\n isSet: function (abbrev) {\n this._saveBits();\n var bitID = ConstellationFilter.bitIDs[abbrev];\n var index = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((bitID / 32));\n bitID = bitID % 32;\n return !!((1 << bitID) & this.bits[index]);\n },\n\n set: function (abbrev, state) {\n this._saveBits();\n var bitID = ConstellationFilter.bitIDs[abbrev];\n var index = bitID / 32;\n bitID = bitID % 32;\n if (state) {\n this.bits[index] = this.bits[index] | (1 << bitID);\n } else {\n this.bits[index] = this.bits[index] ^ (1 << bitID);\n }\n this._checkChanged();\n },\n\n setAll: function (state) {\n this._saveBits();\n for (var bitID = 0; bitID < 89; bitID++) {\n var index = bitID / 32;\n var bit = bitID % 32;\n if (state) {\n this.bits[index] = this.bits[index] | (1 << bit);\n }\n else {\n this.bits[index] = this.bits[index] ^ (1 << bit);\n }\n }\n this._checkChanged();\n },\n\n setBits: function (bits) {\n this._saveBits();\n for (var i = 0; i < 3; i++) {\n this.bits[i] = (bits[i * 4]) + ((bits[i * 4 + 1]) << 8) + ((bits[i * 4 + 2]) << 16) + ((bits[i * 4 + 3]) << 24);\n }\n this._checkChanged();\n },\n\n getBits: function () {\n var bits = new Array(12);\n var index = 0;\n for (var i = 0; i < 3; i++) {\n bits[index++] = this.bits[i];\n bits[index++] = (this.bits[i] >> 8);\n bits[index++] = (this.bits[i] >> 16);\n bits[index++] = (this.bits[i] >> 24);\n }\n return bits;\n },\n\n cloneFilter: function (filter) {\n this._saveBits();\n for (var i = 0; i < 3; i++) {\n this.bits[i] = filter.bits[i];\n }\n this._checkChanged();\n },\n\n clone: function () {\n var newFilter = new ConstellationFilter();\n newFilter.cloneFilter(this);\n return newFilter;\n },\n\n combine: function (filter) {\n this._saveBits();\n for (var i = 0; i < 3; i++) {\n this.bits[i] = this.bits[i] | filter.bits[i];\n }\n this._checkChanged();\n },\n\n remove: function (filter) {\n this._saveBits();\n for (var i = 0; i < 3; i++) {\n this.bits[i] = this.bits[i] & ~filter.bits[i];\n }\n this._checkChanged();\n },\n\n _fireChanged: function () {\n if (this.settingsOwned) {\n }\n },\n\n toString: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0},{1},{2}', this.bits[0], this.bits[1], this.bits[2]);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ConstellationFilter\", [ConstellationFilter, ConstellationFilter$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/constellations.js\":\n/*!*******************************!*\\\n !*** ./esm/constellations.js ***!\n \\*******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Constellations: () => (/* binding */ Constellations),\n/* harmony export */ Linepoint: () => (/* binding */ Linepoint),\n/* harmony export */ Lineset: () => (/* binding */ Lineset),\n/* harmony export */ PointType: () => (/* binding */ PointType)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n/* harmony import */ var _blend_state_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./blend_state.js */ \"./esm/blend_state.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _constellation_filter_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constellation_filter.js */ \"./esm/constellation_filter.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _sky_text_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./sky_text.js */ \"./esm/sky_text.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./web_file.js */ \"./esm/web_file.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Constellations in the sky.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.PointType\n\nvar PointType = {\n move: 0,\n line: 1,\n dash: 2,\n start: 3\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"PointType\", PointType);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"PointType\", PointType);\n\n\n// wwtlib.Lineset\n\nfunction Lineset(name) {\n this._name = name;\n this.points = [];\n}\n\nvar Lineset$ = {\n get_name: function () {\n return this._name;\n },\n\n set_name: function (value) {\n this._name = value;\n return value;\n },\n\n add: function (ra, dec, pointType, name) {\n this.points.push(new Linepoint(ra, dec, pointType, name));\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Lineset\", [Lineset, Lineset$, null]);\n\n\n// wwtlib.Linepoint\n\nfunction Linepoint(ra, dec, type, name) {\n this.RA = 0;\n this.dec = 0;\n this.pointType = 0;\n this.name = null;\n this.RA = ra;\n this.dec = dec;\n this.pointType = type;\n this.name = name;\n}\n\nvar Linepoint$ = {\n toString: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this.name)) {\n return _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS((((this.RA / 360) * 24 + 12) % 24)) + ', ' + _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS(this.dec) + ', ' + this.pointType.toString();\n } else {\n return this.name + ', ' + this.pointType.toString();\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Linepoint\", [Linepoint, Linepoint$, null]);\n\n\n// wwtlib.Constellations\n\nfunction Constellations() {\n this._pointCount = 0;\n this._boundry = false;\n this._noInterpollation = false;\n this.readOnly = false;\n this.radius = 1;\n this._drawCount = 0;\n this._constellationVertexBuffers = {};\n}\n\nConstellations.RC = 0.017453292519943;\nConstellations._maxSeperation = 0.745;\nConstellations.containment = null; // initialized in InitializeConstellations\nConstellations._constToDraw = '';\nConstellations.selectedSegment = null;\nConstellations._artFile = null;\nConstellations.artwork = null;\nConstellations.boundries = null;\nConstellations.pictureBlendStates = {};\n\nConstellations.createBasic = function (name) {\n var temp = new Constellations();\n temp._name = name;\n temp._url = null;\n temp.lines = [];\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(Constellations.fullNames));\n while ($enum1.moveNext()) {\n var abbrv = $enum1.current;\n temp.lines.push(new Lineset(abbrv));\n }\n return temp;\n};\n\nConstellations.create = function (name, url, boundry, noInterpollation, resource) {\n var temp = new Constellations();\n temp._noInterpollation = noInterpollation;\n temp._boundry = boundry;\n temp._name = name;\n temp._url = url;\n temp.getFile();\n return temp;\n};\n\nConstellations.drawConstellationNames = function (renderContext, opacity, drawColor) {\n if (Constellations._namesBatch == null) {\n Constellations.initializeConstellationNames();\n if (Constellations._namesBatch == null) {\n return;\n }\n }\n Constellations._namesBatch.draw(renderContext, opacity, drawColor);\n};\n\nConstellations.initializeConstellationNames = function () {\n if (Constellations.constellationCentroids == null) {\n return;\n }\n Constellations._namesBatch = new _sky_text_js__WEBPACK_IMPORTED_MODULE_10__.Text3dBatch(_settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_active().get_constellationLabelsHeight());\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(Constellations.constellationCentroids));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var centroid = Constellations.constellationCentroids[key];\n var center = _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.raDecTo3dAu(centroid.get_RA(), centroid.get_dec(), 1);\n var up = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 1, 0);\n var name = centroid.get_name();\n if (centroid.get_name() === 'Triangulum Australe') {\n name = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(name, ' ', '\\n ');\n }\n Constellations._namesBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_10__.Text3d(center, up, name, _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_active().get_constellationLabelsHeight(), 0.000125));\n }\n};\n\n// The WWTControl driver will not (and should not) call this function in\n// \"freestanding mode\", because the functionality depends on a\n// worldwidetelescope.org API.\nConstellations.drawArtwork = function (renderContext) {\n if (Constellations.artwork == null) {\n if (Constellations._artFile == null) {\n Constellations._artFile = (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_3__.makeNewFolder)();\n Constellations._artFile.loadFromUrl(_url_helpers_js__WEBPACK_IMPORTED_MODULE_11__.URLHelpers.singleton.coreStaticUrl('wwtweb/catalog.aspx?W=hevelius'), Constellations._onArtReady);\n }\n return;\n }\n Constellations._maxSeperation = Math.max(0.5, Math.cos((renderContext.get_fovAngle() * 2) / 180 * Math.PI));\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(Constellations.artwork);\n while ($enum1.moveNext()) {\n var place = $enum1.current;\n var bs = Constellations.pictureBlendStates[place.get_constellation()];\n bs.set_targetState(_settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_active().get_constellationArtFilter().isSet(place.get_constellation()));\n if (bs.get_state()) {\n var reverse = false;\n var centroid = Constellations.constellationCentroids[place.get_constellation()];\n if (centroid != null) {\n var pos = _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.raDecTo3d((reverse) ? -centroid.get_RA() - 6 : centroid.get_RA(), (reverse) ? centroid.get_dec() : centroid.get_dec());\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(renderContext.get_viewPoint(), pos) > Constellations._maxSeperation) {\n renderContext.drawImageSet(place.get_studyImageset(), 100);\n }\n }\n }\n }\n};\n\nConstellations._onArtReady = function () {\n Constellations._artFile.childLoadCallback(Constellations._loadArtList);\n};\n\nConstellations._loadArtList = function () {\n Constellations.artwork = Constellations._artFile.get_places();\n};\n\n// Repeated invocations of this function are OK.\nConstellations.initializeConstellations = function () {\n if (Constellations.containment == null) {\n var url = _url_helpers_js__WEBPACK_IMPORTED_MODULE_11__.URLHelpers.singleton.engineAssetUrl('ConstellationNamePositions_EN.txt');\n Constellations._webFileConstNames = new _web_file_js__WEBPACK_IMPORTED_MODULE_12__.WebFile(url);\n Constellations._webFileConstNames.onStateChange = Constellations._loadNames;\n Constellations._webFileConstNames.send();\n Constellations.containment = Constellations.create(\n 'Constellations',\n _url_helpers_js__WEBPACK_IMPORTED_MODULE_11__.URLHelpers.singleton.engineAssetUrl('constellations.txt'),\n true, // \"boundry\"\n true, // \"noInterpollation\"\n true, // \"resource\"\n );\n }\n};\n\nConstellations._loadNames = function () {\n if (Constellations._webFileConstNames.get_state() === 2) {\n alert(Constellations._webFileConstNames.get_message());\n }\n else if (Constellations._webFileConstNames.get_state() === 1) {\n Constellations._centroidsReady(Constellations._webFileConstNames.getText());\n }\n};\n\nConstellations._centroidsReady = function (file) {\n Constellations.constellationCentroids = {};\n Constellations.fullNames = {};\n Constellations.abbreviations = {};\n var rows = file.split('\\r\\n');\n var id = 0;\n var line;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(rows);\n\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n line = row;\n var data = line.split(',');\n Constellations.fullNames[data[1]] = data[0];\n Constellations.abbreviations[data[0]] = data[1];\n _constellation_filter_js__WEBPACK_IMPORTED_MODULE_7__.ConstellationFilter.bitIDs[data[1]] = id++;\n Constellations.pictureBlendStates[data[1]] = _blend_state_js__WEBPACK_IMPORTED_MODULE_5__.BlendState.create(true, 1000);\n Constellations.constellationCentroids[data[1]] = (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_3__.createPlace)(data[0], parseFloat(data[3]), parseFloat(data[2]), 128, data[1], 2, 360);\n }\n\n _constellation_filter_js__WEBPACK_IMPORTED_MODULE_7__.ConstellationFilter.buildConstellationFilters();\n};\n\nConstellations.fullName = function (name) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(Constellations.fullNames, name)) {\n return Constellations.fullNames[name];\n }\n return name;\n};\n\nConstellations.abbreviation = function (name) {\n if (Constellations.abbreviations != null && !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(name) && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(Constellations.abbreviations, name)) {\n return Constellations.abbreviations[name];\n }\n return name;\n};\n\nvar Constellations$ = {\n get_name: function () {\n return this._name;\n },\n\n set_name: function (value) {\n this._name = value;\n return value;\n },\n\n getFile: function () {\n this._webFile = new _web_file_js__WEBPACK_IMPORTED_MODULE_12__.WebFile(this._url);\n this._webFile.onStateChange = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('fileStateChange', this);\n this._webFile.send();\n },\n\n fileStateChange: function () {\n if (this._webFile.get_state() === 2) {\n alert(this._webFile.get_message());\n } else if (this._webFile.get_state() === 1) {\n this._loadConstellationData(this._webFile.getText());\n }\n },\n\n _loadConstellationData: function (data) {\n if (this._boundry && !this._noInterpollation) {\n Constellations.boundries = {};\n }\n this.lines = [];\n var lineSet = null;\n try {\n var rows = data.split('\\r\\n');\n var abrv;\n var abrvOld = '';\n var ra;\n var dec;\n var lastRa = 0;\n var type = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(rows);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n var line = row;\n if (line.substr(11, 2) === '- ') {\n line = line.substr(0, 11) + ' -' + line.substr(13, (line.length - 13));\n }\n if (line.substr(11, 2) === '+ ') {\n line = line.substr(0, 11) + ' +' + line.substr(13, (line.length - 13));\n }\n dec = parseFloat(line.substr(11, 10));\n if (this._noInterpollation) {\n ra = parseFloat(line.substr(0, 10));\n }\n else {\n ra = parseFloat(line.substr(0, 10));\n }\n abrv = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(line.substr(23, 4));\n if (!this._boundry) {\n if (!!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(line.substr(28, 1))) {\n type = parseInt(line.substr(28, 1));\n }\n }\n else {\n if (this._noInterpollation && line.substr(28, 1) !== 'O') {\n continue;\n }\n }\n if (abrv !== abrvOld) {\n type = 3;\n lineSet = new Lineset(abrv);\n this.lines.push(lineSet);\n if (this._boundry && !this._noInterpollation) {\n Constellations.boundries[abrv] = lineSet;\n }\n abrvOld = abrv;\n lastRa = 0;\n }\n if (this._noInterpollation) {\n if (Math.abs(ra - lastRa) > 12) {\n ra = ra - (24 * (((ra - lastRa) < 0) ? -1 : 1));\n }\n lastRa = ra;\n }\n var starName = null;\n if (line.length > 30) {\n starName = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(line.substr(30));\n }\n if (starName == null || starName !== 'Empty') {\n lineSet.add(ra, dec, type, starName);\n }\n this._pointCount++;\n type = 1;\n }\n }\n catch ($e2) {\n }\n },\n\n draw: function (renderContext, showOnlySelected, focusConsteallation, clearExisting) {\n Constellations._maxSeperation = Math.max(0.6, Math.cos((renderContext.get_fovAngle() * 2) / 180 * Math.PI));\n this._drawCount = 0;\n var lsSelected = null;\n if (this.lines == null || Constellations.constellationCentroids == null) {\n return;\n }\n Constellations._constToDraw = focusConsteallation;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.lines);\n while ($enum1.moveNext()) {\n var ls = $enum1.current;\n if (Constellations._constToDraw === ls.get_name() && this._boundry) {\n lsSelected = ls;\n }\n else if (!showOnlySelected || !this._boundry) {\n this._drawSingleConstellation(renderContext, ls, 1);\n }\n }\n if (lsSelected != null) {\n this._drawSingleConstellation(renderContext, lsSelected, 1);\n }\n },\n\n _drawSingleConstellation: function (renderContext, ls, opacity) {\n var reverse = false;\n var centroid = Constellations.constellationCentroids[ls.get_name()];\n if (centroid != null) {\n var pos = _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.raDecTo3d((reverse) ? -centroid.get_RA() - 6 : centroid.get_RA(), (reverse) ? centroid.get_dec() : centroid.get_dec());\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(renderContext.get_viewPoint(), pos) < Constellations._maxSeperation) {\n return;\n }\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._constellationVertexBuffers, ls.get_name())) {\n var count = ls.points.length;\n var linelist = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_4__.SimpleLineList();\n linelist.set_depthBuffered(false);\n this._constellationVertexBuffers[ls.get_name()] = linelist;\n var currentPoint = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var temp;\n for (var i = 0; i < count; i++) {\n if (!ls.points[i].pointType || !i) {\n currentPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.raDecTo3d(ls.points[i].RA, ls.points[i].dec);\n }\n else {\n temp = _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.raDecTo3d(ls.points[i].RA, ls.points[i].dec);\n linelist.addLine(currentPoint, temp);\n currentPoint = temp;\n }\n }\n if (this._boundry) {\n temp = _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.raDecTo3d(ls.points[0].RA, ls.points[0].dec);\n linelist.addLine(currentPoint, temp);\n }\n }\n var col = 'red';\n if (this._boundry) {\n if (Constellations._constToDraw !== ls.get_name()) {\n col = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().get_constellationBoundryColor();\n }\n else {\n col = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().get_constellationSelectionColor();\n }\n } else {\n col = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().get_constellationFigureColor();\n }\n this._constellationVertexBuffers[ls.get_name()].drawLines(renderContext, opacity, _color_js__WEBPACK_IMPORTED_MODULE_6__.Color.load(col));\n },\n\n _drawSingleConstellationOld: function (renderContext, ls) {\n var reverse = false;\n var centroid = Constellations.constellationCentroids[ls.get_name()];\n if (centroid != null) {\n var pos = _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.raDecTo3d((reverse) ? -centroid.get_RA() - 6 : centroid.get_RA(), (reverse) ? centroid.get_dec() : centroid.get_dec());\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(renderContext.get_viewPoint(), pos) < Constellations._maxSeperation) {\n return;\n }\n }\n this._drawCount++;\n var col;\n if (this._boundry) {\n if (Constellations._constToDraw !== ls.get_name()) {\n col = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().get_constellationBoundryColor();\n }\n else {\n col = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().get_constellationSelectionColor();\n }\n } else {\n col = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().get_constellationFigureColor();\n }\n if (renderContext.gl == null) {\n var ctx = renderContext.device;\n var count = ls.points.length;\n var lastPoint = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n ctx.save();\n var linePending = false;\n ctx.beginPath();\n ctx.strokeStyle = col;\n ctx.lineWidth = 2;\n ctx.globalAlpha = 0.25;\n for (var i = 0; i < count; i++) {\n if (!ls.points[i].pointType || !i) {\n if (linePending) {\n ctx.stroke();\n }\n lastPoint = renderContext.WVP.transform(_coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.raDecTo3d(ls.points[i].RA, ls.points[i].dec));\n ctx.moveTo(lastPoint.x, lastPoint.y);\n }\n else {\n var newPoint = renderContext.WVP.transform(_coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.raDecTo3d(ls.points[i].RA, ls.points[i].dec));\n ctx.lineTo(newPoint.x, newPoint.y);\n linePending = true;\n }\n }\n if (this._boundry) {\n ctx.closePath();\n }\n ctx.stroke();\n ctx.restore();\n } else {\n //todo add webgl method of drawing\n }\n },\n\n findConstellationForPoint: function (ra, dec) {\n if (dec > 88.402 || this.lines == null) {\n return 'UMI';\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.lines);\n while ($enum1.moveNext()) {\n var ls = $enum1.current;\n var count = ls.points.length;\n var i;\n var j;\n var inside = false;\n for (i = 0, j = count - 1; i < count; j = i++) {\n if ((((ls.points[i].dec <= dec) && (dec < ls.points[j].dec)) || ((ls.points[j].dec <= dec) && (dec < ls.points[i].dec))) && (ra < (ls.points[j].RA - ls.points[i].RA) * (dec - ls.points[i].dec) / (ls.points[j].dec - ls.points[i].dec) + ls.points[i].RA)) {\n inside = !inside;\n }\n }\n if (inside) {\n return ls.get_name();\n }\n }\n if (ra > 0) {\n return this.findConstellationForPoint(ra - 24, dec);\n }\n // Ursa Minor is tricky since it wraps around the poles. It can evade the point in rect test\n if (dec > 65.5) {\n return 'UMI';\n }\n if (dec < -65.5) {\n return 'OCT';\n }\n return 'Error';\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Constellations\", [Constellations, Constellations$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/coordinates.js\":\n/*!****************************!*\\\n !*** ./esm/coordinates.js ***!\n \\****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Coordinates: () => (/* binding */ Coordinates)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Routines for coordinate transformations\n//\n// NB: these functions are redundant in the webclient because we don't have the\n// single-precision `Vector3` type that's distinguished from `Vector3d`. To\n// minimize the code delta from Windows, we keep both names for simplicity. But\n// the `...Rad` functions are added because ScriptSharp can't deal with\n// overloads.\n\n\n\n\n\n\n\n// wwtlib.Coordinates\n\nfunction Coordinates(ascention, declination) {\n // Held in radians\n this._ascention = 0;\n this._declination = 0;\n this._ascention = ascention + (Math.PI * 80) % (Math.PI * 2);\n this._declination = declination;\n}\n\nCoordinates.RC = (3.1415927 / 180);\nCoordinates.RCRA = (3.1415927 / 12);\nCoordinates.radius = 1;\nCoordinates._rotationMatrix = null;\n\nCoordinates.geoTo3d = function (lat, lng) {\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(lng * Coordinates.RC) * Math.cos(lat * Coordinates.RC) * 1, Math.sin(lat * Coordinates.RC) * 1, Math.sin(lng * Coordinates.RC) * Math.cos(lat * Coordinates.RC) * 1);\n};\n\nCoordinates.geoTo3dDouble = function (lat, lng) {\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(lng * Coordinates.RC) * Math.cos(lat * Coordinates.RC) * 1, Math.sin(lat * Coordinates.RC) * 1, Math.sin(lng * Coordinates.RC) * Math.cos(lat * Coordinates.RC) * 1);\n};\n\nCoordinates.geoTo3dRad = function (lat, lng, radius) {\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(lng * Coordinates.RC) * Math.cos(lat * Coordinates.RC) * radius, Math.sin(lat * Coordinates.RC) * radius, Math.sin(lng * Coordinates.RC) * Math.cos(lat * Coordinates.RC) * radius);\n};\n\nCoordinates.raDecTo3d = function (ra, dec) {\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(ra * Coordinates.RCRA) * Math.cos(dec * Coordinates.RC) * 1, Math.sin(dec * Coordinates.RC) * 1, Math.sin(ra * Coordinates.RCRA) * Math.cos(dec * Coordinates.RC) * 1);\n};\n\nCoordinates.raDecTo3dAu = function (ra, dec, au) {\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(ra * Coordinates.RCRA) * Math.cos(dec * Coordinates.RC) * au, Math.sin(dec * Coordinates.RC) * au, Math.sin(ra * Coordinates.RCRA) * Math.cos(dec * Coordinates.RC) * au);\n};\n\nCoordinates.raDecTo3dMat = function (ra, dec, mat) {\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create((Math.cos(ra * Coordinates.RCRA) * Math.cos(dec * Coordinates.RC) * 1), (Math.sin(dec * Coordinates.RC) * 1), (Math.sin(ra * Coordinates.RCRA) * Math.cos(dec * Coordinates.RC) * 1)), mat);\n};\n\nCoordinates.raDecTo3dPointRad = function (point, radius) {\n point.set_dec(-point.get_dec());\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create((Math.cos(point.get_RA() * Coordinates.RCRA) * Math.cos(point.get_dec() * Coordinates.RC) * radius), (Math.sin(point.get_dec() * Coordinates.RC) * radius), (Math.sin(point.get_RA() * Coordinates.RCRA) * Math.cos(point.get_dec() * Coordinates.RC) * radius));\n};\n\nCoordinates.sterographicTo3d = function (x, y, radius, standardLat, meridean, falseEasting, falseNorthing, scale, north) {\n var lat = 90;\n var lng = 0;\n x -= falseEasting;\n y -= falseNorthing;\n if (!!x || !!y) {\n var re = (1 + Math.sin(Math.abs(standardLat) / 180 * Math.PI)) * 6371000 / scale;\n var rere = re * re;\n var c1 = 180 / Math.PI;\n if (!x) {\n lng = (90 * y < 0) ? -1 : 1;\n } else {\n lng = Math.atan2(y, x) * c1;\n }\n var len = (x * x) + (y * y);\n lat = (rere - len) / (rere + len);\n lat = Math.asin(lat) * c1;\n if (!north) {\n lat = -lat;\n lng = -lng;\n meridean = -meridean;\n }\n }\n return Coordinates.geoTo3dRad(lat, 90 + lng + meridean, radius);\n};\n\nCoordinates.equitorialToHorizon = function (equitorial, location, utc) {\n var hourAngle = Coordinates.mstFromUTC2(utc, location.get_lng()) - (equitorial.get_RA() * 15);\n if (hourAngle < 0) {\n hourAngle += 360;\n }\n var ha = hourAngle * Coordinates.RC;\n var dec = equitorial.get_dec() * Coordinates.RC;\n var lat = location.get_lat() * Coordinates.RC;\n var sinAlt = Math.sin(dec) * Math.sin(lat) + Math.cos(dec) * Math.cos(lat) * Math.cos(ha);\n var altitude = Math.asin(sinAlt);\n var cosAzimith = (Math.sin(dec) - Math.sin(altitude) * Math.sin(lat)) / (Math.cos(altitude) * Math.cos(lat));\n var azimuth = Math.acos(cosAzimith);\n var altAz = new Coordinates(azimuth, altitude);\n if (Math.sin(ha) > 0) {\n altAz.set_az((360 - altAz.get_az()));\n }\n return altAz;\n};\n\nCoordinates.horizonToEquitorial = function (altAz, location, utc) {\n var hourAngle = Coordinates.mstFromUTC2(utc, location.get_lng());\n var haLocal;\n var declination;\n var raDec = Coordinates._altAzToRaDec(altAz.get_alt() * Coordinates.RC, altAz.get_az() * Coordinates.RC, location.get_lat() * Coordinates.RC);\n haLocal = raDec.x;\n declination = raDec.y;\n var ha = (haLocal / Coordinates.RC);\n hourAngle += ha;\n if (hourAngle < 0) {\n hourAngle += 360;\n }\n if (hourAngle > 360) {\n hourAngle -= 360;\n }\n return Coordinates.fromRaDec(hourAngle / 15, declination / Coordinates.RC);\n};\n\nCoordinates._altAzToRaDec = function (Altitude, Azimuth, Latitude) {\n var hrAngle = 0;\n var dec = 0;\n Azimuth = Math.PI - Azimuth;\n if (Azimuth < 0) {\n Azimuth += Math.PI * 2;\n }\n hrAngle = Math.atan2(Math.sin(Azimuth), Math.cos(Azimuth) * Math.sin(Latitude) + Math.tan(Altitude) * Math.cos(Latitude));\n if (hrAngle < 0) {\n hrAngle += Math.PI * 2;\n }\n dec = Math.asin(Math.sin(Latitude) * Math.sin(Altitude) - Math.cos(Latitude) * Math.cos(Altitude) * Math.cos(Azimuth));\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(hrAngle, dec);\n};\n\nCoordinates.mstFromUTC2 = function (utc, lng) {\n var year = utc.getUTCFullYear();\n var month = utc.getUTCMonth() + 1;\n var day = utc.getUTCDate();\n var hour = utc.getUTCHours();\n var minute = utc.getUTCMinutes();\n var second = utc.getUTCSeconds() + utc.getUTCMilliseconds() / 1000;\n if (month === 1 || month === 2) {\n year -= 1;\n month += 12;\n }\n var a = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((year / 100));\n var b = 2 - a + Math.floor((a / 4));\n var c = Math.floor(365.25 * year);\n var d = Math.floor(30.6001 * (month + 1));\n var julianDays;\n var julianCenturies;\n var mst;\n julianDays = b + c + d - 730550.5 + day + (hour + minute / 60 + second / 3600) / 24;\n julianCenturies = julianDays / 36525;\n mst = 280.46061837 + 360.98564736629 * julianDays + 0.000387933 * julianCenturies * julianCenturies - julianCenturies * julianCenturies * julianCenturies / 38710000 + lng;\n if (mst > 0) {\n while (mst > 360) {\n mst = mst - 360;\n }\n }\n else {\n while (mst < 0) {\n mst = mst + 360;\n }\n }\n return mst;\n};\n\nCoordinates.cartesianToSpherical = function (vector) {\n var ascention;\n var declination;\n var radius = Math.sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z);\n var XZ = Math.sqrt(vector.x * vector.x + vector.z * vector.z);\n declination = Math.asin(vector.y / radius);\n if (0 < vector.x) {\n ascention = Math.asin(vector.z / XZ);\n }\n else if (0 > vector.x) {\n ascention = Math.PI - Math.asin(vector.z / XZ);\n }\n else {\n ascention = 0;\n }\n return new Coordinates(ascention, declination);\n};\n\nCoordinates.cartesianToSpherical2 = function (vector) {\n var rho = Math.sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z);\n var longitude = Math.atan2(vector.z, vector.x);\n var latitude = Math.asin(vector.y / rho);\n return new Coordinates(longitude, latitude);\n};\n\nCoordinates.cartesianToSphericalSky = function (vector) {\n var rho = Math.sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z);\n var ra = Math.atan2(vector.z, vector.x);\n var dec = Math.asin(vector.y / rho);\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(ra / Math.PI * 12, dec / Math.PI * 180);\n};\n\nCoordinates.sphericalSkyToCartesian = function (vector) {\n var ra = vector.x * (Math.PI / 12);\n var dec = vector.y * (Math.PI / 180);\n var x = Math.cos(ra) * Math.cos(dec);\n var y = Math.sin(dec);\n var z = Math.sin(ra) * Math.cos(dec);\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(x, y, z);\n};\n\nCoordinates.cartesianToLatLng = function (vector) {\n var rho = Math.sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z);\n var longitude = Math.atan2(vector.z, vector.x);\n var latitude = Math.asin(vector.y / rho);\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(longitude * 180 / Math.PI, latitude * 180 / Math.PI);\n};\n\nCoordinates.cartesianToSpherical3 = function (vector) {\n var rho = Math.sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z);\n var longitude = Math.atan2(vector.z, vector.x);\n var latitude = Math.asin(vector.y / rho);\n return new Coordinates(longitude, latitude);\n};\n\nCoordinates.sign = function (target) {\n return (target < 0) ? -1 : 1;\n};\n\nCoordinates.formatDMSSign = function (angle, sign) {\n try {\n angle += (Coordinates.sign(angle) * 0.0001388888888889);\n var degrees = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(angle);\n var minutes = ((angle - _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(angle)) * 60);\n var seconds = ((minutes - _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(minutes)) * 60);\n if (sign) {\n var signString = (angle > 0) ? '+' : '-';\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{3}{0:00;00}:{1:00}:{2:00}', degrees, Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(minutes)), Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(seconds)), signString);\n } else {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0:00}:{1:00}:{2:00}', degrees, Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(minutes)), Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(seconds)));\n }\n }\n catch ($e1) {\n return '';\n }\n};\n\nCoordinates.twoPlaces = function (val) {\n var num = val.toString();\n if (num.length < 2) {\n num = '0' + num;\n }\n return num;\n};\n\nCoordinates.formatDMS = function (angle) {\n try {\n angle += (((angle < 0) ? -1 : 1) * 0.0001388888888889);\n var degrees = Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(angle));\n var minutes = ((angle - _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(angle)) * 60);\n var seconds = ((minutes - _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(minutes)) * 60);\n var sign = (angle < 0) ? '-' : '';\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{3}{0}:{1}:{2}', Math.abs(degrees), Coordinates.twoPlaces(Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(minutes))), Coordinates.twoPlaces(Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(seconds))), sign);\n }\n catch ($e1) {\n return '';\n }\n};\n\nCoordinates.formatDMSWide = function (angle) {\n try {\n angle += (Coordinates.sign(angle) * 0.0001388888888889);\n var degrees = Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(angle));\n var minutes = ((angle - _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(angle)) * 60);\n var seconds = ((minutes - _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(minutes)) * 60);\n var sign = (angle < 0) ? '-' : '';\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{3}{0:00} : {1:00} : {2:00}', degrees, Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(minutes)), Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(seconds)), sign);\n }\n catch ($e1) {\n return '';\n }\n};\n\nCoordinates.formatHMS = function (angle) {\n try {\n angle += (Coordinates.sign(angle) * 0.0001388888888889);\n var degrees = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(angle);\n var minutes = ((angle - _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(angle)) * 60);\n var seconds = ((minutes - _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(minutes)) * 60);\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0:00}h{1:00}m{2:00}s', degrees, Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(minutes)), Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(seconds)));\n }\n catch ($e1) {\n return '';\n }\n};\n\nCoordinates.parseRA = function (data, degrees) {\n data = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.trim(data).toLowerCase();\n if (data.indexOf('d') > -1 || data.indexOf('\\u00b0') > -1) {\n degrees = true;\n }\n if (data.indexOf('h') > -1 || data.indexOf(':') > -1) {\n degrees = false;\n }\n var ra = Coordinates.parse(data) / ((degrees) ? 15 : 1);\n return Math.max(Math.min(ra, 24), 0);\n};\n\nCoordinates.parseDec = function (data) {\n var dec = Coordinates.parse(data);\n return Math.max(Math.min(dec, 90), -90);\n};\n\nCoordinates.parse = function (data) {\n try {\n data = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.trim(data).toLowerCase();\n data = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(data, 'd ', 'd'), 'h ', 'h'), 'm ', 'm'), 's ', 's'), \"' \", \"'\"), '\" ', '\"');\n if (_baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.stringContains(data, [':', ' ', 'd', 'h', 'm', 's', \"'\", '\"', '\\u00b0'])) {\n var hours = 0;\n var minutes = 0;\n var seconds = 0;\n var sign = 0;\n var parts = _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.splitString(data, [':', ' ', 'd', 'h', 'm', 's', \"'\", '\"', '\\u00b0']);\n if (parts.length > 0) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.emptyString(parts[0])) {\n hours = Math.abs(parseFloat(parts[0]));\n sign = (parseFloat(parts[0]) < 0) ? -1 : 1;\n if (parts[0].indexOf('-') > -1) {\n sign = -1;\n }\n }\n }\n if (parts.length > 1) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.emptyString(parts[1])) {\n minutes = parseFloat(parts[1]);\n }\n }\n if (parts.length > 2) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.emptyString(parts[2])) {\n seconds = parseFloat(parts[2]);\n }\n }\n if (!sign) {\n sign = 1;\n }\n return sign * (hours + minutes / 60 + seconds / 3600);\n } else {\n var val = 0;\n try {\n val = parseFloat(data);\n }\n catch ($e1) {\n val = 0;\n }\n return val;\n }\n }\n catch ($e2) {\n return 0;\n }\n};\n\nCoordinates.fromRaDec = function (ra, dec) {\n return new Coordinates((ra - 12) * 15 * Coordinates.RC, dec * Coordinates.RC);\n};\n\nCoordinates.fromLatLng = function (lat, lng) {\n return new Coordinates(lng * Coordinates.RC, lat * Coordinates.RC);\n};\n\nCoordinates.dmsToDegrees = function (Degrees, Minutes, Seconds) {\n return Degrees + Minutes / 60 + Seconds / 3600;\n};\n\nCoordinates.degreesToRadians = function (Degrees) {\n return Degrees * 0.0174532925199433;\n};\n\nCoordinates.radiansToDegrees = function (Radians) {\n return Radians * 57.2957795130823;\n};\n\nCoordinates.radiansToHours = function (Radians) {\n return Radians * 3.81971863420549;\n};\n\nCoordinates.hoursToRadians = function (Hours) {\n return Hours * 0.261799387799149;\n};\n\nCoordinates.hoursToDegrees = function (Hours) {\n return Hours * 15;\n};\n\nCoordinates.degreesToHours = function (Degrees) {\n return Degrees / 15;\n};\n\nCoordinates.PI = function () {\n return 3.14159265358979;\n};\n\nCoordinates.mapTo0To360Range = function (Degrees) {\n var Value = Degrees;\n while (Value < 0) {\n Value += 360;\n }\n while (Value > 360) {\n Value -= 360;\n }\n return Value;\n};\n\nCoordinates.mapTo0To24Range = function (HourAngle) {\n var Value = HourAngle;\n while (Value < 0) {\n Value += 24;\n }\n while (Value > 24) {\n Value -= 24;\n }\n return Value;\n};\n\nCoordinates.meanObliquityOfEcliptic = function (JD) {\n var U = (JD - 2451545) / 3652500;\n var Usquared = U * U;\n var Ucubed = Usquared * U;\n var U4 = Ucubed * U;\n var U5 = U4 * U;\n var U6 = U5 * U;\n var U7 = U6 * U;\n var U8 = U7 * U;\n var U9 = U8 * U;\n var U10 = U9 * U;\n return Coordinates.dmsToDegrees(23, 26, 21.448) - Coordinates.dmsToDegrees(0, 0, 4680.93) * U - Coordinates.dmsToDegrees(0, 0, 1.55) * Usquared + Coordinates.dmsToDegrees(0, 0, 1999.25) * Ucubed - Coordinates.dmsToDegrees(0, 0, 51.38) * U4 - Coordinates.dmsToDegrees(0, 0, 249.67) * U5 - Coordinates.dmsToDegrees(0, 0, 39.05) * U6 + Coordinates.dmsToDegrees(0, 0, 7.12) * U7 + Coordinates.dmsToDegrees(0, 0, 27.87) * U8 + Coordinates.dmsToDegrees(0, 0, 5.79) * U9 + Coordinates.dmsToDegrees(0, 0, 2.45) * U10;\n};\n\nCoordinates.j2000toGalactic = function (J2000RA, J2000DEC) {\n var J2000pos = [Math.cos(J2000RA / 180 * Math.PI) * Math.cos(J2000DEC / 180 * Math.PI), Math.sin(J2000RA / 180 * Math.PI) * Math.cos(J2000DEC / 180 * Math.PI), Math.sin(J2000DEC / 180 * Math.PI)];\n if (Coordinates._rotationMatrix == null) {\n Coordinates._rotationMatrix = new Array(3);\n Coordinates._rotationMatrix[0] = [-0.0548755604, -0.8734370902, -0.4838350155];\n Coordinates._rotationMatrix[1] = [0.4941094279, -0.44482963, 0.7469822445];\n Coordinates._rotationMatrix[2] = [-0.867666149, -0.1980763734, 0.4559837762];\n }\n var Galacticpos = new Array(3);\n for (var i = 0; i < 3; i++) {\n Galacticpos[i] = J2000pos[0] * Coordinates._rotationMatrix[i][0] + J2000pos[1] * Coordinates._rotationMatrix[i][1] + J2000pos[2] * Coordinates._rotationMatrix[i][2];\n }\n var GalacticL2 = Math.atan2(Galacticpos[1], Galacticpos[0]);\n if (GalacticL2 < 0) {\n GalacticL2 = GalacticL2 + 2 * Math.PI;\n }\n if (GalacticL2 > 2 * Math.PI) {\n GalacticL2 = GalacticL2 - 2 * Math.PI;\n }\n var GalacticB2 = Math.atan2(Galacticpos[2], Math.sqrt(Galacticpos[0] * Galacticpos[0] + Galacticpos[1] * Galacticpos[1]));\n return [GalacticL2 / Math.PI * 180, GalacticB2 / Math.PI * 180];\n};\n\nCoordinates.galacticTo3dDouble = function (l, b) {\n var result = Coordinates.galactictoJ2000(l, b);\n return Coordinates.raDecTo3dAu(result[0] / 15, result[1], 1);\n};\n\nCoordinates.galactictoJ2000 = function (GalacticL2, GalacticB2) {\n var Galacticpos = [Math.cos(GalacticL2 / 180 * Math.PI) * Math.cos(GalacticB2 / 180 * Math.PI), Math.sin(GalacticL2 / 180 * Math.PI) * Math.cos(GalacticB2 / 180 * Math.PI), Math.sin(GalacticB2 / 180 * Math.PI)];\n if (Coordinates._rotationMatrix == null) {\n Coordinates._rotationMatrix = new Array(3);\n Coordinates._rotationMatrix[0] = [-0.0548755604, -0.8734370902, -0.4838350155];\n Coordinates._rotationMatrix[1] = [0.4941094279, -0.44482963, 0.7469822445];\n Coordinates._rotationMatrix[2] = [-0.867666149, -0.1980763734, 0.4559837762];\n }\n var J2000pos = new Array(3);\n for (var i = 0; i < 3; i++) {\n J2000pos[i] = Galacticpos[0] * Coordinates._rotationMatrix[0][i] + Galacticpos[1] * Coordinates._rotationMatrix[1][i] + Galacticpos[2] * Coordinates._rotationMatrix[2][i];\n }\n var J2000RA = Math.atan2(J2000pos[1], J2000pos[0]);\n if (J2000RA < 0) {\n J2000RA = J2000RA + 2 * Math.PI;\n }\n if (J2000RA > 2 * Math.PI) {\n J2000RA = J2000RA - 2 * Math.PI;\n }\n var J2000DEC = Math.atan2(J2000pos[2], Math.sqrt(J2000pos[0] * J2000pos[0] + J2000pos[1] * J2000pos[1]));\n return [J2000RA / Math.PI * 180, J2000DEC / Math.PI * 180];\n};\n\nvar Coordinates$ = {\n distance: function (pointB) {\n var y = this.get_lat();\n var x = this.get_lng() * Math.cos(y * Coordinates.RC);\n var y1 = pointB.get_lat();\n var x1 = pointB.get_lng() * Math.cos(y1 * Coordinates.RC);\n return Math.sqrt((y - y1) * (y - y1) + (x - x1) * (x - x1));\n },\n\n distance3d: function (pointB) {\n var pnt1 = Coordinates.geoTo3dDouble(pointB.get_lat(), pointB.get_lng());\n var pnt2 = Coordinates.geoTo3dDouble(this.get_lat(), this.get_lng());\n var pntDiff = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(pnt1, pnt2);\n return pntDiff.length() / Coordinates.RC;\n },\n\n angle: function (pointB) {\n var y = this.get_lat();\n var x = this.get_lng() * Math.cos(y * Coordinates.RC);\n var y1 = pointB.get_lat();\n var x1 = pointB.get_lng() * Math.cos(y1 * Coordinates.RC);\n return Math.atan2((y1 - y), (x1 - x));\n },\n\n get_RA: function () {\n return (((this._ascention / Math.PI) * 12) + 12) % 24;\n },\n\n set_RA: function (value) {\n this._ascention = (value / 12) * Math.PI;\n return value;\n },\n\n get_dec: function () {\n return this._declination / Coordinates.RC;\n },\n\n set_dec: function (value) {\n this._declination = value * Coordinates.RC;\n return value;\n },\n\n get_lat: function () {\n return this._declination / Coordinates.RC;\n },\n\n set_lat: function (value) {\n this._declination = value * Coordinates.RC;\n return value;\n },\n\n get_lng: function () {\n var lng = this._ascention / Coordinates.RC;\n if (lng <= 180) {\n return lng;\n } else {\n return (-180 + (180 - lng));\n }\n },\n\n set_lng: function (value) {\n //todo This was broken check callers to see what effect it had.\n this._ascention = ((value * Coordinates.RC) + (Math.PI * 2) % (Math.PI * 2));\n return value;\n },\n\n get_alt: function () {\n return this._declination / Coordinates.RC;\n },\n\n set_alt: function (value) {\n this._declination = value * Coordinates.RC;\n return value;\n },\n\n get_az: function () {\n return this._ascention / Coordinates.RC;\n },\n\n set_az: function (value) {\n this._ascention = value * Coordinates.RC;\n return value;\n },\n\n toString: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('Lat: {0}, Lng: {1}', this.get_lat(), this.get_lng());\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Coordinates\", [Coordinates, Coordinates$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/data_globals.js\":\n/*!*****************************!*\\\n !*** ./esm/data_globals.js ***!\n \\*****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createPlace: () => (/* binding */ createPlace),\n/* harmony export */ freestandingMode: () => (/* binding */ freestandingMode),\n/* harmony export */ globalScriptInterface: () => (/* binding */ globalScriptInterface),\n/* harmony export */ globalWWTControl: () => (/* binding */ globalWWTControl),\n/* harmony export */ layerManagerGetAllMaps: () => (/* binding */ layerManagerGetAllMaps),\n/* harmony export */ loadWtmlFile: () => (/* binding */ loadWtmlFile),\n/* harmony export */ makeNewFolder: () => (/* binding */ makeNewFolder),\n/* harmony export */ makeNewHipsProperties: () => (/* binding */ makeNewHipsProperties),\n/* harmony export */ setManagerVisibleLayerList: () => (/* binding */ setManagerVisibleLayerList),\n/* harmony export */ set_createPlace: () => (/* binding */ set_createPlace),\n/* harmony export */ set_freestandingMode: () => (/* binding */ set_freestandingMode),\n/* harmony export */ set_globalScriptInterface: () => (/* binding */ set_globalScriptInterface),\n/* harmony export */ set_globalWWTControl: () => (/* binding */ set_globalWWTControl),\n/* harmony export */ set_layerManagerGetAllMaps: () => (/* binding */ set_layerManagerGetAllMaps),\n/* harmony export */ set_loadWtmlFile: () => (/* binding */ set_loadWtmlFile),\n/* harmony export */ set_makeNewFolder: () => (/* binding */ set_makeNewFolder),\n/* harmony export */ set_makeNewHipsProperties: () => (/* binding */ set_makeNewHipsProperties),\n/* harmony export */ set_setManagerVisibleLayerList: () => (/* binding */ set_setManagerVisibleLayerList),\n/* harmony export */ set_tourDocumentFromUrlRaw: () => (/* binding */ set_tourDocumentFromUrlRaw),\n/* harmony export */ tourDocumentFromUrlRaw: () => (/* binding */ tourDocumentFromUrlRaw)\n/* harmony export */ });\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Various global variables associated with data assets.\n//\n// See `render_globals.js` for a general rationale for this kind of module.\n\n// This used to be WWTControl(.singleton).freestandingMode. It sets whether the\n// engine will avoid accessing the central WWT servers.\nvar freestandingMode = false;\n\nfunction set_freestandingMode(value) {\n freestandingMode = !!value;\n}\n\n// This is equivalent to `new HipsProperties(imageset)`. We abstract\n// the function to avoid circular dependencies in the type hierarchy.\nvar makeNewHipsProperties = null;\n\nfunction set_makeNewHipsProperties(value) {\n makeNewHipsProperties = value;\n}\n\n// This is equivalent to `new Folder()`. We abstract\n// the function to avoid circular dependencies in the type hierarchy.\nvar makeNewFolder = null;\n\nfunction set_makeNewFolder(value) {\n makeNewFolder = value;\n}\n\n// This is equivalent to `Place.create(name, lat, lng, classification,\n// constellation, type, zoomFactor)`. We abstract the function to avoid circular\n// dependencies in the type hierarchy.\nvar createPlace = null;\n\nfunction set_createPlace(value) {\n createPlace = value;\n}\n\n// This is another way to access `WWTControl.singleton`. It's the\n// global singleton WWTControl instance.\nvar globalWWTControl = null;\n\nfunction set_globalWWTControl(value) {\n globalWWTControl = value;\n}\n\n// This is another way to access the `WWTControl.scriptInterface` singleton. It's\n// the global singleton ScriptInterface instance.\nvar globalScriptInterface = null;\n\nfunction set_globalScriptInterface(value) {\n globalScriptInterface = value;\n}\n\n// This is another way to access `LayerManager.setVisibleLayerList()`. Once\n// again, we need this to break some circular dependencies in the module\n// structure.\nvar setManagerVisibleLayerList = null;\n\nfunction set_setManagerVisibleLayerList(value) {\n setManagerVisibleLayerList = value;\n}\n\n// This is another way to access `TourDocument.fromUrlRaw()`. Once again, we\n// need this to break some circular dependencies in the module structure.\n\nvar tourDocumentFromUrlRaw = null;\n\nfunction set_tourDocumentFromUrlRaw(value) {\n tourDocumentFromUrlRaw = value;\n}\n\n// This is another way to access `LayerManager.getAllMaps()`. Once again, we\n// need this to break some circular dependencies in the module structure.\n\nvar layerManagerGetAllMaps = null;\n\nfunction set_layerManagerGetAllMaps(value) {\n layerManagerGetAllMaps = value;\n}\n\n// This is another way to access `Wtml.getWtmlFile()`. Once again, we\n// need this to break some circular dependencies in the module structure.\n\nvar loadWtmlFile = null;\n\nfunction set_loadWtmlFile(value) {\n loadWtmlFile = value;\n}\n\n\n/***/ }),\n\n/***/ \"./esm/double3d.js\":\n/*!*************************!*\\\n !*** ./esm/double3d.js ***!\n \\*************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ConvexHull: () => (/* binding */ ConvexHull),\n/* harmony export */ DoubleUtilities: () => (/* binding */ DoubleUtilities),\n/* harmony export */ LocationHint: () => (/* binding */ LocationHint),\n/* harmony export */ Matrix2d: () => (/* binding */ Matrix2d),\n/* harmony export */ Matrix3d: () => (/* binding */ Matrix3d),\n/* harmony export */ PlaneD: () => (/* binding */ PlaneD),\n/* harmony export */ PositionColored: () => (/* binding */ PositionColored),\n/* harmony export */ PositionColoredTextured: () => (/* binding */ PositionColoredTextured),\n/* harmony export */ PositionNormalTextured: () => (/* binding */ PositionNormalTextured),\n/* harmony export */ PositionNormalTexturedTangent: () => (/* binding */ PositionNormalTexturedTangent),\n/* harmony export */ PositionNormalTexturedX2: () => (/* binding */ PositionNormalTexturedX2),\n/* harmony export */ PositionTexture: () => (/* binding */ PositionTexture),\n/* harmony export */ SphereHull: () => (/* binding */ SphereHull),\n/* harmony export */ Vector2d: () => (/* binding */ Vector2d),\n/* harmony export */ Vector3d: () => (/* binding */ Vector3d),\n/* harmony export */ Vector4d: () => (/* binding */ Vector4d)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Basic vector datatypes and the like.\n\n\n\n\n\n\n\n// Break some circular dependencies\n//\n// `Vector2d.cartesianToSpherical2` is almost the same as\n// `Coordinates.cartesianToSpherical2`, but the resulting angles are measured in\n// degrees rather than radians, and the Coordinates class applies some\n// transformations in various places. Out of an abundance of caution we\n// reproduce its calculations rotely.\n\nconst RC = (3.1415927 / 180); // not thrilled about the low precision!\n\nfunction geoTo3dDouble(lat, lng) {\n return Vector3d.create(\n Math.cos(lng * RC) * Math.cos(lat * RC) * 1,\n Math.sin(lat * RC) * 1,\n Math.sin(lng * RC) * Math.cos(lat * RC) * 1\n );\n}\n\nfunction coords_cartesianToSpherical2(vector) {\n var rho = Math.sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z);\n var longitude = Math.atan2(vector.z, vector.x);\n var latitude = Math.asin(vector.y / rho);\n\n // I don't love this approach but it's what the Coords constructor does\n longitude = longitude + (Math.PI * 80) % (Math.PI * 2);\n\n // Coordinates.get_lng():\n var lng = longitude / RC;\n if (lng > 180) {\n lng = (-180 + (180 - lng));\n }\n\n // Coordinates.get_lat():\n var lat = latitude / RC;\n\n return [lat, lng];\n}\n\n\n// wwtlib.LocationHint\n//\n// Summary:\n// Describes a custom vertex format structure that contains position and one\n// set of texture coordinates.\n\nvar LocationHint = {\n slash: 0,\n backslash: 1,\n top: 2\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"LocationHint\", LocationHint);\n\n\n// wwtlib.PositionTexture\n\nfunction PositionTexture() {\n this.tu = 0;\n this.tv = 0;\n this.position = new Vector3d();\n}\n\n// Summary:\n// Initializes a new instance of the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured\n// class.\n//\n// Parameters:\n// pos:\n// A Microsoft.DirectX.Vector3d object that contains the vertex position.\n//\n// u:\n// Floating-point value that represents the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured.#ctor()\n// component of the texture coordinate.\n//\n// v:\n// Floating-point value that represents the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured.#ctor()\n// component of the texture coordinate.\nPositionTexture.createPos = function (pos, u, v) {\n var temp = new PositionTexture();\n temp.tu = u * _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileUvMultiple;\n temp.tv = v * _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileUvMultiple;\n temp.position = pos;\n return temp;\n};\n\nPositionTexture.createPosRaw = function (pos, u, v) {\n var temp = new PositionTexture();\n temp.tu = u;\n temp.tv = v;\n temp.position = pos;\n return temp;\n};\n\nPositionTexture.createPosSize = function (pos, u, v, width, height) {\n var temp = new PositionTexture();\n temp.tu = u * width;\n temp.tv = v * height;\n temp.position = pos;\n return temp;\n};\n\n// Summary:\n// Initializes a new instance of the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured\n// class.\n//\n// Parameters:\n// xvalue:\n// Floating-point value that represents the x coordinate of the position.\n//\n// yvalue:\n// Floating-point value that represents the y coordinate of the position.\n//\n// zvalue:\n// Floating-point value that represents the z coordinate of the position.\n//\n// u:\n// Floating-point value that represents the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured.#ctor()\n// component of the texture coordinate.\n//\n// v:\n// Floating-point value that represents the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured.#ctor()\n// component of the texture coordinate.\nPositionTexture.create = function (xvalue, yvalue, zvalue, u, v) {\n var temp = new PositionTexture();\n temp.position = Vector3d.create(xvalue, yvalue, zvalue);\n temp.tu = u * _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileUvMultiple;\n temp.tv = v * _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileUvMultiple;\n return temp;\n};\n\nvar PositionTexture$ = {\n copy: function () {\n var temp = new PositionTexture();\n temp.position = Vector3d.makeCopy(this.position);\n temp.tu = this.tu;\n temp.tv = this.tv;\n return temp;\n },\n\n toString: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0}, {1}, {2}, {3}, {4}', this.position.x, this.position.y, this.position.z, this.tu, this.tv);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionTexture\", [PositionTexture, PositionTexture$, null]);\n\n\n// wwtlib.PositionColoredTextured\n\nfunction PositionColoredTextured() {\n this.tu = 0;\n this.tv = 0;\n this.color = new _color_js__WEBPACK_IMPORTED_MODULE_2__.Color();\n this.position = new Vector3d();\n}\n\n// Summary:\n// Initializes a new instance of the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured\n// class.\n//\n// Parameters:\n// pos:\n// A Microsoft.DirectX.Vector3d object that contains the vertex position.\n//\n// u:\n// Floating-point value that represents the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured.#ctor()\n// component of the texture coordinate.\n//\n// v:\n// Floating-point value that represents the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured.#ctor()\n// component of the texture coordinate.\nPositionColoredTextured.createPos = function (pos, u, v) {\n var temp = new PositionColoredTextured();\n temp.tu = u * _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileUvMultiple;\n temp.tv = v * _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileUvMultiple;\n temp.position = pos;\n return temp;\n};\n\nPositionColoredTextured.createPosRaw = function (pos, u, v) {\n var temp = new PositionColoredTextured();\n temp.tu = u;\n temp.tv = v;\n temp.position = pos;\n return temp;\n};\n\nPositionColoredTextured.createPosSize = function (pos, u, v, width, height) {\n var temp = new PositionColoredTextured();\n temp.tu = u * width;\n temp.tv = v * height;\n temp.position = pos;\n return temp;\n};\n\n// ** Is it a mistake that this is creating a PositionTexture, not PositionColoredTextured? **\n//\n// Summary:\n// Initializes a new instance of the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured\n// class.\n//\n// Parameters:\n// xvalue:\n// Floating-point value that represents the x coordinate of the position.\n//\n// yvalue:\n// Floating-point value that represents the y coordinate of the position.\n//\n// zvalue:\n// Floating-point value that represents the z coordinate of the position.\n//\n// u:\n// Floating-point value that represents the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured.#ctor()\n// component of the texture coordinate.\n//\n// v:\n// Floating-point value that represents the Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured.#ctor()\n// component of the texture coordinate.\nPositionColoredTextured.create = function (xvalue, yvalue, zvalue, u, v) {\n var temp = new PositionTexture();\n temp.position = Vector3d.create(xvalue, yvalue, zvalue);\n temp.tu = u * _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileUvMultiple;\n temp.tv = v * _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileUvMultiple;\n return temp;\n};\n\nvar PositionColoredTextured$ = {\n copy: function () {\n var temp = new PositionTexture();\n temp.position = Vector3d.makeCopy(this.position);\n temp.tu = this.tu;\n temp.tv = this.tv;\n return temp;\n },\n toString: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0}, {1}, {2}, {3}, {4}', this.position.x, this.position.y, this.position.z, this.tu, this.tv);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionColoredTextured\", [PositionColoredTextured, PositionColoredTextured$, null]);\n\n\n// wwtlib.PositionColored\n\nfunction PositionColored(pos, color) {\n this.color = new _color_js__WEBPACK_IMPORTED_MODULE_2__.Color();\n this.color = color._clone();\n this.position = pos.copy();\n}\n\nvar PositionColored$ = {\n copy: function () {\n var temp = new PositionColored(this.position, this.color);\n return temp;\n },\n\n toString: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0}, {1}, {2}, {3}', this.position.x, this.position.y, this.position.z, this.color.toString());\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionColored\", [PositionColored, PositionColored$, null]);\n\n\n// wwtlib.PositionNormalTexturedTangent\n//\n// Summary:\n// Custom vertex format with position, normal, texture coordinate, and tangent vector. The\n// tangent vector is stored in the second texture coordinate.\n\nfunction PositionNormalTexturedTangent(position, normal, texCoord, tangent) {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.nx = 0;\n this.ny = 0;\n this.nz = 0;\n this.tu = 0;\n this.tv = 0;\n this.tanx = 0;\n this.tany = 0;\n this.tanz = 0;\n this.x = position.x;\n this.y = position.y;\n this.z = position.z;\n this.nx = normal.x;\n this.ny = normal.y;\n this.nz = normal.z;\n this.tu = texCoord.x;\n this.tv = texCoord.y;\n this.tanx = tangent.x;\n this.tany = tangent.y;\n this.tanz = tangent.z;\n}\n\nvar PositionNormalTexturedTangent$ = {\n get_normal: function () {\n return Vector3d.create(this.nx, this.ny, this.nz);\n },\n\n set_normal: function (value) {\n this.nx = value.x;\n this.ny = value.y;\n this.nz = value.z;\n return value;\n },\n\n get_position: function () {\n return Vector3d.create(this.x, this.y, this.z);\n },\n\n set_position: function (value) {\n this.x = value.x;\n this.y = value.y;\n this.z = value.z;\n return value;\n },\n\n get_texCoord: function () {\n return Vector2d.create(this.tu, this.tv);\n },\n\n set_texCoord: function (value) {\n this.tu = value.x;\n this.tv = value.y;\n return value;\n },\n\n get_tangent: function () {\n return Vector3d.create(this.tanx, this.tany, this.tanz);\n },\n\n set_tangent: function (value) {\n this.tanx = value.x;\n this.tany = value.y;\n this.tanz = value.z;\n return value;\n },\n\n toString: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('X={0}, Y={1}, Z={2}, Nx={3}, Ny={4}, Nz={5}, U={6}, V={7}, TanX={8}, TanY={9}, TanZ={10}', this.x, this.y, this.z, this.nx, this.ny, this.nz, this.tu, this.tv, this.tanx, this.tany, this.tanz);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionNormalTexturedTangent\", [PositionNormalTexturedTangent, PositionNormalTexturedTangent$, null]);\n\n\n// wwtlib.Vector3d\n\nfunction Vector3d() {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n}\n\nVector3d.create = function (valueX, valueY, valueZ) {\n var temp = new Vector3d();\n temp.x = valueX;\n temp.y = valueY;\n temp.z = valueZ;\n return temp;\n};\n\nVector3d.makeCopy = function (value) {\n var temp = new Vector3d();\n temp.x = value.x;\n temp.y = value.y;\n temp.z = value.z;\n return temp;\n};\n\nVector3d.negate = function (vec) {\n return Vector3d.create(-vec.x, -vec.y, -vec.z);\n};\n\nVector3d.midPoint = function (left, right) {\n var result = Vector3d.create((left.x + right.x) / 2, (left.y + right.y) / 2, (left.z + right.z) / 2);\n return result;\n};\n\nVector3d.midPointByLength = function (left, right) {\n var result = Vector3d.create((left.x + right.x) / 2, (left.y + right.y) / 2, (left.z + right.z) / 2);\n result.normalize();\n result.multiply(left.length());\n return result;\n};\n\nVector3d.get_empty = function () {\n return Vector3d.create(0, 0, 0);\n};\n\nVector3d.addVectors = function (left, right) {\n return Vector3d.create(left.x + right.x, left.y + right.y, left.z + right.z);\n};\n\nVector3d.cross = function (left, right) {\n return Vector3d.create(left.y * right.z - left.z * right.y, left.z * right.x - left.x * right.z, left.x * right.y - left.y * right.x);\n};\n\nVector3d.dot = function (left, right) {\n return left.x * right.x + left.y * right.y + left.z * right.z;\n};\n\nVector3d.getLength = function (source) {\n return Math.sqrt(source.x * source.x + source.y * source.y + source.z * source.z);\n};\n\nVector3d.getLengthSq = function (source) {\n return source.x * source.x + source.y * source.y + source.z * source.z;\n};\n\n// Summary:\n// Performs a linear interpolation between two 3-D vectors.\n//\n// Parameters:\n// left:\n// Source Microsoft.DirectX.Vector3d structure.\n//\n// right:\n// Source Microsoft.DirectX.Vector3d structure.\n//\n// interpolater:\n// Parameter that linearly interpolates between the vectors.\n//\n// Returns:\n// A Microsoft.DirectX.Vector3d structure that is the result of the linear interpolation.\nVector3d.lerp = function (left, right, interpolater) {\n return Vector3d.create(left.x * (1 - interpolater) + right.x * interpolater, left.y * (1 - interpolater) + right.y * interpolater, left.z * (1 - interpolater) + right.z * interpolater);\n};\n\nVector3d.midpoint = function (left, right) {\n var tmp = Vector3d.create(left.x * (0.5) + right.x * 0.5, left.y * (0.5) + right.y * 0.5, left.z * (0.5) + right.z * 0.5);\n tmp.normalize();\n return tmp;\n};\n\nVector3d.slerp = function (left, right, interpolater) {\n var dot = Vector3d.dot(left, right);\n while (dot < 0.98) {\n var middle = Vector3d.midpoint(left, right);\n if (interpolater > 0.5) {\n left = middle;\n interpolater -= 0.5;\n interpolater *= 2;\n }\n else {\n right = middle;\n interpolater *= 2;\n }\n dot = Vector3d.dot(left, right);\n }\n var tmp = Vector3d.lerp(left, right, interpolater);\n tmp.normalize();\n return tmp;\n};\n\nVector3d.multiplyScalar = function (source, f) {\n var result = source.copy();\n result.multiply(f);\n return result;\n};\n\nVector3d.scale = function (source, scalingFactor) {\n var result = source;\n result.multiply(scalingFactor);\n return result;\n};\n\nVector3d.subtractVectors = function (left, right) {\n var result = left.copy();\n result.subtract(right);\n return result;\n};\n\nVector3d.parse = function (data) {\n var newVector = new Vector3d();\n var list = data.split(',');\n if (list.length === 3) {\n newVector.x = parseFloat(list[0]);\n newVector.y = parseFloat(list[1]);\n newVector.z = parseFloat(list[2]);\n }\n return newVector;\n};\n\nVector3d._transformCoordinate = function (vector3d, mat) {\n return mat.transform(vector3d);\n};\n\nvar Vector3d$ = {\n set: function (valueX, valueY, valueZ) {\n this.x = valueX;\n this.y = valueY;\n this.z = valueZ;\n },\n\n copy: function () {\n var temp = new Vector3d();\n temp.x = this.x;\n temp.y = this.y;\n temp.z = this.z;\n return temp;\n },\n\n round: function () {\n this.x = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((this.x * 65536)) / 65536;\n this.y = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((this.y * 65536)) / 65536;\n this.z = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((this.z * 65536)) / 65536;\n },\n\n add: function (source) {\n this.x += source.x;\n this.y += source.y;\n this.z += source.z;\n },\n\n length: function () {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n },\n\n lengthSq: function () {\n return this.x * this.x + this.y * this.y + this.z * this.z;\n },\n\n multiply: function (s) {\n this.x *= s;\n this.y *= s;\n this.z *= s;\n },\n\n normalize: function () {\n var length = this.length();\n if (!!length) {\n this.x /= length;\n this.y /= length;\n this.z /= length;\n }\n },\n\n rotateX: function (radians) {\n var zTemp;\n var yTemp;\n yTemp = this.y * Math.cos(radians) - this.z * Math.sin(radians);\n zTemp = this.y * Math.sin(radians) + this.z * Math.cos(radians);\n this.z = zTemp;\n this.y = yTemp;\n },\n\n rotateZ: function (radians) {\n var xTemp;\n var yTemp;\n xTemp = this.x * Math.cos(radians) - this.y * Math.sin(radians);\n yTemp = this.x * Math.sin(radians) + this.y * Math.cos(radians);\n this.y = yTemp;\n this.x = xTemp;\n },\n\n rotateY: function (radians) {\n var zTemp;\n var xTemp;\n zTemp = this.z * Math.cos(radians) - this.x * Math.sin(radians);\n xTemp = this.z * Math.sin(radians) + this.x * Math.cos(radians);\n this.x = xTemp;\n this.z = zTemp;\n },\n\n subtract: function (source) {\n this.x -= source.x;\n this.y -= source.y;\n this.z -= source.z;\n return this;\n },\n\n toString: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0}, {1}, {2}', this.x, this.y, this.z);\n },\n\n toSpherical: function () {\n var ascention;\n var declination;\n var radius = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n var XZ = Math.sqrt(this.x * this.x + this.z * this.z);\n declination = Math.asin(this.y / radius);\n if (!XZ) {\n ascention = 0;\n }\n else if (0 <= this.x) {\n ascention = Math.asin(this.z / XZ);\n }\n else {\n ascention = Math.PI - Math.asin(this.z / XZ);\n }\n return Vector2d.create(((ascention + Math.PI) % (2 * Math.PI)), (declination + (Math.PI / 2)));\n },\n\n toRaDec: function () {\n var point = this.toSpherical();\n point.x = point.x / Math.PI * 12;\n point.y = (point.y / Math.PI * 180) - 90;\n return point;\n },\n\n distanceToLine: function (x1, x2) {\n var t1 = Vector3d.subtractVectors(x2, x1);\n var t2 = Vector3d.subtractVectors(x1, this);\n var t3 = Vector3d.cross(t1, t2);\n var d1 = t3.length();\n var t4 = Vector3d.subtractVectors(x2, x1);\n var d2 = t4.length();\n return d1 / d2;\n },\n\n _transformByMatrics: function (lookAtAdjust) {\n var temp = lookAtAdjust.transform(this);\n this.x = temp.x;\n this.y = temp.y;\n this.z = temp.z;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Vector3d\", [Vector3d, Vector3d$, null]);\n\nVector3d.zero = new Vector3d();\n\n\n// wwtlib.Vector2d\n\nfunction Vector2d() {\n this.x = 0;\n this.y = 0;\n}\n\nVector2d.lerp = function (left, right, interpolater) {\n return Vector2d.create(left.x * (1 - interpolater) + right.x * interpolater, left.y * (1 - interpolater) + right.y * interpolater);\n};\n\nVector2d.cartesianToSpherical2 = function (vector) {\n var rho = Math.sqrt(vector.x * vector.x + vector.y * vector.y + vector.z * vector.z);\n var longitude = Math.atan2(vector.z, vector.x);\n var latitude = Math.asin(vector.y / rho);\n return Vector2d.create(longitude / Math.PI * 180, latitude / Math.PI * 180);\n};\n\nVector2d.average3d = function (left, right) {\n var pntLeft = geoTo3dDouble(left.y, left.x);\n var pntRight = geoTo3dDouble(right.y, right.x);\n var pntOut = Vector3d.addVectors(pntLeft, pntRight);\n pntOut.multiply(0.5);\n pntOut.normalize();\n return Vector2d.cartesianToSpherical2(pntOut);\n};\n\nVector2d.create = function (x, y) {\n var temp = new Vector2d();\n temp.x = x;\n temp.y = y;\n return temp;\n};\n\nVector2d.subtract = function (left, right) {\n return Vector2d.create(left.x - right.x, left.y - right.y);\n};\n\nvar Vector2d$ = {\n distance3d: function (pointB) {\n var pnt1 = geoTo3dDouble(pointB.y, pointB.x);\n var pnt2 = geoTo3dDouble(this.y, this.x);\n var pntDiff = Vector3d.subtractVectors(pnt1, pnt2);\n return pntDiff.length() / Math.PI * 180;\n },\n\n get_length: function () {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n\n normalize: function () {\n var length = this.get_length();\n if (!!length) {\n this.x /= length;\n this.y /= length;\n }\n },\n\n extend: function (factor) {\n this.x = this.x * factor;\n this.y = this.y * factor;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Vector2d\", [Vector2d, Vector2d$, null]);\n\n\n// wwtlib.Matrix3d\n\nfunction Matrix3d() {\n this._m11 = 0;\n this._m12 = 0;\n this._m13 = 0;\n this._m14 = 0;\n this._m21 = 0;\n this._m22 = 0;\n this._m23 = 0;\n this._m24 = 0;\n this._m31 = 0;\n this._m32 = 0;\n this._m33 = 0;\n this._m34 = 0;\n this._offsetX = 0;\n this._offsetY = 0;\n this._offsetZ = 0;\n this._m44 = 0;\n this._isNotKnownToBeIdentity = false;\n}\n\nMatrix3d.create = function (m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, offsetX, offsetY, offsetZ, m44) {\n var temp = new Matrix3d();\n temp._m11 = m11;\n temp._m12 = m12;\n temp._m13 = m13;\n temp._m14 = m14;\n temp._m21 = m21;\n temp._m22 = m22;\n temp._m23 = m23;\n temp._m24 = m24;\n temp._m31 = m31;\n temp._m32 = m32;\n temp._m33 = m33;\n temp._m34 = m34;\n temp._offsetX = offsetX;\n temp._offsetY = offsetY;\n temp._offsetZ = offsetZ;\n temp._m44 = m44;\n temp._isNotKnownToBeIdentity = true;\n return temp;\n};\n\nMatrix3d.get_identity = function () {\n var temp = new Matrix3d();\n temp.set(Matrix3d._s_identity);\n return temp;\n};\n\nMatrix3d.multiplyMatrix = function (matrix1, matrix2) {\n if (matrix1.get__isDistinguishedIdentity()) {\n return matrix2;\n }\n if (matrix2.get__isDistinguishedIdentity()) {\n return matrix1;\n }\n return Matrix3d.create((((matrix1._m11 * matrix2._m11) + (matrix1._m12 * matrix2._m21)) + (matrix1._m13 * matrix2._m31)) + (matrix1._m14 * matrix2._offsetX), (((matrix1._m11 * matrix2._m12) + (matrix1._m12 * matrix2._m22)) + (matrix1._m13 * matrix2._m32)) + (matrix1._m14 * matrix2._offsetY), (((matrix1._m11 * matrix2._m13) + (matrix1._m12 * matrix2._m23)) + (matrix1._m13 * matrix2._m33)) + (matrix1._m14 * matrix2._offsetZ), (((matrix1._m11 * matrix2._m14) + (matrix1._m12 * matrix2._m24)) + (matrix1._m13 * matrix2._m34)) + (matrix1._m14 * matrix2._m44), (((matrix1._m21 * matrix2._m11) + (matrix1._m22 * matrix2._m21)) + (matrix1._m23 * matrix2._m31)) + (matrix1._m24 * matrix2._offsetX), (((matrix1._m21 * matrix2._m12) + (matrix1._m22 * matrix2._m22)) + (matrix1._m23 * matrix2._m32)) + (matrix1._m24 * matrix2._offsetY), (((matrix1._m21 * matrix2._m13) + (matrix1._m22 * matrix2._m23)) + (matrix1._m23 * matrix2._m33)) + (matrix1._m24 * matrix2._offsetZ), (((matrix1._m21 * matrix2._m14) + (matrix1._m22 * matrix2._m24)) + (matrix1._m23 * matrix2._m34)) + (matrix1._m24 * matrix2._m44), (((matrix1._m31 * matrix2._m11) + (matrix1._m32 * matrix2._m21)) + (matrix1._m33 * matrix2._m31)) + (matrix1._m34 * matrix2._offsetX), (((matrix1._m31 * matrix2._m12) + (matrix1._m32 * matrix2._m22)) + (matrix1._m33 * matrix2._m32)) + (matrix1._m34 * matrix2._offsetY), (((matrix1._m31 * matrix2._m13) + (matrix1._m32 * matrix2._m23)) + (matrix1._m33 * matrix2._m33)) + (matrix1._m34 * matrix2._offsetZ), (((matrix1._m31 * matrix2._m14) + (matrix1._m32 * matrix2._m24)) + (matrix1._m33 * matrix2._m34)) + (matrix1._m34 * matrix2._m44), (((matrix1._offsetX * matrix2._m11) + (matrix1._offsetY * matrix2._m21)) + (matrix1._offsetZ * matrix2._m31)) + (matrix1._m44 * matrix2._offsetX), (((matrix1._offsetX * matrix2._m12) + (matrix1._offsetY * matrix2._m22)) + (matrix1._offsetZ * matrix2._m32)) + (matrix1._m44 * matrix2._offsetY), (((matrix1._offsetX * matrix2._m13) + (matrix1._offsetY * matrix2._m23)) + (matrix1._offsetZ * matrix2._m33)) + (matrix1._m44 * matrix2._offsetZ), (((matrix1._offsetX * matrix2._m14) + (matrix1._offsetY * matrix2._m24)) + (matrix1._offsetZ * matrix2._m34)) + (matrix1._m44 * matrix2._m44));\n};\n\nMatrix3d.lookAtLH = function (cameraPosition, cameraTarget, cameraUpVector) {\n var zaxis = Vector3d.subtractVectors(cameraTarget, cameraPosition);\n zaxis.normalize();\n var xaxis = Vector3d.cross(cameraUpVector, zaxis);\n xaxis.normalize();\n var yaxis = Vector3d.cross(zaxis, xaxis);\n var mat = Matrix3d.create(xaxis.x, yaxis.x, zaxis.x, 0, xaxis.y, yaxis.y, zaxis.y, 0, xaxis.z, yaxis.z, zaxis.z, 0, -Vector3d.dot(xaxis, cameraPosition), -Vector3d.dot(yaxis, cameraPosition), -Vector3d.dot(zaxis, cameraPosition), 1);\n return mat;\n};\n\nMatrix3d._createIdentity = function () {\n var matrixd = Matrix3d.create(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n matrixd.set__isDistinguishedIdentity(true);\n return matrixd;\n};\n\nMatrix3d.equals = function (matrix1, matrix2) {\n if (matrix1.get__isDistinguishedIdentity() || matrix2.get__isDistinguishedIdentity()) {\n return (matrix1.get_isIdentity() === matrix2.get_isIdentity());\n }\n if ((((matrix1.get_m11() === matrix2.get_m11() && matrix1.get_m12() === matrix2.get_m12()) && (matrix1.get_m13() === matrix2.get_m13() && matrix1.get_m14() === matrix2.get_m14())) && ((matrix1.get_m21() === matrix2.get_m21() && matrix1.get_m22() === matrix2.get_m22()) && (matrix1.get_m23() === matrix2.get_m23() && matrix1.get_m24() === matrix2.get_m24()))) && (((matrix1.get_m31() === matrix2.get_m31() && matrix1.get_m32() === matrix2.get_m32()) && (matrix1.get_m33() === matrix2.get_m33() && matrix1.get_m34() === matrix2.get_m34())) && ((matrix1.get_offsetX() === matrix2.get_offsetX() && matrix1.get_offsetY() === matrix2.get_offsetY()) && matrix1.get_offsetZ() === matrix2.get_offsetZ()))) {\n return matrix1.get_m44() === matrix2.get_m44();\n }\n return false;\n};\n\nMatrix3d.fromMatrix2d = function (mat) {\n var mat3d = Matrix3d._createIdentity();\n mat3d.set_m11(mat.m11);\n mat3d.set_m12(mat.m12);\n mat3d.set_m13(mat.m13);\n mat3d.set_m21(mat.m21);\n mat3d.set_m22(mat.m22);\n mat3d.set_m23(mat.m23);\n mat3d.set_m31(mat.m31);\n mat3d.set_m32(mat.m32);\n mat3d.set_m33(mat.m33);\n mat3d._isNotKnownToBeIdentity = true;\n return mat3d;\n};\n\nMatrix3d.rotationYawPitchRoll = function (heading, pitch, roll) {\n var matX = Matrix3d._rotationX(pitch);\n var matY = Matrix3d._rotationY(heading);\n var matZ = Matrix3d._rotationZ(roll);\n return Matrix3d.multiplyMatrix(Matrix3d.multiplyMatrix(matY, matX), matZ);\n};\n\nMatrix3d._rotationY = function (p) {\n var v = p;\n var matNew = Matrix3d.get_identity();\n matNew._m11 = Math.cos(v);\n matNew._m22 = 1;\n matNew._m31 = Math.sin(v);\n matNew._m13 = -Math.sin(v);\n matNew._m33 = Math.cos(v);\n matNew._isNotKnownToBeIdentity = true;\n return matNew;\n};\n\nMatrix3d._rotationX = function (p) {\n var v = p;\n var matNew = Matrix3d.get_identity();\n matNew._m11 = 1;\n matNew._m22 = Math.cos(v);\n matNew._m32 = -Math.sin(v);\n matNew._m23 = Math.sin(v);\n matNew._m33 = Math.cos(v);\n matNew._isNotKnownToBeIdentity = true;\n return matNew;\n};\n\nMatrix3d._rotationZ = function (p) {\n var v = p;\n var matNew = Matrix3d.get_identity();\n matNew._m11 = Math.cos(v);\n matNew._m21 = -Math.sin(v);\n matNew._m12 = Math.sin(v);\n matNew._m22 = Math.cos(v);\n matNew._m33 = 1;\n matNew._isNotKnownToBeIdentity = true;\n return matNew;\n};\n\nMatrix3d._scaling = function (x, y, z) {\n var matNew = Matrix3d.get_identity();\n matNew._m11 = x;\n matNew._m22 = y;\n matNew._m33 = z;\n matNew._isNotKnownToBeIdentity = true;\n return matNew;\n};\n\nMatrix3d._translationXYZ = function (x, y, z) {\n var matNew = Matrix3d.get_identity();\n matNew.set_offsetX(x);\n matNew.set_offsetY(y);\n matNew.set_offsetZ(z);\n matNew._isNotKnownToBeIdentity = true;\n return matNew;\n};\n\nMatrix3d.perspectiveFovLH = function (fieldOfViewY, aspectRatio, znearPlane, zfarPlane) {\n var h = 1 / Math.tan(fieldOfViewY / 2);\n var w = h / aspectRatio;\n return Matrix3d.create(w, 0, 0, 0, 0, h, 0, 0, 0, 0, zfarPlane / (zfarPlane - znearPlane), 1, 0, 0, -znearPlane * zfarPlane / (zfarPlane - znearPlane), 0);\n};\n\nMatrix3d.perspectiveOffCenterLH = function (left, right, bottom, top, znearPlane, zfarPlane) {\n return Matrix3d.create(2 * znearPlane / (right - left), 0, 0, 0, 0, 2 * znearPlane / (top - bottom), 0, 0, (left + right) / (left - right), (top + bottom) / (bottom - top), zfarPlane / (zfarPlane - znearPlane), 1, 0, 0, znearPlane * zfarPlane / (znearPlane - zfarPlane), 0);\n};\n\nMatrix3d.invertMatrix = function (matrix3d) {\n var mat = matrix3d.clone();\n mat.invert();\n return mat;\n};\n\nMatrix3d.translation = function (vector3d) {\n return Matrix3d._translationXYZ(vector3d.x, vector3d.y, vector3d.z);\n};\n\nMatrix3d.getMapMatrix = function (center, fieldWidth, fieldHeight, rotation) {\n var offsetX = 0;\n var offsetY = 0;\n offsetX = -((center.get_lng() + 180 - (fieldWidth / 2)) / 360);\n offsetY = -(1 - ((center.get_lat() + 90 + (fieldHeight / 2)) / 180));\n var mat = new Matrix2d();\n var scaleX = 0;\n var scaleY = 0;\n scaleX = 360 / fieldWidth;\n scaleY = 180 / fieldHeight;\n mat = Matrix2d.multiply(mat, Matrix2d.translation(offsetX, offsetY));\n mat = Matrix2d.multiply(mat, Matrix2d.scaling(scaleX, scaleY));\n if (!!rotation) {\n mat = Matrix2d.multiply(mat, Matrix2d.translation(-0.5, -0.5));\n mat = Matrix2d.multiply(mat, Matrix2d.rotation(rotation));\n mat = Matrix2d.multiply(mat, Matrix2d.translation(0.5, 0.5));\n }\n return Matrix3d.fromMatrix2d(mat);\n};\n\nvar Matrix3d$ = {\n clone: function () {\n var tmp = new Matrix3d();\n tmp.set(this);\n return tmp;\n },\n\n setIdentity: function () {\n this.set(Matrix3d._s_identity);\n },\n\n set: function (mat) {\n this._m11 = mat._m11;\n this._m12 = mat._m12;\n this._m13 = mat._m13;\n this._m14 = mat._m14;\n this._m21 = mat._m21;\n this._m22 = mat._m22;\n this._m23 = mat._m23;\n this._m24 = mat._m24;\n this._m31 = mat._m31;\n this._m32 = mat._m32;\n this._m33 = mat._m33;\n this._m34 = mat._m34;\n this._offsetX = mat._offsetX;\n this._offsetY = mat._offsetY;\n this._offsetZ = mat._offsetZ;\n this._m44 = mat._m44;\n this._isNotKnownToBeIdentity = true;\n },\n\n floatArray: function () {\n var array = new Array(16);\n array[0] = this._m11;\n array[1] = this._m12;\n array[2] = this._m13;\n array[3] = this._m14;\n array[4] = this._m21;\n array[5] = this._m22;\n array[6] = this._m23;\n array[7] = this._m24;\n array[8] = this._m31;\n array[9] = this._m32;\n array[10] = this._m33;\n array[11] = this._m34;\n array[12] = this._offsetX;\n array[13] = this._offsetY;\n array[14] = this._offsetZ;\n array[15] = this._m44;\n return array;\n },\n\n get_isIdentity: function () {\n if (this.get__isDistinguishedIdentity()) {\n return true;\n }\n if (((((this._m11 === 1) && (!this._m12)) && ((!this._m13) && (!this._m14))) && (((!this._m21) && (this._m22 === 1)) && ((!this._m23) && (!this._m24)))) && ((((!this._m31) && (!this._m32)) && ((this._m33 === 1) && (!this._m34))) && (((!this._offsetX) && (!this._offsetY)) && ((!this._offsetZ) && (this._m44 === 1))))) {\n this.set__isDistinguishedIdentity(true);\n return true;\n }\n return false;\n },\n\n prepend: function (matrix) {\n this.set(Matrix3d.multiplyMatrix(matrix, this));\n },\n\n append: function (matrix) {\n this._multiply(matrix);\n },\n\n scale: function (scale) {\n if (this.get__isDistinguishedIdentity()) {\n this._setScaleMatrix(scale);\n }\n else {\n this._m11 *= scale.x;\n this._m12 *= scale.y;\n this._m13 *= scale.z;\n this._m21 *= scale.x;\n this._m22 *= scale.y;\n this._m23 *= scale.z;\n this._m31 *= scale.x;\n this._m32 *= scale.y;\n this._m33 *= scale.z;\n this._offsetX *= scale.x;\n this._offsetY *= scale.y;\n this._offsetZ *= scale.z;\n }\n },\n\n scalePrepend: function (scale) {\n if (this.get__isDistinguishedIdentity()) {\n this._setScaleMatrix(scale);\n }\n else {\n this._m11 *= scale.x;\n this._m12 *= scale.x;\n this._m13 *= scale.x;\n this._m14 *= scale.x;\n this._m21 *= scale.y;\n this._m22 *= scale.y;\n this._m23 *= scale.y;\n this._m24 *= scale.y;\n this._m31 *= scale.z;\n this._m32 *= scale.z;\n this._m33 *= scale.z;\n this._m34 *= scale.z;\n }\n },\n\n scaleAt: function (scale, center) {\n if (this.get__isDistinguishedIdentity()) {\n this._setScaleMatrixCenter(scale, center);\n }\n else {\n var num = this._m14 * center.x;\n this._m11 = num + (scale.x * (this._m11 - num));\n num = this._m14 * center.y;\n this._m12 = num + (scale.y * (this._m12 - num));\n num = this._m14 * center.z;\n this._m13 = num + (scale.z * (this._m13 - num));\n num = this._m24 * center.x;\n this._m21 = num + (scale.x * (this._m21 - num));\n num = this._m24 * center.y;\n this._m22 = num + (scale.y * (this._m22 - num));\n num = this._m24 * center.z;\n this._m23 = num + (scale.z * (this._m23 - num));\n num = this._m34 * center.x;\n this._m31 = num + (scale.x * (this._m31 - num));\n num = this._m34 * center.y;\n this._m32 = num + (scale.y * (this._m32 - num));\n num = this._m34 * center.z;\n this._m33 = num + (scale.z * (this._m33 - num));\n num = this._m44 * center.x;\n this._offsetX = num + (scale.x * (this._offsetX - num));\n num = this._m44 * center.y;\n this._offsetY = num + (scale.y * (this._offsetY - num));\n num = this._m44 * center.z;\n this._offsetZ = num + (scale.z * (this._offsetZ - num));\n }\n },\n\n scaleAtPrepend: function (scale, center) {\n if (this.get__isDistinguishedIdentity()) {\n this._setScaleMatrixCenter(scale, center);\n }\n else {\n var num3 = center.x - (center.x * scale.x);\n var num2 = center.y - (center.y * scale.y);\n var num = center.z - (center.z * scale.z);\n this._offsetX += ((this._m11 * num3) + (this._m21 * num2)) + (this._m31 * num);\n this._offsetY += ((this._m12 * num3) + (this._m22 * num2)) + (this._m32 * num);\n this._offsetZ += ((this._m13 * num3) + (this._m23 * num2)) + (this._m33 * num);\n this._m44 += ((this._m14 * num3) + (this._m24 * num2)) + (this._m34 * num);\n this._m11 *= scale.x;\n this._m12 *= scale.x;\n this._m13 *= scale.x;\n this._m14 *= scale.x;\n this._m21 *= scale.y;\n this._m22 *= scale.y;\n this._m23 *= scale.y;\n this._m24 *= scale.y;\n this._m31 *= scale.z;\n this._m32 *= scale.z;\n this._m33 *= scale.z;\n this._m34 *= scale.z;\n }\n },\n\n translate: function (offset) {\n if (this.get__isDistinguishedIdentity()) {\n this._setTranslationMatrix(offset);\n }\n else {\n this._m11 += this._m14 * offset.x;\n this._m12 += this._m14 * offset.y;\n this._m13 += this._m14 * offset.z;\n this._m21 += this._m24 * offset.x;\n this._m22 += this._m24 * offset.y;\n this._m23 += this._m24 * offset.z;\n this._m31 += this._m34 * offset.x;\n this._m32 += this._m34 * offset.y;\n this._m33 += this._m34 * offset.z;\n this._offsetX += this._m44 * offset.x;\n this._offsetY += this._m44 * offset.y;\n this._offsetZ += this._m44 * offset.z;\n }\n },\n\n translatePrepend: function (offset) {\n if (this.get__isDistinguishedIdentity()) {\n this._setTranslationMatrix(offset);\n }\n else {\n this._offsetX += ((this._m11 * offset.x) + (this._m21 * offset.y)) + (this._m31 * offset.z);\n this._offsetY += ((this._m12 * offset.x) + (this._m22 * offset.y)) + (this._m32 * offset.z);\n this._offsetZ += ((this._m13 * offset.x) + (this._m23 * offset.y)) + (this._m33 * offset.z);\n this._m44 += ((this._m14 * offset.x) + (this._m24 * offset.y)) + (this._m34 * offset.z);\n }\n },\n\n transform: function (point) {\n var temp = new Vector3d();\n if (!this.get__isDistinguishedIdentity()) {\n var x = point.x;\n var y = point.y;\n var z = point.z;\n temp.x = (((x * this._m11) + (y * this._m21)) + (z * this._m31)) + this._offsetX;\n temp.y = (((x * this._m12) + (y * this._m22)) + (z * this._m32)) + this._offsetY;\n temp.z = (((x * this._m13) + (y * this._m23)) + (z * this._m33)) + this._offsetZ;\n if (!this.get_isAffine()) {\n var num4 = (((x * this._m14) + (y * this._m24)) + (z * this._m34)) + this._m44;\n temp.x /= num4;\n temp.y /= num4;\n temp.z /= num4;\n }\n }\n return temp;\n },\n\n _transformTo: function (input, output) {\n output.x = (((input.x * this._m11) + (input.y * this._m21)) + (input.z * this._m31)) + this._offsetX;\n output.y = (((input.x * this._m12) + (input.y * this._m22)) + (input.z * this._m32)) + this._offsetY;\n output.z = (((input.x * this._m13) + (input.y * this._m23)) + (input.z * this._m33)) + this._offsetZ;\n var num4 = (((input.x * this._m14) + (input.y * this._m24)) + (input.z * this._m34)) + this._m44;\n output.x /= num4;\n output.y /= num4;\n output.z /= num4;\n },\n\n transformArray: function (points) {\n if (points != null) {\n for (var i = 0; i < points.length; i++) {\n this._multiplyPoint(points[i]);\n }\n }\n },\n\n projectArrayToScreen: function (input, output) {\n if (input != null && output != null) {\n var affine = this.get_isAffine();\n for (var i = 0; i < input.length; i++) {\n var x = input[i].x;\n var y = input[i].y;\n var z = input[i].z;\n if (affine) {\n output[i].x = ((((x * this._m11) + (y * this._m21)) + (z * this._m31)) + this._offsetX);\n output[i].y = ((((x * this._m12) + (y * this._m22)) + (z * this._m32)) + this._offsetY);\n output[i].z = (((x * this._m13) + (y * this._m23)) + (z * this._m33)) + this._offsetZ;\n }\n else {\n var num4 = (((x * this._m14) + (y * this._m24)) + (z * this._m34)) + this._m44;\n output[i].x = (((((x * this._m11) + (y * this._m21)) + (z * this._m31)) + this._offsetX) / num4);\n output[i].y = (((((x * this._m12) + (y * this._m22)) + (z * this._m32)) + this._offsetY) / num4);\n output[i].z = ((((x * this._m13) + (y * this._m23)) + (z * this._m33)) + this._offsetZ) / num4;\n }\n }\n }\n },\n\n projectToScreen: function (input, width, height) {\n var output = new Vector3d();\n var x = input.x;\n var y = input.y;\n var z = input.z;\n if (this.get_isAffine()) {\n output.x = (((((x * this._m11) + (y * this._m21)) + (z * this._m31)) + this._offsetX) + 0.5) * width;\n output.y = (-((((x * this._m12) + (y * this._m22)) + (z * this._m32)) + this._offsetY) + 0.5) * height;\n output.z = (((x * this._m13) + (y * this._m23)) + (z * this._m33)) + this._offsetZ;\n }\n else {\n var num4 = (((x * this._m14) + (y * this._m24)) + (z * this._m34)) + this._m44;\n output.x = ((((((x * this._m11) + (y * this._m21)) + (z * this._m31)) + this._offsetX) / num4) + 0.5) * width;\n output.y = (-(((((x * this._m12) + (y * this._m22)) + (z * this._m32)) + this._offsetY) / num4) + 0.5) * height;\n output.z = ((((x * this._m13) + (y * this._m23)) + (z * this._m33)) + this._offsetZ) / num4;\n }\n return output;\n },\n\n get_isAffine: function () {\n if (this.get__isDistinguishedIdentity()) {\n return true;\n }\n if (((!this._m14) && (!this._m24)) && (!this._m34)) {\n return (this._m44 === 1);\n }\n return false;\n },\n\n get_determinant: function () {\n if (this.get__isDistinguishedIdentity()) {\n return 1;\n }\n if (this.get_isAffine()) {\n return this._getNormalizedAffineDeterminant();\n }\n var num6 = (this._m13 * this._m24) - (this._m23 * this._m14);\n var num5 = (this._m13 * this._m34) - (this._m33 * this._m14);\n var num4 = (this._m13 * this._m44) - (this._offsetZ * this._m14);\n var num3 = (this._m23 * this._m34) - (this._m33 * this._m24);\n var num2 = (this._m23 * this._m44) - (this._offsetZ * this._m24);\n var num = (this._m33 * this._m44) - (this._offsetZ * this._m34);\n var num10 = ((this._m22 * num5) - (this._m32 * num6)) - (this._m12 * num3);\n var num9 = ((this._m12 * num2) - (this._m22 * num4)) + (this._offsetY * num6);\n var num8 = ((this._m32 * num4) - (this._offsetY * num5)) - (this._m12 * num);\n var num7 = ((this._m22 * num) - (this._m32 * num2)) + (this._offsetY * num3);\n return ((((this._offsetX * num10) + (this._m31 * num9)) + (this._m21 * num8)) + (this._m11 * num7));\n },\n\n get_hasInverse: function () {\n return !DoubleUtilities.isZero(this.get_determinant());\n },\n\n invert: function () {\n if (!this._invertCore()) {\n return;\n }\n },\n\n transpose: function () {\n var that = new Matrix3d();\n that.set(this);\n this._m12 = that._m21;\n this._m13 = that._m31;\n this._m14 = that._offsetX;\n this._m23 = that._m32;\n this._m24 = that._offsetY;\n this._m34 = that._offsetZ;\n this._m21 = that._m12;\n this._m31 = that._m13;\n this._offsetX = that._m14;\n this._m32 = that._m23;\n this._offsetY = that._m24;\n this._offsetZ = that._m34;\n },\n\n get_m11: function () {\n if (this.get__isDistinguishedIdentity()) {\n return 1;\n }\n return this._m11;\n },\n\n set_m11: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m11 = value;\n return value;\n },\n\n get_m12: function () {\n return this._m12;\n },\n\n set_m12: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m12 = value;\n return value;\n },\n\n get_m13: function () {\n return this._m13;\n },\n\n set_m13: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m13 = value;\n return value;\n },\n\n get_m14: function () {\n return this._m14;\n },\n\n set_m14: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m14 = value;\n return value;\n },\n\n get_m21: function () {\n return this._m21;\n },\n\n set_m21: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m21 = value;\n return value;\n },\n\n get_m22: function () {\n if (this.get__isDistinguishedIdentity()) {\n return 1;\n }\n return this._m22;\n },\n\n set_m22: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m22 = value;\n return value;\n },\n\n get_m23: function () {\n return this._m23;\n },\n\n set_m23: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m23 = value;\n return value;\n },\n\n get_m24: function () {\n return this._m24;\n },\n\n set_m24: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m24 = value;\n return value;\n },\n\n get_m31: function () {\n return this._m31;\n },\n\n set_m31: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m31 = value;\n return value;\n },\n\n get_m32: function () {\n return this._m32;\n },\n\n set_m32: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m32 = value;\n return value;\n },\n\n get_m33: function () {\n if (this.get__isDistinguishedIdentity()) {\n return 1;\n }\n return this._m33;\n },\n\n set_m33: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m33 = value;\n return value;\n },\n\n get_m34: function () {\n return this._m34;\n },\n\n set_m34: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m34 = value;\n return value;\n },\n\n get_m41: function () {\n return this.get_offsetX();\n },\n\n set_m41: function (value) {\n this.set_offsetX(value);\n return value;\n },\n\n get_m42: function () {\n return this.get_offsetY();\n },\n\n set_m42: function (value) {\n this.set_offsetY(value);\n return value;\n },\n\n get_m43: function () {\n return this.get_offsetZ();\n },\n\n set_m43: function (value) {\n this.set_offsetZ(value);\n return value;\n },\n\n get_offsetX: function () {\n return this._offsetX;\n },\n\n set_offsetX: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._offsetX = value;\n return value;\n },\n\n get_offsetY: function () {\n return this._offsetY;\n },\n\n set_offsetY: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._offsetY = value;\n return value;\n },\n\n get_offsetZ: function () {\n return this._offsetZ;\n },\n\n set_offsetZ: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._offsetZ = value;\n return value;\n },\n\n get_m44: function () {\n if (this.get__isDistinguishedIdentity()) {\n return 1;\n }\n return this._m44;\n },\n\n set_m44: function (value) {\n if (this.get__isDistinguishedIdentity()) {\n this.set(Matrix3d._s_identity);\n this.set__isDistinguishedIdentity(false);\n }\n this._m44 = value;\n return value;\n },\n\n _setScaleMatrix: function (scale) {\n this._m11 = scale.x;\n this._m22 = scale.y;\n this._m33 = scale.z;\n this._m44 = 1;\n this.set__isDistinguishedIdentity(false);\n },\n\n _setScaleMatrixCenter: function (scale, center) {\n this._m11 = scale.x;\n this._m22 = scale.y;\n this._m33 = scale.z;\n this._m44 = 1;\n this._offsetX = center.x - (center.x * scale.x);\n this._offsetY = center.y - (center.y * scale.y);\n this._offsetZ = center.z - (center.z * scale.z);\n this.set__isDistinguishedIdentity(false);\n },\n\n _setTranslationMatrix: function (offset) {\n this._m11 = this._m22 = this._m33 = this._m44 = 1;\n this._offsetX = offset.x;\n this._offsetY = offset.y;\n this._offsetZ = offset.z;\n this.set__isDistinguishedIdentity(false);\n },\n\n _multiplyPoint: function (point) {\n if (!this.get__isDistinguishedIdentity()) {\n var x = point.x;\n var y = point.y;\n var z = point.z;\n point.x = (((x * this._m11) + (y * this._m21)) + (z * this._m31)) + this._offsetX;\n point.y = (((x * this._m12) + (y * this._m22)) + (z * this._m32)) + this._offsetY;\n point.z = (((x * this._m13) + (y * this._m23)) + (z * this._m33)) + this._offsetZ;\n if (!this.get_isAffine()) {\n var num4 = (((x * this._m14) + (y * this._m24)) + (z * this._m34)) + this._m44;\n point.x /= num4;\n point.y /= num4;\n point.z /= num4;\n }\n }\n },\n\n multiplyVector: function (vector) {\n if (!this.get__isDistinguishedIdentity()) {\n var x = vector.x;\n var y = vector.y;\n var z = vector.z;\n vector.x = ((x * this._m11) + (y * this._m21)) + (z * this._m31);\n vector.y = ((x * this._m12) + (y * this._m22)) + (z * this._m32);\n vector.z = ((x * this._m13) + (y * this._m23)) + (z * this._m33);\n }\n },\n\n _getNormalizedAffineDeterminant: function () {\n var num3 = (this._m12 * this._m23) - (this._m22 * this._m13);\n var num2 = (this._m32 * this._m13) - (this._m12 * this._m33);\n var num = (this._m22 * this._m33) - (this._m32 * this._m23);\n return (((this._m31 * num3) + (this._m21 * num2)) + (this._m11 * num));\n },\n\n _normalizedAffineInvert: function () {\n var num11 = (this._m12 * this._m23) - (this._m22 * this._m13);\n var num10 = (this._m32 * this._m13) - (this._m12 * this._m33);\n var num9 = (this._m22 * this._m33) - (this._m32 * this._m23);\n var num8 = ((this._m31 * num11) + (this._m21 * num10)) + (this._m11 * num9);\n if (DoubleUtilities.isZero(num8)) {\n return false;\n }\n var num20 = (this._m21 * this._m13) - (this._m11 * this._m23);\n var num19 = (this._m11 * this._m33) - (this._m31 * this._m13);\n var num18 = (this._m31 * this._m23) - (this._m21 * this._m33);\n var num7 = (this._m11 * this._m22) - (this._m21 * this._m12);\n var num6 = (this._m11 * this._m32) - (this._m31 * this._m12);\n var num5 = (this._m11 * this._offsetY) - (this._offsetX * this._m12);\n var num4 = (this._m21 * this._m32) - (this._m31 * this._m22);\n var num3 = (this._m21 * this._offsetY) - (this._offsetX * this._m22);\n var num2 = (this._m31 * this._offsetY) - (this._offsetX * this._m32);\n var num17 = ((this._m23 * num5) - (this._offsetZ * num7)) - (this._m13 * num3);\n var num16 = ((this._m13 * num2) - (this._m33 * num5)) + (this._offsetZ * num6);\n var num15 = ((this._m33 * num3) - (this._offsetZ * num4)) - (this._m23 * num2);\n var num14 = num7;\n var num13 = -num6;\n var num12 = num4;\n var num = 1 / num8;\n this._m11 = num9 * num;\n this._m12 = num10 * num;\n this._m13 = num11 * num;\n this._m21 = num18 * num;\n this._m22 = num19 * num;\n this._m23 = num20 * num;\n this._m31 = num12 * num;\n this._m32 = num13 * num;\n this._m33 = num14 * num;\n this._offsetX = num15 * num;\n this._offsetY = num16 * num;\n this._offsetZ = num17 * num;\n return true;\n },\n\n _invertCore: function () {\n if (!this.get__isDistinguishedIdentity()) {\n if (this.get_isAffine()) {\n return this._normalizedAffineInvert();\n }\n var num7 = (this._m13 * this._m24) - (this._m23 * this._m14);\n var num6 = (this._m13 * this._m34) - (this._m33 * this._m14);\n var num5 = (this._m13 * this._m44) - (this._offsetZ * this._m14);\n var num4 = (this._m23 * this._m34) - (this._m33 * this._m24);\n var num3 = (this._m23 * this._m44) - (this._offsetZ * this._m24);\n var num2 = (this._m33 * this._m44) - (this._offsetZ * this._m34);\n var num12 = ((this._m22 * num6) - (this._m32 * num7)) - (this._m12 * num4);\n var num11 = ((this._m12 * num3) - (this._m22 * num5)) + (this._offsetY * num7);\n var num10 = ((this._m32 * num5) - (this._offsetY * num6)) - (this._m12 * num2);\n var num9 = ((this._m22 * num2) - (this._m32 * num3)) + (this._offsetY * num4);\n var num8 = (((this._offsetX * num12) + (this._m31 * num11)) + (this._m21 * num10)) + (this._m11 * num9);\n if (DoubleUtilities.isZero(num8)) {\n return false;\n }\n var num24 = ((this._m11 * num4) - (this._m21 * num6)) + (this._m31 * num7);\n var num23 = ((this._m21 * num5) - (this._offsetX * num7)) - (this._m11 * num3);\n var num22 = ((this._m11 * num2) - (this._m31 * num5)) + (this._offsetX * num6);\n var num21 = ((this._m31 * num3) - (this._offsetX * num4)) - (this._m21 * num2);\n num7 = (this._m11 * this._m22) - (this._m21 * this._m12);\n num6 = (this._m11 * this._m32) - (this._m31 * this._m12);\n num5 = (this._m11 * this._offsetY) - (this._offsetX * this._m12);\n num4 = (this._m21 * this._m32) - (this._m31 * this._m22);\n num3 = (this._m21 * this._offsetY) - (this._offsetX * this._m22);\n num2 = (this._m31 * this._offsetY) - (this._offsetX * this._m32);\n var num20 = ((this._m13 * num4) - (this._m23 * num6)) + (this._m33 * num7);\n var num19 = ((this._m23 * num5) - (this._offsetZ * num7)) - (this._m13 * num3);\n var num18 = ((this._m13 * num2) - (this._m33 * num5)) + (this._offsetZ * num6);\n var num17 = ((this._m33 * num3) - (this._offsetZ * num4)) - (this._m23 * num2);\n var num16 = ((this._m24 * num6) - (this._m34 * num7)) - (this._m14 * num4);\n var num15 = ((this._m14 * num3) - (this._m24 * num5)) + (this._m44 * num7);\n var num14 = ((this._m34 * num5) - (this._m44 * num6)) - (this._m14 * num2);\n var num13 = ((this._m24 * num2) - (this._m34 * num3)) + (this._m44 * num4);\n var num = 1 / num8;\n this._m11 = num9 * num;\n this._m12 = num10 * num;\n this._m13 = num11 * num;\n this._m14 = num12 * num;\n this._m21 = num21 * num;\n this._m22 = num22 * num;\n this._m23 = num23 * num;\n this._m24 = num24 * num;\n this._m31 = num13 * num;\n this._m32 = num14 * num;\n this._m33 = num15 * num;\n this._m34 = num16 * num;\n this._offsetX = num17 * num;\n this._offsetY = num18 * num;\n this._offsetZ = num19 * num;\n this._m44 = num20 * num;\n }\n return true;\n },\n\n get__isDistinguishedIdentity: function () {\n return !this._isNotKnownToBeIdentity;\n },\n\n set__isDistinguishedIdentity: function (value) {\n this._isNotKnownToBeIdentity = !value;\n return value;\n },\n\n _multiply: function (mat) {\n this.set(Matrix3d.multiplyMatrix(this, mat));\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Matrix3d\", [Matrix3d, Matrix3d$, null]);\n\nMatrix3d._s_identity = Matrix3d._createIdentity();\n\n\n// wwtlib.Matrix2d\n\nfunction Matrix2d() {\n this.m11 = 1;\n this.m12 = 0;\n this.m13 = 0;\n this.m21 = 0;\n this.m22 = 1;\n this.m23 = 0;\n this.m31 = 0;\n this.m32 = 0;\n this.m33 = 1;\n}\n\nMatrix2d.create = function (m11, m12, m13, m21, m22, m23, m31, m32, m33) {\n var mat = new Matrix2d();\n mat.m11 = m11;\n mat.m12 = m12;\n mat.m13 = m13;\n mat.m21 = m21;\n mat.m22 = m22;\n mat.m23 = m23;\n mat.m31 = m31;\n mat.m32 = m32;\n mat.m33 = m33;\n return mat;\n};\n\nMatrix2d.rotation = function (angle) {\n var mat = new Matrix2d();\n mat.m11 = Math.cos(angle);\n mat.m21 = -Math.sin(angle);\n mat.m12 = Math.sin(angle);\n mat.m22 = Math.cos(angle);\n return mat;\n};\n\nMatrix2d.translation = function (x, y) {\n var mat = new Matrix2d();\n mat.m31 = x;\n mat.m32 = y;\n return mat;\n};\n\nMatrix2d.scaling = function (x, y) {\n var mat = new Matrix2d();\n mat.m11 = x;\n mat.m22 = y;\n return mat;\n};\n\nMatrix2d.multiply = function (matrix1, matrix2) {\n return Matrix2d.create((((matrix1.m11 * matrix2.m11) + (matrix1.m12 * matrix2.m21)) + (matrix1.m13 * matrix2.m31)), (((matrix1.m11 * matrix2.m12) + (matrix1.m12 * matrix2.m22)) + (matrix1.m13 * matrix2.m32)), (((matrix1.m11 * matrix2.m13) + (matrix1.m12 * matrix2.m23)) + (matrix1.m13 * matrix2.m33)), (((matrix1.m21 * matrix2.m11) + (matrix1.m22 * matrix2.m21)) + (matrix1.m23 * matrix2.m31)), (((matrix1.m21 * matrix2.m12) + (matrix1.m22 * matrix2.m22)) + (matrix1.m23 * matrix2.m32)), (((matrix1.m21 * matrix2.m13) + (matrix1.m22 * matrix2.m23)) + (matrix1.m23 * matrix2.m33)), (((matrix1.m31 * matrix2.m11) + (matrix1.m32 * matrix2.m21)) + (matrix1.m33 * matrix2.m31)), (((matrix1.m31 * matrix2.m12) + (matrix1.m32 * matrix2.m22)) + (matrix1.m33 * matrix2.m32)), (((matrix1.m31 * matrix2.m13) + (matrix1.m32 * matrix2.m23)) + (matrix1.m33 * matrix2.m33)));\n};\n\nMatrix2d.rotateAt = function (angle, pnt) {\n var matT0 = Matrix2d.translation(-pnt.x, -pnt.y);\n var matR = Matrix2d.rotation(angle);\n var matT1 = Matrix2d.translation(pnt.x, pnt.y);\n return Matrix2d.multiply(Matrix2d.multiply(matT0, matR), matT1);\n};\n\nvar Matrix2d$ = {\n _transformPoints: function (points) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(points);\n while ($enum1.moveNext()) {\n var pnt = $enum1.current;\n this.multiplyPoint(pnt);\n }\n },\n\n multiplyPoint: function (point) {\n var x = point.x;\n var y = point.y;\n point.x = (((x * this.m11) + (y * this.m21)) + this.m31);\n point.y = (((x * this.m12) + (y * this.m22)) + this.m32);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Matrix2d\", [Matrix2d, Matrix2d$, null]);\n\n\n// wwtlib.DoubleUtilities\n\nfunction DoubleUtilities() { }\n\nDoubleUtilities.isZero = function (value) {\n return (Math.abs(value) < 2.22044604925031E-50);\n};\n\nDoubleUtilities.isOne = function (value) {\n return (Math.abs(value - 1) < 2.22044604925031E-50);\n};\n\nDoubleUtilities.radiansToDegrees = function (radians) {\n return radians * 180 / Math.PI;\n};\n\nDoubleUtilities.degreesToRadians = function (degrees) {\n return degrees * Math.PI / 180;\n};\n\nDoubleUtilities.clamp = function (x, min, max) {\n return Math.max(min, Math.min(x, max));\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"DoubleUtilities\", [DoubleUtilities, null, null]);\n\n\n// wwtlib.PlaneD\n\nfunction PlaneD(valuePointA, valuePointB, valuePointC, valuePointD) {\n this.a = 0;\n this.b = 0;\n this.c = 0;\n this.d = 0;\n this.a = valuePointA;\n this.b = valuePointB;\n this.c = valuePointC;\n this.d = valuePointD;\n}\n\nvar PlaneD$ = {\n normalize: function () {\n var length = Math.sqrt(this.a * this.a + this.b * this.b + this.c * this.c);\n this.a /= length;\n this.b /= length;\n this.c /= length;\n this.d /= length;\n },\n\n dot: function (v) {\n return this.b * v.y + this.c * v.z + this.d * v.w + this.a * v.x;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PlaneD\", [PlaneD, PlaneD$, null]);\n\n\n// wwtlib.Vector4d\n\nfunction Vector4d(valueX, valueY, valueZ, valueW) {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.w = 0;\n this.x = valueX;\n this.y = valueY;\n this.z = valueZ;\n this.w = valueW;\n}\n\nvar Vector4d$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Vector4d\", [Vector4d, Vector4d$, null]);\n\n\n// wwtlib.PositionNormalTexturedX2\n\n// Summary:\n// Initializes a new instance of the PositionNormalTexturedX2\n// class.\n//\n// Parameters:\n// pos:\n// A Microsoft.DirectX.Vector3 object that contains the vertex position.\n//\n// nor:\n// A Microsoft.DirectX.Vector3 object that contains the vertex normal data.\n//\n// u:\n// Floating-point value that represents the PositionNormalTexturedX2.#ctor()\n// component of the texture coordinate.\n//\n// v:\n// Floating-point value that represents the PositionNormalTexturedX2.#ctor()\n// component of the texture coordinate.\nfunction PositionNormalTexturedX2() {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.nx = 0;\n this.ny = 0;\n this.nz = 0;\n this.tu = 0;\n this.tv = 0;\n this.tu1 = 0;\n this.tv1 = 0;\n}\n\nPositionNormalTexturedX2.create2UV = function (pos, nor, u, v, u1, v1) {\n var temp = new PositionNormalTexturedX2();\n temp.x = pos.x;\n temp.y = pos.y;\n temp.z = pos.z;\n temp.nx = nor.x;\n temp.ny = nor.y;\n temp.nz = nor.z;\n temp.tu = u;\n temp.tv = v;\n temp.tu1 = u1;\n temp.tv1 = v1;\n return temp;\n};\n\nPositionNormalTexturedX2.create = function (pos, nor, u, v) {\n var temp = new PositionNormalTexturedX2();\n temp.x = pos.x;\n temp.y = pos.y;\n temp.z = pos.z;\n temp.nx = nor.x;\n temp.ny = nor.y;\n temp.nz = nor.z;\n temp.tu = u;\n temp.tv = v;\n var result = coords_cartesianToSpherical2(nor);\n temp.tu1 = ((result[1] + 180) / 360);\n temp.tv1 = (1 - ((result[0] + 90) / 180));\n return temp;\n};\n\n// Summary:\n// Initializes a new instance of the PositionNormalTexturedX2\n// class.\n//\n// Parameters:\n// xvalue:\n// Floating-point value that represents the x coordinate of the position.\n//\n// yvalue:\n// Floating-point value that represents the y coordinate of the position.\n//\n// zvalue:\n// Floating-point value that represents the z coordinate of the position.\n//\n// nxvalue:\n// Floating-point value that represents the nx coordinate of the vertex normal.\n//\n// nyvalue:\n// Floating-point value that represents the ny coordinate of the vertex normal.\n//\n// nzvalue:\n// Floating-point value that represents the nz coordinate of the vertex normal.\n//\n// u:\n// Floating-point value that represents the PositionNormalTexturedX2.#ctor()\n// component of the texture coordinate.\n//\n// v:\n// Floating-point value that represents the PositionNormalTexturedX2.#ctor()\n// component of the texture coordinate.\nPositionNormalTexturedX2.createLong2UV = function (xvalue, yvalue, zvalue, nxvalue, nyvalue, nzvalue, u, v, u1, v1) {\n var temp = new PositionNormalTexturedX2();\n temp.x = xvalue;\n temp.y = yvalue;\n temp.z = zvalue;\n temp.nx = nxvalue;\n temp.ny = nyvalue;\n temp.nz = nzvalue;\n temp.tu = u;\n temp.tv = v;\n temp.tu1 = u1;\n temp.tv1 = v1;\n return temp;\n};\n\nPositionNormalTexturedX2.get_strideSize = function () {\n return 40;\n};\n\nvar PositionNormalTexturedX2$ = {\n get_lat: function () {\n return (1 - this.tv1) * 180 - 90;\n },\n\n set_lat: function (value) {\n this.tv1 = (1 - ((value + 90) / 180));\n return value;\n },\n\n get_lng: function () {\n return this.tu1 * 360 - 180;\n },\n\n set_lng: function (value) {\n this.tu1 = ((value + 180) / 360);\n return value;\n },\n\n createLong: function (xvalue, yvalue, zvalue, nxvalue, nyvalue, nzvalue, u, v) {\n var temp = new PositionNormalTexturedX2();\n temp.x = xvalue;\n temp.y = yvalue;\n temp.z = zvalue;\n temp.nx = nxvalue;\n temp.ny = nyvalue;\n temp.nz = nzvalue;\n temp.tu = u;\n temp.tv = v;\n var result = coords_cartesianToSpherical2(Vector3d.create(this.nx, this.ny, this.nz));\n temp.tu1 = ((result[1] + 180) / 360);\n temp.tv1 = (1 - ((result[0] + 90) / 180));\n return temp;\n },\n\n get_normal: function () {\n return Vector3d.create(this.nx, this.ny, this.nz);\n },\n\n set_normal: function (value) {\n this.nx = value.x;\n this.ny = value.y;\n this.nz = value.z;\n return value;\n },\n\n get_position: function () {\n return Vector3d.create(this.x, this.y, this.y);\n },\n\n set_position: function (value) {\n this.x = value.x;\n this.y = value.y;\n this.z = value.z;\n return value;\n },\n\n toString: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('X={0}, Y={1}, Z={2}, Nx={3}, Ny={4}, Nz={5}, U={6}, V={7}, U1={8}, U2={9}', this.x, this.y, this.z, this.nx, this.ny, this.nz, this.tu, this.tv, this.tu1, this.tv1);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionNormalTexturedX2\", [PositionNormalTexturedX2, PositionNormalTexturedX2$, null]);\n\n\n// wwtlib.PositionNormalTextured\n\n// Summary:\n// Initializes a new instance of the PositionNormalTextured\n// class.\n//\n// Parameters:\n// pos:\n// A Microsoft.DirectX.Vector3 object that contains the vertex position.\n//\n// nor:\n// A Microsoft.DirectX.Vector3 object that contains the vertex normal data.\n//\n// u:\n// Floating-point value that represents the PositionNormalTextured.#ctor()\n// component of the texture coordinate.\n//\n// v:\n// Floating-point value that represents the PositionNormalTextured.#ctor()\n// component of the texture coordinate.\nfunction PositionNormalTextured() {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.nx = 0;\n this.ny = 0;\n this.nz = 0;\n this.tu = 0;\n this.tv = 0;\n}\n\nPositionNormalTextured.createShort = function (pos, nor, u, v) {\n var temp = new PositionNormalTextured();\n temp.x = pos.x;\n temp.y = pos.y;\n temp.z = pos.z;\n temp.nx = nor.x;\n temp.ny = nor.y;\n temp.nz = nor.z;\n temp.tu = u;\n temp.tv = v;\n return temp;\n};\n\nPositionNormalTextured._create = function (x, y, z, nx, ny, nz, tu, tv) {\n var temp = new PositionNormalTextured();\n temp.x = x;\n temp.y = y;\n temp.z = z;\n temp.nx = nx;\n temp.ny = ny;\n temp.nz = nz;\n temp.tu = tu;\n temp.tv = tv;\n return temp;\n};\n\nPositionNormalTextured.createUV = function (pos, nor, uv) {\n var temp = new PositionNormalTextured();\n temp.x = pos.x;\n temp.y = pos.y;\n temp.z = pos.z;\n temp.nx = nor.x;\n temp.ny = nor.y;\n temp.nz = nor.z;\n temp.tu = uv.x;\n temp.tv = uv.y;\n return temp;\n};\n\nvar PositionNormalTextured$ = {\n // ** is it a mistake that this returns an X2 class? almost surely! **\n //\n // Summary:\n // Initializes a new instance of the PositionNormalTextured\n // class.\n //\n // Parameters:\n // xvalue:\n // Floating-point value that represents the x coordinate of the position.\n //\n // yvalue:\n // Floating-point value that represents the y coordinate of the position.\n //\n // zvalue:\n // Floating-point value that represents the z coordinate of the position.\n //\n // nxvalue:\n // Floating-point value that represents the nx coordinate of the vertex normal.\n //\n // nyvalue:\n // Floating-point value that represents the ny coordinate of the vertex normal.\n //\n // nzvalue:\n // Floating-point value that represents the nz coordinate of the vertex normal.\n //\n // u:\n // Floating-point value that represents the PositionNormalTexturedX2.#ctor()\n // component of the texture coordinate.\n //\n // v:\n // Floating-point value that represents the PositionNormalTexturedX2.#ctor()\n // component of the texture coordinate.\n createLong: function (xvalue, yvalue, zvalue, nxvalue, nyvalue, nzvalue, u, v) {\n var temp = new PositionNormalTexturedX2();\n temp.x = xvalue;\n temp.y = yvalue;\n temp.z = zvalue;\n temp.nx = nxvalue;\n temp.ny = nyvalue;\n temp.nz = nzvalue;\n temp.tu = u;\n temp.tv = v;\n return temp;\n },\n\n get_normal: function () {\n return Vector3d.create(this.nx, this.ny, this.nz);\n },\n\n set_normal: function (value) {\n this.nx = value.x;\n this.ny = value.y;\n this.nz = value.z;\n return value;\n },\n\n get_position: function () {\n return Vector3d.create(this.x, this.y, this.z);\n },\n\n set_position: function (value) {\n this.x = value.x;\n this.y = value.y;\n this.z = value.z;\n return value;\n },\n\n toString: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('X={0}, Y={1}, Z={2}, Nx={3}, Ny={4}, Nz={5}, U={6}, V={7}, U1={8}, U2={9}', this.x, this.y, this.z, this.nx, this.ny, this.nz, this.tu, this.tv);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionNormalTextured\", [PositionNormalTextured, PositionNormalTextured$, null]);\n\n\n// wwtlib.SphereHull\n\nfunction SphereHull() {\n this.radius = 0;\n}\n\nSphereHull._create = function (Center, Radius) {\n var temp = new SphereHull();\n temp.center = Center;\n temp.radius = Radius;\n return temp;\n};\n\nvar SphereHull$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"SphereHull\", [SphereHull, SphereHull$, null]);\n\n\n\n// wwtlib.ConvexHull\n\nfunction ConvexHull() {\n}\n\nConvexHull.findEnclosingSphereFast = function (points) {\n var result = new SphereHull();\n\n //Find the center of all points.\n\n var count = points.length;\n var center = Vector3d.zero;\n for (var i = 0; i < count; ++i) {\n center.add(points[i]);\n }\n\n //This is the center of our sphere.\n center.multiply(1 / count);\n\n //Find the radius of the sphere\n var radius = 0;\n for (var i = 0; i < count; ++i) {\n //We are doing a relative distance comparison to find the maximum\n //distance from the center of our sphere.\n var distance = Vector3d.getLengthSq(Vector3d.subtractVectors(points[i], center));\n if (distance > radius) {\n radius = distance;\n }\n }\n\n //Find the real distance from the DistanceSquared.\n radius = Math.sqrt(radius);\n\n //Construct the sphere.\n result.center = center;\n result.radius = radius;\n return result;\n};\n\nConvexHull.findEnclosingSphere = function (list) {\n var Center = new Vector3d();\n var Radius = 0;\n var count = list.length;\n var i;\n var dx;\n var dy;\n var dz;\n var rad_sq;\n var xspan;\n var yspan;\n var zspan;\n var maxspan;\n var old_to_p;\n var old_to_p_sq;\n var old_to_new;\n var xmin = new Vector3d();\n var xmax = new Vector3d();\n var ymin = new Vector3d();\n var ymax = new Vector3d();\n var zmin = new Vector3d();\n var zmax = new Vector3d();\n var dia1 = new Vector3d();\n var dia2 = new Vector3d();\n\n // FIRST PASS: find 6 minima/maxima points\n xmin.x = ymin.y = zmin.z = 100000000;\n xmax.x = ymax.y = zmax.z = -1000000000;\n for (i = 0; i < count; i++) {\n var current = list[i];\n if (current.x < xmin.x) {\n xmin = current;\n }\n if (current.x > xmax.x) {\n xmax = current;\n }\n if (current.y < ymin.y) {\n ymin = current;\n }\n if (current.y > ymax.y) {\n ymax = current;\n }\n if (current.z < zmin.z) {\n zmin = current;\n }\n if (current.z > zmax.z) {\n zmax = current;\n }\n }\n\n // Set xspan = distance between the 2 points xmin & xmax (squared)\n dx = xmax.x - xmin.x;\n dy = xmax.y - xmin.y;\n dz = xmax.z - xmin.z;\n xspan = dx * dx + dy * dy + dz * dz;\n\n // Same for y & z spans\n dx = ymax.x - ymin.x;\n dy = ymax.y - ymin.y;\n dz = ymax.z - ymin.z;\n yspan = dx * dx + dy * dy + dz * dz;\n dx = zmax.x - zmin.x;\n dy = zmax.y - zmin.y;\n dz = zmax.z - zmin.z;\n zspan = dx * dx + dy * dy + dz * dz;\n dia1 = xmin;\n dia2 = xmax;\n maxspan = xspan;\n if (yspan > maxspan) {\n maxspan = yspan;\n dia1 = ymin;\n dia2 = ymax;\n }\n if (zspan > maxspan) {\n dia1 = zmin;\n dia2 = zmax;\n }\n\n // dia1,dia2 is a diameter of initial sphere\n // calc initial center\n Center.x = (dia1.x + dia2.x) / 2;\n Center.y = (dia1.y + dia2.y) / 2;\n Center.z = (dia1.z + dia2.z) / 2;\n\n // calculate initial radius**2 and radius\n dx = dia2.x - Center.x;\n dy = dia2.y - Center.y;\n dz = dia2.z - Center.z;\n rad_sq = dx * dx + dy * dy + dz * dz;\n Radius = Math.sqrt(rad_sq);\n\n // SECOND PASS: increment current sphere\n for (i = 0; i < count; i++) {\n var current = list[i];\n dx = current.x - Center.x;\n dy = current.y - Center.y;\n dz = current.z - Center.z;\n old_to_p_sq = dx * dx + dy * dy + dz * dz;\n if (old_to_p_sq > rad_sq) {\n // this point is outside of current sphere\n old_to_p = Math.sqrt(old_to_p_sq);\n\n // calc radius of new sphere\n Radius = (Radius + old_to_p) / 2;\n rad_sq = Radius * Radius;\n old_to_new = old_to_p - Radius;\n\n // calc center of new sphere\n Center.x = (Radius * Center.x + old_to_new * current.x) / old_to_p;\n Center.y = (Radius * Center.y + old_to_new * current.y) / old_to_p;\n Center.z = (Radius * Center.z + old_to_new * current.z) / old_to_p;\n }\n }\n\n return SphereHull._create(Center, Radius);\n};\n\nvar ConvexHull$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ConvexHull\", [ConvexHull, ConvexHull$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/equirectangular_tile.js\":\n/*!*************************************!*\\\n !*** ./esm/equirectangular_tile.js ***!\n \\*************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EquirectangularTile: () => (/* binding */ EquirectangularTile)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _render_triangle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./render_triangle.js */ \"./esm/render_triangle.js\");\n/* harmony import */ var _tile_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./tile.js */ \"./esm/tile.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A tile in a pyramid that uses an equirectangular projection.\n\n\n\n\n\n\n\n\n\n\n// wwtlib.EquirectangularTile\n\nfunction EquirectangularTile() {\n this._tileDegrees$1 = 0;\n this._topDown$1 = true;\n this._subDivisionLevel$1 = 1;\n _tile_js__WEBPACK_IMPORTED_MODULE_6__.Tile.call(this);\n}\n\nEquirectangularTile.create = function (level, x, y, dataset, parent) {\n var temp = new EquirectangularTile();\n temp.parent = parent;\n temp.level = level;\n temp.tileX = x;\n temp.tileY = y;\n temp.dataset = dataset;\n temp._topDown$1 = !dataset.get_bottomsUp();\n temp.computeBoundingSphere();\n return temp;\n};\n\nvar EquirectangularTile$ = {\n computeBoundingSphere: function () {\n if (!this._topDown$1) {\n this.computeBoundingSphereBottomsUp();\n return;\n }\n this._tileDegrees$1 = this.dataset.get_baseTileDegrees() / Math.pow(2, this.level);\n var latMin = (90 - ((this.tileY) * this._tileDegrees$1));\n var latMax = (90 - (((this.tileY + 1)) * this._tileDegrees$1));\n var lngMin = ((this.tileX * this._tileDegrees$1) - 180);\n var lngMax = ((((this.tileX + 1)) * this._tileDegrees$1) - 180);\n var latCenter = (latMin + latMax) / 2;\n var lngCenter = (lngMin + lngMax) / 2;\n this.sphereCenter = this.geoTo3d(latCenter, lngCenter, false);\n this.topLeft = this.geoTo3d(latMin, lngMin, false);\n this.bottomRight = this.geoTo3d(latMax, lngMax, false);\n this.topRight = this.geoTo3d(latMin, lngMax, false);\n this.bottomLeft = this.geoTo3d(latMax, lngMin, false);\n var distVect = this.geoTo3d(latMin, lngMin, false);\n distVect.subtract(this.sphereCenter);\n this.sphereRadius = distVect.length();\n this._tileDegrees$1 = lngMax - lngMin;\n },\n\n computeBoundingSphereBottomsUp: function () {\n var tileDegrees = this.dataset.get_baseTileDegrees() / (Math.pow(2, this.level));\n var latMin = (-90 + (((this.tileY + 1)) * tileDegrees));\n var latMax = (-90 + ((this.tileY) * tileDegrees));\n var lngMin = ((this.tileX * tileDegrees) - 180);\n var lngMax = ((((this.tileX + 1)) * tileDegrees) - 180);\n var latCenter = (latMin + latMax) / 2;\n var lngCenter = (lngMin + lngMax) / 2;\n this.sphereCenter = this.geoTo3d(latCenter, lngCenter, false);\n this.topLeft = this.geoTo3d(latMin, lngMin, false);\n this.bottomRight = this.geoTo3d(latMax, lngMax, false);\n this.topRight = this.geoTo3d(latMin, lngMax, false);\n this.bottomLeft = this.geoTo3d(latMax, lngMin, false);\n var distVect = this.topLeft;\n distVect.subtract(this.sphereCenter);\n this.sphereRadius = distVect.length();\n tileDegrees = lngMax - lngMin;\n },\n\n createGeometry: function (renderContext) {\n _tile_js__WEBPACK_IMPORTED_MODULE_6__.Tile.prototype.createGeometry.call(this, renderContext);\n if (renderContext.gl == null) {\n if (!this.dataset.get_dataSetType() || this.dataset.get_dataSetType() === 1) {\n this._subDivisionLevel$1 = Math.max(2, (4 - this.level) * 2);\n }\n } else {\n this._subDivisionLevel$1 = 32;\n }\n try {\n for (var i = 0; i < 4; i++) {\n this._renderTriangleLists[i] = [];\n }\n if (!this._topDown$1) {\n return this._createGeometryBottomsUp$1(renderContext);\n }\n var lat, lng;\n var index = 0;\n var tileDegrees = this.dataset.get_baseTileDegrees() / Math.pow(2, this.level);\n var latMin = (90 - ((this.tileY) * tileDegrees));\n var latMax = (90 - (((this.tileY + 1)) * tileDegrees));\n var lngMin = ((this.tileX * tileDegrees) - 180);\n var lngMax = ((((this.tileX + 1)) * tileDegrees) - 180);\n var tileDegreesX = lngMax - lngMin;\n var tileDegreesY = latMax - latMin;\n this.topLeft = this.geoTo3d(latMin, lngMin, false);\n this.bottomRight = this.geoTo3d(latMax, lngMax, false);\n this.topRight = this.geoTo3d(latMin, lngMax, false);\n this.bottomLeft = this.geoTo3d(latMax, lngMin, false);\n\n // Create a vertex buffer\n var verts = new Array((this._subDivisionLevel$1 + 1) * (this._subDivisionLevel$1 + 1));\n var x, y;\n var textureStep = 1 / this._subDivisionLevel$1;\n for (y = 0; y <= this._subDivisionLevel$1; y++) {\n if (y !== this._subDivisionLevel$1) {\n lat = latMin + (textureStep * tileDegreesY * y);\n }\n else {\n lat = latMax;\n }\n for (x = 0; x <= this._subDivisionLevel$1; x++) {\n if (x !== this._subDivisionLevel$1) {\n lng = lngMin + (textureStep * tileDegreesX * x);\n }\n else {\n lng = lngMax;\n }\n index = y * (this._subDivisionLevel$1 + 1) + x;\n verts[index] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(this.geoTo3d(lat, lng, false), x * textureStep, y * textureStep);\n }\n }\n this.triangleCount = this._subDivisionLevel$1 * this._subDivisionLevel$1 * 2;\n var quarterDivisions = this._subDivisionLevel$1 / 2;\n var part = 0;\n if (renderContext.gl == null) {\n for (var y2 = 0; y2 < 2; y2++) {\n for (var x2 = 0; x2 < 2; x2++) {\n index = 0;\n for (var y1 = (quarterDivisions * y2); y1 < (quarterDivisions * (y2 + 1)); y1++) {\n for (var x1 = (quarterDivisions * x2); x1 < (quarterDivisions * (x2 + 1)); x1++) {\n var p1;\n var p2;\n var p3;\n\n // First triangle in quad\n p1 = verts[(y1 * (this._subDivisionLevel$1 + 1) + x1)];\n p2 = verts[((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1)];\n p3 = verts[(y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1))];\n this._renderTriangleLists[part].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(p1, p3, p2, this.texture, this.level));\n\n // Second triangle in quad\n p1 = verts[(y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1))];\n p2 = verts[((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1)];\n p3 = verts[((y1 + 1) * (this._subDivisionLevel$1 + 1) + (x1 + 1))];\n this._renderTriangleLists[part].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(p1, p3, p2, this.texture, this.level));\n }\n }\n part++;\n }\n }\n } else {\n //process vertex list\n this._vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, this._vertexBuffer);\n var f32array = new Float32Array(verts.length * 5);\n var buffer = f32array;\n index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(verts);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n index = this.addVertex(buffer, index, pt);\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, f32array, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n for (var y2 = 0; y2 < 2; y2++) {\n for (var x2 = 0; x2 < 2; x2++) {\n var ui16array = new Uint16Array(this.triangleCount * 3);\n var indexArray = ui16array;\n index = 0;\n for (var y1 = (quarterDivisions * y2); y1 < (quarterDivisions * (y2 + 1)); y1++) {\n for (var x1 = (quarterDivisions * x2); x1 < (quarterDivisions * (x2 + 1)); x1++) {\n // First triangle in quad\n indexArray[index++] = (y1 * (this._subDivisionLevel$1 + 1) + x1);\n indexArray[index++] = ((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1);\n indexArray[index++] = (y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1));\n\n // Second triangle in quad\n indexArray[index++] = (y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1));\n indexArray[index++] = ((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1);\n indexArray[index++] = ((y1 + 1) * (this._subDivisionLevel$1 + 1) + (x1 + 1));\n }\n }\n this._indexBuffers[part] = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, this._indexBuffers[part]);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, ui16array, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n part++;\n }\n }\n }\n }\n catch ($e2) {\n }\n return true;\n },\n\n _createGeometryBottomsUp$1: function (renderContext) {\n var lat, lng;\n var index = 0;\n var tileDegrees = this.dataset.get_baseTileDegrees() / Math.pow(2, this.level);\n var latMin = (-90 + (((this.tileY + 1)) * tileDegrees));\n var latMax = (-90 + ((this.tileY) * tileDegrees));\n var lngMin = ((this.tileX * tileDegrees) - 180);\n var lngMax = ((((this.tileX + 1)) * tileDegrees) - 180);\n var tileDegreesX = lngMax - lngMin;\n var tileDegreesY = latMax - latMin;\n\n // Create a vertex buffer\n var verts = new Array((this._subDivisionLevel$1 + 1) * (this._subDivisionLevel$1 + 1));\n var x, y;\n var textureStep = 1 / this._subDivisionLevel$1;\n for (y = 0; y <= this._subDivisionLevel$1; y++) {\n if (y !== this._subDivisionLevel$1) {\n lat = latMin + (textureStep * tileDegreesY * y);\n }\n else {\n lat = latMax;\n }\n for (x = 0; x <= this._subDivisionLevel$1; x++) {\n if (x !== this._subDivisionLevel$1) {\n lng = lngMin + (textureStep * tileDegreesX * x);\n }\n else {\n lng = lngMax;\n }\n index = y * (this._subDivisionLevel$1 + 1) + x;\n verts[index] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(this.geoTo3d(lat, lng, false), x * textureStep, y * textureStep);\n }\n }\n this.triangleCount = this._subDivisionLevel$1 * this._subDivisionLevel$1 * 2;\n var quarterDivisions = this._subDivisionLevel$1 / 2;\n var part = 0;\n if (renderContext.gl == null) {\n for (var y2 = 0; y2 < 2; y2++) {\n for (var x2 = 0; x2 < 2; x2++) {\n index = 0;\n for (var y1 = (quarterDivisions * y2); y1 < (quarterDivisions * (y2 + 1)); y1++) {\n for (var x1 = (quarterDivisions * x2); x1 < (quarterDivisions * (x2 + 1)); x1++) {\n var p1;\n var p2;\n var p3;\n\n // First triangle in quad\n p1 = verts[(y1 * (this._subDivisionLevel$1 + 1) + x1)];\n p2 = verts[((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1)];\n p3 = verts[(y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1))];\n this._renderTriangleLists[part].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(p1, p3, p2, this.texture, this.level));\n\n // Second triangle in quad\n p1 = verts[(y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1))];\n p2 = verts[((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1)];\n p3 = verts[((y1 + 1) * (this._subDivisionLevel$1 + 1) + (x1 + 1))];\n this._renderTriangleLists[part].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(p1, p3, p2, this.texture, this.level));\n }\n }\n part++;\n }\n }\n } else {\n //process vertex list\n this._vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, this._vertexBuffer);\n var f32array = new Float32Array(verts.length * 5);\n var buffer = f32array;\n index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(verts);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n index = this.addVertex(buffer, index, pt);\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, f32array, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n for (var y2 = 0; y2 < 2; y2++) {\n for (var x2 = 0; x2 < 2; x2++) {\n var ui16array = new Uint16Array(this.triangleCount * 3);\n var indexArray = ui16array;\n index = 0;\n for (var y1 = (quarterDivisions * y2); y1 < (quarterDivisions * (y2 + 1)); y1++) {\n for (var x1 = (quarterDivisions * x2); x1 < (quarterDivisions * (x2 + 1)); x1++) {\n // First triangle in quad\n indexArray[index++] = (y1 * (this._subDivisionLevel$1 + 1) + x1);\n indexArray[index++] = ((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1);\n indexArray[index++] = (y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1));\n\n // Second triangle in quad\n indexArray[index++] = (y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1));\n indexArray[index++] = ((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1);\n indexArray[index++] = ((y1 + 1) * (this._subDivisionLevel$1 + 1) + (x1 + 1));\n }\n }\n this._indexBuffers[part] = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, this._indexBuffers[part]);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, ui16array, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n part++;\n }\n }\n }\n\n return true;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"EquirectangularTile\", [EquirectangularTile, EquirectangularTile$, _tile_js__WEBPACK_IMPORTED_MODULE_6__.Tile]);\n\n\n/***/ }),\n\n/***/ \"./esm/fast_math.js\":\n/*!**************************!*\\\n !*** ./esm/fast_math.js ***!\n \\**************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FastMath: () => (/* binding */ FastMath)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// \"Fast math\" routines \"from Healpix Java package\"\n\n\n\n\n// wwtlib.FastMath\n\nfunction FastMath() { }\n\nconst pI4_A = 0.785398155450821;\nconst pI4_B = 7.94662735614793E-09;\nconst pI4_C = 3.06161699786838E-17;\nconst m_1_PI = 0.318309886183791;\n\nFastMath._mulsign = function (x, y) {\n return FastMath._sign(y) * x;\n};\n\nFastMath._isnan = function (d) {\n return d !== d;\n};\n\nFastMath._isinf = function (d) {\n // TODO: this was documented as checking for negative infinity as well, and\n // almost surely should do that!\n return Math.abs(d) === Number.POSITIVE_INFINITY;\n};\n\nFastMath._sign = function (d) {\n if (!d) {\n return 0;\n }\n return (d > 0) ? 1 : -1;\n};\n\nFastMath._atanhelper = function (s) {\n var t = s * s;\n var u = -1.88796008463073E-05;\n u = u * t + (0.000209850076645817);\n u = u * t + (-0.00110611831486672);\n u = u * t + (0.00370026744188713);\n u = u * t + (-0.00889896195887655);\n u = u * t + (0.0165993297735292);\n u = u * t + (-0.0254517624932313);\n u = u * t + (0.0337852580001353);\n u = u * t + (-0.0407629191276837);\n u = u * t + (0.0466667150077841);\n u = u * t + (-0.0523674852303482);\n u = u * t + (0.0587666392926674);\n u = u * t + (-0.0666573579361081);\n u = u * t + (0.076921953831177);\n u = u * t + (-0.090908995008245);\n u = u * t + (0.111111105648261);\n u = u * t + (-0.142857142667713);\n u = u * t + (0.199999999996591);\n u = u * t + (-0.333333333333311);\n return u * t * s + s;\n};\n\nFastMath._atan2k = function (y, x) {\n var q = 0;\n if (x < 0) {\n x = -x;\n q = -2;\n }\n if (y > x) {\n var t = x;\n x = y;\n y = -t;\n q += 1;\n }\n return FastMath._atanhelper(y / x) + q * (Math.PI / 2);\n};\n\n// This method calculates the arc tangent of y/x in radians, using the signs of\n// the two arguments to determine the quadrant of the result. The results may\n// have maximum error of 2 ulps.\nFastMath.atan2 = function (y, x) {\n var r = FastMath._atan2k(Math.abs(y), x);\n r = FastMath._mulsign(r, x);\n if (FastMath._isinf(x) || !x) {\n r = Math.PI / 2 - ((FastMath._isinf(x)) ? (FastMath._sign(x) * (Math.PI / 2)) : 0);\n }\n if (FastMath._isinf(y)) {\n r = Math.PI / 2 - ((FastMath._isinf(x)) ? (FastMath._sign(x) * (Math.PI * 1 / 4)) : 0);\n }\n if (!y) {\n r = ((FastMath._sign(x) === -1) ? Math.PI : 0);\n }\n return (FastMath._isnan(x) || FastMath._isnan(y)) ? Number.NaN : FastMath._mulsign(r, y);\n};\n\n// This method calculates the arc sine of x in radians. The return value is in\n// the range [-pi/2, pi/2]. The results may have maximum error of 3 ulps.\nFastMath.asin = function (d) {\n return FastMath._mulsign(FastMath._atan2k(Math.abs(d), Math.sqrt((1 + d) * (1 - d))), d);\n};\n\n// This method calculates the arc cosine of x in radians. The return value is in\n// the range [0, pi]. The results may have maximum error of 3 ulps.\nFastMath.acos = function (d) {\n return FastMath._mulsign(FastMath._atan2k(Math.sqrt((1 + d) * (1 - d)), Math.abs(d)), d) + ((d < 0) ? Math.PI : 0);\n};\n\n// Returns the arc tangent of an angle. The results may have maximum error of 2\n// ulps.\nFastMath.atan = function (s) {\n var q = 0;\n if (s < 0) {\n s = -s;\n q = 2;\n }\n if (s > 1) {\n s = 1 / s;\n q |= 1;\n }\n var t = FastMath._atanhelper(s);\n if (!!(q & 1)) {\n t = 1.5707963267949 - t;\n }\n if (!!(q & 2)) {\n t = -t;\n }\n return t;\n};\n\nFastMath._sincoshelper = function (d) {\n var s = d * d;\n var u = -7.97255955009038E-18;\n u = u * s + 2.81009972710863E-15;\n u = u * s - 7.64712219118159E-13;\n u = u * s + 1.60590430605665E-10;\n u = u * s - 2.50521083763502E-08;\n u = u * s + 2.75573192239199E-06;\n u = u * s - 0.000198412698412696;\n u = u * s + 0.00833333333333333;\n u = u * s - 0.166666666666667;\n return s * u * d + d;\n};\n\n// Returns the trigonometric sine of an angle. The results may have maximum\n// error of 2 ulps.\nFastMath.sin = function (d) {\n var u = d * m_1_PI;\n var q = Math.floor((u < 0) ? u - 0.5 : u + 0.5);\n var x = 4 * q;\n d -= x * pI4_A;\n d -= x * pI4_B;\n d -= x * pI4_C;\n if (!!(q & 1)) {\n d = -d;\n }\n return FastMath._sincoshelper(d);\n};\n\n// Returns the trigonometric cosine of an angle. The results may have maximum\n// error of 2 ulps.\nFastMath.cos = function (d) {\n var u = d * m_1_PI - 0.5;\n var q = 1 + 2 * Math.floor((u < 0) ? u - 0.5 : u + 0.5);\n var x = 2 * q;\n d -= x * pI4_A;\n d -= x * pI4_B;\n d -= x * pI4_C;\n if (!(q & 2)) {\n d = -d;\n }\n return FastMath._sincoshelper(d);\n};\n\nvar FastMath$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"FastMath\", [FastMath, FastMath$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/fits_properties.js\":\n/*!********************************!*\\\n !*** ./esm/fits_properties.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FitsProperties: () => (/* binding */ FitsProperties),\n/* harmony export */ ScaleTypes: () => (/* binding */ ScaleTypes)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Properties about FITS data.\n\n\n\n\n// wwtlib.ScaleTypes\n\nvar ScaleTypes = {\n linear: 0,\n log: 1,\n power: 2,\n squareRoot: 3,\n histogramEqualization: 4\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ScaleTypes\", ScaleTypes);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerEnum)(\"ScaleTypes\", ScaleTypes);\n\n\n// wwtlib.FitsProperties\n\nfunction FitsProperties() {\n this.bZero = 0;\n this.bScale = 1;\n this.containsBlanks = false;\n this.blankValue = Number.MIN_VALUE;\n this.maxVal = Number.MIN_VALUE;\n this.minVal = Number.MAX_VALUE;\n this.upperCut = Number.MIN_VALUE;\n this.lowerCut = Number.MAX_VALUE;\n this.transparentBlack = false;\n this.colorMapName = 'viridis';\n this.scaleType = 0;\n\n // This field exists to support non-HiPS tiled FITS imagesets. We need a\n // mechanism to notify callers when the top-level tile is loaded,\n // because only after that has happened is it possible to set up\n // trustworthy values for properties like LowerCut here. *HiPS* tiled\n // FITS imagesets don't need this because they have a separate top-level\n // \"properties\" file that can be used to trigger a callback.\n //\n // We need to load the top-level tile to properly set up the properties\n // here because (1) they can't be determined well from the level-0 tile\n // data alone, (2) we want to give the dataset author a chance to\n // customize them, and (3) the tiled FITS data-loaders don't calculate\n // min/max from the data for performance reasons. And we'd prefer not to\n // add the relevant values to the ImageSet XML definition.\n //\n // Anyway, the tangent tile image loading code will cause this action to\n // be triggered when the level-0 tile loads successfully. It would make\n // sense to also trigger this action for when a non-tiled FITS file is\n // loaded, but in that use case the existing WcsLoaded callback\n // suffices. The tiling framework already uses WcsLoaded so for that\n // case we need to add this extra hook.\n this.onMainImageLoaded = null;\n this.mainImageLoadedEventHasFired = false;\n}\n\nvar FitsProperties$ = {\n // See description of the onMainImageLoaded field. This method exists to\n // help non-HiPS tiled FITS datasets notify callers when the initial\n // data have loaded and these FitsProperties can be trusted.\n _fireMainImageLoaded: function (image) {\n if (this.onMainImageLoaded != null && !this.mainImageLoadedEventHasFired) {\n this.mainImageLoadedEventHasFired = true;\n this.onMainImageLoaded(image);\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"FitsProperties\", [FitsProperties, FitsProperties$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/folder.js\":\n/*!***********************!*\\\n !*** ./esm/folder.js ***!\n \\***********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Folder: () => (/* binding */ Folder),\n/* harmony export */ FolderGroup: () => (/* binding */ FolderGroup),\n/* harmony export */ FolderRefreshType: () => (/* binding */ FolderRefreshType),\n/* harmony export */ FolderType: () => (/* binding */ FolderType)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _folder_up_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./folder_up.js */ \"./esm/folder_up.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./imageset.js */ \"./esm/imageset.js\");\n/* harmony import */ var _place_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./place.js */ \"./esm/place.js\");\n/* harmony import */ var _tour_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./tour.js */ \"./esm/tour.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./web_file.js */ \"./esm/web_file.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A WTML folder of different kinds of WWT content.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.FolderGroup\n\nvar FolderGroup = {\n explorer: 0,\n tour: 1,\n search: 2,\n constellation: 3,\n view: 4,\n goTo: 5,\n community: 6,\n context: 7,\n voTable: 8,\n imageStack: 9\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"FolderGroup\", FolderGroup);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"FolderGroup\", FolderGroup);\n\n\n// wwtlib.FolderRefreshType\n\nvar FolderRefreshType = {\n interval: 0,\n conditionalGet: 1,\n viewChange: 2\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"FolderRefreshType\", FolderRefreshType);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"FolderRefreshType\", FolderRefreshType);\n\n\n// wwtlib.FolderType\n\nvar FolderType = {\n earth: 0,\n planet: 1,\n sky: 2,\n panorama: 3\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"FolderType\", FolderType);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"FolderType\", FolderType);\n\n\n// wwtlib.Folder\n\nfunction Folder() {\n this.parent = null;\n this.isProxy = false;\n this._versionDependent = false;\n this._readOnly = true;\n this._dirty = false;\n this._thumbnail = null;\n this._proxyFolder = null;\n this._lastUpdate = new Date();\n this._childList = [];\n this._itemsField = [];\n this._imagesets = [];\n this._tours = [];\n this._folders = [];\n this._places = [];\n this._groupField = 0;\n this._refreshTypeField = 0;\n this._refreshTypeFieldSpecified = false;\n this._browseableField = true;\n this._browseableFieldSpecified = false;\n this._searchableField = false;\n this._typeField = 0;\n this._communityIdField = 0;\n this._componentIdField = 0;\n this._permissionField = 0;\n}\n\nvar Folder$ = {\n toString: function () {\n return this._nameField;\n },\n\n get_versionDependent: function () {\n return this._versionDependent;\n },\n\n set_versionDependent: function (value) {\n this._versionDependent = value;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._folders);\n while ($enum1.moveNext()) {\n var folder = $enum1.current;\n folder.set_versionDependent(this._versionDependent);\n }\n return value;\n },\n\n get_readOnly: function () {\n return this._readOnly;\n },\n\n set_readOnly: function (value) {\n this._readOnly = value;\n return value;\n },\n\n get_dirty: function () {\n return this._dirty;\n },\n\n set_dirty: function (value) {\n this._dirty = value;\n return value;\n },\n\n loadFromUrlWithErrorCallback: function (url, complete, onError) {\n this._onError = onError;\n this.loadFromUrl(url, complete);\n },\n\n loadFromUrl: function (url, complete) {\n this._onComplete = complete;\n this._webFile = new _web_file_js__WEBPACK_IMPORTED_MODULE_10__.WebFile(_url_helpers_js__WEBPACK_IMPORTED_MODULE_5__.URLHelpers.singleton.rewrite(url, 1));\n this._webFile.onStateChange = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_loadData', this);\n this._webFile.send();\n },\n\n _loadData: function () {\n if (this._webFile.get_state() === 2) {\n console.error(this._webFile.get_message());\n if (this._onError != null) {\n this._onError();\n }\n } else if (this._webFile.get_state() === 1) {\n var node = _baseutil_js__WEBPACK_IMPORTED_MODULE_3__.Util.selectSingleNode(this._webFile.getXml(), 'Folder');\n if (node == null) {\n var doc = this._webFile.getXml();\n if (doc != null) {\n node = _baseutil_js__WEBPACK_IMPORTED_MODULE_3__.Util.selectSingleNode(doc, 'Folder');\n }\n }\n if (node != null) {\n this._clearChildren();\n this._parseXML(node);\n }\n if (this._onComplete != null) {\n this._onComplete();\n }\n }\n },\n\n _clearChildren: function () {\n this._folders.length = 0;\n this._tours.length = 0;\n this._places.length = 0;\n this.get_imagesets().length = 0;\n },\n\n _parseXML: function (node) {\n if (node.attributes.getNamedItem('Name') != null) {\n this._nameField = node.attributes.getNamedItem('Name').nodeValue;\n } else {\n this._nameField = '';\n }\n if (node.attributes.getNamedItem('Url') != null) {\n this._urlField = node.attributes.getNamedItem('Url').nodeValue;\n }\n if (node.attributes.getNamedItem('Thumbnail') != null) {\n this._thumbnailUrlField = node.attributes.getNamedItem('Thumbnail').nodeValue;\n }\n\n // load Children\n\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(node.childNodes);\n while ($enum1.moveNext()) {\n var child = $enum1.current;\n switch (child.nodeName) {\n case 'Folder':\n var temp = new Folder();\n temp.parent = this;\n temp._parseXML(child);\n this._folders.push(temp);\n break;\n case 'Place':\n this._places.push(_place_js__WEBPACK_IMPORTED_MODULE_8__.Place._fromXml(child));\n break;\n case 'ImageSet':\n this.get_imagesets().push(_imageset_js__WEBPACK_IMPORTED_MODULE_7__.Imageset.fromXMLNode(child));\n break;\n case 'Tour':\n this.get_tours().push(_tour_js__WEBPACK_IMPORTED_MODULE_9__.Tour._fromXml(child));\n break;\n }\n }\n },\n\n addChildFolder: function (child) {\n this._folders.push(child);\n this._dirty = true;\n },\n\n removeChildFolder: function (child) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(this._folders, child);\n this._dirty = true;\n },\n\n addChildPlace: function (child) {\n this._places.push(child);\n this._dirty = true;\n },\n\n removeChildPlace: function (child) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(this._places, child);\n this._dirty = true;\n },\n\n get_thumbnail: function () {\n return this._thumbnail;\n },\n\n set_thumbnail: function (value) {\n this._thumbnail = value;\n return value;\n },\n\n get_bounds: function () {\n return this._bounds;\n },\n\n set_bounds: function (value) {\n this._bounds = value;\n return value;\n },\n\n get_isImage: function () {\n return false;\n },\n\n get_isTour: function () {\n return false;\n },\n\n get_isFolder: function () {\n return true;\n },\n\n get_isCloudCommunityItem: function () {\n return !!this._communityIdField || this._permissionField > 0;\n },\n\n refresh: function () {\n if (this._proxyFolder == null) {\n this._proxyFolder = new Folder();\n this._proxyFolder.isProxy = true;\n this._proxyFolder.parent = this.parent;\n }\n\n //Also listening to errors, to make sure clients do not wait forever in\n //the case of a 404 or similar. Especially useful for recursive\n //downloads, where potentially dozens of URL's are downloaded. In case\n //of errors during downloads, the clients will have an empty folder\n //during the callback.\n this._proxyFolder.loadFromUrlWithErrorCallback(this._urlField, this._childReadyCallback, this._childReadyCallback);\n this._childReadyCallback = null;\n },\n\n childLoadCallback: function (callback) {\n this._childReadyCallback = callback;\n var temp = this.get_children();\n if (this._proxyFolder == null) {\n callback();\n }\n },\n\n get_children: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._urlField)) {\n this._childList.length = 0;\n if (this.parent != null) {\n var folderUp = new _folder_up_js__WEBPACK_IMPORTED_MODULE_6__.FolderUp();\n folderUp.parent = this.parent;\n this._childList.push(folderUp);\n }\n if (this.get_folders() != null) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.get_folders());\n while ($enum1.moveNext()) {\n var folder = $enum1.current;\n this._childList.push(folder);\n }\n }\n if (this.get_imagesets() != null) {\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.get_imagesets());\n while ($enum2.moveNext()) {\n var imset = $enum2.current;\n this._childList.push(imset);\n }\n }\n if (this.get_places() != null) {\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.get_places());\n while ($enum3.moveNext()) {\n var place = $enum3.current;\n this._childList.push(place);\n }\n }\n if (this.get_tours() != null) {\n var $enum4 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.get_tours());\n while ($enum4.moveNext()) {\n var tour = $enum4.current;\n this._childList.push(tour);\n }\n }\n return this._childList;\n } else {\n var ts = (this._lastUpdate - _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now()) / 1000;\n if (this.get_refreshType() === 1 || this._proxyFolder == null || (!this.get_refreshType() && (parseInt(this._refreshIntervalField) < ts))) {\n this.refresh();\n }\n if (this._proxyFolder != null) {\n return this._proxyFolder.get_children();\n }\n else {\n return null;\n }\n }\n },\n\n get_msrCommunityId: function () {\n return this._communityIdField;\n },\n\n set_msrCommunityId: function (value) {\n this._communityIdField = value;\n return value;\n },\n\n get_msrComponentId: function () {\n return this._componentIdField;\n },\n\n set_msrComponentId: function (value) {\n this._componentIdField = value;\n return value;\n },\n\n get_permission: function () {\n return this._permissionField;\n },\n\n set_permission: function (value) {\n this._permissionField = value;\n return value;\n },\n\n get_folders: function () {\n return this._folders;\n },\n\n set_folders: function (value) {\n this._folders = value;\n return value;\n },\n\n get_places: function () {\n return this._places;\n },\n\n set_places: function (value) {\n this._places = value;\n return value;\n },\n\n get_imagesets: function () {\n return this._imagesets;\n },\n\n set_imagesets: function (value) {\n this._imagesets = value;\n return value;\n },\n\n get_tours: function () {\n return this._tours;\n },\n\n set_tours: function (value) {\n this._tours = value;\n return value;\n },\n\n get_name: function () {\n if (this._nameField == null) {\n return '';\n } else {\n return this._nameField;\n }\n },\n\n set_name: function (value) {\n this._nameField = value;\n return value;\n },\n\n get_group: function () {\n return this._groupField;\n },\n\n set_group: function (value) {\n this._groupField = value;\n return value;\n },\n\n get_url: function () {\n return this._urlField;\n },\n\n set_url: function (value) {\n this._urlField = value;\n return value;\n },\n\n get_thumbnailUrl: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._thumbnailUrlField)) {\n return _url_helpers_js__WEBPACK_IMPORTED_MODULE_5__.URLHelpers.singleton.engineAssetUrl('thumb_folder.jpg');\n }\n return this._thumbnailUrlField;\n },\n\n set_thumbnailUrl: function (value) {\n this._thumbnailUrlField = value;\n return value;\n },\n\n get_refreshType: function () {\n return this._refreshTypeField;\n },\n\n set_refreshType: function (value) {\n this._refreshTypeField = value;\n this.set_refreshTypeSpecified(true);\n return value;\n },\n\n get_refreshTypeSpecified: function () {\n return this._refreshTypeFieldSpecified;\n },\n\n set_refreshTypeSpecified: function (value) {\n this._refreshTypeFieldSpecified = value;\n return value;\n },\n\n get_refreshInterval: function () {\n return this._refreshIntervalField;\n },\n\n set_refreshInterval: function (value) {\n this._refreshIntervalField = value;\n return value;\n },\n\n get_browseable: function () {\n return this._browseableField;\n },\n\n set_browseable: function (value) {\n this._browseableField = value;\n this._browseableFieldSpecified = true;\n return value;\n },\n\n get_browseableSpecified: function () {\n return this._browseableFieldSpecified;\n },\n\n set_browseableSpecified: function (value) {\n this._browseableFieldSpecified = value;\n return value;\n },\n\n get_searchable: function () {\n return this._searchableField;\n },\n\n set_searchable: function (value) {\n this._searchableField = value;\n return value;\n },\n\n get_type: function () {\n return this._typeField;\n },\n\n set_type: function (value) {\n this._typeField = value;\n return value;\n },\n\n get_subType: function () {\n return this._subTypeField;\n },\n\n set_subType: function (value) {\n this._subTypeField = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Folder\", [Folder, Folder$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_4__.IThumbnail]);\n\n(0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.set_makeNewFolder)(function () {\n return new Folder();\n});\n\n\n/***/ }),\n\n/***/ \"./esm/folder_browser.js\":\n/*!*******************************!*\\\n !*** ./esm/folder_browser.js ***!\n \\*******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FolderBrowser: () => (/* binding */ FolderBrowser),\n/* harmony export */ ThumbnailSize: () => (/* binding */ ThumbnailSize)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _folder_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./folder.js */ \"./esm/folder.js\");\n/* harmony import */ var _folder_up_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./folder_up.js */ \"./esm/folder_up.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./imageset.js */ \"./esm/imageset.js\");\n/* harmony import */ var _place_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./place.js */ \"./esm/place.js\");\n/* harmony import */ var _render_triangle_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./render_triangle.js */ \"./esm/render_triangle.js\");\n/* harmony import */ var _tour_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./tour.js */ \"./esm/tour.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Infrastructure for browsing the WWT folder structure.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.ThumbnailSize\n\nvar ThumbnailSize = {\n small: 0,\n big: 1\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ThumbnailSize\", ThumbnailSize);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"ThumbnailSize\", ThumbnailSize);\n\n\n// wwtlib.FolderBrowser\n\nfunction FolderBrowser() {\n this._items = [];\n this.top = 10;\n this.left = 10;\n this._indexTouchDown = -1;\n this._mouseDown = false;\n this._lastX = 0;\n this._lastY = 0;\n this._ignoreClick = false;\n this._thumbnailSize = 0;\n this._horzSpacing = 110;\n this._vertSpacing = 75;\n this._thumbHeight = 65;\n this._thumbWidth = 110;\n this._horzMultiple = 110;\n this._rowCount = 1;\n this._colCount = 6;\n this._dragging = false;\n this._startIndex = 0;\n this._startOffset = 0;\n this._selectedItem = -1;\n this._hoverItem = -1;\n this.showAddButton = false;\n this.width = 0;\n this.height = 0;\n this._addButtonHover = false;\n this.imageClicked = false;\n}\n\nFolderBrowser._downloading = false;\nFolderBrowser._imagesLoaded = false;\nFolderBrowser._imageLoadCount = 0;\n\nFolderBrowser.create = function () {\n var temp = new FolderBrowser();\n temp.height = 85;\n temp.width = 1920;\n temp.canvas = document.createElement('canvas');\n temp.canvas.width = temp.width;\n temp.canvas.height = temp.height;\n temp.setup();\n temp.loadImages();\n return temp;\n};\n\nvar FolderBrowser$ = {\n setup: function () {\n this.canvas.addEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onClick', this), false);\n this.canvas.addEventListener('dblclick', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onDoubleClick', this), false);\n this.canvas.addEventListener('mousemove', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseMove', this), false);\n this.canvas.addEventListener('mouseup', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseUp', this), false);\n this.canvas.addEventListener('mousedown', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseDown', this), false);\n this.canvas.addEventListener('touchstart', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onTouchStart', this), false);\n this.canvas.addEventListener('touchmove', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onTouchMove', this), false);\n this.canvas.addEventListener('touchend', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onTouchEnd', this), false);\n this.canvas.addEventListener('mouseout', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseUp', this), false);\n },\n\n onTouchStart: function (e) {\n var ev = e;\n ev.preventDefault();\n this._mouseDown = true;\n this._lastX = ev.targetTouches[0].pageX;\n this._lastY = ev.targetTouches[0].pageY;\n this._indexTouchDown = this._getItemIndexFromCursor(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d.create(ev.targetTouches[0].pageX, ev.targetTouches[0].pageY));\n },\n\n onTouchMove: function (e) {\n var ev = e;\n ev.preventDefault();\n if (this._mouseDown) {\n var curX = ev.targetTouches[0].pageX - this._lastX;\n var curY = ev.targetTouches[0].pageY - this._lastY;\n if (this._mouseDown) {\n this._dragging = true;\n }\n if (!this._dragging) {\n var newHover = this._getItemIndexFromCursor(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d.create(ev.targetTouches[0].pageX, ev.targetTouches[0].pageY));\n if (this._hoverItem !== newHover) {\n this._hoverItem = newHover;\n }\n }\n else {\n var tiles = Math.round(((ev.targetTouches[0].pageX - this._lastX) + this._startOffset) / this._horzSpacing);\n var offset = Math.round(((ev.targetTouches[0].pageX - this._lastX) + this._startOffset) - (tiles * this._horzSpacing));\n this._startOffset = offset;\n this._startIndex -= tiles;\n if (this._startIndex < 0) {\n this._startOffset -= (this._horzSpacing * this._startIndex);\n this._startIndex = 0;\n }\n this._lastX = ev.targetTouches[0].pageX;\n this._lastY = ev.targetTouches[0].pageY;\n }\n this.refresh();\n }\n },\n\n onTouchEnd: function (e) {\n var ev = e;\n ev.preventDefault();\n if (this._dragging) {\n this._dragging = false;\n this._ignoreClick = true;\n } else if (this._indexTouchDown > -1 && this._mouseDown) {\n this._handleClick(this._indexTouchDown);\n }\n this._startOffset = 0;\n this._mouseDown = false;\n this.refresh();\n },\n\n onClick: function (e) {\n if (!this._ignoreClick) {\n var index = this._getItemIndexFromCursor(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d.create(e.offsetX, e.offsetY));\n this._handleClick(index);\n } else {\n this._ignoreClick = false;\n }\n },\n\n _handleClick: function (index) {\n var $this = this;\n\n if (index > -1) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this._items[index], _place_js__WEBPACK_IMPORTED_MODULE_8__.Place)) {\n var place = this._items[index];\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.gotoTarget(place, false, false, true);\n return;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this._items[index], _imageset_js__WEBPACK_IMPORTED_MODULE_7__.Imageset)) {\n var imageset = this._items[index];\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.set_backgroundImageset(imageset);\n return;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this._items[index], _tour_js__WEBPACK_IMPORTED_MODULE_10__.Tour)) {\n var tour = this._items[index];\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.playTour(tour.get_tourUrl());\n return;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this._items[index], _folder_js__WEBPACK_IMPORTED_MODULE_5__.Folder)) {\n var folder = this._items[index];\n this._startIndex = 0;\n folder.childLoadCallback(function () {\n $this._items = folder.get_children();\n $this.refresh();\n });\n return;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this._items[index], _folder_up_js__WEBPACK_IMPORTED_MODULE_6__.FolderUp)) {\n var folderUp = this._items[index];\n if (folderUp.parent != null) {\n this._startIndex = 0;\n folderUp.parent.childLoadCallback(function () {\n $this._items = folderUp.parent.get_children();\n $this.refresh();\n });\n }\n return;\n }\n }\n return;\n },\n\n onDoubleClick: function (e) {\n _render_triangle_js__WEBPACK_IMPORTED_MODULE_9__.RenderTriangle.renderingOn = !_render_triangle_js__WEBPACK_IMPORTED_MODULE_9__.RenderTriangle.renderingOn;\n },\n\n onGestureChange: function (e) {\n var g = e;\n this._mouseDown = false;\n var delta = g.scale;\n },\n\n onMouseDown: function (e) {\n this._mouseDown = true;\n this._lastX = _util_js__WEBPACK_IMPORTED_MODULE_11__.Mouse.offsetX(this.canvas, e);\n this._lastY = _util_js__WEBPACK_IMPORTED_MODULE_11__.Mouse.offsetY(this.canvas, e);\n },\n\n onMouseMove: function (e) {\n if (this._mouseDown) {\n this._dragging = true;\n }\n if (!this._dragging) {\n var newHover = this._getItemIndexFromCursor(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d.create(_util_js__WEBPACK_IMPORTED_MODULE_11__.Mouse.offsetX(this.canvas, e), _util_js__WEBPACK_IMPORTED_MODULE_11__.Mouse.offsetY(this.canvas, e)));\n if (this._hoverItem !== newHover) {\n this._hoverItem = newHover;\n }\n } else {\n var tiles = Math.round(((_util_js__WEBPACK_IMPORTED_MODULE_11__.Mouse.offsetX(this.canvas, e) - this._lastX) + this._startOffset) / this._horzSpacing);\n var offset = Math.round(((_util_js__WEBPACK_IMPORTED_MODULE_11__.Mouse.offsetX(this.canvas, e) - this._lastX) + this._startOffset) - (tiles * this._horzSpacing));\n this._startOffset = offset;\n this._startIndex -= tiles;\n if (this._startIndex < 0) {\n this._startOffset -= (this._horzSpacing * this._startIndex);\n this._startIndex = 0;\n }\n this._lastX = _util_js__WEBPACK_IMPORTED_MODULE_11__.Mouse.offsetX(this.canvas, e);\n this._lastY = _util_js__WEBPACK_IMPORTED_MODULE_11__.Mouse.offsetY(this.canvas, e);\n }\n this.refresh();\n },\n\n onMouseUp: function (e) {\n if (this._dragging) {\n this._startOffset = 0;\n this._dragging = false;\n this._ignoreClick = true;\n }\n this._mouseDown = false;\n this.refresh();\n },\n\n loadImages: function () {\n var $this = this;\n\n if (!FolderBrowser._imagesLoaded && !FolderBrowser._downloading) {\n FolderBrowser._imageLoadCount = 0;\n FolderBrowser._imagesLoaded = false;\n FolderBrowser._downloading = true;\n FolderBrowser._bmpBackground = document.createElement('img');\n FolderBrowser._bmpBackground.src = 'images/thumbBackground.png';\n FolderBrowser._bmpBackground.addEventListener('load', function (e) {\n FolderBrowser._imageLoadCount++;\n if (FolderBrowser._imageLoadCount === 5) {\n FolderBrowser._downloading = false;\n FolderBrowser._imagesLoaded = true;\n $this.refresh();\n }\n }, false);\n FolderBrowser._bmpBackgroundHover = document.createElement('img');\n FolderBrowser._bmpBackgroundHover.src = 'images/thumbBackgroundHover.png';\n FolderBrowser._bmpBackgroundHover.addEventListener('load', function (e) {\n FolderBrowser._imageLoadCount++;\n if (FolderBrowser._imageLoadCount === 5) {\n FolderBrowser._downloading = false;\n FolderBrowser._imagesLoaded = true;\n $this.refresh();\n }\n }, false);\n FolderBrowser._bmpBackgroundWide = document.createElement('img');\n FolderBrowser._bmpBackgroundWide.src = 'images/thumbBackgroundWide.png';\n FolderBrowser._bmpBackgroundWide.addEventListener('load', function (e) {\n FolderBrowser._imageLoadCount++;\n if (FolderBrowser._imageLoadCount === 5) {\n FolderBrowser._downloading = false;\n FolderBrowser._imagesLoaded = true;\n $this.refresh();\n }\n }, false);\n FolderBrowser._bmpBackgroundWideHover = document.createElement('img');\n FolderBrowser._bmpBackgroundWideHover.src = 'images/thumbBackgroundWideHover.png';\n FolderBrowser._bmpBackgroundWideHover.addEventListener('load', function (e) {\n FolderBrowser._imageLoadCount++;\n if (FolderBrowser._imageLoadCount === 5) {\n FolderBrowser._downloading = false;\n FolderBrowser._imagesLoaded = true;\n $this.refresh();\n }\n }, false);\n FolderBrowser._bmpDropInsertMarker = document.createElement('img');\n FolderBrowser._bmpDropInsertMarker.src = 'images/dragInsertMarker.png';\n FolderBrowser._bmpDropInsertMarker.addEventListener('load', function (e) {\n FolderBrowser._imageLoadCount++;\n if (FolderBrowser._imageLoadCount === 5) {\n FolderBrowser._downloading = false;\n FolderBrowser._imagesLoaded = true;\n $this.refresh();\n }\n }, false);\n }\n },\n\n get_thumbnailSize: function () {\n return this._thumbnailSize;\n },\n\n set_thumbnailSize: function (value) {\n this._thumbnailSize = value;\n switch (value) {\n case 1:\n this._horzSpacing = 180;\n this._vertSpacing = 75;\n this._thumbHeight = 65;\n this._thumbWidth = 180;\n break;\n case 0:\n this._horzSpacing = 110;\n this._vertSpacing = 75;\n this._thumbHeight = 65;\n this._thumbWidth = 110;\n break;\n }\n this._updatePaginator();\n this.refresh();\n return value;\n },\n\n refresh: function () {\n if (this.width !== window.innerWidth) {\n this.width = window.innerWidth;\n }\n this.paint();\n },\n\n get_rowCount: function () {\n return this._rowCount;\n },\n\n set_rowCount: function (value) {\n if (this._rowCount !== value) {\n this._rowCount = value;\n this._updatePaginator();\n }\n return value;\n },\n\n _updatePaginator: function () { },\n\n get_colCount: function () {\n return this._colCount;\n },\n\n set_colCount: function (value) {\n if (this._colCount !== value) {\n this._colCount = value;\n this._updatePaginator();\n }\n return value;\n },\n\n get_itemsPerPage: function () {\n return this._rowCount * this._colCount;\n },\n\n get_currentPage: function () {\n return this._startIndex / this.get_itemsPerPage();\n },\n\n get_pageCount: function () {\n return Math.max(1, ((this._items.length + this.get_itemsPerPage() - 1) + ((this.showAddButton) ? 1 : 0)) / this.get_itemsPerPage());\n },\n\n paint: function () {\n var $this = this;\n\n var g = this.canvas.getContext('2d');\n g.fillStyle = 'rgb(20, 22, 31)';\n g.fillRect(0, 0, this.width, this.height);\n if (!FolderBrowser._imagesLoaded) {\n return;\n }\n var netHeight = (this.height - 10 * 2);\n var netWidth = (this.width - 10 * 2);\n this.set_rowCount(Math.round(Math.max(netHeight / this._thumbHeight, 1)));\n this.set_colCount(Math.round(Math.max(netWidth / this._horzSpacing, 1)));\n this._horzMultiple = (netWidth + 13) / this.get_colCount();\n this._startIndex = Math.round((this._startIndex / this.get_itemsPerPage()) * this.get_itemsPerPage());\n var rectf;\n var index = this._startIndex;\n for (var y = 0; y < this._rowCount; y++) {\n for (var x = 0; x < this._colCount; x++) {\n if (index >= this._items.length) {\n if (!this._items.length || this.showAddButton) {\n rectf = _util_js__WEBPACK_IMPORTED_MODULE_11__.Rectangle.create(this.left + x * this._horzMultiple + 3 + this._startOffset, this.top + y * this._vertSpacing, this._thumbWidth - 10, 60);\n g.drawImage((this._thumbnailSize === 1) ? FolderBrowser._bmpBackgroundWide : FolderBrowser._bmpBackground, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((x * this._horzMultiple)) + this._startOffset, y * this._vertSpacing);\n }\n break;\n }\n rectf = _util_js__WEBPACK_IMPORTED_MODULE_11__.Rectangle.create(this.left + x * this._horzMultiple + 3 + this._startOffset, this.top + y * this._vertSpacing, this._thumbWidth - 14, 60);\n var textBrush = 'white';\n if (index === this._hoverItem || (index === this._selectedItem && this._hoverItem === -1)) {\n g.drawImage((this._thumbnailSize === 1) ? FolderBrowser._bmpBackgroundWideHover : FolderBrowser._bmpBackgroundHover, this.left + _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((x * this._horzMultiple)) + this._startOffset, this.top + y * this._vertSpacing);\n textBrush = 'yellow';\n }\n else {\n g.drawImage((this._thumbnailSize === 1) ? FolderBrowser._bmpBackgroundWide : FolderBrowser._bmpBackground, this.left + _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((x * this._horzMultiple)) + this._startOffset, this.top + y * this._vertSpacing);\n }\n this._items[index].set_bounds(_util_js__WEBPACK_IMPORTED_MODULE_11__.Rectangle.create((this.left + x * this._horzMultiple) + this._startOffset, this.top + (y * this._vertSpacing), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(this._horzMultiple), this._vertSpacing));\n try {\n var bmpThumb = this._items[index].get_thumbnail();\n if (bmpThumb != null) {\n g.drawImage(bmpThumb, this.left + (x * this._horzMultiple) + 2 + this._startOffset, this.top + y * this._vertSpacing + 3);\n g.strokeStyle = 'rgb(0,0,0)';\n g.rect(this.left + _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((x * this._horzMultiple)) + 2 + this._startOffset, this.top + y * this._vertSpacing + 3, this._items[index].get_thumbnail().width, this._items[index].get_thumbnail().height);\n }\n else {\n this._items[index].set_thumbnail(document.createElement('img'));\n this._items[index].get_thumbnail().src = this._items[index].get_thumbnailUrl();\n this._items[index].get_thumbnail().addEventListener('load', function (e) {\n $this.refresh();\n }, false);\n }\n }\n catch ($e1) {\n }\n g.fillStyle = textBrush;\n g.strokeStyle = textBrush;\n g.lineWidth = 1;\n g.font = 'normal 8pt Arial';\n g.fillText(this._items[index].get_name(), rectf.x, rectf.y + rectf.height, rectf.width);\n index++;\n }\n if (index >= this._items.length) {\n break;\n }\n }\n },\n\n _getItemIndexFromCursor: function (testPointIn) {\n var testPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d.create(testPointIn.x + this.left, testPointIn.y + this.top);\n this.imageClicked = false;\n var index = -1;\n var xpos = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((testPoint.x / this._horzMultiple));\n var xPart = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((testPoint.x % this._horzMultiple));\n if (xpos >= this._colCount) {\n return -1;\n }\n if (xpos < 0) {\n return -1;\n }\n var ypos = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((testPoint.y / this._vertSpacing));\n var yPart = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((testPoint.y % this._vertSpacing));\n if (ypos >= this._rowCount) {\n return -1;\n }\n if (ypos < 0) {\n return -1;\n }\n index = this._startIndex + ypos * this._colCount + xpos;\n if (index === this._items.length) {\n this._addButtonHover = true;\n } else {\n this._addButtonHover = false;\n }\n if (index > this._items.length - 1) {\n return -1;\n }\n if ((this._items[index]).get_isImage() && yPart < 16 && xPart > 78) {\n this.imageClicked = true;\n }\n return index;\n },\n\n _addItems: function (list) {\n this._items = list;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"FolderBrowser\", [FolderBrowser, FolderBrowser$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/folder_up.js\":\n/*!**************************!*\\\n !*** ./esm/folder_up.js ***!\n \\**************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FolderUp: () => (/* binding */ FolderUp)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// An icon for a \"move up one folder\" item.\n\n\n\n\n\n\n\n// wwtlib.FolderUp\n\nfunction FolderUp() {\n this.parent = null;\n this._bounds = new _util_js__WEBPACK_IMPORTED_MODULE_3__.Rectangle();\n}\n\nvar FolderUp$ = {\n get_name: function () {\n return 'Up Level';\n },\n\n get_thumbnail: function () {\n return this._thumbnail;\n },\n\n set_thumbnail: function (value) {\n this._thumbnail = value;\n return value;\n },\n\n get_thumbnailUrl: function () {\n return _url_helpers_js__WEBPACK_IMPORTED_MODULE_2__.URLHelpers.singleton.engineAssetUrl('thumb_folderup.jpg');\n },\n\n set_thumbnailUrl: function (value) {\n return value;\n },\n\n get_bounds: function () {\n return this._bounds;\n },\n\n set_bounds: function (value) {\n this._bounds = value;\n return value;\n },\n\n get_isImage: function () {\n return false;\n },\n\n get_isTour: function () {\n return false;\n },\n\n get_isFolder: function () {\n return false;\n },\n\n get_isCloudCommunityItem: function () {\n return false;\n },\n\n get_readOnly: function () {\n return false;\n },\n\n get_children: function () {\n if (this.parent == null) {\n return [];\n } else {\n return this.parent.get_children();\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"FolderUp\", [FolderUp, FolderUp$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_1__.IThumbnail]);\n\n\n/***/ }),\n\n/***/ \"./esm/fxyf.js\":\n/*!*********************!*\\\n !*** ./esm/fxyf.js ***!\n \\*********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Fxyf: () => (/* binding */ Fxyf)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _healpix_tables_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./healpix_tables.js */ \"./esm/healpix_tables.js\");\n/* harmony import */ var _healpix_utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./healpix_utils.js */ \"./esm/healpix_utils.js\");\n/* harmony import */ var _hploc_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./hploc.js */ \"./esm/hploc.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Numerical routines supporting the Healpix implementation.\n\n\n\n\n\n\n\n\n// wwtlib.Fxyf\n\nfunction Fxyf() {\n // x-coordinate within the basis pixel, range [0.0;1.0]\n this.fx = 0;\n\n // y-coordinate within the basis pixel, range [0.0;1.0]\n this.fy = 0;\n\n // index of the HEALPix basis pixel, range [0;11]\n this.face = 0;\n _healpix_tables_js__WEBPACK_IMPORTED_MODULE_2__.HealpixTables.call(this);\n}\n\nFxyf._halfpi$1 = Math.PI / 2;\nFxyf._inv_halfpi$1 = 2 / Math.PI;\nFxyf._twothird$1 = 2 / 3;\n\nFxyf.create = function (x, y, f) {\n var temp = new Fxyf();\n temp.fx = x;\n temp.fy = y;\n temp.face = f;\n return temp;\n};\n\nFxyf._fromHploc$1 = function (loc) {\n var temp = new Fxyf();\n var z = loc.z, phi = loc.phi;\n var za = Math.abs(z);\n var tt = _healpix_utils_js__WEBPACK_IMPORTED_MODULE_3__.HealpixUtils.fmodulo((phi * Fxyf._inv_halfpi$1), 4); // in [0,4)\n\n if (za <= Fxyf._twothird$1) { // Equatorial region\n var temp1 = 0.5 + tt;\n var temp2 = z * 0.75;\n var jp = temp1 - temp2; // index of ascending edge line\n var jm = temp1 + temp2; // index of descending edge line\n var ifp = jp; // in {0,4}\n var ifm = jm;\n var face_num = (ifp === ifm) ? (ifp | 4) : ((ifp < ifm) ? ifp : (ifm + 8));\n temp.fx = _healpix_utils_js__WEBPACK_IMPORTED_MODULE_3__.HealpixUtils.fmodulo(jm, 1);\n temp.fy = 1 - _healpix_utils_js__WEBPACK_IMPORTED_MODULE_3__.HealpixUtils.fmodulo(jp, 1);\n temp.face = face_num;\n } else { // polar region, za > 2/3\n var ntt = Math.min(3, _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(tt));\n var tp = tt - ntt;\n var tmp;\n if ((za < 0.99) || (!loc.have_sth)) {\n tmp = Math.sqrt(3 * (1 - za));\n } else {\n tmp = loc.sth / Math.sqrt((1 + za) / 3);\n }\n var jp = tp * tmp; // increasing edge line index\n var jm = (1 - tp) * tmp; // decreasing edge line index\n if (jp >= 1) {\n jp = 1; // for points too close to the boundary\n }\n if (jm >= 1) {\n jm = 1;\n }\n if (z >= 0) {\n temp.fx = 1 - jm;\n temp.fy = 1 - jp;\n temp.face = ntt;\n } else {\n temp.fx = jp;\n temp.fy = jm;\n temp.face = ntt + 8;\n }\n }\n return temp;\n};\n\nFxyf.fromVector = function (v) {\n return Fxyf._fromHploc$1(_hploc_js__WEBPACK_IMPORTED_MODULE_4__.Hploc.create(v));\n};\n\nvar Fxyf$ = {\n toHploc: function () {\n var loc = new _hploc_js__WEBPACK_IMPORTED_MODULE_4__.Hploc();\n var jr = _healpix_tables_js__WEBPACK_IMPORTED_MODULE_2__.HealpixTables.jrll[this.face] - this.fx - this.fy;\n var nr;\n var tmp;\n if (jr < 1) {\n nr = jr;\n tmp = nr * nr / 3;\n loc.z = 1 - tmp;\n if (loc.z > 0.99) {\n loc.sth = Math.sqrt(tmp * (2 - tmp));\n loc.have_sth = true;\n }\n } else if (jr > 3) {\n nr = 4 - jr;\n tmp = nr * nr / 3;\n loc.z = tmp - 1;\n if (loc.z < -0.99) {\n loc.sth = Math.sqrt(tmp * (2 - tmp));\n loc.have_sth = true;\n }\n } else {\n nr = 1;\n loc.z = (2 - jr) * 2 / 3;\n }\n tmp = _healpix_tables_js__WEBPACK_IMPORTED_MODULE_2__.HealpixTables.jpll[this.face] * nr + this.fx - this.fy;\n if (tmp < 0) {\n tmp += 8;\n }\n if (tmp >= 8) {\n tmp -= 8;\n }\n loc.phi = (nr < 1E-15) ? 0 : (0.5 * Fxyf._halfpi$1 * tmp) / nr;\n return loc;\n },\n\n toVec3: function () {\n return this.toHploc().toVec3();\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Fxyf\", [Fxyf, Fxyf$, _healpix_tables_js__WEBPACK_IMPORTED_MODULE_2__.HealpixTables]);\n\n\n/***/ }),\n\n/***/ \"./esm/graphics/gl_buffers.js\":\n/*!************************************!*\\\n !*** ./esm/graphics/gl_buffers.js ***!\n \\************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ IndexBuffer: () => (/* binding */ IndexBuffer),\n/* harmony export */ KeplerVertexBuffer: () => (/* binding */ KeplerVertexBuffer),\n/* harmony export */ PositionColoredTexturedVertexBuffer: () => (/* binding */ PositionColoredTexturedVertexBuffer),\n/* harmony export */ PositionColoredVertexBuffer: () => (/* binding */ PositionColoredVertexBuffer),\n/* harmony export */ PositionNormalTexturedTangentVertexBuffer: () => (/* binding */ PositionNormalTexturedTangentVertexBuffer),\n/* harmony export */ PositionNormalTexturedVertexBuffer: () => (/* binding */ PositionNormalTexturedVertexBuffer),\n/* harmony export */ PositionTextureVertexBuffer: () => (/* binding */ PositionTextureVertexBuffer),\n/* harmony export */ PositionVertexBuffer: () => (/* binding */ PositionVertexBuffer),\n/* harmony export */ ShortIndexBuffer: () => (/* binding */ ShortIndexBuffer),\n/* harmony export */ TimeSeriesLineVertexBuffer: () => (/* binding */ TimeSeriesLineVertexBuffer),\n/* harmony export */ TimeSeriesPointVertexBuffer: () => (/* binding */ TimeSeriesPointVertexBuffer),\n/* harmony export */ VertexBufferBase: () => (/* binding */ VertexBufferBase)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// WebGL buffer types.\n\n\n\n\n\n\n\n// wwtlib.ShortIndexBuffer\n\nfunction ShortIndexBuffer(indexes) {\n this.buffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ELEMENT_ARRAY_BUFFER, this.buffer);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ELEMENT_ARRAY_BUFFER, indexes, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.STATIC_DRAW);\n}\n\nvar ShortIndexBuffer$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ShortIndexBuffer\", [ShortIndexBuffer, ShortIndexBuffer$, null]);\n\n\n// wwtlib.IndexBuffer\n\nfunction IndexBuffer(indexes) {\n this.buffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ELEMENT_ARRAY_BUFFER, this.buffer);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ELEMENT_ARRAY_BUFFER, indexes, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.STATIC_DRAW);\n}\n\nvar IndexBuffer$ = {\n dispose: function () {\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ELEMENT_ARRAY_BUFFER, null);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.deleteBuffer(this.buffer);\n this.buffer = null;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"IndexBuffer\", [IndexBuffer, IndexBuffer$, null, _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.IDisposable]);\n\n\n// wwtlib.VertexBufferBase\n\nfunction VertexBufferBase() { }\n\nvar VertexBufferBase$ = {\n dispose: function () {\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, null);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.deleteBuffer(this.vertexBuffer);\n this.vertexBuffer = null;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"VertexBufferBase\", [VertexBufferBase, VertexBufferBase$, null, _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.IDisposable]);\n\n\n// wwtlib.PositionVertexBuffer\n\nfunction PositionVertexBuffer(count) {\n this.count = 0;\n this._verts$1 = null;\n VertexBufferBase.call(this);\n this.count = count;\n}\n\nvar PositionVertexBuffer$ = {\n lock: function () {\n this._verts$1 = new Array(this.count);\n return this._verts$1;\n },\n\n unlock: function () {\n this.vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, this.vertexBuffer);\n var f32array = new Float32Array(this.count * 3);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._verts$1);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n buffer[index++] = pt.x;\n buffer[index++] = pt.y;\n buffer[index++] = pt.z;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, f32array, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.STATIC_DRAW);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionVertexBuffer\", [PositionVertexBuffer, PositionVertexBuffer$, VertexBufferBase]);\n\n\n// wwtlib.PositionTextureVertexBuffer\n\nfunction PositionTextureVertexBuffer(count) {\n this.count = 0;\n this._verts$1 = null;\n VertexBufferBase.call(this);\n this.count = count;\n}\n\nPositionTextureVertexBuffer.create = function (data) {\n var buffer = new PositionTextureVertexBuffer(data.length);\n buffer._verts$1 = data;\n buffer.unlock();\n return buffer;\n};\n\nvar PositionTextureVertexBuffer$ = {\n lock: function () {\n this._verts$1 = new Array(this.count);\n return this._verts$1;\n },\n\n unlock: function () {\n this.vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, this.vertexBuffer);\n var f32array = new Float32Array(this.count * 5);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._verts$1);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n buffer[index++] = pt.position.x;\n buffer[index++] = pt.position.y;\n buffer[index++] = pt.position.z;\n buffer[index++] = pt.tu;\n buffer[index++] = pt.tv;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, f32array, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.STATIC_DRAW);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionTextureVertexBuffer\", [PositionTextureVertexBuffer, PositionTextureVertexBuffer$, VertexBufferBase]);\n\n\n// wwtlib.PositionNormalTexturedVertexBuffer\n\nfunction PositionNormalTexturedVertexBuffer(count) {\n this.count = 0;\n this._verts$1 = null;\n VertexBufferBase.call(this);\n this.count = count;\n}\n\nPositionNormalTexturedVertexBuffer.create = function (data) {\n var buffer = new PositionNormalTexturedVertexBuffer(data.length);\n buffer._verts$1 = data;\n buffer.unlock();\n return buffer;\n};\n\nvar PositionNormalTexturedVertexBuffer$ = {\n lock: function () {\n this._verts$1 = new Array(this.count);\n return this._verts$1;\n },\n\n unlock: function () {\n this.vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, this.vertexBuffer);\n var f32array = new Float32Array(this.count * 8);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._verts$1);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n buffer[index++] = pt.x;\n buffer[index++] = pt.y;\n buffer[index++] = pt.z;\n buffer[index++] = pt.nx;\n buffer[index++] = pt.ny;\n buffer[index++] = pt.nz;\n buffer[index++] = pt.tu;\n buffer[index++] = pt.tv;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, f32array, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.STATIC_DRAW);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionNormalTexturedVertexBuffer\", [PositionNormalTexturedVertexBuffer, PositionNormalTexturedVertexBuffer$, VertexBufferBase]);\n\n\n// wwtlib.PositionNormalTexturedTangentVertexBuffer\n\nfunction PositionNormalTexturedTangentVertexBuffer(count) {\n this.count = 0;\n this._verts$1 = null;\n VertexBufferBase.call(this);\n this.count = count;\n}\n\nPositionNormalTexturedTangentVertexBuffer.create = function (data) {\n var buffer = new PositionNormalTexturedTangentVertexBuffer(data.length);\n buffer._verts$1 = data;\n buffer.unlock();\n return buffer;\n};\n\nvar PositionNormalTexturedTangentVertexBuffer$ = {\n lock: function () {\n this._verts$1 = new Array(this.count);\n return this._verts$1;\n },\n\n unlock: function () {\n this.vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, this.vertexBuffer);\n var f32array = new Float32Array(this.count * 11);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._verts$1);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n buffer[index++] = pt.x;\n buffer[index++] = pt.y;\n buffer[index++] = pt.z;\n buffer[index++] = pt.nx;\n buffer[index++] = pt.ny;\n buffer[index++] = pt.nz;\n buffer[index++] = pt.tanx;\n buffer[index++] = pt.tany;\n buffer[index++] = pt.tanz;\n buffer[index++] = pt.tu;\n buffer[index++] = pt.tv;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, f32array, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.STATIC_DRAW);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionNormalTexturedTangentVertexBuffer\", [PositionNormalTexturedTangentVertexBuffer, PositionNormalTexturedTangentVertexBuffer$, VertexBufferBase]);\n\n\n// wwtlib.KeplerVertexBuffer\n\nfunction KeplerVertexBuffer(count) {\n this.count = 0;\n this._verts$1 = null;\n VertexBufferBase.call(this);\n this.count = count;\n}\n\nKeplerVertexBuffer.create = function (items) {\n var tmp = new KeplerVertexBuffer(items.length);\n tmp._verts$1 = items;\n return tmp;\n};\n\nvar KeplerVertexBuffer$ = {\n lock: function () {\n this._verts$1 = new Array(this.count);\n return this._verts$1;\n },\n\n unlock: function () {\n this.vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, this.vertexBuffer);\n var f32array = new Float32Array(this.count * 19);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._verts$1);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n buffer[index++] = pt.ABC.x;\n buffer[index++] = pt.ABC.y;\n buffer[index++] = pt.ABC.z;\n buffer[index++] = pt.abc1.x;\n buffer[index++] = pt.abc1.y;\n buffer[index++] = pt.abc1.z;\n buffer[index++] = pt.pointSize;\n buffer[index++] = pt.color.r / 255;\n buffer[index++] = pt.color.g / 255;\n buffer[index++] = pt.color.b / 255;\n buffer[index++] = pt.color.a / 255;\n buffer[index++] = pt.w;\n buffer[index++] = pt.e;\n buffer[index++] = pt.n;\n buffer[index++] = pt.t;\n buffer[index++] = pt.a;\n buffer[index++] = pt.z;\n buffer[index++] = pt.orbitPos;\n buffer[index++] = pt.orbits;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, f32array, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.STATIC_DRAW);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"KeplerVertexBuffer\", [KeplerVertexBuffer, KeplerVertexBuffer$, VertexBufferBase]);\n\n\n// wwtlib.TimeSeriesLineVertexBuffer\n\nfunction TimeSeriesLineVertexBuffer(count) {\n this.count = 0;\n this._verts$1 = null;\n VertexBufferBase.call(this);\n this.count = count;\n}\n\nvar TimeSeriesLineVertexBuffer$ = {\n lock: function () {\n this._verts$1 = new Array(this.count);\n return this._verts$1;\n },\n\n unlock: function () {\n this.vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, this.vertexBuffer);\n var f32array = new Float32Array(this.count * 9);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._verts$1);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n buffer[index++] = pt.position.x;\n buffer[index++] = pt.position.y;\n buffer[index++] = pt.position.z;\n buffer[index++] = pt.get_color().r / 255;\n buffer[index++] = pt.get_color().g / 255;\n buffer[index++] = pt.get_color().b / 255;\n buffer[index++] = pt.get_color().a / 255;\n buffer[index++] = pt.tu;\n buffer[index++] = pt.tv;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, f32array, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.STATIC_DRAW);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TimeSeriesLineVertexBuffer\", [TimeSeriesLineVertexBuffer, TimeSeriesLineVertexBuffer$, VertexBufferBase]);\n\n\n// wwtlib.TimeSeriesPointVertexBuffer\n\nfunction TimeSeriesPointVertexBuffer(count) {\n this.count = 0;\n this._verts$1 = null;\n VertexBufferBase.call(this);\n this.count = count;\n}\n\nvar TimeSeriesPointVertexBuffer$ = {\n lock: function () {\n this._verts$1 = new Array(this.count);\n return this._verts$1;\n },\n\n unlock: function () {\n this.vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, this.vertexBuffer);\n var f32array = new Float32Array(this.count * 10);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._verts$1);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n buffer[index++] = pt.position.x;\n buffer[index++] = pt.position.y;\n buffer[index++] = pt.position.z;\n buffer[index++] = pt.get_color().r / 255;\n buffer[index++] = pt.get_color().g / 255;\n buffer[index++] = pt.get_color().b / 255;\n buffer[index++] = pt.get_color().a / 255;\n buffer[index++] = pt.tu;\n buffer[index++] = pt.tv;\n buffer[index++] = pt.pointSize;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, f32array, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.STATIC_DRAW);\n },\n\n dispose: function () {\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, null);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.deleteBuffer(this.vertexBuffer);\n this.vertexBuffer = null;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TimeSeriesPointVertexBuffer\", [TimeSeriesPointVertexBuffer, TimeSeriesPointVertexBuffer$, VertexBufferBase]);\n\n\n// wwtlib.PositionColoredVertexBuffer\n\nfunction PositionColoredVertexBuffer(count) {\n this.count = 0;\n this._verts$1 = null;\n VertexBufferBase.call(this);\n this.count = count;\n}\n\nvar PositionColoredVertexBuffer$ = {\n lock: function () {\n this._verts$1 = new Array(this.count);\n return this._verts$1;\n },\n\n unlock: function () {\n this.vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, this.vertexBuffer);\n var f32array = new Float32Array(this.count * 7);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._verts$1);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n buffer[index++] = pt.position.x;\n buffer[index++] = pt.position.y;\n buffer[index++] = pt.position.z;\n buffer[index++] = pt.color.r / 255;\n buffer[index++] = pt.color.g / 255;\n buffer[index++] = pt.color.b / 255;\n buffer[index++] = pt.color.a / 255;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, f32array, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.STATIC_DRAW);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionColoredVertexBuffer\", [PositionColoredVertexBuffer, PositionColoredVertexBuffer$, VertexBufferBase]);\n\n\n// wwtlib.PositionColoredTexturedVertexBuffer\n\nfunction PositionColoredTexturedVertexBuffer(count) {\n this.count = 0;\n this._verts$1 = null;\n VertexBufferBase.call(this);\n this.count = count;\n}\n\nvar PositionColoredTexturedVertexBuffer$ = {\n lock: function () {\n this._verts$1 = new Array(this.count);\n return this._verts$1;\n },\n\n unlock: function () {\n this.vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, this.vertexBuffer);\n var f32array = new Float32Array(this.count * 9);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._verts$1);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n buffer[index++] = pt.position.x;\n buffer[index++] = pt.position.y;\n buffer[index++] = pt.position.z;\n buffer[index++] = pt.color.r / 255;\n buffer[index++] = pt.color.g / 255;\n buffer[index++] = pt.color.b / 255;\n buffer[index++] = pt.color.a / 255;\n buffer[index++] = pt.tu;\n buffer[index++] = pt.tv;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, f32array, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.STATIC_DRAW);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PositionColoredTexturedVertexBuffer\", [PositionColoredTexturedVertexBuffer, PositionColoredTexturedVertexBuffer$, VertexBufferBase]);\n\n\n/***/ }),\n\n/***/ \"./esm/graphics/primitives3d.js\":\n/*!**************************************!*\\\n !*** ./esm/graphics/primitives3d.js ***!\n \\**************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CullMode: () => (/* binding */ CullMode),\n/* harmony export */ DataItem: () => (/* binding */ DataItem),\n/* harmony export */ Dates: () => (/* binding */ Dates),\n/* harmony export */ LineList: () => (/* binding */ LineList),\n/* harmony export */ OrbitLineList: () => (/* binding */ OrbitLineList),\n/* harmony export */ PointList: () => (/* binding */ PointList),\n/* harmony export */ PointScaleTypes: () => (/* binding */ PointScaleTypes),\n/* harmony export */ SimpleLineList: () => (/* binding */ SimpleLineList),\n/* harmony export */ TimeSeriesLineVertex: () => (/* binding */ TimeSeriesLineVertex),\n/* harmony export */ TimeSeriesPointVertex: () => (/* binding */ TimeSeriesPointVertex),\n/* harmony export */ TriangleFanList: () => (/* binding */ TriangleFanList),\n/* harmony export */ TriangleList: () => (/* binding */ TriangleList)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./gl_buffers.js */ \"./esm/graphics/gl_buffers.js\");\n/* harmony import */ var _texture_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _shaders_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./shaders.js */ \"./esm/graphics/shaders.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Various GL primitives.\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.CullMode\n\nvar CullMode = {\n none: 0,\n counterClockwise: 2,\n clockwise: 1\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"CullMode\", CullMode);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerEnum)(\"CullMode\", CullMode);\n\n\n// wwtlib.PointScaleTypes\n\nvar PointScaleTypes = {\n linear: 0,\n power: 1,\n log: 2,\n constant: 3,\n stellarMagnitude: 4\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PointScaleTypes\", PointScaleTypes);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerEnum)(\"PointScaleTypes\", PointScaleTypes);\n\n\n// wwtlib.DataItem\n//\n// This type was originally defined in VizLayer.cs, but it's quite simple\n// and is used here.\n\nfunction DataItem() {\n this.size = 0;\n}\n\nvar DataItem$ = {\n getColor: function () {\n return 'Red';\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"DataItem\", [DataItem, DataItem$, null]);\n\n\n// wwtlib.Dates\n\nfunction Dates(start, end) {\n this.startDate = 0;\n this.endDate = 0;\n this.startDate = start;\n this.endDate = end;\n}\n\nDates.empty = function () {\n return new Dates(0, 0);\n};\n\nvar Dates$ = {\n copy: function () {\n return new Dates(this.startDate, this.endDate);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Dates\", [Dates, Dates$, null]);\n\n\n// wwtlib.SimpleLineList\n\nfunction SimpleLineList() {\n this._zBuffer = true;\n this._linePoints = [];\n this._usingLocalCenter = false;\n this.sky = true;\n this.aaFix = true;\n this.pure2D = false;\n this.viewTransform = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n this._lineBuffers = [];\n this._lineBufferCounts = [];\n this.useLocalCenters = false;\n}\n\nvar SimpleLineList$ = {\n get_depthBuffered: function () {\n return this._zBuffer;\n },\n\n set_depthBuffered: function (value) {\n this._zBuffer = value;\n return value;\n },\n\n addLine: function (v1, v2) {\n this._linePoints.push(v1);\n this._linePoints.push(v2);\n this._emptyLineBuffer();\n },\n\n clear: function () {\n this._linePoints.length = 0;\n this._emptyLineBuffer();\n },\n\n drawLines: function (renderContext, opacity, color) {\n if (this._linePoints.length < 2) {\n return;\n }\n this._initLineBuffer(renderContext);\n var count = this._linePoints.length;\n if (renderContext.gl == null) {\n var viewPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d._transformCoordinate(renderContext.get_viewPoint(), this.viewTransform);\n var ctx = renderContext.device;\n ctx.save();\n ctx.strokeStyle = color.toString();\n ctx.lineWidth = 2;\n ctx.globalAlpha = 0.25;\n var firstPoint = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var secondPoint = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n for (var i = 0; i < count; i += 2) {\n firstPoint = renderContext.WVP.transform(this._linePoints[i]);\n secondPoint = renderContext.WVP.transform(this._linePoints[i + 1]);\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(this._linePoints[i], viewPoint) > 0.6) {\n ctx.beginPath();\n ctx.moveTo(firstPoint.x, firstPoint.y);\n ctx.lineTo(secondPoint.x, secondPoint.y);\n ctx.stroke();\n }\n }\n ctx.restore();\n } else {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._lineBuffers);\n while ($enum1.moveNext()) {\n var lineBuffer = $enum1.current;\n if (this.pure2D) {\n _shaders_js__WEBPACK_IMPORTED_MODULE_8__.SimpleLineShader2D.use(renderContext, lineBuffer.vertexBuffer, color, this._zBuffer);\n }\n else {\n _shaders_js__WEBPACK_IMPORTED_MODULE_8__.SimpleLineShader.use(renderContext, lineBuffer.vertexBuffer, color, this._zBuffer);\n }\n renderContext.gl.drawArrays(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.LINES, 0, lineBuffer.count);\n }\n }\n },\n\n _initLineBuffer: function (renderContext) {\n if (renderContext.gl != null) {\n if (!this._lineBuffers.length) {\n var count = this._linePoints.length;\n var lineBuffer = null;\n var linePointList = null;\n this._localCenter = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n if (this.get_depthBuffered()) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._linePoints);\n\n // compute the local center\n while ($enum1.moveNext()) {\n var point = $enum1.current;\n this._localCenter.add(point);\n }\n this._localCenter.x /= count;\n this._localCenter.y /= count;\n this._localCenter.z /= count;\n }\n var countLeft = count;\n var index = 0;\n var counter = 0;\n var temp;\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._linePoints);\n while ($enum2.moveNext()) {\n var point = $enum2.current;\n if (counter >= 100000 || linePointList == null) {\n if (lineBuffer != null) {\n lineBuffer.unlock();\n }\n var thisCount = Math.min(100000, countLeft);\n countLeft -= thisCount;\n lineBuffer = new _gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__.PositionVertexBuffer(thisCount);\n linePointList = lineBuffer.lock(); // Lock the buffer (which will return our structs)\n this._lineBuffers.push(lineBuffer);\n this._lineBufferCounts.push(thisCount);\n counter = 0;\n }\n if (this.useLocalCenters) {\n temp = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(point, this._localCenter);\n linePointList[counter] = temp;\n }\n else {\n linePointList[counter] = point;\n }\n index++;\n counter++;\n }\n if (lineBuffer != null) {\n lineBuffer.unlock();\n }\n }\n }\n },\n\n _emptyLineBuffer: function () { }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"SimpleLineList\", [SimpleLineList, SimpleLineList$, null]);\n\n\n// wwtlib.OrbitLineList\n\nfunction OrbitLineList() {\n this._zBuffer = true;\n this._linePoints = [];\n this._lineColors = [];\n this.sky = true;\n this.aaFix = true;\n this.viewTransform = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n this._lineBuffers = [];\n this._lineBufferCounts = [];\n this.useLocalCenters = false;\n}\n\nvar OrbitLineList$ = {\n get_depthBuffered: function () {\n return this._zBuffer;\n },\n\n set_depthBuffered: function (value) {\n this._zBuffer = value;\n return value;\n },\n\n addLine: function (v1, v2, c1, c2) {\n this._linePoints.push(v1);\n this._lineColors.push(c1);\n this._linePoints.push(v2);\n this._lineColors.push(c2);\n this._emptyLineBuffer();\n },\n\n clear: function () {\n this._linePoints.length = 0;\n this._emptyLineBuffer();\n },\n\n drawLines: function (renderContext, opacity, color) {\n if (this._linePoints.length < 2) {\n return;\n }\n this._initLineBuffer(renderContext);\n var count = this._linePoints.length;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._lineBuffers);\n while ($enum1.moveNext()) {\n var lineBuffer = $enum1.current;\n _shaders_js__WEBPACK_IMPORTED_MODULE_8__.OrbitLineShader.use(renderContext, lineBuffer.vertexBuffer, color);\n renderContext.gl.drawArrays(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.LINES, 0, lineBuffer.count);\n }\n },\n\n _initLineBuffer: function (renderContext) {\n if (renderContext.gl != null) {\n if (!this._lineBuffers.length) {\n var count = this._linePoints.length;\n var lineBuffer = null;\n var linePointList = null;\n this._localCenter = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n if (this.get_depthBuffered()) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._linePoints);\n\n // compute the local center\n while ($enum1.moveNext()) {\n var point = $enum1.current;\n this._localCenter.add(point);\n }\n this._localCenter.x /= count;\n this._localCenter.y /= count;\n this._localCenter.z /= count;\n }\n var countLeft = count;\n var index = 0;\n var counter = 0;\n var temp;\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._linePoints);\n while ($enum2.moveNext()) {\n var point = $enum2.current;\n if (counter >= 100000 || linePointList == null) {\n if (lineBuffer != null) {\n lineBuffer.unlock();\n }\n var thisCount = Math.min(100000, countLeft);\n countLeft -= thisCount;\n lineBuffer = new _gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__.PositionColoredVertexBuffer(thisCount);\n linePointList = lineBuffer.lock(); // Lock the buffer (which will return our structs)\n this._lineBuffers.push(lineBuffer);\n this._lineBufferCounts.push(thisCount);\n counter = 0;\n }\n if (this.useLocalCenters) {\n temp = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(point, this._localCenter);\n linePointList[counter] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColored(temp, this._lineColors[index]);\n }\n else {\n linePointList[counter] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColored(point, this._lineColors[index]);\n }\n index++;\n counter++;\n }\n if (lineBuffer != null) {\n lineBuffer.unlock();\n }\n }\n }\n },\n\n _emptyLineBuffer: function () {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._lineBuffers);\n while ($enum1.moveNext()) {\n var lineBuffer = $enum1.current;\n lineBuffer.dispose();\n }\n this._lineBuffers.length = 0;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"OrbitLineList\", [OrbitLineList, OrbitLineList$, null]);\n\n\n// wwtlib.LineList\n\nfunction LineList() {\n this._zBuffer = true;\n this.timeSeries = false;\n this.showFarSide = true;\n this.sky = false;\n this.decay = 0;\n this.useNonRotatingFrame = false;\n this.jNow = 0;\n this._linePoints = [];\n this._lineColors = [];\n this._lineDates = [];\n this._usingLocalCenter = true;\n this._lineBuffers = [];\n this._lineBufferCounts = [];\n}\n\nvar LineList$ = {\n get_depthBuffered: function () {\n return this._zBuffer;\n },\n\n set_depthBuffered: function (value) {\n this._zBuffer = value;\n return value;\n },\n\n addLine: function (v1, v2, color, date) {\n this._linePoints.push(v1);\n this._linePoints.push(v2);\n this._lineColors.push(color);\n this._lineDates.push(date);\n this._emptyLineBuffer();\n },\n\n addLineNoDate: function (v1, v2, color) {\n this._linePoints.push(v1);\n this._linePoints.push(v2);\n this._lineColors.push(color);\n this._lineDates.push(new Dates(0, 0));\n this._emptyLineBuffer();\n },\n\n clear: function () {\n this._linePoints.length = 0;\n this._lineColors.length = 0;\n this._lineDates.length = 0;\n },\n\n drawLines: function (renderContext, opacity) {\n if (this._linePoints.length < 2 || opacity <= 0) {\n return;\n }\n if (renderContext.gl == null) {\n //todo draw with HTML5\n } else {\n this._initLineBuffer();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._lineBuffers);\n while ($enum1.moveNext()) {\n var lineBuffer = $enum1.current;\n _shaders_js__WEBPACK_IMPORTED_MODULE_8__.LineShaderNormalDates.use(renderContext, lineBuffer.vertexBuffer, _color_js__WEBPACK_IMPORTED_MODULE_3__.Color.fromArgb(255, 255, 255, 255), this._zBuffer, this.jNow, (this.timeSeries) ? this.decay : 0);\n renderContext.gl.drawArrays(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.LINES, 0, lineBuffer.count);\n }\n }\n },\n\n _initLineBuffer: function () {\n if (!this._lineBuffers.length) {\n var count = this._linePoints.length;\n var lineBuffer = null;\n var linePointList = null;\n var countLeft = count;\n var index = 0;\n var counter = 0;\n var temp;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._linePoints);\n while ($enum1.moveNext()) {\n var point = $enum1.current;\n if (counter >= 100000 || linePointList == null) {\n if (lineBuffer != null) {\n lineBuffer.unlock();\n }\n var thisCount = Math.min(100000, countLeft);\n countLeft -= thisCount;\n lineBuffer = new _gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__.TimeSeriesLineVertexBuffer(thisCount);\n linePointList = lineBuffer.lock(); // Lock the buffer (which will return our structs)\n this._lineBuffers.push(lineBuffer);\n this._lineBufferCounts.push(thisCount);\n counter = 0;\n }\n var div2 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((index / 2));\n temp = point; // -localCenter;\n linePointList[counter] = new TimeSeriesLineVertex();\n linePointList[counter].position = temp;\n linePointList[counter].normal = point;\n linePointList[counter].tu = this._lineDates[div2].startDate;\n linePointList[counter].tv = this._lineDates[div2].endDate;\n linePointList[counter].set_color(this._lineColors[div2]);\n index++;\n counter++;\n }\n if (lineBuffer != null) {\n lineBuffer.unlock();\n }\n }\n },\n\n _emptyLineBuffer: function () { }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"LineList\", [LineList, LineList$, null]);\n\n\n// wwtlib.TriangleList\n\nfunction TriangleList() {\n this._trianglePoints = [];\n this._triangleColors = [];\n this._triangleDates = [];\n this.timeSeries = false;\n this.showFarSide = false;\n this.sky = false;\n this.depthBuffered = true;\n this.writeZbuffer = false;\n this.decay = 0;\n this.autoTime = true;\n this.jNow = 0;\n this._dataToDraw = false;\n this._triangleBuffers = [];\n this._triangleBufferCounts = [];\n}\n\nvar TriangleList$ = {\n addTriangle: function (v1, v2, v3, color, date) {\n this._trianglePoints.push(v1);\n this._trianglePoints.push(v2);\n this._trianglePoints.push(v3);\n this._triangleColors.push(color);\n this._triangleDates.push(date);\n this._emptyTriangleBuffer();\n },\n\n addSubdividedTriangles: function (v1, v2, v3, color, date, subdivisions) {\n subdivisions--;\n if (subdivisions < 0) {\n this.addTriangle(v1, v2, v3, color, date);\n } else {\n var v12;\n var v23;\n var v31;\n v12 = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.midPointByLength(v1, v2);\n v23 = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.midPointByLength(v2, v3);\n v31 = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.midPointByLength(v3, v1);\n this.addSubdividedTriangles(v1, v12, v31, color, date, subdivisions);\n this.addSubdividedTriangles(v12, v23, v31, color, date, subdivisions);\n this.addSubdividedTriangles(v12, v2, v23, color, date, subdivisions);\n this.addSubdividedTriangles(v23, v3, v31, color, date, subdivisions);\n }\n },\n\n addQuad: function (v1, v2, v3, v4, color, date) {\n this._trianglePoints.push(v1);\n this._trianglePoints.push(v3);\n this._trianglePoints.push(v2);\n this._trianglePoints.push(v2);\n this._trianglePoints.push(v3);\n this._trianglePoints.push(v4);\n this._triangleColors.push(color);\n this._triangleDates.push(date);\n this._triangleColors.push(color);\n this._triangleDates.push(date);\n this._emptyTriangleBuffer();\n },\n\n clear: function () {\n this._triangleColors.length = 0;\n this._trianglePoints.length = 0;\n this._triangleDates.length = 0;\n this._emptyTriangleBuffer();\n },\n\n _emptyTriangleBuffer: function () { },\n\n _initTriangleBuffer: function () {\n if (!this._triangleBuffers.length) {\n var count = this._trianglePoints.length;\n var triangleBuffer = null;\n var triPointList = null;\n var countLeft = count;\n var index = 0;\n var counter = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._trianglePoints);\n while ($enum1.moveNext()) {\n var point = $enum1.current;\n if (counter >= 90000 || triangleBuffer == null) {\n if (triangleBuffer != null) {\n triangleBuffer.unlock();\n }\n var thisCount = Math.min(90000, countLeft);\n countLeft -= thisCount;\n triangleBuffer = new _gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__.TimeSeriesLineVertexBuffer(thisCount);\n this._triangleBuffers.push(triangleBuffer);\n this._triangleBufferCounts.push(thisCount);\n triPointList = triangleBuffer.lock(); // Lock the buffer (which will return our structs)\n counter = 0;\n }\n triPointList[counter] = new TimeSeriesLineVertex();\n triPointList[counter].position = point;\n triPointList[counter].normal = point;\n var div3 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((index / 3));\n triPointList[counter].set_color(this._triangleColors[div3]);\n triPointList[counter].tu = this._triangleDates[div3].startDate;\n triPointList[counter].tv = this._triangleDates[div3].endDate;\n index++;\n counter++;\n }\n if (triangleBuffer != null) {\n triangleBuffer.unlock();\n }\n this._triangleColors.length = 0;\n this._triangleDates.length = 0;\n this._trianglePoints.length = 0;\n this._dataToDraw = true;\n }\n },\n\n draw: function (renderContext, opacity, cull) {\n if (this._trianglePoints.length < 1 && !this._dataToDraw) {\n return;\n }\n if (renderContext.gl == null) {\n //todo implement HTML5 version\n } else {\n this._initTriangleBuffer();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._triangleBuffers);\n while ($enum1.moveNext()) {\n var triBuffer = $enum1.current;\n _shaders_js__WEBPACK_IMPORTED_MODULE_8__.LineShaderNormalDates.use(renderContext, triBuffer.vertexBuffer, _color_js__WEBPACK_IMPORTED_MODULE_3__.Color.fromArgb(255, 255, 255, 255), this.depthBuffered, this.jNow, (this.timeSeries) ? this.decay : 0);\n renderContext.gl.drawArrays(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TRIANGLES, 0, triBuffer.count);\n }\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TriangleList\", [TriangleList, TriangleList$, null]);\n\n\n// wwtlib.TriangleFanList\n\nfunction TriangleFanList() {\n this._zBuffer = true;\n this.timeSeries = false;\n this.decay = 0;\n this.jNow = 0;\n this._shapes = [];\n this._colors = [];\n this._dates = [];\n this._buffers = [];\n this._bufferCounts = [];\n}\n\nvar TriangleFanList$ = {\n get_depthBuffered: function () {\n return this._zBuffer;\n },\n\n set_depthBuffered: function (value) {\n this._zBuffer = value;\n return value;\n },\n\n addShape: function (shapePoints, color, date) {\n this._shapes.push(shapePoints);\n this._colors.push(color);\n this._dates.push(date);\n },\n\n draw: function (renderContext, opacity) {\n if (opacity <= 0) {\n return;\n }\n if (renderContext.gl != null) {\n this._initBuffer();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._buffers);\n while ($enum1.moveNext()) {\n var buffer = $enum1.current;\n _shaders_js__WEBPACK_IMPORTED_MODULE_8__.LineShaderNormalDates.use(renderContext, buffer.vertexBuffer, _color_js__WEBPACK_IMPORTED_MODULE_3__.Color.fromArgb(255, 255, 255, 255), this._zBuffer, this.jNow, (this.timeSeries) ? this.decay : 0);\n renderContext.gl.drawArrays(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TRIANGLE_FAN, 0, buffer.count);\n }\n }\n },\n\n _initBuffer: function () {\n if (this._buffers.length !== this._shapes.length) {\n this._buffers.length = 0;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._shapes);\n while ($enum1.moveNext()) {\n var shape = $enum1.current;\n var buffer = new _gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__.TimeSeriesLineVertexBuffer(shape.length);\n var pointList = buffer.lock(); // Lock the buffer (which will return our structs)\n this._buffers.push(buffer);\n this._bufferCounts.push(shape.length);\n var counter = 0;\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(shape);\n while ($enum2.moveNext()) {\n var point = $enum2.current;\n pointList[counter] = new TimeSeriesLineVertex();\n pointList[counter].position = point;\n pointList[counter].tu = this._dates[index].startDate;\n pointList[counter].tv = this._dates[index].endDate;\n pointList[counter].set_color(this._colors[index]);\n counter++;\n }\n index++;\n if (buffer != null) {\n buffer.unlock();\n }\n }\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TriangleFanList\", [TriangleFanList, TriangleFanList$, null]);\n\n\n// wwtlib.PointList\n\nfunction PointList(device) {\n this._points = [];\n this._colors = [];\n this._dates = [];\n this._sizes = [];\n this.timeSeries = false;\n this.showFarSide = false;\n this.sky = false;\n this.depthBuffered = true;\n this.decay = 0;\n this.scale = 1;\n this.autoTime = true;\n this.jNow = 0;\n this._dataToDraw = false;\n this.items = [];\n this._imageReady = false;\n this._init = false;\n this.minSize = 2;\n this._pointBuffers = [];\n this._pointBufferCounts = [];\n this._device = device;\n}\n\nPointList.starTexture = null;\n\nvar PointList$ = {\n addPoint: function (v1, color, date, size) {\n this._points.push(v1);\n this._colors.push(color._clone());\n this._dates.push(date);\n this._sizes.push(size);\n this._emptyPointBuffer();\n },\n\n clear: function () {\n this._colors.length = 0;\n this._points.length = 0;\n this._dates.length = 0;\n this._sizes.length = 0;\n this._emptyPointBuffer();\n },\n\n _emptyPointBuffer: function () {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._pointBuffers);\n while ($enum1.moveNext()) {\n var pointBuffer = $enum1.current;\n pointBuffer.dispose();\n }\n this._pointBuffers.length = 0;\n this._init = false;\n },\n\n _initBuffer: function (renderContext) {\n var $this = this;\n\n if (!this._init) {\n if (renderContext.gl == null) {\n this._starProfile = document.createElement('img');\n this._starProfile.addEventListener('load', function (e) {\n $this._imageReady = true;\n }, false);\n this._starProfile.src = _url_helpers_js__WEBPACK_IMPORTED_MODULE_4__.URLHelpers.singleton.engineAssetUrl('StarProfileAlpha.png');\n this._worldList = new Array(this._points.length);\n this._transformedList = new Array(this._points.length);\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._points);\n while ($enum1.moveNext()) {\n // todo filter by date\n var pnt = $enum1.current;\n var item = new DataItem();\n item.location = pnt;\n item.tranformed = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n item.size = this._sizes[index];\n item.color = this._colors[index];\n this._worldList[index] = item.location;\n this._transformedList[index] = item.tranformed;\n this.items.push(item);\n index++;\n }\n } else {\n if (!this._pointBuffers.length) {\n if (PointList.starTexture == null) {\n PointList.starTexture = _texture_js__WEBPACK_IMPORTED_MODULE_7__.Texture.fromUrl(_url_helpers_js__WEBPACK_IMPORTED_MODULE_4__.URLHelpers.singleton.engineAssetUrl('StarProfileAlpha.png'));\n }\n var count = this._points.length;\n var pointBuffer = null;\n var pointList = null;\n var countLeft = count;\n var index = 0;\n var counter = 0;\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._points);\n while ($enum2.moveNext()) {\n var point = $enum2.current;\n if (counter >= 100000 || pointList == null) {\n if (pointBuffer != null) {\n pointBuffer.unlock();\n }\n var thisCount = Math.min(100000, countLeft);\n countLeft -= thisCount;\n pointBuffer = new _gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__.TimeSeriesPointVertexBuffer(thisCount);\n pointList = pointBuffer.lock(); // Lock the buffer (which will return our structs)\n this._pointBuffers.push(pointBuffer);\n this._pointBufferCounts.push(thisCount);\n counter = 0;\n }\n pointList[counter] = new TimeSeriesPointVertex();\n pointList[counter].position = point;\n pointList[counter].pointSize = this._sizes[index];\n pointList[counter].tu = this._dates[index].startDate;\n pointList[counter].tv = this._dates[index].endDate;\n pointList[counter].set_color(this._colors[index]);\n index++;\n counter++;\n }\n if (pointBuffer != null) {\n pointBuffer.unlock();\n }\n }\n }\n this._init = true;\n }\n },\n\n draw: function (renderContext, opacity, cull) {\n this._initBuffer(renderContext);\n if (renderContext.gl == null) {\n if (!this._imageReady) {\n return;\n }\n renderContext.device.save();\n renderContext.WVP.projectArrayToScreen(this._worldList, this._transformedList);\n var ctx = renderContext.device;\n ctx.globalAlpha = 0.4;\n var width = renderContext.width;\n var height = renderContext.height;\n var viewPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.makeCopy(renderContext.get_viewPoint());\n var scaleFactor = renderContext.get_fovScale() / 100;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this.items);\n while ($enum1.moveNext()) {\n // todo filter by date\n var item = $enum1.current;\n if (item.tranformed.z < 1) {\n var x = item.tranformed.x;\n var y = item.tranformed.y;\n var size = 0.1 * item.size / scaleFactor;\n var half = size / 2;\n if (x > -half && x < width + half && y > -half && y < height + half) {\n ctx.beginPath();\n ctx.fillStyle = item.color.toFormat();\n ctx.arc(x, y, size, 0, Math.PI * 2, true);\n ctx.fill();\n }\n }\n }\n renderContext.device.restore();\n } else {\n var zero = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var matInv = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n matInv.invert();\n var cam = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d._transformCoordinate(zero, matInv);\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._pointBuffers);\n while ($enum2.moveNext()) {\n var pointBuffer = $enum2.current;\n _shaders_js__WEBPACK_IMPORTED_MODULE_8__.TimeSeriesPointSpriteShader.use(renderContext, pointBuffer.vertexBuffer, PointList.starTexture.texture2d, _color_js__WEBPACK_IMPORTED_MODULE_3__.Color.fromArgb(255 * opacity, 255, 255, 255), this.depthBuffered, this.jNow, (this.timeSeries) ? this.decay : 0, cam, (this.scale * (renderContext.height / 960)), this.minSize, this.showFarSide, this.sky);\n renderContext.gl.drawArrays(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.POINTS, 0, pointBuffer.count);\n }\n }\n },\n\n drawTextured: function (renderContext, texture, opacity) {\n this._initBuffer(renderContext);\n var zero = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var matInv = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n matInv.invert();\n var cam = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d._transformCoordinate(zero, matInv);\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this._pointBuffers);\n while ($enum1.moveNext()) {\n var pointBuffer = $enum1.current;\n _shaders_js__WEBPACK_IMPORTED_MODULE_8__.TimeSeriesPointSpriteShader.use(renderContext, pointBuffer.vertexBuffer, texture, _color_js__WEBPACK_IMPORTED_MODULE_3__.Color.fromArgb(255 * opacity, 255, 255, 255), this.depthBuffered, this.jNow, this.decay, cam, (this.scale * (renderContext.height / 960)), this.minSize, this.showFarSide, this.sky);\n renderContext.gl.drawArrays(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.POINTS, 0, pointBuffer.count);\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PointList\", [PointList, PointList$, null]);\n\n\n// wwtlib.TimeSeriesLineVertex\n\nfunction TimeSeriesLineVertex() {\n this.position = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this.normal = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this.tu = 0;\n this.tv = 0;\n}\n\nTimeSeriesLineVertex.create = function (position, normal, time, color) {\n var temp = new TimeSeriesLineVertex();\n temp.position = position;\n temp.normal = normal;\n temp.tu = time;\n temp.tv = 0;\n temp.color = color;\n return temp;\n};\n\nvar TimeSeriesLineVertex$ = {\n get_color: function () {\n return this.color;\n },\n\n set_color: function (value) {\n this.color = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TimeSeriesLineVertex\", [TimeSeriesLineVertex, TimeSeriesLineVertex$, null]);\n\n\n// wwtlib.TimeSeriesPointVertex\n\nfunction TimeSeriesPointVertex() {\n this.pointSize = 0;\n this.tu = 0;\n this.tv = 0;\n}\n\nTimeSeriesPointVertex.create = function (position, size, time, color) {\n var tmp = new TimeSeriesPointVertex();\n tmp.position = position;\n tmp.pointSize = size;\n tmp.tu = time;\n tmp.tv = 0;\n tmp.color = color;\n return tmp;\n};\n\nvar TimeSeriesPointVertex$ = {\n get_color: function () {\n return this.color;\n },\n\n set_color: function (value) {\n this.color = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TimeSeriesPointVertex\", [TimeSeriesPointVertex, TimeSeriesPointVertex$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/graphics/shaders.js\":\n/*!*********************************!*\\\n !*** ./esm/graphics/shaders.js ***!\n \\*********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EllipseShader: () => (/* binding */ EllipseShader),\n/* harmony export */ FitsShader: () => (/* binding */ FitsShader),\n/* harmony export */ ImageShader: () => (/* binding */ ImageShader),\n/* harmony export */ ImageShader2: () => (/* binding */ ImageShader2),\n/* harmony export */ KeplerPointSpriteShader: () => (/* binding */ KeplerPointSpriteShader),\n/* harmony export */ LineShaderNormalDates: () => (/* binding */ LineShaderNormalDates),\n/* harmony export */ ModelShader: () => (/* binding */ ModelShader),\n/* harmony export */ ModelShaderTan: () => (/* binding */ ModelShaderTan),\n/* harmony export */ OrbitLineShader: () => (/* binding */ OrbitLineShader),\n/* harmony export */ ShapeSpriteShader: () => (/* binding */ ShapeSpriteShader),\n/* harmony export */ SimpleLineShader: () => (/* binding */ SimpleLineShader),\n/* harmony export */ SimpleLineShader2D: () => (/* binding */ SimpleLineShader2D),\n/* harmony export */ SpriteShader: () => (/* binding */ SpriteShader),\n/* harmony export */ TextShader: () => (/* binding */ TextShader),\n/* harmony export */ TileShader: () => (/* binding */ TileShader),\n/* harmony export */ TimeSeriesPointSpriteShader: () => (/* binding */ TimeSeriesPointSpriteShader)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _texture_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./texture.js */ \"./esm/graphics/texture.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Core WebGL shaders for the WWT engine.\n\n\n\n\n\n\n\n\n\n// wwtlib.SimpleLineShader\n\nfunction SimpleLineShader() { }\n\nSimpleLineShader.vertLoc = 0;\nSimpleLineShader.initialized = false;\nSimpleLineShader._prog = null;\n\nSimpleLineShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision highp float;\n uniform vec4 lineColor;\n\n void main(void) {\n gl_FragColor = lineColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n\n void main(void) {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n }\n `;\n\n SimpleLineShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(SimpleLineShader._frag, fragShaderText);\n gl.compileShader(SimpleLineShader._frag);\n var stat = gl.getShaderParameter(SimpleLineShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n SimpleLineShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(SimpleLineShader._vert, vertexShaderText);\n gl.compileShader(SimpleLineShader._vert);\n var stat1 = gl.getShaderParameter(SimpleLineShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n SimpleLineShader._prog = gl.createProgram();\n gl.attachShader(SimpleLineShader._prog, SimpleLineShader._vert);\n gl.attachShader(SimpleLineShader._prog, SimpleLineShader._frag);\n gl.linkProgram(SimpleLineShader._prog);\n var errcode = gl.getProgramParameter(SimpleLineShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(SimpleLineShader._prog);\n SimpleLineShader.vertLoc = gl.getAttribLocation(SimpleLineShader._prog, 'aVertexPosition');\n SimpleLineShader.lineColorLoc = gl.getUniformLocation(SimpleLineShader._prog, 'lineColor');\n SimpleLineShader.projMatLoc = gl.getUniformLocation(SimpleLineShader._prog, 'uPMatrix');\n SimpleLineShader.mvMatLoc = gl.getUniformLocation(SimpleLineShader._prog, 'uMVMatrix');\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n SimpleLineShader.initialized = true;\n};\n\nSimpleLineShader.use = function (renderContext, vertex, lineColor, useDepth) {\n var gl = renderContext.gl;\n if (gl != null) {\n if (!SimpleLineShader.initialized) {\n SimpleLineShader.init(renderContext);\n }\n gl.useProgram(SimpleLineShader._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniformMatrix4fv(SimpleLineShader.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(SimpleLineShader.projMatLoc, false, renderContext.get_projection().floatArray());\n gl.uniform4f(SimpleLineShader.lineColorLoc, lineColor.r / 255, lineColor.g / 255, lineColor.b / 255, 1);\n if (renderContext.space || !useDepth) {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.enableVertexAttribArray(SimpleLineShader.vertLoc);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, null);\n gl.vertexAttribPointer(SimpleLineShader.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 0, 0);\n gl.lineWidth(1);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n};\n\nvar SimpleLineShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"SimpleLineShader\", [SimpleLineShader, SimpleLineShader$, null]);\n\n\n// wwtlib.SimpleLineShader2D\n\nfunction SimpleLineShader2D() { }\n\nSimpleLineShader2D.vertLoc = 0;\nSimpleLineShader2D.initialized = false;\nSimpleLineShader2D._prog = null;\n\nSimpleLineShader2D.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision highp float;\n uniform vec4 lineColor;\n\n void main(void) {\n gl_FragColor = lineColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n\n void main(void) {\n gl_Position = vec4(aVertexPosition, 1.0);\n }\n `;\n\n SimpleLineShader2D._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(SimpleLineShader2D._frag, fragShaderText);\n gl.compileShader(SimpleLineShader2D._frag);\n var stat = gl.getShaderParameter(SimpleLineShader2D._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n SimpleLineShader2D._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(SimpleLineShader2D._vert, vertexShaderText);\n gl.compileShader(SimpleLineShader2D._vert);\n var stat1 = gl.getShaderParameter(SimpleLineShader2D._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n SimpleLineShader2D._prog = gl.createProgram();\n gl.attachShader(SimpleLineShader2D._prog, SimpleLineShader2D._vert);\n gl.attachShader(SimpleLineShader2D._prog, SimpleLineShader2D._frag);\n gl.linkProgram(SimpleLineShader2D._prog);\n var errcode = gl.getProgramParameter(SimpleLineShader2D._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(SimpleLineShader2D._prog);\n SimpleLineShader2D.vertLoc = gl.getAttribLocation(SimpleLineShader2D._prog, 'aVertexPosition');\n SimpleLineShader2D.lineColorLoc = gl.getUniformLocation(SimpleLineShader2D._prog, 'lineColor');\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n SimpleLineShader2D.initialized = true;\n};\n\nSimpleLineShader2D.use = function (renderContext, vertex, lineColor, useDepth) {\n var gl = renderContext.gl;\n if (gl != null) {\n if (!SimpleLineShader2D.initialized) {\n SimpleLineShader2D.init(renderContext);\n }\n gl.useProgram(SimpleLineShader2D._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniform4f(SimpleLineShader2D.lineColorLoc, lineColor.r / 255, lineColor.g / 255, lineColor.b / 255, 1);\n if (renderContext.space || !useDepth) {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.enableVertexAttribArray(SimpleLineShader2D.vertLoc);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, null);\n gl.vertexAttribPointer(SimpleLineShader2D.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 0, 0);\n gl.lineWidth(1);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n};\n\nvar SimpleLineShader2D$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"SimpleLineShader2D\", [SimpleLineShader2D, SimpleLineShader2D$, null]);\n\n\n// wwtlib.OrbitLineShader\n\nfunction OrbitLineShader() { }\n\nOrbitLineShader.vertLoc = 0;\nOrbitLineShader.colorLoc = 0;\nOrbitLineShader.initialized = false;\nOrbitLineShader._prog = null;\n\nOrbitLineShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision highp float;\n uniform vec4 lineColor;\n varying lowp vec4 vColor;\n\n void main(void) {\n gl_FragColor = lineColor * vColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n attribute vec4 aVertexColor;\n\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n varying lowp vec4 vColor;\n\n void main(void) {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n vColor = aVertexColor;\n }\n `;\n\n OrbitLineShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(OrbitLineShader._frag, fragShaderText);\n gl.compileShader(OrbitLineShader._frag);\n var stat = gl.getShaderParameter(OrbitLineShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n OrbitLineShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(OrbitLineShader._vert, vertexShaderText);\n gl.compileShader(OrbitLineShader._vert);\n var stat1 = gl.getShaderParameter(OrbitLineShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n OrbitLineShader._prog = gl.createProgram();\n gl.attachShader(OrbitLineShader._prog, OrbitLineShader._vert);\n gl.attachShader(OrbitLineShader._prog, OrbitLineShader._frag);\n gl.linkProgram(OrbitLineShader._prog);\n var errcode = gl.getProgramParameter(OrbitLineShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(OrbitLineShader._prog);\n OrbitLineShader.vertLoc = gl.getAttribLocation(OrbitLineShader._prog, 'aVertexPosition');\n OrbitLineShader.colorLoc = gl.getAttribLocation(OrbitLineShader._prog, 'aVertexColor');\n OrbitLineShader.lineColorLoc = gl.getUniformLocation(OrbitLineShader._prog, 'lineColor');\n OrbitLineShader.projMatLoc = gl.getUniformLocation(OrbitLineShader._prog, 'uPMatrix');\n OrbitLineShader.mvMatLoc = gl.getUniformLocation(OrbitLineShader._prog, 'uMVMatrix');\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n OrbitLineShader.initialized = true;\n};\n\nOrbitLineShader.use = function (renderContext, vertex, lineColor) {\n var gl = renderContext.gl;\n if (gl != null) {\n if (!OrbitLineShader.initialized) {\n OrbitLineShader.init(renderContext);\n }\n gl.useProgram(OrbitLineShader._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniformMatrix4fv(OrbitLineShader.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(OrbitLineShader.projMatLoc, false, renderContext.get_projection().floatArray());\n gl.uniform4f(OrbitLineShader.lineColorLoc, lineColor.r / 255, lineColor.g / 255, lineColor.b / 255, 1);\n if (renderContext.space) {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, null);\n gl.enableVertexAttribArray(OrbitLineShader.vertLoc);\n gl.enableVertexAttribArray(OrbitLineShader.colorLoc);\n gl.vertexAttribPointer(OrbitLineShader.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 28, 0);\n gl.vertexAttribPointer(OrbitLineShader.colorLoc, 4, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 28, 12);\n gl.lineWidth(1);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n};\n\nvar OrbitLineShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"OrbitLineShader\", [OrbitLineShader, OrbitLineShader$, null]);\n\n\n// wwtlib.LineShaderNormalDates\n\nfunction LineShaderNormalDates() { }\n\nLineShaderNormalDates.vertLoc = 0;\nLineShaderNormalDates.colorLoc = 0;\nLineShaderNormalDates.timeLoc = 0;\nLineShaderNormalDates.initialized = false;\nLineShaderNormalDates._prog = null;\n\nLineShaderNormalDates.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision highp float;\n uniform vec4 lineColor;\n varying lowp vec4 vColor;\n\n void main(void)\n {\n gl_FragColor = lineColor * vColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n attribute vec4 aVertexColor;\n attribute vec2 aTime;\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n uniform float jNow;\n uniform float decay;\n\n varying lowp vec4 vColor;\n\n void main(void)\n {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n float dAlpha = 1.0;\n\n if (decay > 0.0)\n {\n dAlpha = 1.0 - ((jNow - aTime.y) / decay);\n if (dAlpha > 1.0 )\n {\n dAlpha = 1.0;\n }\n }\n\n if (jNow < aTime.x && decay > 0.0)\n {\n vColor = vec4(1, 1, 1, 1);\n }\n else\n {\n vColor = vec4(aVertexColor.r, aVertexColor.g, aVertexColor.b, dAlpha * aVertexColor.a);\n }\n }\n `;\n\n LineShaderNormalDates._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(LineShaderNormalDates._frag, fragShaderText);\n gl.compileShader(LineShaderNormalDates._frag);\n var stat = gl.getShaderParameter(LineShaderNormalDates._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n LineShaderNormalDates._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(LineShaderNormalDates._vert, vertexShaderText);\n gl.compileShader(LineShaderNormalDates._vert);\n var stat1 = gl.getShaderParameter(LineShaderNormalDates._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n LineShaderNormalDates._prog = gl.createProgram();\n gl.attachShader(LineShaderNormalDates._prog, LineShaderNormalDates._vert);\n gl.attachShader(LineShaderNormalDates._prog, LineShaderNormalDates._frag);\n gl.linkProgram(LineShaderNormalDates._prog);\n var errcode = gl.getProgramParameter(LineShaderNormalDates._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(LineShaderNormalDates._prog);\n LineShaderNormalDates.vertLoc = gl.getAttribLocation(LineShaderNormalDates._prog, 'aVertexPosition');\n LineShaderNormalDates.colorLoc = gl.getAttribLocation(LineShaderNormalDates._prog, 'aVertexColor');\n LineShaderNormalDates.timeLoc = gl.getAttribLocation(LineShaderNormalDates._prog, 'aTime');\n LineShaderNormalDates.lineColorLoc = gl.getUniformLocation(LineShaderNormalDates._prog, 'lineColor');\n LineShaderNormalDates.projMatLoc = gl.getUniformLocation(LineShaderNormalDates._prog, 'uPMatrix');\n LineShaderNormalDates.mvMatLoc = gl.getUniformLocation(LineShaderNormalDates._prog, 'uMVMatrix');\n LineShaderNormalDates.jNowLoc = gl.getUniformLocation(LineShaderNormalDates._prog, 'jNow');\n LineShaderNormalDates.decayLoc = gl.getUniformLocation(LineShaderNormalDates._prog, 'decay');\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n LineShaderNormalDates.initialized = true;\n};\n\nLineShaderNormalDates.use = function (renderContext, vertex, lineColor, zBuffer, jNow, decay) {\n var gl = renderContext.gl;\n if (gl != null) {\n if (!LineShaderNormalDates.initialized) {\n LineShaderNormalDates.init(renderContext);\n }\n gl.useProgram(LineShaderNormalDates._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniformMatrix4fv(LineShaderNormalDates.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(LineShaderNormalDates.projMatLoc, false, renderContext.get_projection().floatArray());\n gl.uniform4f(LineShaderNormalDates.lineColorLoc, lineColor.r / 255, lineColor.g / 255, lineColor.b / 255, 1);\n gl.uniform1f(LineShaderNormalDates.jNowLoc, jNow);\n gl.uniform1f(LineShaderNormalDates.decayLoc, decay);\n if (zBuffer) {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, null);\n gl.enableVertexAttribArray(LineShaderNormalDates.vertLoc);\n gl.enableVertexAttribArray(LineShaderNormalDates.colorLoc);\n gl.vertexAttribPointer(LineShaderNormalDates.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 36, 0);\n gl.vertexAttribPointer(LineShaderNormalDates.colorLoc, 4, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 36, 12);\n gl.vertexAttribPointer(LineShaderNormalDates.timeLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 36, 28);\n gl.lineWidth(1);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n};\n\nvar LineShaderNormalDates$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"LineShaderNormalDates\", [LineShaderNormalDates, LineShaderNormalDates$, null]);\n\n\n// wwtlib.TimeSeriesPointSpriteShader\n\nfunction TimeSeriesPointSpriteShader() { }\n\nTimeSeriesPointSpriteShader.vertLoc = 0;\nTimeSeriesPointSpriteShader.colorLoc = 0;\nTimeSeriesPointSpriteShader.pointSizeLoc = 0;\nTimeSeriesPointSpriteShader.timeLoc = 0;\nTimeSeriesPointSpriteShader.initialized = false;\nTimeSeriesPointSpriteShader._prog = null;\n\nTimeSeriesPointSpriteShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision mediump float;\n uniform vec4 lineColor;\n varying lowp vec4 vColor;\n uniform sampler2D uSampler;\n\n void main(void)\n {\n vec4 texColor;\n texColor = texture2D(uSampler, gl_PointCoord);\n gl_FragColor = lineColor * vColor * texColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n attribute vec4 aVertexColor;\n attribute vec2 aTime;\n attribute float aPointSize;\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n uniform float jNow;\n uniform vec3 cameraPosition;\n uniform float decay;\n uniform float scale;\n uniform float minSize;\n uniform float sky;\n uniform float showFarSide;\n\n varying lowp vec4 vColor;\n\n void main(void)\n {\n float dotCam = dot( normalize(cameraPosition-aVertexPosition), normalize(aVertexPosition));\n float dist = distance(aVertexPosition, cameraPosition);\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n float dAlpha = 1.0;\n\n if ( decay > 0.0)\n {\n dAlpha = 1.0 - ((jNow - aTime.y) / decay);\n if (dAlpha > 1.0 )\n {\n dAlpha = 1.0;\n }\n }\n\n if ( showFarSide == 0.0 && (dotCam * sky) < 0.0 || (jNow < aTime.x && decay > 0.0))\n {\n vColor = vec4(0.0, 0.0, 0.0, 0.0);\n }\n else\n {\n vColor = vec4(aVertexColor.r, aVertexColor.g, aVertexColor.b, dAlpha);\n }\n\n float lSize = scale;\n\n if (scale < 0.0)\n {\n lSize = -scale;\n dist = 1.0;\n }\n\n gl_PointSize = max(minSize, (lSize * ( aPointSize ) / dist));\n }\n `;\n\n TimeSeriesPointSpriteShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(TimeSeriesPointSpriteShader._frag, fragShaderText);\n gl.compileShader(TimeSeriesPointSpriteShader._frag);\n var stat = gl.getShaderParameter(TimeSeriesPointSpriteShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n TimeSeriesPointSpriteShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(TimeSeriesPointSpriteShader._vert, vertexShaderText);\n gl.compileShader(TimeSeriesPointSpriteShader._vert);\n var stat1 = gl.getShaderParameter(TimeSeriesPointSpriteShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n var compilationLog = gl.getShaderInfoLog(TimeSeriesPointSpriteShader._vert);\n TimeSeriesPointSpriteShader._prog = gl.createProgram();\n gl.attachShader(TimeSeriesPointSpriteShader._prog, TimeSeriesPointSpriteShader._vert);\n gl.attachShader(TimeSeriesPointSpriteShader._prog, TimeSeriesPointSpriteShader._frag);\n gl.linkProgram(TimeSeriesPointSpriteShader._prog);\n var errcode = gl.getProgramParameter(TimeSeriesPointSpriteShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(TimeSeriesPointSpriteShader._prog);\n TimeSeriesPointSpriteShader.vertLoc = gl.getAttribLocation(TimeSeriesPointSpriteShader._prog, 'aVertexPosition');\n TimeSeriesPointSpriteShader.colorLoc = gl.getAttribLocation(TimeSeriesPointSpriteShader._prog, 'aVertexColor');\n TimeSeriesPointSpriteShader.pointSizeLoc = gl.getAttribLocation(TimeSeriesPointSpriteShader._prog, 'aPointSize');\n TimeSeriesPointSpriteShader.timeLoc = gl.getAttribLocation(TimeSeriesPointSpriteShader._prog, 'aTime');\n TimeSeriesPointSpriteShader.projMatLoc = gl.getUniformLocation(TimeSeriesPointSpriteShader._prog, 'uPMatrix');\n TimeSeriesPointSpriteShader.mvMatLoc = gl.getUniformLocation(TimeSeriesPointSpriteShader._prog, 'uMVMatrix');\n TimeSeriesPointSpriteShader.sampLoc = gl.getUniformLocation(TimeSeriesPointSpriteShader._prog, 'uSampler');\n TimeSeriesPointSpriteShader.jNowLoc = gl.getUniformLocation(TimeSeriesPointSpriteShader._prog, 'jNow');\n TimeSeriesPointSpriteShader.decayLoc = gl.getUniformLocation(TimeSeriesPointSpriteShader._prog, 'decay');\n TimeSeriesPointSpriteShader.lineColorLoc = gl.getUniformLocation(TimeSeriesPointSpriteShader._prog, 'lineColor');\n TimeSeriesPointSpriteShader.cameraPosLoc = gl.getUniformLocation(TimeSeriesPointSpriteShader._prog, 'cameraPosition');\n TimeSeriesPointSpriteShader.scaleLoc = gl.getUniformLocation(TimeSeriesPointSpriteShader._prog, 'scale');\n TimeSeriesPointSpriteShader.skyLoc = gl.getUniformLocation(TimeSeriesPointSpriteShader._prog, 'sky');\n TimeSeriesPointSpriteShader.showFarSideLoc = gl.getUniformLocation(TimeSeriesPointSpriteShader._prog, 'showFarSide');\n TimeSeriesPointSpriteShader.minSizeLoc = gl.getUniformLocation(TimeSeriesPointSpriteShader._prog, 'minSize');\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n TimeSeriesPointSpriteShader.initialized = true;\n};\n\nTimeSeriesPointSpriteShader.use = function (renderContext, vertex, texture, lineColor, zBuffer, jNow, decay, camera, scale, minSize, showFarSide, sky) {\n if (texture == null) {\n texture = _texture_js__WEBPACK_IMPORTED_MODULE_5__.Texture.getEmpty();\n }\n var gl = renderContext.gl;\n if (gl != null) {\n if (!TimeSeriesPointSpriteShader.initialized) {\n TimeSeriesPointSpriteShader.init(renderContext);\n }\n gl.useProgram(TimeSeriesPointSpriteShader._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniformMatrix4fv(TimeSeriesPointSpriteShader.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(TimeSeriesPointSpriteShader.projMatLoc, false, renderContext.get_projection().floatArray());\n gl.uniform1i(TimeSeriesPointSpriteShader.sampLoc, 0);\n gl.uniform1f(TimeSeriesPointSpriteShader.jNowLoc, jNow);\n gl.uniform1f(TimeSeriesPointSpriteShader.decayLoc, decay);\n gl.uniform4f(TimeSeriesPointSpriteShader.lineColorLoc, lineColor.r / 255, lineColor.g / 255, lineColor.b / 255, lineColor.a / 255);\n gl.uniform3f(TimeSeriesPointSpriteShader.cameraPosLoc, camera.x, camera.y, camera.z);\n gl.uniform1f(TimeSeriesPointSpriteShader.scaleLoc, scale);\n gl.uniform1f(TimeSeriesPointSpriteShader.minSizeLoc, minSize);\n gl.uniform1f(TimeSeriesPointSpriteShader.showFarSideLoc, (showFarSide) ? 1 : 0);\n gl.uniform1f(TimeSeriesPointSpriteShader.skyLoc, (sky) ? -1 : 1);\n if (zBuffer) {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, null);\n gl.enableVertexAttribArray(TimeSeriesPointSpriteShader.vertLoc);\n gl.enableVertexAttribArray(TimeSeriesPointSpriteShader.colorLoc);\n gl.enableVertexAttribArray(TimeSeriesPointSpriteShader.pointSizeLoc);\n gl.enableVertexAttribArray(TimeSeriesPointSpriteShader.timeLoc);\n gl.vertexAttribPointer(TimeSeriesPointSpriteShader.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 40, 0);\n gl.vertexAttribPointer(TimeSeriesPointSpriteShader.colorLoc, 4, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 40, 12);\n gl.vertexAttribPointer(TimeSeriesPointSpriteShader.pointSizeLoc, 1, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 40, 36);\n gl.vertexAttribPointer(TimeSeriesPointSpriteShader.timeLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 40, 28);\n gl.activeTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE0);\n gl.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, texture);\n gl.lineWidth(1);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE);\n }\n};\n\nvar TimeSeriesPointSpriteShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TimeSeriesPointSpriteShader\", [TimeSeriesPointSpriteShader, TimeSeriesPointSpriteShader$, null]);\n\n// wwtlib.KeplerPointSpriteShader\n\nfunction KeplerPointSpriteShader() { }\n\nKeplerPointSpriteShader.abcLoc = 0;\nKeplerPointSpriteShader.abcLoc1 = 0;\nKeplerPointSpriteShader.pointSizeLoc = 0;\nKeplerPointSpriteShader.colorLoc = 0;\nKeplerPointSpriteShader.weLoc = 0;\nKeplerPointSpriteShader.nTLoc = 0;\nKeplerPointSpriteShader.azLoc = 0;\nKeplerPointSpriteShader.orbitLoc = 0;\nKeplerPointSpriteShader.initialized = false;\nKeplerPointSpriteShader._prog = null;\n\nKeplerPointSpriteShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision mediump float;\n uniform vec4 lineColor;\n varying lowp vec4 vColor;\n uniform sampler2D uSampler;\n\n void main(void)\n {\n vec4 texColor;\n texColor = texture2D(uSampler, gl_PointCoord);\n gl_FragColor = lineColor * vColor * texColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 ABC;\n attribute vec3 abc;\n attribute float PointSize;\n attribute vec4 Color;\n attribute vec2 we;\n attribute vec2 nT;\n attribute vec2 az;\n attribute vec2 orbit;\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n uniform float jNow;\n uniform vec3 cameraPosition;\n uniform float MM;\n uniform float scaling;\n uniform float minSize;\n uniform float opacity;\n varying lowp vec4 vColor;\n\n void main(void)\n {\n float M = nT.x * (jNow - nT.y) * 0.01745329251994;\n float e = we.y;\n float a = az.x;\n float PI = 3.1415926535897932384;\n float w = we.x* 0.01745329251994;\n float F = 1.0;\n\n if (M < 0.0)\n F = -1.0;\n\n M = abs(M) / (2.0 * PI);\n M = (M - float(int(M)))*2.0 *PI *F;\n\n if (MM != 0.0)\n {\n M = MM + (1.0- orbit.x) *2.0 *PI;\n if (M > (2.0*PI))\n M = M - (2.0*PI);\n }\n\n if (M < 0.0)\n M += 2.0 *PI;\n\n F = 1.0;\n if (M > PI)\n F = -1.0;\n\n if (M > PI)\n M = 2.0 *PI - M;\n\n float E = PI / 2.0;\n float scale = PI / 4.0;\n\n for (int i =0; i<23; i++)\n {\n float R = E - e *sin(E);\n if (M > R)\n E += scale;\n else\n E -= scale;\n scale /= 2.0;\n }\n\n E = E * F;\n\n float v = 2.0 * atan(sqrt((1.0 + e) / (1.0 -e )) * tan(E/2.0));\n float r = a * (1.0-e * cos(E));\n\n vec4 pnt;\n pnt.x = r * abc.x * sin(ABC.x + w + v);\n pnt.z = r * abc.y * sin(ABC.y + w + v);\n pnt.y = r * abc.z * sin(ABC.z + w + v);\n pnt.w = 1.0;\n\n float dist = distance(pnt.xyz, cameraPosition.xyz);\n gl_Position = uPMatrix * uMVMatrix * pnt;\n vColor.a = opacity * (1.0-(orbit.x));\n vColor.r = Color.r;\n vColor.g = Color.g;\n vColor.b = Color.b;\n gl_PointSize = max(minSize, scaling * (PointSize / dist));\n }\n `;\n\n KeplerPointSpriteShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(KeplerPointSpriteShader._frag, fragShaderText);\n gl.compileShader(KeplerPointSpriteShader._frag);\n var stat = gl.getShaderParameter(KeplerPointSpriteShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n KeplerPointSpriteShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(KeplerPointSpriteShader._vert, vertexShaderText);\n gl.compileShader(KeplerPointSpriteShader._vert);\n var stat1 = gl.getShaderParameter(KeplerPointSpriteShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n var compilationLog = gl.getShaderInfoLog(KeplerPointSpriteShader._vert);\n KeplerPointSpriteShader._prog = gl.createProgram();\n gl.attachShader(KeplerPointSpriteShader._prog, KeplerPointSpriteShader._vert);\n gl.attachShader(KeplerPointSpriteShader._prog, KeplerPointSpriteShader._frag);\n gl.linkProgram(KeplerPointSpriteShader._prog);\n var errcode = gl.getProgramParameter(KeplerPointSpriteShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(KeplerPointSpriteShader._prog);\n KeplerPointSpriteShader.abcLoc1 = gl.getAttribLocation(KeplerPointSpriteShader._prog, 'abc');\n KeplerPointSpriteShader.abcLoc = gl.getAttribLocation(KeplerPointSpriteShader._prog, 'ABC');\n KeplerPointSpriteShader.pointSizeLoc = gl.getAttribLocation(KeplerPointSpriteShader._prog, 'PointSize');\n KeplerPointSpriteShader.colorLoc = gl.getAttribLocation(KeplerPointSpriteShader._prog, 'Color');\n KeplerPointSpriteShader.weLoc = gl.getAttribLocation(KeplerPointSpriteShader._prog, 'we');\n KeplerPointSpriteShader.nTLoc = gl.getAttribLocation(KeplerPointSpriteShader._prog, 'nT');\n KeplerPointSpriteShader.azLoc = gl.getAttribLocation(KeplerPointSpriteShader._prog, 'az');\n KeplerPointSpriteShader.orbitLoc = gl.getAttribLocation(KeplerPointSpriteShader._prog, 'orbit');\n KeplerPointSpriteShader.projMatLoc = gl.getUniformLocation(KeplerPointSpriteShader._prog, 'uPMatrix');\n KeplerPointSpriteShader.mvMatLoc = gl.getUniformLocation(KeplerPointSpriteShader._prog, 'uMVMatrix');\n KeplerPointSpriteShader.jNowLoc = gl.getUniformLocation(KeplerPointSpriteShader._prog, 'jNow');\n KeplerPointSpriteShader.cameraPosLoc = gl.getUniformLocation(KeplerPointSpriteShader._prog, 'cameraPosition');\n KeplerPointSpriteShader.mmLoc = gl.getUniformLocation(KeplerPointSpriteShader._prog, 'MM');\n KeplerPointSpriteShader.scaleLoc = gl.getUniformLocation(KeplerPointSpriteShader._prog, 'scaling');\n KeplerPointSpriteShader.minSizeLoc = gl.getUniformLocation(KeplerPointSpriteShader._prog, 'minSize');\n KeplerPointSpriteShader.lineColorLoc = gl.getUniformLocation(KeplerPointSpriteShader._prog, 'lineColor');\n KeplerPointSpriteShader.opacityLoc = gl.getUniformLocation(KeplerPointSpriteShader._prog, 'opacity');\n KeplerPointSpriteShader.sampLoc = gl.getUniformLocation(KeplerPointSpriteShader._prog, 'uSampler');\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n KeplerPointSpriteShader.initialized = true;\n};\n\nKeplerPointSpriteShader.use = function (renderContext, worldView, vertex, texture, lineColor, opacity, zBuffer, jNow, MM, camera, scale, minSize) {\n if (texture == null) {\n texture = _texture_js__WEBPACK_IMPORTED_MODULE_5__.Texture.getEmpty();\n }\n var gl = renderContext.gl;\n if (gl != null) {\n if (!KeplerPointSpriteShader.initialized) {\n KeplerPointSpriteShader.init(renderContext);\n }\n gl.useProgram(KeplerPointSpriteShader._prog);\n gl.uniformMatrix4fv(KeplerPointSpriteShader.mvMatLoc, false, worldView.floatArray());\n gl.uniformMatrix4fv(KeplerPointSpriteShader.projMatLoc, false, renderContext.get_projection().floatArray());\n gl.uniform1i(KeplerPointSpriteShader.sampLoc, 0);\n gl.uniform1f(KeplerPointSpriteShader.jNowLoc, jNow);\n gl.uniform1f(KeplerPointSpriteShader.mmLoc, MM);\n gl.uniform4f(KeplerPointSpriteShader.lineColorLoc, lineColor.r / 255, lineColor.g / 255, lineColor.b / 255, lineColor.a / 255);\n gl.uniform1f(KeplerPointSpriteShader.opacityLoc, opacity);\n gl.uniform3f(KeplerPointSpriteShader.cameraPosLoc, camera.x, camera.y, camera.z);\n gl.uniform1f(KeplerPointSpriteShader.scaleLoc, scale);\n gl.uniform1f(KeplerPointSpriteShader.minSizeLoc, minSize);\n if (zBuffer) {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, null);\n gl.enableVertexAttribArray(KeplerPointSpriteShader.abcLoc);\n gl.enableVertexAttribArray(KeplerPointSpriteShader.abcLoc1);\n gl.enableVertexAttribArray(KeplerPointSpriteShader.colorLoc);\n gl.enableVertexAttribArray(KeplerPointSpriteShader.pointSizeLoc);\n gl.enableVertexAttribArray(KeplerPointSpriteShader.weLoc);\n gl.enableVertexAttribArray(KeplerPointSpriteShader.nTLoc);\n gl.enableVertexAttribArray(KeplerPointSpriteShader.azLoc);\n gl.enableVertexAttribArray(KeplerPointSpriteShader.orbitLoc);\n gl.enableVertexAttribArray(KeplerPointSpriteShader.weLoc);\n gl.vertexAttribPointer(KeplerPointSpriteShader.abcLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 76, 0);\n gl.vertexAttribPointer(KeplerPointSpriteShader.abcLoc1, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 76, 12);\n gl.vertexAttribPointer(KeplerPointSpriteShader.pointSizeLoc, 1, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 76, 24);\n gl.vertexAttribPointer(KeplerPointSpriteShader.colorLoc, 4, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 76, 28);\n gl.vertexAttribPointer(KeplerPointSpriteShader.weLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 76, 44);\n gl.vertexAttribPointer(KeplerPointSpriteShader.nTLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 76, 52);\n gl.vertexAttribPointer(KeplerPointSpriteShader.azLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 76, 60);\n gl.vertexAttribPointer(KeplerPointSpriteShader.orbitLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 76, 68);\n gl.activeTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE0);\n gl.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, texture);\n gl.lineWidth(1);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE);\n }\n};\n\nvar KeplerPointSpriteShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"KeplerPointSpriteShader\", [KeplerPointSpriteShader, KeplerPointSpriteShader$, null]);\n\n\n// wwtlib.EllipseShader\n\nfunction EllipseShader() { }\n\nEllipseShader.angleLoc = 0;\nEllipseShader.initialized = false;\nEllipseShader._prog = null;\n\nEllipseShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision mediump float;\n varying lowp vec4 vColor;\n\n void main(void)\n {\n gl_FragColor = vColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 Angle;\n uniform mat4 matWVP;\n uniform mat4 matPosition;\n uniform vec3 positionNow;\n uniform float semiMajorAxis;\n uniform float eccentricity;\n uniform vec4 color;\n uniform float eccentricAnomaly;\n varying lowp vec4 vColor;\n\n void main(void)\n {\n float fade = (1.0 - Angle.x);\n float PI = 3.1415927;\n float E = eccentricAnomaly - Angle.x * 2.0 * PI;\n vec2 semiAxes = vec2(1.0, sqrt(1.0 - eccentricity * eccentricity)) * semiMajorAxis;\n vec2 planePos = semiAxes * vec2(cos(E) - eccentricity, sin(E));\n\n if (Angle.x == 0.0)\n gl_Position = matPosition * vec4(positionNow, 1.0);\n else\n gl_Position = matWVP * vec4(planePos.x, planePos.y, 0.0, 1.0);\n\n vColor = vec4(color.rgb, fade * color.a);\n }\n `;\n\n EllipseShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(EllipseShader._frag, fragShaderText);\n gl.compileShader(EllipseShader._frag);\n var stat = gl.getShaderParameter(EllipseShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n EllipseShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(EllipseShader._vert, vertexShaderText);\n gl.compileShader(EllipseShader._vert);\n var stat1 = gl.getShaderParameter(EllipseShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n var compilationLog = gl.getShaderInfoLog(EllipseShader._vert);\n EllipseShader._prog = gl.createProgram();\n gl.attachShader(EllipseShader._prog, EllipseShader._vert);\n gl.attachShader(EllipseShader._prog, EllipseShader._frag);\n gl.linkProgram(EllipseShader._prog);\n var errcode = gl.getProgramParameter(EllipseShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(EllipseShader._prog);\n EllipseShader.angleLoc = gl.getAttribLocation(EllipseShader._prog, 'Angle');\n EllipseShader.matWVPLoc = gl.getUniformLocation(EllipseShader._prog, 'matWVP');\n EllipseShader.matPositionLoc = gl.getUniformLocation(EllipseShader._prog, 'matPosition');\n EllipseShader.positionNowLoc = gl.getUniformLocation(EllipseShader._prog, 'positionNow');\n EllipseShader.colorLoc = gl.getUniformLocation(EllipseShader._prog, 'color');\n EllipseShader.semiMajorAxisLoc = gl.getUniformLocation(EllipseShader._prog, 'semiMajorAxis');\n EllipseShader.eccentricityLoc = gl.getUniformLocation(EllipseShader._prog, 'eccentricity');\n EllipseShader.eccentricAnomalyLoc = gl.getUniformLocation(EllipseShader._prog, 'eccentricAnomaly');\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n EllipseShader.initialized = true;\n};\n\nEllipseShader.use = function (renderContext, semiMajorAxis, eccentricity, eccentricAnomaly, lineColor, opacity, world, positionNow) {\n var gl = renderContext.gl;\n if (gl != null) {\n if (!EllipseShader.initialized) {\n EllipseShader.init(renderContext);\n }\n gl.useProgram(EllipseShader._prog);\n var WVPPos = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(world, renderContext.get_view()), renderContext.get_projection());\n var WVP = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view()), renderContext.get_projection());\n gl.uniformMatrix4fv(EllipseShader.matWVPLoc, false, WVP.floatArray());\n gl.uniformMatrix4fv(EllipseShader.matPositionLoc, false, WVPPos.floatArray());\n gl.uniform3f(EllipseShader.positionNowLoc, positionNow.x, positionNow.y, positionNow.z);\n gl.uniform4f(EllipseShader.colorLoc, lineColor.r / 255, lineColor.g / 255, lineColor.b / 255, lineColor.a / 255);\n gl.uniform1f(EllipseShader.semiMajorAxisLoc, semiMajorAxis);\n gl.uniform1f(EllipseShader.eccentricityLoc, eccentricity);\n gl.uniform1f(EllipseShader.eccentricAnomalyLoc, eccentricAnomaly);\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.enableVertexAttribArray(EllipseShader.angleLoc);\n gl.vertexAttribPointer(EllipseShader.angleLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 0, 0);\n gl.lineWidth(1);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE);\n }\n};\n\nvar EllipseShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"EllipseShader\", [EllipseShader, EllipseShader$, null]);\n\n\n// wwtlib.ModelShader\n\nfunction ModelShader() { }\n\nModelShader.vertLoc = 0;\nModelShader.normalLoc = 0;\nModelShader.textureLoc = 0;\nModelShader.initialized = false;\nModelShader._prog = null;\nModelShader.sunPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(-1, -1, -1);\nModelShader.minLightingBrightness = 1;\nModelShader.atmosphereColor = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(0, 0, 0, 0);\n\nModelShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision mediump float;\n\n varying vec2 vTextureCoord;\n varying vec3 vNormal;\n varying vec3 vCamVector;\n\n uniform sampler2D uSampler;\n uniform float opacity;\n uniform vec3 uSunPosition;\n uniform float uMinBrightness;\n uniform vec3 uAtmosphereColor;\n\n void main(void) {\n vec3 normal = normalize(vNormal);\n vec3 camVN = normalize(vCamVector);\n vec3 cam = normalize(vec3(0.0,0.0,-1.0));\n float dt = uMinBrightness + pow(max(0.0,- dot(normal,uSunPosition)),0.5);\n float atm = max(0.0, 1.0 - 2.5 * dot(cam,camVN)) + 0.3 * dt;\n atm = (dt > uMinBrightness) ? atm : 0.0;\n if ( uMinBrightness == 1.0 ) { dt = 1.0; atm= 0.0; }\n vec4 col = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));\n gl_FragColor = col * opacity;\n gl_FragColor.rgb *= dt;\n gl_FragColor.rgb += atm * uAtmosphereColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n attribute vec3 aNormal;\n attribute vec2 aTextureCoord;\n\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n\n varying vec2 vTextureCoord;\n varying vec3 vNormal;\n varying vec3 vCamVector;\n\n void main(void) {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n vCamVector = normalize((mat3(uMVMatrix) * aVertexPosition).xyz);\n vec3 normalT = normalize(mat3(uMVMatrix) * aNormal);\n vTextureCoord = aTextureCoord;\n vNormal = normalT;\n }\n `;\n\n ModelShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(ModelShader._frag, fragShaderText);\n gl.compileShader(ModelShader._frag);\n var stat = gl.getShaderParameter(ModelShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat) {\n var errorF = gl.getShaderInfoLog(ModelShader._frag);\n }\n ModelShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(ModelShader._vert, vertexShaderText);\n gl.compileShader(ModelShader._vert);\n var stat1 = gl.getShaderParameter(ModelShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat1) {\n var errorV = gl.getShaderInfoLog(ModelShader._vert);\n }\n ModelShader._prog = gl.createProgram();\n gl.attachShader(ModelShader._prog, ModelShader._vert);\n gl.attachShader(ModelShader._prog, ModelShader._frag);\n gl.linkProgram(ModelShader._prog);\n var errcode = gl.getProgramParameter(ModelShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(ModelShader._prog);\n ModelShader.vertLoc = gl.getAttribLocation(ModelShader._prog, 'aVertexPosition');\n ModelShader.normalLoc = gl.getAttribLocation(ModelShader._prog, 'aNormal');\n ModelShader.textureLoc = gl.getAttribLocation(ModelShader._prog, 'aTextureCoord');\n ModelShader.projMatLoc = gl.getUniformLocation(ModelShader._prog, 'uPMatrix');\n ModelShader.mvMatLoc = gl.getUniformLocation(ModelShader._prog, 'uMVMatrix');\n ModelShader.sampLoc = gl.getUniformLocation(ModelShader._prog, 'uSampler');\n ModelShader.sunLoc = gl.getUniformLocation(ModelShader._prog, 'uSunPosition');\n ModelShader.minBrightnessLoc = gl.getUniformLocation(ModelShader._prog, 'uMinBrightness');\n ModelShader.opacityLoc = gl.getUniformLocation(ModelShader._prog, 'opacity');\n ModelShader.atmosphereColorLoc = gl.getUniformLocation(ModelShader._prog, 'uAtmosphereColor');\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileUvMultiple)(1);\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileDemEnabled)(true);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n ModelShader.initialized = true;\n};\n\nModelShader.use = function (renderContext, vertex, index, texture, opacity, noDepth, stride) {\n if (texture == null) {\n texture = _texture_js__WEBPACK_IMPORTED_MODULE_5__.Texture.getEmpty();\n }\n var gl = renderContext.gl;\n if (gl != null) {\n if (!ModelShader.initialized) {\n ModelShader.init(renderContext);\n }\n gl.useProgram(ModelShader._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniform1f(ModelShader.opacityLoc, opacity);\n gl.uniform1f(ModelShader.minBrightnessLoc, (renderContext.lighting) ? ModelShader.minLightingBrightness : 1);\n if (renderContext.lighting) {\n gl.uniform3f(ModelShader.atmosphereColorLoc, ModelShader.atmosphereColor.r / 255, ModelShader.atmosphereColor.g / 255, ModelShader.atmosphereColor.b / 255);\n } else {\n gl.uniform3f(ModelShader.atmosphereColorLoc, 0, 0, 0);\n }\n gl.uniformMatrix4fv(ModelShader.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(ModelShader.projMatLoc, false, renderContext.get_projection().floatArray());\n ModelShader.sunPosition.normalize();\n var mvInv = renderContext.get_view().clone();\n mvInv.set_m41(0);\n mvInv.set_m42(0);\n mvInv.set_m43(0);\n mvInv.set_m44(1);\n var sp = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d._transformCoordinate(ModelShader.sunPosition, mvInv);\n sp.normalize();\n gl.uniform3f(ModelShader.sunLoc, sp.x, sp.y, sp.z);\n gl.uniform1i(ModelShader.sampLoc, 0);\n if (renderContext.space || noDepth) {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.enableVertexAttribArray(ModelShader.vertLoc);\n gl.enableVertexAttribArray(ModelShader.normalLoc);\n gl.enableVertexAttribArray(ModelShader.textureLoc);\n gl.vertexAttribPointer(ModelShader.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, stride, 0);\n gl.vertexAttribPointer(ModelShader.normalLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, stride, 12);\n gl.vertexAttribPointer(ModelShader.textureLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, stride, stride - 8);\n gl.activeTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE0);\n gl.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, texture);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, index);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n if (noDepth) {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE);\n } else {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n }\n};\n\nvar ModelShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ModelShader\", [ModelShader, ModelShader$, null]);\n\n\n// wwtlib.ModelShaderTan\n\nfunction ModelShaderTan() { }\n\nModelShaderTan.vertLoc = 0;\nModelShaderTan.normalLoc = 0;\nModelShaderTan.textureLoc = 0;\nModelShaderTan.initialized = false;\nModelShaderTan._prog = null;\nModelShaderTan.sunPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(-1, -1, -1);\nModelShaderTan.minLightingBrightness = 1;\nModelShaderTan.atmosphereColor = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(0, 0, 0, 0);\n\nModelShaderTan.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision mediump float;\n\n varying vec2 vTextureCoord;\n varying vec3 vNormal;\n varying vec3 vCamVector;\n\n uniform sampler2D uSampler;\n uniform float opacity;\n uniform vec3 uSunPosition;\n uniform float uMinBrightness;\n uniform vec3 uAtmosphereColor;\n\n void main(void) {\n vec3 normal = normalize(vNormal);\n vec3 camVN = normalize(vCamVector);\n vec3 cam = normalize(vec3(0.0,0.0,-1.0));\n float dt = uMinBrightness + pow(max(0.0,- dot(normal,uSunPosition)),0.5);\n float atm = max(0.0, 1.0 - 2.5 * dot(cam,camVN)) + 0.3 * dt;\n atm = (dt > uMinBrightness) ? atm : 0.0;\n if ( uMinBrightness == 1.0 ) { dt = 1.0; atm= 0.0; }\n vec4 col = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));\n gl_FragColor = col * opacity;\n gl_FragColor.rgb *= dt;\n gl_FragColor.rgb += atm * uAtmosphereColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n attribute vec3 aNormal;\n attribute vec2 aTextureCoord;\n\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n\n varying vec2 vTextureCoord;\n varying vec3 vNormal;\n varying vec3 vCamVector;\n\n void main(void) {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n vCamVector = normalize((mat3(uMVMatrix) * aVertexPosition).xyz);\n vec3 normalT = normalize(mat3(uMVMatrix) * aNormal);\n vTextureCoord = aTextureCoord;\n vNormal = normalT;\n }\n `;\n\n ModelShaderTan._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(ModelShaderTan._frag, fragShaderText);\n gl.compileShader(ModelShaderTan._frag);\n var stat = gl.getShaderParameter(ModelShaderTan._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat) {\n var errorF = gl.getShaderInfoLog(ModelShaderTan._frag);\n }\n ModelShaderTan._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(ModelShaderTan._vert, vertexShaderText);\n gl.compileShader(ModelShaderTan._vert);\n var stat1 = gl.getShaderParameter(ModelShaderTan._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat1) {\n var errorV = gl.getShaderInfoLog(ModelShaderTan._vert);\n }\n ModelShaderTan._prog = gl.createProgram();\n gl.attachShader(ModelShaderTan._prog, ModelShaderTan._vert);\n gl.attachShader(ModelShaderTan._prog, ModelShaderTan._frag);\n gl.linkProgram(ModelShaderTan._prog);\n var errcode = gl.getProgramParameter(ModelShaderTan._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(ModelShaderTan._prog);\n ModelShaderTan.vertLoc = gl.getAttribLocation(ModelShaderTan._prog, 'aVertexPosition');\n ModelShaderTan.normalLoc = gl.getAttribLocation(ModelShaderTan._prog, 'aNormal');\n ModelShaderTan.textureLoc = gl.getAttribLocation(ModelShaderTan._prog, 'aTextureCoord');\n ModelShaderTan.projMatLoc = gl.getUniformLocation(ModelShaderTan._prog, 'uPMatrix');\n ModelShaderTan.mvMatLoc = gl.getUniformLocation(ModelShaderTan._prog, 'uMVMatrix');\n ModelShaderTan.sampLoc = gl.getUniformLocation(ModelShaderTan._prog, 'uSampler');\n ModelShaderTan.sunLoc = gl.getUniformLocation(ModelShaderTan._prog, 'uSunPosition');\n ModelShaderTan.minBrightnessLoc = gl.getUniformLocation(ModelShaderTan._prog, 'uMinBrightness');\n ModelShaderTan.opacityLoc = gl.getUniformLocation(ModelShaderTan._prog, 'opacity');\n ModelShaderTan.atmosphereColorLoc = gl.getUniformLocation(ModelShaderTan._prog, 'uAtmosphereColor');\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileUvMultiple)(1);\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileDemEnabled)(true);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n ModelShaderTan.initialized = true;\n};\n\nModelShaderTan.use = function (renderContext, vertex, index, texture, opacity, noDepth, stride) {\n if (texture == null) {\n texture = _texture_js__WEBPACK_IMPORTED_MODULE_5__.Texture.getEmpty();\n }\n var gl = renderContext.gl;\n if (gl != null) {\n if (!ModelShaderTan.initialized) {\n ModelShaderTan.init(renderContext);\n }\n gl.useProgram(ModelShaderTan._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniform1f(ModelShaderTan.opacityLoc, opacity);\n gl.uniform1f(ModelShaderTan.minBrightnessLoc, (renderContext.lighting) ? ModelShaderTan.minLightingBrightness : 1);\n if (renderContext.lighting) {\n gl.uniform3f(ModelShaderTan.atmosphereColorLoc, ModelShaderTan.atmosphereColor.r / 255, ModelShaderTan.atmosphereColor.g / 255, ModelShaderTan.atmosphereColor.b / 255);\n } else {\n gl.uniform3f(ModelShaderTan.atmosphereColorLoc, 0, 0, 0);\n }\n gl.uniformMatrix4fv(ModelShaderTan.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(ModelShaderTan.projMatLoc, false, renderContext.get_projection().floatArray());\n ModelShaderTan.sunPosition.normalize();\n var mvInv = renderContext.get_view().clone();\n mvInv.set_m41(0);\n mvInv.set_m42(0);\n mvInv.set_m43(0);\n mvInv.set_m44(1);\n var sp = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d._transformCoordinate(ModelShaderTan.sunPosition, mvInv);\n sp.normalize();\n gl.uniform3f(ModelShaderTan.sunLoc, -sp.x, -sp.y, -sp.z);\n gl.uniform1i(ModelShaderTan.sampLoc, 0);\n if (renderContext.space || noDepth) {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.enableVertexAttribArray(ModelShaderTan.vertLoc);\n gl.enableVertexAttribArray(ModelShaderTan.normalLoc);\n gl.enableVertexAttribArray(ModelShaderTan.textureLoc);\n gl.vertexAttribPointer(ModelShaderTan.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, stride, 0);\n gl.vertexAttribPointer(ModelShaderTan.normalLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, stride, 12);\n gl.vertexAttribPointer(ModelShaderTan.textureLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, stride, stride - 8);\n gl.activeTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE0);\n gl.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, texture);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, index);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n if (noDepth) {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE);\n } else {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n }\n};\n\nvar ModelShaderTan$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ModelShaderTan\", [ModelShaderTan, ModelShaderTan$, null]);\n\n\n// wwtlib.TileShader\n\nfunction TileShader() { }\n\nTileShader.vertLoc = 0;\nTileShader.textureLoc = 0;\nTileShader.initialized = false;\nTileShader._prog = null;\nTileShader.sunPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(-1, -1, -1);\nTileShader.minLightingBrightness = 1;\nTileShader.atmosphereColor = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(0, 0, 0, 0);\n\nTileShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision mediump float;\n\n varying vec2 vTextureCoord;\n varying vec3 vNormal;\n varying vec3 vCamVector;\n\n uniform sampler2D uSampler;\n uniform float opacity;\n uniform vec3 uSunPosition;\n uniform float uMinBrightness;\n uniform vec3 uAtmosphereColor;\n\n void main(void) {\n vec3 normal = normalize(vNormal);\n vec3 camVN = normalize(vCamVector);\n vec3 cam = normalize(vec3(0.0,0.0,-1.0));\n float dt = uMinBrightness + pow(max(0.0,- dot(normal,uSunPosition)),0.5);\n float atm = max(0.0, 1.0 - 2.5 * dot(cam,camVN)) + 0.3 * dt;\n atm = (dt > uMinBrightness) ? atm : 0.0;\n if ( uMinBrightness == 1.0 ) { dt = 1.0; atm = 0.0; }\n vec4 col = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));\n gl_FragColor = col * opacity;\n gl_FragColor.rgb *= dt;\n gl_FragColor.rgb += atm * uAtmosphereColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n attribute vec2 aTextureCoord;\n\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n uniform vec3 uCenterScreen;\n uniform vec3 uCenterWorld;\n\n varying vec2 vTextureCoord;\n varying vec3 vNormal;\n varying vec3 vCamVector;\n\n void main(void) {\n vec3 normal;\n\n if (length(uCenterWorld) > 0.00001) {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 0.0) + vec4(uCenterScreen, 1.0);\n vCamVector = normalize((mat3(uMVMatrix) * (aVertexPosition + uCenterWorld)).xyz);\n normal = normalize(aVertexPosition + uCenterWorld);\n } else {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n vCamVector = normalize((mat3(uMVMatrix) * aVertexPosition).xyz);\n normal = normalize(aVertexPosition);\n }\n\n vec3 normalT = normalize(mat3(uMVMatrix) * normal);\n vTextureCoord = aTextureCoord;\n vNormal = normalT;\n }\n `;\n\n TileShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(TileShader._frag, fragShaderText);\n gl.compileShader(TileShader._frag);\n var stat = gl.getShaderParameter(TileShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat) {\n var errorF = gl.getShaderInfoLog(TileShader._frag);\n }\n TileShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(TileShader._vert, vertexShaderText);\n gl.compileShader(TileShader._vert);\n var stat1 = gl.getShaderParameter(TileShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat1) {\n var errorV = gl.getShaderInfoLog(TileShader._vert);\n }\n TileShader._prog = gl.createProgram();\n gl.attachShader(TileShader._prog, TileShader._vert);\n gl.attachShader(TileShader._prog, TileShader._frag);\n gl.linkProgram(TileShader._prog);\n var errcode = gl.getProgramParameter(TileShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(TileShader._prog);\n TileShader.vertLoc = gl.getAttribLocation(TileShader._prog, 'aVertexPosition');\n TileShader.textureLoc = gl.getAttribLocation(TileShader._prog, 'aTextureCoord');\n TileShader.projMatLoc = gl.getUniformLocation(TileShader._prog, 'uPMatrix');\n TileShader.mvMatLoc = gl.getUniformLocation(TileShader._prog, 'uMVMatrix');\n TileShader.sampLoc = gl.getUniformLocation(TileShader._prog, 'uSampler');\n TileShader.centerScreenLoc = gl.getUniformLocation(TileShader._prog, 'uCenterScreen');\n TileShader.centerWorldLoc = gl.getUniformLocation(TileShader._prog, 'uCenterWorld');\n TileShader.sunLoc = gl.getUniformLocation(TileShader._prog, 'uSunPosition');\n TileShader.minBrightnessLoc = gl.getUniformLocation(TileShader._prog, 'uMinBrightness');\n TileShader.opacityLoc = gl.getUniformLocation(TileShader._prog, 'opacity');\n TileShader.atmosphereColorLoc = gl.getUniformLocation(TileShader._prog, 'uAtmosphereColor');\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileUvMultiple)(1);\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileDemEnabled)(true);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n TileShader.initialized = true;\n};\n\nTileShader.use = function (renderContext, vertex, index, texture, opacity, noDepth, centerWorld) {\n if (texture == null) {\n texture = _texture_js__WEBPACK_IMPORTED_MODULE_5__.Texture.getEmpty();\n }\n var gl = renderContext.gl;\n if (gl != null) {\n if (!TileShader.initialized) {\n TileShader.init(renderContext);\n }\n gl.useProgram(TileShader._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniform1f(TileShader.opacityLoc, opacity);\n gl.uniform1f(TileShader.minBrightnessLoc, (renderContext.lighting) ? TileShader.minLightingBrightness : 1);\n if (renderContext.lighting) {\n gl.uniform3f(TileShader.atmosphereColorLoc, TileShader.atmosphereColor.r / 255, TileShader.atmosphereColor.g / 255, TileShader.atmosphereColor.b / 255);\n } else {\n gl.uniform3f(TileShader.atmosphereColorLoc, 0, 0, 0);\n }\n gl.uniform3f(TileShader.centerWorldLoc, centerWorld.x, centerWorld.y, centerWorld.z);\n\n // \"This would be clearer by making the 'centerWorld' parameter optional. Unfortunately, that's not allowed in C# 2.0\"\n if (centerWorld.lengthSq() > 0.001) {\n var wvp = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(mvMat, renderContext.get_projection());\n var centerScreen = wvp.transform(centerWorld);\n gl.uniform3f(TileShader.centerScreenLoc, centerScreen.x, centerScreen.y, centerScreen.z);\n } else {\n gl.uniform3f(TileShader.centerScreenLoc, 0, 0, 0);\n }\n gl.uniformMatrix4fv(TileShader.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(TileShader.projMatLoc, false, renderContext.get_projection().floatArray());\n TileShader.sunPosition.normalize();\n var mvInv = renderContext.get_view().clone();\n mvInv.set_m41(0);\n mvInv.set_m42(0);\n mvInv.set_m43(0);\n mvInv.set_m44(1);\n var sp = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d._transformCoordinate(TileShader.sunPosition, mvInv);\n sp.normalize();\n gl.uniform3f(TileShader.sunLoc, -sp.x, -sp.y, -sp.z);\n gl.uniform1i(TileShader.sampLoc, 0);\n if (renderContext.space || noDepth) {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.enableVertexAttribArray(TileShader.vertLoc);\n gl.enableVertexAttribArray(TileShader.textureLoc);\n gl.vertexAttribPointer(TileShader.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 20, 0);\n gl.vertexAttribPointer(TileShader.textureLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 20, 12);\n gl.activeTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE0);\n gl.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, texture);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, index);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n if (noDepth) {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE);\n } else {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n }\n};\n\nvar TileShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TileShader\", [TileShader, TileShader$, null]);\n\n\n// wwtlib.FitsShader\n\nfunction FitsShader() { }\n\nFitsShader.vertLoc = 0;\nFitsShader.textureLoc = 0;\nFitsShader.initialized = false;\nFitsShader._prog = null;\nFitsShader.blankValue = 0;\nFitsShader.bScale = 1;\nFitsShader.bZero = 0;\nFitsShader.min = 0;\nFitsShader.max = 0;\nFitsShader.transparentBlack = false;\nFitsShader.containsBlanks = false;\nFitsShader.scaleType = 0;\n\nFitsShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n #version 300 es\n\n precision mediump float;\n in vec2 vTextureCoord;\n in vec3 vNormal;\n in vec3 vCamVector;\n out vec4 fragmentColor;\n\n uniform sampler2D uSampler;\n uniform sampler2D colorSampler;\n uniform float blank;\n uniform float bzero;\n uniform float bscale;\n uniform float min;\n uniform float max;\n uniform bool containsBlanks;\n uniform bool transparentBlack;\n uniform int scaleType;\n uniform float opacity;\n\n bool isNaN(float value) {\n // See https://stackoverflow.com/questions/9446888/best-way-to-detect-nans-in-opengl-shaders\n // PKGW also finds that we need \"value != value\" on his Dell laptop running\n // Chrome on Linux.\n return (value != value) || !(value < 0.0 || 0.0 < value || value == 0.0);\n }\n\n void main(void) {\n //FITS images are flipped on the y axis\n vec4 color = texture(uSampler, vec2(vTextureCoord.x, 1.0 - vTextureCoord.y));\n\n if(isNaN(color.r) || (containsBlanks && abs(blank - color.r) < 0.00000001)){\n fragmentColor = vec4(0.0, 0.0, 0.0, 0.0);\n } else {\n float physicalValue = (bzero + bscale * color.r - min) / (max - min);\n if(transparentBlack && physicalValue <= 0.0){\n fragmentColor = vec4(0.0, 0.0, 0.0, 0.0);\n return;\n }\n\n physicalValue = clamp(physicalValue, 0.0, 1.0);\n\n switch(scaleType){\n case 1:\n physicalValue = log(physicalValue * 255.0 + 1.0 ) / log(256.0);\n break;\n case 2:\n physicalValue = physicalValue * physicalValue;\n break;\n case 3:\n physicalValue = sqrt(physicalValue);\n break;\n }\n vec4 colorFromColorMapper = texture(colorSampler, vec2(physicalValue, 0.5));\n fragmentColor = vec4(colorFromColorMapper.rgb, opacity);\n }\n }\n `;\n\n const vertexShaderText = `\\\n #version 300 es\n\n in vec3 aVertexPosition;\n in vec2 aTextureCoord;\n\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n uniform vec3 uCenterScreen;\n\n out vec2 vTextureCoord;\n\n void main(void) {\n if(length(uCenterScreen) > 0.0000001) {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 0.0) + vec4(uCenterScreen, 1.0);\n } else {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n }\n\n vTextureCoord = aTextureCoord;\n }\n `;\n\n FitsShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(FitsShader._frag, fragShaderText);\n gl.compileShader(FitsShader._frag);\n var stat = gl.getShaderParameter(FitsShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat) {\n var errorF = gl.getShaderInfoLog(FitsShader._frag);\n console.log(errorF);\n }\n FitsShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(FitsShader._vert, vertexShaderText);\n gl.compileShader(FitsShader._vert);\n var stat1 = gl.getShaderParameter(FitsShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat1) {\n var errorV = gl.getShaderInfoLog(FitsShader._vert);\n console.log(errorV);\n }\n FitsShader._prog = gl.createProgram();\n gl.attachShader(FitsShader._prog, FitsShader._vert);\n gl.attachShader(FitsShader._prog, FitsShader._frag);\n gl.linkProgram(FitsShader._prog);\n var errcode = gl.getProgramParameter(FitsShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(FitsShader._prog);\n FitsShader.vertLoc = gl.getAttribLocation(FitsShader._prog, 'aVertexPosition');\n FitsShader.textureLoc = gl.getAttribLocation(FitsShader._prog, 'aTextureCoord');\n FitsShader.projMatLoc = gl.getUniformLocation(FitsShader._prog, 'uPMatrix');\n FitsShader.mvMatLoc = gl.getUniformLocation(FitsShader._prog, 'uMVMatrix');\n FitsShader.sampLoc = gl.getUniformLocation(FitsShader._prog, 'uSampler');\n FitsShader.colorLoc = gl.getUniformLocation(FitsShader._prog, 'colorSampler');\n FitsShader.centerScreenLoc = gl.getUniformLocation(FitsShader._prog, 'uCenterScreen');\n FitsShader.blank = gl.getUniformLocation(FitsShader._prog, 'blank');\n FitsShader.bzero = gl.getUniformLocation(FitsShader._prog, 'bzero');\n FitsShader.bscale = gl.getUniformLocation(FitsShader._prog, 'bscale');\n FitsShader.minLoc = gl.getUniformLocation(FitsShader._prog, 'min');\n FitsShader.maxLoc = gl.getUniformLocation(FitsShader._prog, 'max');\n FitsShader.transparentBlackLoc = gl.getUniformLocation(FitsShader._prog, 'transparentBlack');\n FitsShader.containsBlanksLoc = gl.getUniformLocation(FitsShader._prog, 'containsBlanks');\n FitsShader.scalingLocation = gl.getUniformLocation(FitsShader._prog, 'scaleType');\n FitsShader.opacityLoc = gl.getUniformLocation(FitsShader._prog, 'opacity');\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileUvMultiple)(1);\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileDemEnabled)(true);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n FitsShader.initialized = true;\n};\n\nFitsShader.use = function (renderContext, vertex, index, texture, opacity, noDepth, centerWorld) {\n if (texture == null) {\n texture = _texture_js__WEBPACK_IMPORTED_MODULE_5__.Texture.getEmpty();\n }\n var gl = renderContext.gl;\n if (gl != null) {\n if (!FitsShader.initialized) {\n FitsShader.init(renderContext);\n }\n gl.useProgram(FitsShader._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniform1f(FitsShader.opacityLoc, opacity);\n gl.uniformMatrix4fv(FitsShader.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(FitsShader.projMatLoc, false, renderContext.get_projection().floatArray());\n\n // \"This would be clearer by making the 'centerWorld' parameter optional. Unfortunately, that's not allowed in C# 2.0\"\n if (centerWorld.lengthSq() > 0.001) {\n var wvp = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(mvMat, renderContext.get_projection());\n var centerScreen = wvp.transform(centerWorld);\n gl.uniform3f(FitsShader.centerScreenLoc, centerScreen.x, centerScreen.y, centerScreen.z);\n } else {\n gl.uniform3f(FitsShader.centerScreenLoc, 0, 0, 0);\n }\n\n gl.uniform1i(FitsShader.sampLoc, 0);\n gl.uniform1i(FitsShader.colorLoc, 1);\n gl.uniform1f(FitsShader.blank, FitsShader.blankValue);\n gl.uniform1f(FitsShader.bzero, FitsShader.bZero);\n gl.uniform1f(FitsShader.bscale, FitsShader.bScale);\n gl.uniform1f(FitsShader.minLoc, FitsShader.min);\n gl.uniform1f(FitsShader.maxLoc, FitsShader.max);\n gl.uniform1i(FitsShader.transparentBlackLoc, FitsShader.transparentBlack);\n gl.uniform1i(FitsShader.containsBlanksLoc, FitsShader.containsBlanks);\n gl.uniform1i(FitsShader.scalingLocation, FitsShader.scaleType);\n if (renderContext.space || noDepth) {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.enableVertexAttribArray(FitsShader.vertLoc);\n gl.enableVertexAttribArray(FitsShader.textureLoc);\n gl.vertexAttribPointer(FitsShader.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 20, 0);\n gl.vertexAttribPointer(FitsShader.textureLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 20, 12);\n gl.activeTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE0);\n gl.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, texture);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, index);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n if (noDepth) {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE);\n } else {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n }\n};\n\nvar FitsShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"FitsShader\", [FitsShader, FitsShader$, null]);\n\n\n// wwtlib.ImageShader\n\nfunction ImageShader() { }\n\nImageShader.vertLoc = 0;\nImageShader.textureLoc = 0;\nImageShader.initialized = false;\nImageShader._prog = null;\n\nImageShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision mediump float;\n\n varying vec2 vTextureCoord;\n\n uniform sampler2D uSampler;\n uniform float opacity;\n\n void main(void) {\n vec4 col = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));\n gl_FragColor = col * opacity;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n attribute vec2 aTextureCoord;\n\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n\n varying vec2 vTextureCoord;\n varying vec3 vNormal;\n varying vec3 vCamVector;\n\n void main(void) {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n vTextureCoord = aTextureCoord;\n }\n `;\n\n ImageShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(ImageShader._frag, fragShaderText);\n gl.compileShader(ImageShader._frag);\n var stat = gl.getShaderParameter(ImageShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat) {\n var errorF = gl.getShaderInfoLog(ImageShader._frag);\n }\n ImageShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(ImageShader._vert, vertexShaderText);\n gl.compileShader(ImageShader._vert);\n var stat1 = gl.getShaderParameter(ImageShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat1) {\n var errorV = gl.getShaderInfoLog(ImageShader._vert);\n }\n ImageShader._prog = gl.createProgram();\n gl.attachShader(ImageShader._prog, ImageShader._vert);\n gl.attachShader(ImageShader._prog, ImageShader._frag);\n gl.linkProgram(ImageShader._prog);\n var errcode = gl.getProgramParameter(ImageShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(ImageShader._prog);\n ImageShader.vertLoc = gl.getAttribLocation(ImageShader._prog, 'aVertexPosition');\n ImageShader.textureLoc = gl.getAttribLocation(ImageShader._prog, 'aTextureCoord');\n ImageShader.projMatLoc = gl.getUniformLocation(ImageShader._prog, 'uPMatrix');\n ImageShader.mvMatLoc = gl.getUniformLocation(ImageShader._prog, 'uMVMatrix');\n ImageShader.sampLoc = gl.getUniformLocation(ImageShader._prog, 'uSampler');\n ImageShader.opacityLoc = gl.getUniformLocation(ImageShader._prog, 'opacity');\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileUvMultiple)(1);\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileDemEnabled)(true);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n ImageShader.initialized = true;\n};\n\nImageShader.use = function (renderContext, vertex, index, texture, opacity, noDepth) {\n if (texture == null) {\n texture = _texture_js__WEBPACK_IMPORTED_MODULE_5__.Texture.getEmpty();\n }\n var gl = renderContext.gl;\n if (gl != null) {\n if (!ImageShader.initialized) {\n ImageShader.init(renderContext);\n }\n gl.useProgram(ImageShader._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniform1f(ImageShader.opacityLoc, opacity);\n gl.uniformMatrix4fv(ImageShader.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(ImageShader.projMatLoc, false, renderContext.get_projection().floatArray());\n gl.uniform1i(ImageShader.sampLoc, 0);\n if (renderContext.space || noDepth) {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.enableVertexAttribArray(ImageShader.vertLoc);\n gl.enableVertexAttribArray(ImageShader.textureLoc);\n gl.vertexAttribPointer(ImageShader.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 20, 0);\n gl.vertexAttribPointer(ImageShader.textureLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 20, 12);\n gl.activeTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE0);\n gl.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, texture);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, index);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n if (noDepth) {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE);\n } else {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n }\n};\n\nvar ImageShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ImageShader\", [ImageShader, ImageShader$, null]);\n\n\n// wwtlib.ImageShader2\n\nfunction ImageShader2() { }\n\nImageShader2.vertLoc = 0;\nImageShader2.textureLoc = 0;\nImageShader2.initialized = false;\nImageShader2._prog = null;\n\nImageShader2.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision mediump float;\n\n varying vec2 vTextureCoord;\n\n uniform sampler2D uSampler;\n uniform float opacity;\n\n void main(void) {\n vec4 col = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));\n gl_FragColor = col * opacity;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n attribute vec2 aTextureCoord;\n\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n\n varying vec2 vTextureCoord;\n varying vec3 vNormal;\n varying vec3 vCamVector;\n\n void main(void) {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n vTextureCoord = aTextureCoord;\n }\n `;\n\n ImageShader2._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(ImageShader2._frag, fragShaderText);\n gl.compileShader(ImageShader2._frag);\n var stat = gl.getShaderParameter(ImageShader2._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat) {\n var errorF = gl.getShaderInfoLog(ImageShader2._frag);\n }\n ImageShader2._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(ImageShader2._vert, vertexShaderText);\n gl.compileShader(ImageShader2._vert);\n var stat1 = gl.getShaderParameter(ImageShader2._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n if (!stat1) {\n var errorV = gl.getShaderInfoLog(ImageShader2._vert);\n }\n ImageShader2._prog = gl.createProgram();\n gl.attachShader(ImageShader2._prog, ImageShader2._vert);\n gl.attachShader(ImageShader2._prog, ImageShader2._frag);\n gl.linkProgram(ImageShader2._prog);\n var errcode = gl.getProgramParameter(ImageShader2._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(ImageShader2._prog);\n ImageShader2.vertLoc = gl.getAttribLocation(ImageShader2._prog, 'aVertexPosition');\n ImageShader2.textureLoc = gl.getAttribLocation(ImageShader2._prog, 'aTextureCoord');\n ImageShader2.projMatLoc = gl.getUniformLocation(ImageShader2._prog, 'uPMatrix');\n ImageShader2.mvMatLoc = gl.getUniformLocation(ImageShader2._prog, 'uMVMatrix');\n ImageShader2.sampLoc = gl.getUniformLocation(ImageShader2._prog, 'uSampler');\n ImageShader2.opacityLoc = gl.getUniformLocation(ImageShader2._prog, 'opacity');\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileUvMultiple)(1);\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileDemEnabled)(true);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n ImageShader2.initialized = true;\n};\n\nImageShader2.use = function (renderContext, vertex, index, texture, opacity, noDepth) {\n if (texture == null) {\n texture = _texture_js__WEBPACK_IMPORTED_MODULE_5__.Texture.getEmpty();\n }\n var gl = renderContext.gl;\n if (gl != null) {\n if (!ImageShader2.initialized) {\n ImageShader2.init(renderContext);\n }\n gl.useProgram(ImageShader2._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniform1f(ImageShader2.opacityLoc, opacity);\n gl.uniformMatrix4fv(ImageShader2.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(ImageShader2.projMatLoc, false, renderContext.get_projection().floatArray());\n gl.uniform1i(ImageShader2.sampLoc, 0);\n if (renderContext.space || noDepth) {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.enableVertexAttribArray(ImageShader2.vertLoc);\n gl.enableVertexAttribArray(ImageShader2.textureLoc);\n gl.vertexAttribPointer(ImageShader2.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 32, 0);\n gl.vertexAttribPointer(ImageShader2.textureLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 32, 24);\n gl.activeTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE0);\n gl.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, texture);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, index);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n if (noDepth) {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE);\n } else {\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n }\n};\n\nvar ImageShader2$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ImageShader2\", [ImageShader2, ImageShader2$, null]);\n\n\n// wwtlib.SpriteShader\n\nfunction SpriteShader() { }\n\nSpriteShader.vertLoc = 0;\nSpriteShader.textureLoc = 0;\nSpriteShader.colorLoc = 0;\nSpriteShader.initialized = false;\nSpriteShader._prog = null;\n\nSpriteShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision mediump float;\n\n varying vec2 vTextureCoord;\n varying lowp vec4 vColor;\n uniform sampler2D uSampler;\n\n void main(void) {\n gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t)) * vColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n attribute vec2 aTextureCoord;\n attribute lowp vec4 aColor;\n\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n\n varying vec2 vTextureCoord;\n varying vec4 vColor;\n\n void main(void) {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n vTextureCoord = aTextureCoord;\n vColor = aColor;\n }\n `;\n\n SpriteShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(SpriteShader._frag, fragShaderText);\n gl.compileShader(SpriteShader._frag);\n var stat = gl.getShaderParameter(SpriteShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n SpriteShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(SpriteShader._vert, vertexShaderText);\n gl.compileShader(SpriteShader._vert);\n var stat1 = gl.getShaderParameter(SpriteShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n SpriteShader._prog = gl.createProgram();\n gl.attachShader(SpriteShader._prog, SpriteShader._vert);\n gl.attachShader(SpriteShader._prog, SpriteShader._frag);\n gl.linkProgram(SpriteShader._prog);\n var errcode = gl.getProgramParameter(SpriteShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(SpriteShader._prog);\n SpriteShader.vertLoc = gl.getAttribLocation(SpriteShader._prog, 'aVertexPosition');\n SpriteShader.textureLoc = gl.getAttribLocation(SpriteShader._prog, 'aTextureCoord');\n SpriteShader.colorLoc = gl.getAttribLocation(SpriteShader._prog, 'aColor');\n SpriteShader.projMatLoc = gl.getUniformLocation(SpriteShader._prog, 'uPMatrix');\n SpriteShader.mvMatLoc = gl.getUniformLocation(SpriteShader._prog, 'uMVMatrix');\n SpriteShader.sampLoc = gl.getUniformLocation(SpriteShader._prog, 'uSampler');\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileUvMultiple)(1);\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileDemEnabled)(true);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n SpriteShader.initialized = true;\n};\n\nSpriteShader.use = function (renderContext, vertex, texture) {\n if (texture == null) {\n texture = _texture_js__WEBPACK_IMPORTED_MODULE_5__.Texture.getEmpty();\n }\n var gl = renderContext.gl;\n if (gl != null) {\n if (!SpriteShader.initialized) {\n SpriteShader.init(renderContext);\n }\n gl.useProgram(SpriteShader._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniformMatrix4fv(SpriteShader.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(SpriteShader.projMatLoc, false, renderContext.get_projection().floatArray());\n gl.uniform1i(SpriteShader.sampLoc, 0);\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.enableVertexAttribArray(SpriteShader.vertLoc);\n gl.enableVertexAttribArray(SpriteShader.textureLoc);\n gl.enableVertexAttribArray(SpriteShader.colorLoc);\n gl.vertexAttribPointer(SpriteShader.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 36, 0);\n gl.vertexAttribPointer(SpriteShader.colorLoc, 4, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 36, 12);\n gl.vertexAttribPointer(SpriteShader.textureLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 36, 28);\n gl.activeTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE0);\n gl.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, texture);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, null);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n};\n\nvar SpriteShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"SpriteShader\", [SpriteShader, SpriteShader$, null]);\n\n\n// wwtlib.ShapeSpriteShader\n\nfunction ShapeSpriteShader() { }\n\nShapeSpriteShader.vertLoc = 0;\nShapeSpriteShader.textureLoc = 0;\nShapeSpriteShader.colorLoc = 0;\nShapeSpriteShader.initialized = false;\nShapeSpriteShader._prog = null;\n\nShapeSpriteShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision mediump float;\n\n varying lowp vec4 vColor;\n\n void main(void) {\n gl_FragColor = vColor;\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n attribute lowp vec4 aColor;\n\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n\n varying vec2 vTextureCoord;\n varying vec4 vColor;\n\n void main(void) {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n vColor = aColor;\n }\n `;\n\n ShapeSpriteShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(ShapeSpriteShader._frag, fragShaderText);\n gl.compileShader(ShapeSpriteShader._frag);\n var stat = gl.getShaderParameter(ShapeSpriteShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n ShapeSpriteShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(ShapeSpriteShader._vert, vertexShaderText);\n gl.compileShader(ShapeSpriteShader._vert);\n var stat1 = gl.getShaderParameter(ShapeSpriteShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n ShapeSpriteShader._prog = gl.createProgram();\n gl.attachShader(ShapeSpriteShader._prog, ShapeSpriteShader._vert);\n gl.attachShader(ShapeSpriteShader._prog, ShapeSpriteShader._frag);\n gl.linkProgram(ShapeSpriteShader._prog);\n var errcode = gl.getProgramParameter(ShapeSpriteShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(ShapeSpriteShader._prog);\n ShapeSpriteShader.vertLoc = gl.getAttribLocation(ShapeSpriteShader._prog, 'aVertexPosition');\n ShapeSpriteShader.colorLoc = gl.getAttribLocation(ShapeSpriteShader._prog, 'aColor');\n ShapeSpriteShader.projMatLoc = gl.getUniformLocation(ShapeSpriteShader._prog, 'uPMatrix');\n ShapeSpriteShader.mvMatLoc = gl.getUniformLocation(ShapeSpriteShader._prog, 'uMVMatrix');\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n ShapeSpriteShader.initialized = true;\n};\n\nShapeSpriteShader.use = function (renderContext, vertex) {\n var gl = renderContext.gl;\n if (gl != null) {\n if (!ShapeSpriteShader.initialized) {\n ShapeSpriteShader.init(renderContext);\n }\n gl.useProgram(ShapeSpriteShader._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniformMatrix4fv(ShapeSpriteShader.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(ShapeSpriteShader.projMatLoc, false, renderContext.get_projection().floatArray());\n gl.uniform1i(ShapeSpriteShader.sampLoc, 0);\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.enableVertexAttribArray(ShapeSpriteShader.vertLoc);\n gl.enableVertexAttribArray(ShapeSpriteShader.textureLoc);\n gl.enableVertexAttribArray(ShapeSpriteShader.colorLoc);\n gl.vertexAttribPointer(ShapeSpriteShader.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 36, 0);\n gl.vertexAttribPointer(ShapeSpriteShader.colorLoc, 4, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 36, 12);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, null);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n};\n\nvar ShapeSpriteShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ShapeSpriteShader\", [ShapeSpriteShader, ShapeSpriteShader$, null]);\n\n\n// wwtlib.TextShader\n\nfunction TextShader() { }\n\nTextShader.vertLoc = 0;\nTextShader.textureLoc = 0;\nTextShader.initialized = false;\nTextShader._prog = null;\n\nTextShader.init = function (renderContext) {\n var gl = renderContext.gl;\n\n const fragShaderText = `\\\n precision mediump float;\n\n varying vec2 vTextureCoord;\n\n uniform sampler2D uSampler;\n\n void main(void) {\n gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));\n }\n `;\n\n const vertexShaderText = `\\\n attribute vec3 aVertexPosition;\n attribute vec2 aTextureCoord;\n\n uniform mat4 uMVMatrix;\n uniform mat4 uPMatrix;\n\n varying vec2 vTextureCoord;\n\n void main(void) {\n gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);\n vTextureCoord = aTextureCoord;\n }\n `;\n\n TextShader._frag = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FRAGMENT_SHADER);\n gl.shaderSource(TextShader._frag, fragShaderText);\n gl.compileShader(TextShader._frag);\n var stat = gl.getShaderParameter(TextShader._frag, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n TextShader._vert = gl.createShader(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.VERTEX_SHADER);\n gl.shaderSource(TextShader._vert, vertexShaderText);\n gl.compileShader(TextShader._vert);\n var stat1 = gl.getShaderParameter(TextShader._vert, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.COMPILE_STATUS);\n TextShader._prog = gl.createProgram();\n gl.attachShader(TextShader._prog, TextShader._vert);\n gl.attachShader(TextShader._prog, TextShader._frag);\n gl.linkProgram(TextShader._prog);\n var errcode = gl.getProgramParameter(TextShader._prog, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINK_STATUS);\n gl.useProgram(TextShader._prog);\n TextShader.vertLoc = gl.getAttribLocation(TextShader._prog, 'aVertexPosition');\n TextShader.textureLoc = gl.getAttribLocation(TextShader._prog, 'aTextureCoord');\n TextShader.projMatLoc = gl.getUniformLocation(TextShader._prog, 'uPMatrix');\n TextShader.mvMatLoc = gl.getUniformLocation(TextShader._prog, 'uMVMatrix');\n TextShader.sampLoc = gl.getUniformLocation(TextShader._prog, 'uSampler');\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileUvMultiple)(1);\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileDemEnabled)(true);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n TextShader.initialized = true;\n};\n\nTextShader.use = function (renderContext, vertex, texture) {\n if (texture == null) {\n texture = _texture_js__WEBPACK_IMPORTED_MODULE_5__.Texture.getEmpty();\n }\n var gl = renderContext.gl;\n if (gl != null) {\n if (!TextShader.initialized) {\n TextShader.init(renderContext);\n }\n gl.useProgram(TextShader._prog);\n var mvMat = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n gl.uniformMatrix4fv(TextShader.mvMatLoc, false, mvMat.floatArray());\n gl.uniformMatrix4fv(TextShader.projMatLoc, false, renderContext.get_projection().floatArray());\n gl.uniform1i(TextShader.sampLoc, 0);\n if (renderContext.space) {\n gl.disable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n } else {\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DEPTH_TEST);\n }\n gl.disableVertexAttribArray(0);\n gl.disableVertexAttribArray(1);\n gl.disableVertexAttribArray(2);\n gl.disableVertexAttribArray(3);\n gl.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, vertex);\n gl.enableVertexAttribArray(TextShader.vertLoc);\n gl.enableVertexAttribArray(TextShader.textureLoc);\n gl.vertexAttribPointer(TextShader.vertLoc, 3, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 20, 0);\n gl.vertexAttribPointer(TextShader.textureLoc, 2, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.FLOAT, false, 20, 12);\n gl.activeTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE0);\n gl.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, texture);\n gl.enable(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.BLEND);\n gl.blendFunc(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.SRC_ALPHA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ONE_MINUS_SRC_ALPHA);\n }\n};\n\nvar TextShader$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TextShader\", [TextShader, TextShader$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/graphics/sprite2d.js\":\n/*!**********************************!*\\\n !*** ./esm/graphics/sprite2d.js ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Sprite2d: () => (/* binding */ Sprite2d)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _shaders_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./shaders.js */ \"./esm/graphics/shaders.js\");\n/* harmony import */ var _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Sprites.\n\n\n\n\n\n\n\n\n// wwtlib.Sprite2d\n\nfunction Sprite2d() {\n this.vertCount = 0;\n}\n\nvar Sprite2d$ = {\n draw: function (renderContext, points, count, texture, triangleStrips, opacity) {\n if (this.vertexBuffer == null) {\n this.create(points);\n } else {\n this.update(points);\n }\n if (texture == null) {\n _shaders_js__WEBPACK_IMPORTED_MODULE_3__.ShapeSpriteShader.use(renderContext, this.vertexBuffer);\n renderContext.gl.drawArrays(triangleStrips ? _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TRIANGLE_STRIP : _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TRIANGLES, 0, points.length);\n } else {\n _shaders_js__WEBPACK_IMPORTED_MODULE_3__.SpriteShader.use(renderContext, this.vertexBuffer, (texture != null) ? texture.texture2d : null);\n renderContext.gl.drawArrays(triangleStrips ? _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TRIANGLE_STRIP : _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TRIANGLES, 0, points.length);\n }\n },\n\n create: function (verts) {\n this.vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, this.vertexBuffer);\n var f32array = new Float32Array(verts.length * 9);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(verts);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n buffer[index++] = pt.position.x;\n buffer[index++] = pt.position.y;\n buffer[index++] = pt.position.z;\n buffer[index++] = pt.color.r / 255;\n buffer[index++] = pt.color.g / 255;\n buffer[index++] = pt.color.b / 255;\n buffer[index++] = pt.color.a / 255;\n buffer[index++] = pt.tu;\n buffer[index++] = pt.tv;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, f32array, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.DYNAMIC_DRAW);\n },\n\n update: function (verts) {\n if (this.vertCount < verts.length) {\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.deleteBuffer(this.vertexBuffer);\n this.create(verts);\n return;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, this.vertexBuffer);\n var f32array = new Float32Array(verts.length * 9);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(verts);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n buffer[index++] = pt.position.x;\n buffer[index++] = pt.position.y;\n buffer[index++] = pt.position.z;\n buffer[index++] = pt.color.r / 255;\n buffer[index++] = pt.color.g / 255;\n buffer[index++] = pt.color.b / 255;\n buffer[index++] = pt.color.a / 255;\n buffer[index++] = pt.tu;\n buffer[index++] = pt.tv;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferSubData(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, 0, f32array);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Sprite2d\", [Sprite2d, Sprite2d$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/graphics/tessellator.js\":\n/*!*************************************!*\\\n !*** ./esm/graphics/tessellator.js ***!\n \\*************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Tessellator: () => (/* binding */ Tessellator)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A tessellator algorithm.\n\n\n\n\n\n// wwtlib.Tessellator\n\nfunction Tessellator() { }\n\nTessellator.tesselateSimplePoly = function (inputList) {\n var results = [];\n var tess = new Tessellator();\n tess.process(inputList, results);\n return results;\n};\n\nvar Tessellator$ = {\n _isLeftOfHalfSpace: function (pntA, pntB, pntTest) {\n pntA.normalize();\n pntB.normalize();\n var cross = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.cross(pntA, pntB);\n var dot = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.dot(cross, pntTest);\n return dot > 0;\n },\n\n _insideTriangle: function (pntA, pntB, pntC, pntTest) {\n if (!this._isLeftOfHalfSpace(pntA, pntB, pntTest)) {\n return false;\n }\n if (!this._isLeftOfHalfSpace(pntB, pntC, pntTest)) {\n return false;\n }\n if (!this._isLeftOfHalfSpace(pntC, pntA, pntTest)) {\n return false;\n }\n return true;\n },\n\n _canClipEar: function (poly, u, v, w, n, verts) {\n var p;\n var a = poly[verts[u]].copy();\n var b = poly[verts[v]].copy();\n var c = poly[verts[w]].copy();\n var P;\n var d = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.subtractVectors(b, a);\n d.normalize();\n var e = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.subtractVectors(b, c);\n e.normalize();\n var g = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.cross(d, e);\n var bn = b.copy();\n bn.normalize();\n\n // Determine if convex edge\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.dot(g, bn) > 0) {\n return false;\n }\n\n // Check for any intersecting vertices that would invalidate this ear\n for (p = 0; p < n; p++) {\n if ((p === u) || (p === v) || (p === w)) {\n continue;\n }\n P = poly[verts[p]].copy();\n\n // don't clip earth if other intersecting vertex\n if (this._insideTriangle(a, b, c, P)) {\n return false;\n }\n }\n return true;\n },\n\n process: function (poly, result) {\n var n = poly.length;\n if (poly.length < 3) {\n return false;\n }\n var verts = new Array(poly.length);\n for (var i = 0; i < n; i++) {\n verts[i] = i;\n }\n var nv = n;\n var count = 2 * nv;\n for (var m = 0, v = nv - 1; nv > 2;) {\n if (0 >= (count--)) {\n // not enough ears to clip. Non-Simple Polygon\n return false;\n }\n var u = v;\n if (nv <= u) {\n u = 0;\n }\n v = u + 1;\n if (nv <= v) {\n v = 0;\n }\n var w = v + 1;\n if (nv <= w) {\n w = 0;\n }\n if (this._canClipEar(poly, u, v, w, nv, verts)) {\n var s, t;\n result.push(verts[u]);\n result.push(verts[v]);\n result.push(verts[w]);\n m++;\n\n // remove clipped ear\n for (s = v, t = v + 1; t < nv; s++, t++) {\n verts[s] = verts[t];\n }\n nv--;\n count = 2 * nv;\n }\n }\n return true;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Tessellator\", [Tessellator, Tessellator$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/graphics/texture.js\":\n/*!*********************************!*\\\n !*** ./esm/graphics/texture.js ***!\n \\*********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Texture: () => (/* binding */ Texture)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The basic GL texture type.\n\n\n\n\n\n\n\n\n// wwtlib.Texture\n\nfunction Texture() {\n this.imageElement = null;\n this.texture2d = null;\n this._downloading = false;\n this._ready = false;\n this._errored = false;\n this.URL = '';\n}\n\nTexture.empty = null;\n\nTexture.getEmpty = function () {\n if (Texture.empty == null) {\n Texture.empty = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createTexture();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, Texture.empty);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.texImage2D(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, 0, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.RGBA, 1, 1, 0, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.RGBA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.UNSIGNED_BYTE, new Uint8Array([0, 0, 0, 0]));\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, null);\n }\n return Texture.empty;\n};\n\nTexture.fromUrl = function (url) {\n var tex = new Texture();\n tex.load(url);\n return tex;\n};\n\nTexture.isPowerOfTwo = function (val) {\n return !(val & (val - 1));\n};\n\nTexture.fitPowerOfTwo = function (val) {\n val--;\n for (var i = 1; i < 32; i <<= 1) {\n val = val | val >> i;\n }\n return val + 1;\n};\n\nvar Texture$ = {\n cleanUp: function () {\n this.imageElement = null;\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.deleteTexture(this.texture2d);\n },\n\n dispose: function () {\n this.cleanUp();\n },\n\n load: function (url) {\n var $this = this;\n\n this.URL = url;\n if (typeof document === \"undefined\") { return; }\n if (!this._downloading) {\n this._downloading = true;\n this.imageElement = document.createElement('img');\n var xdomimg = this.imageElement;\n this.imageElement.addEventListener('load', function (e) {\n $this._ready = true;\n $this._downloading = false;\n $this._errored = false;\n $this.makeTexture();\n }, false);\n this.imageElement.addEventListener('error', function (e) {\n if (!$this.imageElement.hasAttribute('proxyattempt')) {\n $this.imageElement.setAttribute('proxyattempt', true);\n var new_url = _url_helpers_js__WEBPACK_IMPORTED_MODULE_3__.URLHelpers.singleton.activateProxy($this.URL);\n if (new_url != null) { // null => don't bother: we know that the proxy won't help\n $this.imageElement.src = new_url;\n return;\n }\n }\n $this._downloading = false;\n $this._ready = false;\n $this._errored = true;\n }, false);\n xdomimg.crossOrigin = 'anonymous';\n this.imageElement.src = this.URL;\n }\n },\n\n makeTexture: function () {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice != null) {\n try {\n this.texture2d = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createTexture();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, this.texture2d);\n var image = this.imageElement;\n\n // Before we bind resize to a power of two if nessesary so we can MIPMAP\n if ((!Texture.isPowerOfTwo(this.imageElement.height) | !Texture.isPowerOfTwo(this.imageElement.width)) === 1) {\n var temp = document.createElement('canvas');\n temp.height = Texture.fitPowerOfTwo(image.height);\n temp.width = Texture.fitPowerOfTwo(image.width);\n var ctx = temp.getContext('2d');\n ctx.drawImage(image, 0, 0, temp.width, temp.height);\n //Substitute the resized image\n image = temp;\n }\n\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.texParameteri(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_WRAP_S, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.CLAMP_TO_EDGE);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.texParameteri(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_WRAP_T, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.CLAMP_TO_EDGE);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.texImage2D(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, 0, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.RGBA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.RGBA, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.UNSIGNED_BYTE, image);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.texParameteri(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_MIN_FILTER, _webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.LINEAR_MIPMAP_NEAREST);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.generateMipmap(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindTexture(_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.TEXTURE_2D, null);\n } catch ($e1) {\n this._errored = true;\n }\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Texture\", [Texture, Texture$, null, _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.IDisposable]);\n\n\n/***/ }),\n\n/***/ \"./esm/graphics/webgl_constants.js\":\n/*!*****************************************!*\\\n !*** ./esm/graphics/webgl_constants.js ***!\n \\*****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WEBGL: () => (/* binding */ WEBGL)\n/* harmony export */ });\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Magic constants defined by WebGL.\n\nconst WEBGL = {\n ACTIVE_ATTRIBUTE_MAX_LENGTH: 35722,\n ACTIVE_ATTRIBUTES: 35721,\n ACTIVE_TEXTURE: 34016,\n ACTIVE_UNIFORM_MAX_LENGTH: 35719,\n ACTIVE_UNIFORMS: 35718,\n ALIASED_LINE_WIDTH_RANGE: 33902,\n ALIASED_POINT_SIZE_RANGE: 33901,\n ALPHA: 6406,\n ALPHA_BITS: 3413,\n ALWAYS: 519,\n ARRAY_BUFFER: 34962,\n ARRAY_BUFFER_BINDING: 34964,\n ATTACHED_SHADERS: 35717,\n BACK: 1029,\n BLEND: 3042,\n BLEND_COLOR: 32773,\n BLEND_DST_ALPHA: 32970,\n BLEND_DST_RGB: 32968,\n BLEND_EQUATION: 32777,\n BLEND_EQUATION_ALPHA: 34877,\n BLEND_EQUATION_RGB: 32777,\n BLEND_SRC_ALPHA: 32971,\n BLEND_SRC_RGB: 32969,\n BLUE_BITS: 3412,\n BOOL: 35670,\n BOOL_VEC2: 35671,\n BOOL_VEC3: 35672,\n BOOL_VEC4: 35673,\n BUFFER_SIZE: 34660,\n BUFFER_USAGE: 34661,\n BYTE: 5120,\n CCW: 2305,\n CLAMP_TO_EDGE: 33071,\n COLOR_ATTACHMENT0: 36064,\n COLOR_BUFFER_BIT: 16384,\n COLOR_CLEAR_VALUE: 3106,\n COLOR_WRITEMASK: 3107,\n COMPILE_STATUS: 35713,\n COMPRESSED_TEXTURE_FORMATS: 34467,\n CONSTANT_ALPHA: 32771,\n CONSTANT_COLOR: 32769,\n CULL_FACE: 2884,\n CULL_FACE_MODE: 2885,\n CURRENT_PROGRAM: 35725,\n CURRENT_VERTEX_ATTRIB: 34342,\n CW: 2304,\n DECR: 7683,\n DECR_WRAP: 34056,\n DELETE_STATUS: 35712,\n DEPTH_ATTACHMENT: 36096,\n DEPTH_BITS: 3414,\n DEPTH_BUFFER_BIT: 256,\n DEPTH_CLEAR_VALUE: 2931,\n DEPTH_COMPONENT: 6402,\n DEPTH_COMPONENT16: 33189,\n DEPTH_FUNC: 2932,\n DEPTH_RANGE: 2928,\n DEPTH_STENCIL: 34041,\n DEPTH_STENCIL_ATTACHMENT: 33306,\n DEPTH_TEST: 2929,\n DEPTH_WRITEMASK: 2930,\n DITHER: 3024,\n DONT_CARE: 4352,\n DST_ALPHA: 772,\n DST_COLOR: 774,\n DYNAMIC_DRAW: 35048,\n ELEMENT_ARRAY_BUFFER: 34963,\n ELEMENT_ARRAY_BUFFER_BINDING: 34965,\n EQUAL: 514,\n EXTENSIONS: 7939,\n FASTEST: 4353,\n FLOAT: 5126,\n FLOAT_MAT2: 35674,\n FLOAT_MAT3: 35675,\n FLOAT_MAT4: 35676,\n FLOAT_VEC2: 35664,\n FLOAT_VEC3: 35665,\n FLOAT_VEC4: 35666,\n FRAGMENT_SHADER: 35632,\n FRAMEBUFFER: 36160,\n FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049,\n FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048,\n FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051,\n FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050,\n FRAMEBUFFER_BINDING: 36006,\n FRAMEBUFFER_COMPLETE: 36053,\n FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054,\n FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057,\n FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055,\n FRAMEBUFFER_UNSUPPORTED: 36061,\n FRONT: 1028,\n FRONT_AND_BACK: 1032,\n FRONT_FACE: 2886,\n FUNC_ADD: 32774,\n FUNC_REVERSE_SUBTRACT: 32779,\n FUNC_SUBTRACT: 32778,\n GENERATE_MIPMAP_HINT: 33170,\n GEQUAL: 518,\n GREATER: 516,\n GREEN_BITS: 3411,\n HIGH_FLOAT: 36338,\n HIGH_INT: 36341,\n IMPLEMENTATION_COLOR_READ_FORMAT: 35739,\n IMPLEMENTATION_COLOR_READ_TYPE: 35738,\n INCR: 7682,\n INCR_WRAP: 34055,\n INFO_LOG_LENGTH: 35716,\n INT: 5124,\n INT_VEC2: 35667,\n INT_VEC3: 35668,\n INT_VEC4: 35669,\n INVALID_ENUM: 1280,\n INVALID_FRAMEBUFFER_OPERATION: 1286,\n INVALID_OPERATION: 1282,\n INVALID_VALUE: 1281,\n INVERT: 5386,\n KEEP: 7680,\n LEQUAL: 515,\n LESS: 513,\n LINE_LOOP: 2,\n LINE_STRIP: 3,\n LINE_WIDTH: 2849,\n LINEAR: 9729,\n LINEAR_MIPMAP_LINEAR: 9987,\n LINEAR_MIPMAP_NEAREST: 9985,\n LINES: 1,\n LINK_STATUS: 35714,\n LOW_FLOAT: 36336,\n LOW_INT: 36339,\n LUMINANCE: 6409,\n LUMINANCE_ALPHA: 6410,\n MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661,\n MAX_CUBE_MAP_TEXTURE_SIZE: 34076,\n MAX_FRAGMENT_UNIFORM_VECTORS: 36349,\n MAX_RENDERBUFFER_SIZE: 34024,\n MAX_TEXTURE_IMAGE_UNITS: 34930,\n MAX_TEXTURE_SIZE: 3379,\n MAX_VARYING_VECTORS: 36348,\n MAX_VERTEX_ATTRIBS: 34921,\n MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660,\n MAX_VERTEX_UNIFORM_VECTORS: 36347,\n MAX_VIEWPORT_DIMS: 3386,\n MEDIUM_FLOAT: 36337,\n MEDIUM_INT: 36340,\n MIRRORED_REPEAT: 33648,\n NEAREST: 9728,\n NEAREST_MIPMAP_LINEAR: 9986,\n NEAREST_MIPMAP_NEAREST: 9984,\n NEVER: 512,\n NICEST: 4354,\n NO_ERROR: 0,\n NONE: 0,\n NOTEQUAL: 517,\n NUM_COMPRESSED_TEXTURE_FORMATS: 34466,\n ONE: 1,\n ONE_MINUS_CONSTANT_ALPHA: 32772,\n ONE_MINUS_CONSTANT_COLOR: 32770,\n ONE_MINUS_DST_ALPHA: 773,\n ONE_MINUS_DST_COLOR: 775,\n ONE_MINUS_SRC_ALPHA: 771,\n ONE_MINUS_SRC_COLOR: 769,\n OUT_OF_MEMORY: 1285,\n PACK_ALIGNMENT: 3333,\n POINTS: 0,\n POLYGON_OFFSET_FACTOR: 32824,\n POLYGON_OFFSET_FILL: 32823,\n POLYGON_OFFSET_UNITS: 10752,\n RED_BITS: 3410,\n RENDERBUFFER: 36161,\n RENDERBUFFER_ALPHA_SIZE: 36179,\n RENDERBUFFER_BINDING: 36007,\n RENDERBUFFER_BLUE_SIZE: 36178,\n RENDERBUFFER_DEPTH_SIZE: 36180,\n RENDERBUFFER_GREEN_SIZE: 36177,\n RENDERBUFFER_HEIGHT: 36163,\n RENDERBUFFER_INTERNAL_FORMAT: 36164,\n RENDERBUFFER_RED_SIZE: 36176,\n RENDERBUFFER_STENCIL_SIZE: 36181,\n RENDERBUFFER_WIDTH: 36162,\n RENDERER: 7937,\n REPEAT: 10497,\n REPLACE: 7681,\n RGB: 6407,\n RGB8: 32849,\n RGB5_A1: 32855,\n RGB565: 36194,\n RGBA: 6408,\n RGBA8: 32856,\n RGBA16I: 36232,\n RED_INTEGER: 36244,\n RED: 6403,\n R32F: 33326,\n R16I: 33331,\n RGBA4: 32854,\n SAMPLE_ALPHA_TO_COVERAGE: 32926,\n SAMPLE_BUFFERS: 32936,\n SAMPLE_COVERAGE: 32928,\n SAMPLE_COVERAGE_INVERT: 32939,\n SAMPLE_COVERAGE_VALUE: 32938,\n SAMPLER_2D: 35678,\n SAMPLER_CUBE: 35680,\n SAMPLES: 32937,\n SCISSOR_BOX: 3088,\n SCISSOR_TEST: 3089,\n SHADER_COMPILER: 36346,\n SHADER_SOURCE_LENGTH: 35720,\n SHADER_TYPE: 35663,\n SHADING_LANGUAGE_VERSION: 35724,\n SHORT: 5122,\n SRC_ALPHA: 770,\n SRC_ALPHA_SATURATE: 776,\n SRC_COLOR: 768,\n STATIC_DRAW: 35044,\n STENCIL_ATTACHMENT: 36128,\n STENCIL_BACK_FAIL: 34817,\n STENCIL_BACK_FUNC: 34816,\n STENCIL_BACK_PASS_DEPTH_FAIL: 34818,\n STENCIL_BACK_PASS_DEPTH_PASS: 34819,\n STENCIL_BACK_REF: 36003,\n STENCIL_BACK_VALUE_MASK: 36004,\n STENCIL_BACK_WRITEMASK: 36005,\n STENCIL_BITS: 3415,\n STENCIL_BUFFER_BIT: 1024,\n STENCIL_CLEAR_VALUE: 2961,\n STENCIL_FAIL: 2964,\n STENCIL_FUNC: 2962,\n STENCIL_INDEX: 6401,\n STENCIL_INDEX8: 36168,\n STENCIL_PASS_DEPTH_FAIL: 2965,\n STENCIL_PASS_DEPTH_PASS: 2966,\n STENCIL_REF: 2967,\n STENCIL_TEST: 2960,\n STENCIL_VALUE_MASK: 2963,\n STENCIL_WRITEMASK: 2968,\n STREAM_DRAW: 35040,\n SUBPIXEL_BITS: 3408,\n TEXTURE: 5890,\n TEXTURE_2D: 3553,\n TEXTURE_BINDING_2D: 32873,\n TEXTURE_BINDING_CUBE_MAP: 34068,\n TEXTURE_CUBE_MAP: 34067,\n TEXTURE_CUBE_MAP_NEGATIVE_X: 34070,\n TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072,\n TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074,\n TEXTURE_CUBE_MAP_POSITIVE_X: 34069,\n TEXTURE_CUBE_MAP_POSITIVE_Y: 34071,\n TEXTURE_CUBE_MAP_POSITIVE_Z: 34073,\n UNPACK_FLIP_Y_WEBGL: 37440,\n TEXTURE_MAG_FILTER: 10240,\n TEXTURE_MIN_FILTER: 10241,\n TEXTURE_WRAP_S: 10242,\n TEXTURE_WRAP_T: 10243,\n TEXTURE0: 33984,\n TEXTURE1: 33985,\n TEXTURE10: 33994,\n TEXTURE11: 33995,\n TEXTURE12: 33996,\n TEXTURE13: 33997,\n TEXTURE14: 33998,\n TEXTURE15: 33999,\n TEXTURE16: 34000,\n TEXTURE17: 34001,\n TEXTURE18: 34002,\n TEXTURE19: 34003,\n TEXTURE2: 33986,\n TEXTURE20: 34004,\n TEXTURE21: 34005,\n TEXTURE22: 34006,\n TEXTURE23: 34007,\n TEXTURE24: 34008,\n TEXTURE25: 34009,\n TEXTURE26: 34010,\n TEXTURE27: 34011,\n TEXTURE28: 34012,\n TEXTURE29: 34013,\n TEXTURE3: 33987,\n TEXTURE30: 34014,\n TEXTURE31: 34015,\n TEXTURE4: 33988,\n TEXTURE5: 33989,\n TEXTURE6: 33990,\n TEXTURE7: 33991,\n TEXTURE8: 33992,\n TEXTURE9: 33993,\n TRIANGLE_FAN: 6,\n TRIANGLE_STRIP: 5,\n TRIANGLES: 4,\n UNPACK_ALIGNMENT: 3317,\n UNSIGNED_BYTE: 5121,\n UNSIGNED_INT: 5125,\n UNSIGNED_SHORT: 5123,\n UNSIGNED_SHORT_4_4_4_4: 32819,\n UNSIGNED_SHORT_5_5_5_1: 32820,\n UNSIGNED_SHORT_5_6_5: 33635,\n VALIDATE_STATUS: 35715,\n VENDOR: 7936,\n VERSION: 7938,\n VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975,\n VERTEX_ATTRIB_ARRAY_ENABLED: 34338,\n VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922,\n VERTEX_ATTRIB_ARRAY_POINTER: 34373,\n VERTEX_ATTRIB_ARRAY_SIZE: 34339,\n VERTEX_ATTRIB_ARRAY_STRIDE: 34340,\n VERTEX_ATTRIB_ARRAY_TYPE: 34341,\n VERTEX_SHADER: 35633,\n VIEWPORT: 2978,\n ZERO: 0,\n};\n\n\n/***/ }),\n\n/***/ \"./esm/grids.js\":\n/*!**********************!*\\\n !*** ./esm/grids.js ***!\n \\**********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Grids: () => (/* binding */ Grids)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _astrocalc_date_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./astrocalc/date.js */ \"./esm/astrocalc/date.js\");\n/* harmony import */ var _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./astrocalc/coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n/* harmony import */ var _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./graphics/gl_buffers.js */ \"./esm/graphics/gl_buffers.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./graphics/shaders.js */ \"./esm/graphics/shaders.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utilities/binary_reader.js */ \"./esm/utilities/binary_reader.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _sky_text_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./sky_text.js */ \"./esm/sky_text.js\");\n/* harmony import */ var _planets_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./planets.js */ \"./esm/planets.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _star_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./star.js */ \"./esm/star.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./web_file.js */ \"./esm/web_file.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Various grids that can overlay the sky view.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.Grids\n\nfunction Grids() { }\n\nGrids._galaxyImageIndexBuffer = null;\nGrids._galaxyImageTriangleCount = 0;\nGrids._milkyWayImage = null;\nGrids._starSprites = null;\nGrids._starCount = 0;\nGrids._starsDownloading = false;\nGrids._stars = null;\nGrids._hipparcosIndex = {};\nGrids._limitingMagnitude = 16;\nGrids._galaxyTextures = null;\nGrids._galaxyVertexCounts = null;\nGrids._largeSet = true;\nGrids._cosmosReady = false;\nGrids._cosmos = null;\nGrids._downloadingGalaxy = false;\nGrids._eclipticCount = 0;\nGrids._eclipticYear = 0;\nGrids._monthDays = [31, 28.2421, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nGrids._monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\nGrids._eclipticTextYear = 0;\n\nGrids._createGalaxyImage = function (renderContext) {\n if (Grids._milkyWayImage == null) {\n Grids._milkyWayImage = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_9__.Texture.fromUrl(_url_helpers_js__WEBPACK_IMPORTED_MODULE_2__.URLHelpers.singleton.engineAssetUrl('milkywaybar.jpg'));\n }\n var subdivs = 50;\n var lat, lng;\n var index = 0;\n var latMin = 64;\n var latMax = -64;\n var lngMin = -64;\n var lngMax = 64;\n Grids._galaxyImageVertexBuffer = new _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_8__.PositionTextureVertexBuffer((subdivs + 1) * (subdivs + 1));\n var verts = Grids._galaxyImageVertexBuffer.lock();\n var x1, y1;\n var latDegrees = latMax - latMin;\n var lngDegrees = lngMax - lngMin;\n var scaleFactor = 60800000;\n var ecliptic = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.meanObliquityOfEcliptic(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_jNow()) / 180 * Math.PI;\n var point;\n var textureStepX = 1 / subdivs;\n var textureStepY = 1 / subdivs;\n for (y1 = 0; y1 <= subdivs; y1++) {\n if (y1 !== subdivs) {\n lat = latMax - (textureStepY * latDegrees * y1);\n } else {\n lat = latMin;\n }\n for (x1 = 0; x1 <= subdivs; x1++) {\n if (x1 !== subdivs) {\n lng = lngMin + (textureStepX * lngDegrees * x1);\n }\n else {\n lng = lngMax;\n }\n index = y1 * (subdivs + 1) + x1;\n point = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(lng * scaleFactor, 0, (lat - 28) * scaleFactor);\n point.rotateY(213 / 180 * Math.PI);\n point.rotateZ((-62.87175) / 180 * Math.PI);\n point.rotateY((-192.8595083) / 180 * Math.PI);\n point.rotateX(ecliptic);\n verts[index] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPosRaw(point, (1 - x1 * textureStepX), (y1 * textureStepY));\n }\n }\n Grids._galaxyImageVertexBuffer.unlock();\n Grids._galaxyImageTriangleCount = subdivs * subdivs * 2;\n var ui16array = new Uint16Array(subdivs * subdivs * 6);\n var indexArray = ui16array;\n for (y1 = 0; y1 < subdivs; y1++) {\n for (x1 = 0; x1 < subdivs; x1++) {\n index = (y1 * subdivs * 6) + 6 * x1;\n\n // First triangle in quad\n indexArray[index] = (y1 * (subdivs + 1) + x1);\n indexArray[index + 2] = ((y1 + 1) * (subdivs + 1) + x1);\n indexArray[index + 1] = (y1 * (subdivs + 1) + (x1 + 1));\n\n // Second triangle in quad\n indexArray[index + 3] = (y1 * (subdivs + 1) + (x1 + 1));\n indexArray[index + 5] = ((y1 + 1) * (subdivs + 1) + x1);\n indexArray[index + 4] = ((y1 + 1) * (subdivs + 1) + (x1 + 1));\n }\n }\n Grids._galaxyImageIndexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_13__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_13__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.ELEMENT_ARRAY_BUFFER, Grids._galaxyImageIndexBuffer);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_13__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.ELEMENT_ARRAY_BUFFER, ui16array, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.STATIC_DRAW);\n};\n\nGrids.drawGalaxyImage = function (renderContext, opacity) {\n if (Grids._galaxyImageIndexBuffer == null) {\n Grids._createGalaxyImage(renderContext);\n }\n var zoom = renderContext.viewCamera.zoom;\n var log = Math.log(Math.max(1, zoom)) / Math.log(4);\n var distAlpha = (log - 14) * 128;\n var alpha = (Math.min(255, Math.max(0, distAlpha)) * opacity);\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_10__.ImageShader.use(renderContext, Grids._galaxyImageVertexBuffer.vertexBuffer, Grids._galaxyImageIndexBuffer, Grids._milkyWayImage.texture2d, opacity, true);\n renderContext.gl.drawElements(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TRIANGLES, Grids._galaxyImageTriangleCount * 3, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.UNSIGNED_SHORT, 0);\n};\n\nGrids.drawStars3D = function (renderContext, opacity) {\n var zoom = renderContext.viewCamera.zoom;\n var distAlpha = Math.max(Math.min(255, (Math.log(zoom) - 15.5) * 40.8), 0);\n var alpha = Math.min(255, Math.max(0, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(distAlpha)));\n if (alpha > 254) {\n return;\n }\n alpha = ((255 - alpha) * opacity);\n if (Grids._starSprites == null) {\n Grids.initStarVertexBuffer(renderContext);\n }\n if (Grids._starSprites != null) {\n Grids._starSprites.draw(renderContext, alpha / 255, false);\n }\n};\n\nGrids.initStarVertexBuffer = function (renderContext) {\n if (!Grids._starsDownloading && !_data_globals_js__WEBPACK_IMPORTED_MODULE_12__.freestandingMode) {\n Grids.getStarFile(_url_helpers_js__WEBPACK_IMPORTED_MODULE_2__.URLHelpers.singleton.coreStaticUrl('wwtweb/catalog.aspx?Q=hipparcos'));\n Grids._starsDownloading = true;\n }\n if (Grids._starSprites == null && Grids._starCount > 0) {\n var ecliptic = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.meanObliquityOfEcliptic(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_jNow()) / 180 * Math.PI;\n var count = Grids._stars.length;\n Grids._starCount = count;\n Grids._starSprites = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.PointList(renderContext);\n Grids._starSprites.depthBuffered = false;\n Grids._starSprites.showFarSide = true;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(Grids._stars);\n while ($enum1.moveNext()) {\n var star = $enum1.current;\n var pos = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(star.RA, star.dec, star.distance);\n pos.rotateX(ecliptic);\n star.position = pos;\n var radDec = (1200000) / Math.pow(1.6, star.absoluteMagnitude);\n Grids._starSprites.addPoint(pos, star.col, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.Dates(0, 1), radDec * 100);\n }\n }\n};\n\nGrids.initializeStarDB = function (text) {\n if (Grids._stars == null) {\n if (Grids._stars == null) {\n Grids._stars = [];\n var rows = text.split('\\r\\n');\n var star;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(rows);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n var line = row;\n star = new _star_js__WEBPACK_IMPORTED_MODULE_19__.Star(line);\n if (star.magnitude < Grids._limitingMagnitude && star.par > 0.001) {\n Grids._stars.push(star);\n Grids._hipparcosIndex[star.id] = star;\n }\n }\n Grids._starCount = Grids._stars.length;\n }\n }\n};\n\nGrids.getStarFile = function (url) {\n Grids._webFileStar = new _web_file_js__WEBPACK_IMPORTED_MODULE_20__.WebFile(url);\n Grids._webFileStar.onStateChange = Grids.starFileStateChange;\n Grids._webFileStar.send();\n};\n\nGrids.starFileStateChange = function () {\n if (Grids._webFileStar.get_state() === 2) {\n alert(Grids._webFileStar.get_message());\n }\n else if (Grids._webFileStar.get_state() === 1) {\n Grids.initializeStarDB(Grids._webFileStar.getText());\n }\n};\n\nGrids.getGalaxyFile = function (url) {\n Grids._webFileGalaxy = new _web_file_js__WEBPACK_IMPORTED_MODULE_20__.WebFile(url);\n Grids._webFileGalaxy.responseType = 'blob';\n Grids._webFileGalaxy.onStateChange = Grids.galaxyFileStateChange;\n Grids._webFileGalaxy.send();\n};\n\nGrids.galaxyFileStateChange = function () {\n if (Grids._webFileGalaxy.get_state() === 2) {\n alert(Grids._webFileGalaxy.get_message());\n }\n else if (Grids._webFileGalaxy.get_state() === 1) {\n var mainBlob = Grids._webFileGalaxy.getBlob();\n var chunck = new FileReader();\n chunck.onloadend = function (e) {\n var br = new _utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_14__.BinaryReader(new Uint8Array(chunck.result));\n Grids.initializeCosmos(br);\n };\n chunck.readAsArrayBuffer(mainBlob);\n }\n};\n\nGrids.drawCosmos3D = function (renderContext, opacity) {\n var device = renderContext.gl;\n var zoom = renderContext.viewCamera.zoom;\n var distAlpha = ((Math.log(Math.max(1, zoom)) / Math.log(4)) - 15.5) * 90;\n var alpha = Math.min(255, Math.max(0, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(distAlpha)));\n if (alpha < 3) {\n return;\n }\n Grids.initCosmosVertexBuffer();\n if (Grids._galaxyTextures == null) {\n if (Grids._largeSet) {\n Grids._galaxyTextures = new Array(256);\n for (var i = 0; i < 256; i++) {\n var num = i.toString();\n while (num.length < 4) {\n num = '0' + num;\n }\n var name = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format(_url_helpers_js__WEBPACK_IMPORTED_MODULE_2__.URLHelpers.singleton.engineAssetUrl('galimg/gal_{0}.jpg'), num);\n Grids._galaxyTextures[i] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_9__.Texture.fromUrl(name);\n }\n }\n }\n if (Grids._cosmosReady) {\n var count = 256;\n for (var i = 0; i < count; i++) {\n Grids._cosmosSprites[i].drawTextured(renderContext, Grids._galaxyTextures[i].texture2d, (alpha * opacity) / 255);\n }\n }\n};\n\nGrids.initCosmosVertexBuffer = function () {\n if (Grids._cosmosSprites == null) {\n Grids._downloadCosmosFile();\n }\n};\n\nGrids._createCosmosVertexBuffer = function (renderContext) {\n var device = _render_globals_js__WEBPACK_IMPORTED_MODULE_13__.tilePrepDevice;\n var bucketCount = 256;\n if (Grids._cosmosSprites != null) {\n for (var ij = 0; ij < bucketCount; ij++) {\n if (Grids._cosmosSprites[ij] != null) {\n Grids._cosmosSprites[ij] = null;\n }\n }\n }\n Grids._cosmosSprites = null;\n var ecliptic = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.meanObliquityOfEcliptic(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_jNow()) / 180 * Math.PI;\n Grids._cosmosSprites = new Array(bucketCount);\n var indexList = new Array(bucketCount);\n for (var i = 0; i < bucketCount; i++) {\n var count = Grids._galaxyVertexCounts[i];\n Grids._cosmosSprites[i] = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.PointList(renderContext);\n Grids._cosmosSprites[i].depthBuffered = false;\n Grids._cosmosSprites[i].showFarSide = true;\n indexList[i] = 0;\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(Grids._cosmos);\n while ($enum1.moveNext()) {\n var galaxy = $enum1.current;\n var bucket = galaxy.eTypeBucket;\n var index = indexList[bucket];\n var pos = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(galaxy.RA, galaxy.dec, (galaxy.distance * 206264.806 * 1000000) / 0.73);\n pos.rotateX(ecliptic);\n galaxy.position = pos;\n Grids._cosmosSprites[bucket].addPoint(pos, _color_js__WEBPACK_IMPORTED_MODULE_11__.Colors.get_white(), new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.Dates(0, 1), (1E+09 * galaxy.size * 100));\n indexList[bucket]++;\n }\n Grids._cosmosReady = true;\n};\n\nGrids.initializeCosmos = function (br) {\n var max = Math.pow(100, 2.849485002);\n if (Grids._cosmos == null) {\n Grids._galaxyVertexCounts = new Array((Grids._largeSet) ? 256 : 20);\n if (Grids._cosmos == null) {\n Grids._cosmos = [];\n var galaxy;\n try {\n var count = 0;\n while (br.get_position() < br.get_length()) {\n galaxy = new _star_js__WEBPACK_IMPORTED_MODULE_19__.Galaxy(br);\n Grids._cosmos.push(galaxy);\n Grids._galaxyVertexCounts[galaxy.eTypeBucket]++;\n count++;\n }\n }\n catch ($e1) {\n }\n br.close();\n }\n Grids._createCosmosVertexBuffer(_render_globals_js__WEBPACK_IMPORTED_MODULE_13__.globalRenderContext);\n }\n};\n\nGrids._downloadCosmosFile = function () {\n if (!Grids._downloadingGalaxy && !_data_globals_js__WEBPACK_IMPORTED_MODULE_12__.freestandingMode) {\n Grids.getGalaxyFile(_url_helpers_js__WEBPACK_IMPORTED_MODULE_2__.URLHelpers.singleton.coreStaticUrl('wwtweb/catalog.aspx?Q=cosmosnewbin'));\n Grids._downloadingGalaxy = true;\n }\n return false;\n};\n\nGrids.drawEquitorialGrid = function (renderContext, opacity, drawColor) {\n if (Grids._equLineList == null) {\n Grids._equLineList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.SimpleLineList();\n Grids._equLineList.set_depthBuffered(false);\n for (var hour = 0; hour < 24; hour++) {\n for (var dec = -80; dec < 80; dec += 2) {\n Grids._equLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(hour, dec, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(hour, dec + 2, 1));\n }\n }\n for (var dec = -80; dec <= 80; dec += 10) {\n for (var hour = 0; hour < 23.8; hour += 0.2) {\n Grids._equLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(hour, dec, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(hour + 0.2, dec, 1));\n //todo fix for color bright\n }\n }\n var counter = 0;\n for (var ra = 0; ra < 24; ra += 0.25) {\n var dec = 0.5;\n switch (counter % 4) {\n case 0:\n counter++;\n continue;\n case 3:\n case 1:\n dec = 0.25;\n break;\n }\n counter++;\n Grids._equLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(ra, dec, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(ra, -dec, 1));\n }\n counter = 0;\n for (var ra = 0; ra < 24; ra += 3) {\n counter = 0;\n for (var dec = -80; dec <= 80; dec += 1) {\n var width = 0.5 / 30;\n switch (counter % 10) {\n case 0:\n counter++;\n continue;\n case 5:\n width = 0.5 / 15;\n break;\n }\n counter++;\n Grids._equLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(ra + width, dec, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(ra - width, dec, 1));\n }\n }\n }\n Grids._equLineList.drawLines(renderContext, opacity, drawColor);\n return true;\n};\n\nGrids.drawEquitorialGridText = function (renderContext, opacity, drawColor) {\n Grids._makeEquitorialGridText();\n Grids._equTextBatch.draw(renderContext, opacity, drawColor);\n return true;\n};\n\nGrids._makeEquitorialGridText = function () {\n if (Grids._equTextBatch == null) {\n Grids._equTextBatch = new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3dBatch(30);\n var index = 0;\n for (var ra = 0; ra < 24; ra++) {\n var text = ra.toString() + ' hr';\n if (ra < 10) {\n text = ' ' + ra.toString() + ' hr';\n }\n Grids._equTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(ra + 0.005, 0.4, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(ra + 0.005, 0.5, 1), text, 45, 0.00018));\n }\n index = 0;\n for (var ra = 0; ra < 24; ra += 3) {\n for (var dec = -80; dec <= 80; dec += 10) {\n if (!dec) {\n continue;\n }\n var text = dec.toString();\n if (dec > 0) {\n text = ' +' + dec.toString();\n Grids._equTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(ra, dec - 0.4, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(ra, dec - 0.3, 1), text, 45, 0.00018));\n }\n else {\n text = ' - ' + text.substr(1);\n Grids._equTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(ra, dec + 0.4, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(ra, dec + 0.5, 1), text, 45, 0.00018));\n }\n index++;\n }\n }\n }\n};\n\nGrids.drawEcliptic = function (renderContext, opacity, drawColor) {\n var col = drawColor;\n var year = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_now().getUTCFullYear();\n if (Grids._eclipticOverviewLineList == null || year !== Grids._eclipticYear) {\n if (Grids._eclipticOverviewLineList != null) {\n Grids._eclipticOverviewLineList.clear();\n Grids._eclipticOverviewLineList = null;\n }\n Grids._eclipticYear = year;\n var obliquity = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.meanObliquityOfEcliptic(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_jNow());\n var mat = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX((-obliquity / 360 * (Math.PI * 2)));\n var daysPerYear = 365.25;\n if (_astrocalc_date_js__WEBPACK_IMPORTED_MODULE_4__.DT.isLeap(year, true)) {\n Grids._monthDays[1] = 29;\n daysPerYear = 366;\n } else {\n Grids._monthDays[1] = 28;\n daysPerYear = 365;\n }\n var count = 2 * _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(daysPerYear);\n Grids._eclipticCount = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(daysPerYear);\n var jYear = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.utcToJulian(new Date(year, 0, 1, 12, 0, 0));\n var index = 0;\n var d = 0;\n Grids._eclipticOverviewLineList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.SimpleLineList();\n Grids._eclipticOverviewLineList.set_depthBuffered(false);\n for (var m = 0; m < 12; m++) {\n var daysThisMonth = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(Grids._monthDays[m]);\n for (var i = 0; i < daysThisMonth; i++) {\n var sunRaDec = _planets_js__WEBPACK_IMPORTED_MODULE_17__.Planets.getPlanetLocationJD('Sun', jYear);\n var sunEcliptic = _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_5__.CT.eq2Ec(sunRaDec.RA, sunRaDec.dec, obliquity);\n d = sunEcliptic.x;\n var width = 0.005;\n if (!i) {\n width = 0.01;\n }\n var dd = d;\n Grids._eclipticOverviewLineList.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos((dd * Math.PI * 2) / 360), width, Math.sin((dd * Math.PI * 2) / 360)), mat), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos((dd * Math.PI * 2) / 360), -width, Math.sin((dd * Math.PI * 2) / 360)), mat));\n index++;\n jYear += 1;\n }\n d += Grids._monthDays[m];\n }\n }\n Grids._eclipticOverviewLineList.drawLines(renderContext, opacity, drawColor);\n return true;\n};\n\nGrids.drawEclipticText = function (renderContext, opacity, drawColor) {\n Grids._makeEclipticText();\n Grids._eclipOvTextBatch.draw(renderContext, opacity, drawColor);\n return true;\n};\n\nGrids._makeEclipticText = function () {\n var year = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_now().getUTCFullYear();\n if (Grids._eclipOvTextBatch == null) {\n Grids._eclipOvTextBatch = new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3dBatch(80);\n Grids._eclipticTextYear = year;\n var obliquity = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.meanObliquityOfEcliptic(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_jNow());\n var mat = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX((-obliquity / 360 * (Math.PI * 2)));\n var daysPerYear = 365.25;\n if (_astrocalc_date_js__WEBPACK_IMPORTED_MODULE_4__.DT.isLeap(year, true)) {\n Grids._monthDays[1] = 29;\n daysPerYear = 366;\n } else {\n Grids._monthDays[1] = 28;\n daysPerYear = 365;\n }\n var count = 2 * _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(daysPerYear);\n Grids._eclipticCount = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(daysPerYear);\n var jYear = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.utcToJulian(new Date(year, 0, 1, 12, 0, 0));\n var index = 0;\n var d = 0;\n for (var m = 0; m < 12; m++) {\n var daysThisMonth = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(Grids._monthDays[m]);\n for (var i = 0; i < daysThisMonth; i++) {\n var sunRaDec = _planets_js__WEBPACK_IMPORTED_MODULE_17__.Planets.getPlanetLocationJD('Sun', jYear);\n var sunEcliptic = _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_5__.CT.eq2Ec(sunRaDec.RA, sunRaDec.dec, obliquity);\n d = sunEcliptic.x;\n var dd = d;\n if (i === Math.floor(daysThisMonth / 2)) {\n var center = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos((dd * Math.PI * 2) / 360), 0.025, Math.sin((dd * Math.PI * 2) / 360)), mat);\n var up = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos((dd * Math.PI * 2) / 360), 0.045, Math.sin((dd * Math.PI * 2) / 360)), mat);\n up.subtract(center);\n up.normalize();\n Grids._eclipOvTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(center, up, Grids._monthNames[m], 80, 0.000159375));\n }\n index++;\n index++;\n jYear += 1;\n }\n d += Grids._monthDays[m];\n }\n }\n};\n\nGrids.drawPrecessionChart = function (renderContext, opacity, drawColor) {\n Grids._makePrecessionChart();\n Grids._precTextBatch.draw(renderContext, opacity, drawColor);\n Grids._precLineList.drawLines(renderContext, opacity, drawColor);\n return true;\n};\n\nGrids._makePrecessionChart = function () {\n var obliquity = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.meanObliquityOfEcliptic(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_jNow());\n var mat = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX((obliquity / 360 * (Math.PI * 2)));\n var col = _color_js__WEBPACK_IMPORTED_MODULE_11__.Colors.get_white();\n if (Grids._precLineList == null) {\n Grids._precLineList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.SimpleLineList();\n Grids._precLineList.set_depthBuffered(false);\n for (var l = 0; l < 360; l++) {\n var b = 90 - obliquity;\n Grids._precLineList.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b, 1), mat), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu((l + 1) / 15, b, 1), mat));\n }\n for (var l = -12000; l < 13000; l += 2000) {\n var b = 90 - obliquity;\n var p = -((l - 2000) / 25772 * 24) - 6;\n Grids._precLineList.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(p, b - 0.5, 1), mat), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(p, b + 0.5, 1), mat));\n }\n }\n if (Grids._precTextBatch == null) {\n Grids._precTextBatch = new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3dBatch(50);\n for (var l = -12000; l < 13000; l += 2000) {\n var b = 90 - obliquity + 3;\n var p = -((l - 2000) / 25772 * 24) - 6;\n var text = l.toString();\n if (!l) {\n b = 90 - obliquity + 2;\n text = '1 CE';\n }\n else if (l < 0) {\n text = ' ' + Math.abs(l).toString() + ' BCE';\n }\n else {\n text = Math.abs(l).toString() + ' CE';\n }\n if (text.length === 9) {\n text = ' ' + text;\n }\n Grids._precTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(p, b, 1), mat), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(p + 0.01, b, 1), mat), text, 75, 0.00015));\n }\n }\n return;\n};\n\nGrids.drawAltAzGrid = function (renderContext, opacity, drawColor) {\n var zenithAltAz = new _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates(0, 0);\n var zenith = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.horizonToEquitorial(zenithAltAz, _space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_location(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_now());\n var raPart = -((zenith.get_RA() + 6) / 24 * (Math.PI * 2));\n var decPart = -(zenith.get_dec() / 360 * (Math.PI * 2));\n var raText = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.formatDMS(zenith.get_RA());\n var mat = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationY(-raPart);\n mat._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX(decPart));\n mat.invert();\n if (Grids._altAzLineList == null) {\n Grids._altAzLineList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.SimpleLineList();\n Grids._altAzLineList.set_depthBuffered(false);\n for (var l = 0; l < 360; l += 10) {\n for (var b = -80; b < 80; b += 2) {\n Grids._altAzLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b + 2, 1));\n }\n }\n for (var b = -80; b <= 80; b += 10) {\n for (var l = 0; l < 360; l += 5) {\n Grids._altAzLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu((l + 5) / 15, b, 1));\n }\n }\n var counter = 0;\n for (var l = 0; l < 360; l += 1) {\n var b = 0.25;\n switch (counter % 10) {\n case 0:\n counter++;\n continue;\n case 5:\n b = 0.5;\n break;\n }\n counter++;\n Grids._altAzLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, -b, 1));\n }\n counter = 0;\n for (var l = 0; l < 360; l += 90) {\n counter = 0;\n for (var b = -80; b <= 80; b += 1) {\n var width = 0.5 / 2;\n switch (counter % 10) {\n case 0:\n counter++;\n continue;\n case 5:\n width = 0.5;\n break;\n }\n counter++;\n Grids._altAzLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu((l + width) / 15, b, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu((l - width) / 15, b, 1));\n }\n }\n }\n var matOldWorld = renderContext.get_world().clone();\n var matOldWorldBase = renderContext.get_worldBase().clone();\n renderContext.set_worldBase(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(mat, renderContext.get_world()));\n renderContext.set_world(renderContext.get_worldBase().clone());\n renderContext.makeFrustum();\n Grids._altAzLineList.viewTransform = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.invertMatrix(mat);\n Grids._altAzLineList.drawLines(renderContext, opacity, drawColor);\n renderContext.set_worldBase(matOldWorldBase);\n renderContext.set_world(matOldWorld);\n renderContext.makeFrustum();\n return true;\n};\n\nGrids.drawAltAzGridText = function (renderContext, opacity, drawColor) {\n var zenithAltAz = new _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates(0, 0);\n var zenith = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.horizonToEquitorial(zenithAltAz, _space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_location(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_now());\n var raPart = -((zenith.get_RA() - 6) / 24 * (Math.PI * 2));\n var decPart = -(zenith.get_dec() / 360 * (Math.PI * 2));\n var raText = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.formatDMS(zenith.get_RA());\n var mat = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationY(-raPart - Math.PI);\n mat._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX(decPart));\n mat.invert();\n Grids._makeAltAzGridText();\n var matOldWorld = renderContext.get_world().clone();\n var matOldWorldBase = renderContext.get_worldBase().clone();\n renderContext.set_worldBase(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(mat, renderContext.get_world()));\n renderContext.set_world(renderContext.get_worldBase().clone());\n renderContext.makeFrustum();\n Grids._altAzTextBatch.viewTransform = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.invertMatrix(mat);\n Grids._altAzTextBatch.draw(renderContext, opacity, drawColor);\n renderContext.set_worldBase(matOldWorldBase);\n renderContext.set_world(matOldWorld);\n renderContext.makeFrustum();\n return true;\n};\n\nGrids._makeAltAzGridText = function () {\n var drawColor = _color_js__WEBPACK_IMPORTED_MODULE_11__.Colors.get_white();\n var index = 0;\n if (Grids._altAzTextBatch == null) {\n Grids._altAzTextBatch = new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3dBatch(30);\n for (var l = 0; l < 360; l += 10) {\n var text = ' ' + l.toString();\n if (l < 10) {\n text = ' ' + l.toString();\n }\n else if (l < 100) {\n text = ' ' + l.toString();\n }\n var lc = 360 - l;\n Grids._altAzTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(lc / 15 - 6, 0.4, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(lc / 15 - 6, 0.5, 1), text, 75, 0.00018));\n }\n index = 0;\n for (var l = 0; l < 360; l += 90) {\n for (var b = -80; b <= 80; b += 10) {\n if (!b) {\n continue;\n }\n var text = b.toString();\n if (b > 0) {\n text = ' +' + b.toString();\n Grids._altAzTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b - 0.4, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b - 0.3, 1), text, 75, 0.00018));\n }\n else {\n text = ' - ' + text.substr(1);\n Grids._altAzTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b + 0.4, 1), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b + 0.5, 1), text, 75, 0.00018));\n }\n index++;\n }\n }\n }\n return;\n};\n\nGrids.drawEclipticGrid = function (renderContext, opacity, drawColor) {\n if (Grids._eclipticLineList == null) {\n Grids._eclipticLineList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.SimpleLineList();\n Grids._eclipticLineList.set_depthBuffered(false);\n var obliquity = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.meanObliquityOfEcliptic(2451545);\n var mat = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX((-obliquity / 360 * (Math.PI * 2)));\n for (var l = 0; l < 360; l += 10) {\n for (var b = -80; b < 80; b += 2) {\n Grids._eclipticLineList.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b, 1), mat), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b + 2, 1), mat));\n }\n }\n for (var b = -80; b <= 80; b += 10) {\n for (var l = 0; l < 360; l += 5) {\n Grids._eclipticLineList.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b, 1), mat), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu((l + 5) / 15, b, 1), mat));\n }\n }\n var counter = 0;\n for (var l = 0; l < 360; l += 1) {\n var b = 0.25;\n switch (counter % 10) {\n case 0:\n counter++;\n continue;\n case 5:\n b = 0.5;\n break;\n }\n counter++;\n Grids._eclipticLineList.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b, 1), mat), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, -b, 1), mat));\n }\n counter = 0;\n for (var l = 0; l < 360; l += 90) {\n counter = 0;\n for (var b = -80; b <= 80; b += 1) {\n var width = 0.5 / 2;\n switch (counter % 10) {\n case 0:\n counter++;\n continue;\n case 5:\n width = 0.5;\n break;\n }\n counter++;\n Grids._eclipticLineList.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu((l + width) / 15, b, 1), mat), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu((l - width) / 15, b, 1), mat));\n }\n }\n }\n Grids._eclipticLineList.drawLines(renderContext, opacity, drawColor);\n return true;\n};\n\nGrids.drawEclipticGridText = function (renderContext, opacity, drawColor) {\n Grids._makeEclipticGridText();\n Grids._eclipticTextBatch.draw(renderContext, opacity, drawColor);\n return true;\n};\n\nGrids._makeEclipticGridText = function () {\n var drawColor = _color_js__WEBPACK_IMPORTED_MODULE_11__.Colors.get_white();\n var obliquity = _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.meanObliquityOfEcliptic(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__.SpaceTimeController.get_jNow());\n var mat = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX((-obliquity / 360 * (Math.PI * 2)));\n if (Grids._eclipticTextBatch == null) {\n Grids._eclipticTextBatch = new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3dBatch(30);\n for (var l = 0; l < 360; l += 10) {\n var text = ' ' + l.toString();\n if (l < 10) {\n text = ' ' + l.toString();\n }\n else if (l < 100) {\n text = ' ' + l.toString();\n }\n Grids._eclipticTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, 0.4, 1), mat), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, 0.5, 1), mat), text, 75, 0.00018));\n }\n for (var l = 0; l < 360; l += 90) {\n for (var b = -80; b <= 80; b += 10) {\n if (!b) {\n continue;\n }\n var text = b.toString();\n if (b > 0) {\n text = ' +' + b.toString();\n Grids._eclipticTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b - 0.4, 1), mat), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b - 0.3, 1), mat), text, 75, 0.00018));\n }\n else {\n text = ' - ' + text.substr(1);\n Grids._eclipticTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b + 0.4, 1), mat), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d._transformCoordinate(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.raDecTo3dAu(l / 15, b + 0.5, 1), mat), text, 75, 0.00018));\n }\n }\n }\n }\n return;\n};\n\nGrids.drawGalacticGrid = function (renderContext, opacity, drawColor) {\n if (Grids._galLineList == null) {\n Grids._galLineList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.SimpleLineList();\n Grids._galLineList.set_depthBuffered(false);\n for (var l = 0; l < 360; l += 10) {\n for (var b = -80; b < 80; b += 2) {\n Grids._galLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l, b), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l, b + 2));\n }\n }\n for (var b = -80; b <= 80; b += 10) {\n for (var l = 0; l < 360; l += 5) {\n Grids._galLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l, b), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l + 5, b));\n }\n }\n var counter = 0;\n for (var l = 0; l < 360; l += 1) {\n var b = 0.25;\n switch (counter % 10) {\n case 0:\n counter++;\n continue;\n case 5:\n b = 0.5;\n break;\n }\n counter++;\n Grids._galLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l, b), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l, -b));\n }\n counter = 0;\n for (var l = 0; l < 360; l += 90) {\n counter = 0;\n for (var b = -80; b <= 80; b += 1) {\n var width = 0.5 / 2;\n switch (counter % 10) {\n case 0:\n counter++;\n continue;\n case 5:\n width = 0.5;\n break;\n }\n counter++;\n Grids._galLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l + width, b), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l - width, b));\n }\n }\n }\n Grids._galLineList.drawLines(renderContext, opacity, drawColor);\n return true;\n};\n\nGrids.drawGalacticGridText = function (renderContext, opacity, drawColor) {\n Grids._makeGalacticGridText();\n Grids._galTextBatch.draw(renderContext, opacity, drawColor);\n return true;\n};\n\nGrids._makeGalacticGridText = function () {\n if (Grids._galTextBatch == null) {\n Grids._galTextBatch = new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3dBatch(30);\n for (var l = 0; l < 360; l += 10) {\n var text = ' ' + l.toString();\n if (l < 10) {\n text = ' ' + l.toString();\n }\n else if (l < 100) {\n text = ' ' + l.toString();\n }\n Grids._galTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l, 0.4), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l, 0.5), text, 75, 0.00018));\n }\n for (var l = 0; l < 360; l += 90) {\n for (var b = -80; b <= 80; b += 10) {\n if (!b) {\n continue;\n }\n var text = b.toString();\n if (b > 0) {\n text = ' +' + b.toString();\n Grids._galTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l, b - 0.4), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l, b - 0.3), text, 75, 0.00018));\n }\n else {\n text = ' - ' + text.substr(1);\n Grids._galTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l, b + 0.4), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.galacticTo3dDouble(l, b + 0.5), text, 75, 0.00018));\n }\n }\n }\n }\n};\n\nGrids.drawPlanetGrid = function (renderContext, opacity, drawColor) {\n if (Grids._planetLineList == null) {\n Grids._planetLineList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.SimpleLineList();\n Grids._planetLineList.set_depthBuffered(true);\n var col = drawColor;\n for (var lng = 0; lng < 360; lng += 10) {\n for (var lat = -80; lat < 80; lat += 2) {\n Grids._planetLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(lat, lng), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(lat + 2, lng));\n }\n }\n for (var lat = -80; lat <= 80; lat += 10) {\n for (var l = 0; l < 360; l += 5) {\n Grids._planetLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(lat, l), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(lat, l + 5));\n }\n }\n var counter = 0;\n for (var lng = 0; lng < 360; lng += 1) {\n var lat = 0.25;\n switch (counter % 10) {\n case 0:\n counter++;\n continue;\n case 5:\n lat = 0.5;\n break;\n }\n counter++;\n Grids._planetLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(lat, lng), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(-lat, lng));\n }\n counter = 0;\n for (var lng = 0; lng < 360; lng += 90) {\n counter = 0;\n for (var b = -80; b <= 80; b += 1) {\n var width = 0.5 / 2;\n switch (counter % 10) {\n case 0:\n counter++;\n continue;\n case 5:\n width = 0.5;\n break;\n }\n counter++;\n Grids._planetLineList.addLine(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(b, lng + width), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(b, lng - width));\n }\n }\n }\n Grids._planetLineList.aaFix = false;\n Grids._planetLineList.set_depthBuffered(true);\n Grids._planetLineList.sky = false;\n Grids._planetLineList.drawLines(renderContext, opacity, drawColor);\n return true;\n};\n\nGrids.drawPlanetGridText = function (renderContext, opacity, drawColor) {\n Grids._makePlanetGridText();\n Grids._planetTextBatch.draw(renderContext, opacity, drawColor);\n return true;\n};\n\nGrids._makePlanetGridText = function () {\n if (Grids._planetTextBatch == null) {\n Grids._planetTextBatch = new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3dBatch(80);\n for (var lng = -180; lng < 180; lng += 10) {\n var text = ' ' + lng.toString();\n if (lng < 10) {\n text = ' ' + lng.toString();\n }\n else if (lng < 100) {\n text = ' ' + lng.toString();\n }\n Grids._planetTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(0.4, lng), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(0.5, lng), text, -80, 6E-05));\n }\n for (var lng = 0; lng < 360; lng += 90) {\n for (var lat = -80; lat <= 80; lat += 10) {\n if (!lat) {\n continue;\n }\n var text = lat.toString();\n if (lat > 0) {\n text = ' +' + lat.toString();\n Grids._planetTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(lat - 0.4, lng), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(lat - 0.3, lng), text, -80, 6E-05));\n }\n else {\n text = ' - ' + text.substring(1);\n Grids._planetTextBatch.add(new _sky_text_js__WEBPACK_IMPORTED_MODULE_16__.Text3d(_coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(lat + 0.4, lng), _coordinates_js__WEBPACK_IMPORTED_MODULE_15__.Coordinates.geoTo3dDouble(lat + 0.5, lng), text, -80, 6E-05));\n }\n }\n }\n }\n};\n\nvar Grids$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Grids\", [Grids, Grids$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/healpix_tables.js\":\n/*!*******************************!*\\\n !*** ./esm/healpix_tables.js ***!\n \\*******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HealpixTables: () => (/* binding */ HealpixTables)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Data tables relating to HEALPix.\n\n\n\n\n// wwtlib.HealpixTables\n\nfunction HealpixTables() { }\n\nHealpixTables.ctab = [0, 1, 256, 257, 2, 3, 258, 259, 512, 513, 768, 769, 514, 515, 770, 771, 4, 5, 260, 261, 6, 7, 262, 263, 516, 517, 772, 773, 518, 519, 774, 775, 1024, 1025, 1280, 1281, 1026, 1027, 1282, 1283, 1536, 1537, 1792, 1793, 1538, 1539, 1794, 1795, 1028, 1029, 1284, 1285, 1030, 1031, 1286, 1287, 1540, 1541, 1796, 1797, 1542, 1543, 1798, 1799, 8, 9, 264, 265, 10, 11, 266, 267, 520, 521, 776, 777, 522, 523, 778, 779, 12, 13, 268, 269, 14, 15, 270, 271, 524, 525, 780, 781, 526, 527, 782, 783, 1032, 1033, 1288, 1289, 1034, 1035, 1290, 1291, 1544, 1545, 1800, 1801, 1546, 1547, 1802, 1803, 1036, 1037, 1292, 1293, 1038, 1039, 1294, 1295, 1548, 1549, 1804, 1805, 1550, 1551, 1806, 1807, 2048, 2049, 2304, 2305, 2050, 2051, 2306, 2307, 2560, 2561, 2816, 2817, 2562, 2563, 2818, 2819, 2052, 2053, 2308, 2309, 2054, 2055, 2310, 2311, 2564, 2565, 2820, 2821, 2566, 2567, 2822, 2823, 3072, 3073, 3328, 3329, 3074, 3075, 3330, 3331, 3584, 3585, 3840, 3841, 3586, 3587, 3842, 3843, 3076, 3077, 3332, 3333, 3078, 3079, 3334, 3335, 3588, 3589, 3844, 3845, 3590, 3591, 3846, 3847, 2056, 2057, 2312, 2313, 2058, 2059, 2314, 2315, 2568, 2569, 2824, 2825, 2570, 2571, 2826, 2827, 2060, 2061, 2316, 2317, 2062, 2063, 2318, 2319, 2572, 2573, 2828, 2829, 2574, 2575, 2830, 2831, 3080, 3081, 3336, 3337, 3082, 3083, 3338, 3339, 3592, 3593, 3848, 3849, 3594, 3595, 3850, 3851, 3084, 3085, 3340, 3341, 3086, 3087, 3342, 3343, 3596, 3597, 3852, 3853, 3598, 3599, 3854, 3855];\nHealpixTables.utab = [0, 1, 4, 5, 16, 17, 20, 21, 64, 65, 68, 69, 80, 81, 84, 85, 256, 257, 260, 261, 272, 273, 276, 277, 320, 321, 324, 325, 336, 337, 340, 341, 1024, 1025, 1028, 1029, 1040, 1041, 1044, 1045, 1088, 1089, 1092, 1093, 1104, 1105, 1108, 1109, 1280, 1281, 1284, 1285, 1296, 1297, 1300, 1301, 1344, 1345, 1348, 1349, 1360, 1361, 1364, 1365, 4096, 4097, 4100, 4101, 4112, 4113, 4116, 4117, 4160, 4161, 4164, 4165, 4176, 4177, 4180, 4181, 4352, 4353, 4356, 4357, 4368, 4369, 4372, 4373, 4416, 4417, 4420, 4421, 4432, 4433, 4436, 4437, 5120, 5121, 5124, 5125, 5136, 5137, 5140, 5141, 5184, 5185, 5188, 5189, 5200, 5201, 5204, 5205, 5376, 5377, 5380, 5381, 5392, 5393, 5396, 5397, 5440, 5441, 5444, 5445, 5456, 5457, 5460, 5461, 16384, 16385, 16388, 16389, 16400, 16401, 16404, 16405, 16448, 16449, 16452, 16453, 16464, 16465, 16468, 16469, 16640, 16641, 16644, 16645, 16656, 16657, 16660, 16661, 16704, 16705, 16708, 16709, 16720, 16721, 16724, 16725, 17408, 17409, 17412, 17413, 17424, 17425, 17428, 17429, 17472, 17473, 17476, 17477, 17488, 17489, 17492, 17493, 17664, 17665, 17668, 17669, 17680, 17681, 17684, 17685, 17728, 17729, 17732, 17733, 17744, 17745, 17748, 17749, 20480, 20481, 20484, 20485, 20496, 20497, 20500, 20501, 20544, 20545, 20548, 20549, 20560, 20561, 20564, 20565, 20736, 20737, 20740, 20741, 20752, 20753, 20756, 20757, 20800, 20801, 20804, 20805, 20816, 20817, 20820, 20821, 21504, 21505, 21508, 21509, 21520, 21521, 21524, 21525, 21568, 21569, 21572, 21573, 21584, 21585, 21588, 21589, 21760, 21761, 21764, 21765, 21776, 21777, 21780, 21781, 21824, 21825, 21828, 21829, 21840, 21841, 21844, 21845];\n\n// coordinate of the lowest corner of each face\nHealpixTables.jrll = [2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4];\nHealpixTables.jpll = [1, 3, 5, 7, 0, 2, 4, 6, 1, 3, 5, 7];\nHealpixTables.xoffset = [-1, -1, 0, 1, 1, 1, 0, -1];\nHealpixTables.yoffset = [0, 1, 1, 1, 0, -1, -1, -1];\n\nvar HealpixTables$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"HealpixTables\", [HealpixTables, HealpixTables$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/healpix_tile.js\":\n/*!*****************************!*\\\n !*** ./esm/healpix_tile.js ***!\n \\*****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HealpixTile: () => (/* binding */ HealpixTile),\n/* harmony export */ Xyf: () => (/* binding */ Xyf)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _fxyf_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./fxyf.js */ \"./esm/fxyf.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./web_file.js */ \"./esm/web_file.js\");\n/* harmony import */ var _ui_tools_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ui_tools.js */ \"./esm/ui_tools.js\");\n/* harmony import */ var _tile_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./tile.js */ \"./esm/tile.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A tile in a pyramid that uses a HEALPix projection.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.Xyf\n\nfunction Xyf() {\n this.ix = 0;\n this.iy = 0;\n this.face = 0;\n}\n\nXyf.create = function (x, y, f) {\n var temp = new Xyf();\n temp.ix = x;\n temp.iy = y;\n temp.face = f;\n return temp;\n};\n\nvar Xyf$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Xyf\", [Xyf, Xyf$, null]);\n\n\n// wwtlib.HealpixTile\n\nfunction HealpixTile(level, x, y, dataset, parent) {\n this.ipix = 0;\n this.indexBuffer = new Array(4);\n this._vertexList$1 = null;\n this._nside$1 = 0;\n this._tileIndex$1 = 0;\n this._face$1 = 0;\n this._faceX$1 = 0;\n this._faceY$1 = 0;\n this._step$1 = 0;\n this._subDivided$1 = false;\n this._catalogRows$1 = [];\n _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.call(this);\n this.level = level;\n this.tileX = x;\n this.tileY = y;\n this.dataset = dataset;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.set_tileDemEnabled)(false);\n\n if (!level) {\n this._nside$1 = 4;\n } else {\n this._nside$1 = Math.pow(2, level + 1);\n }\n\n if (parent == null) {\n this._face$1 = x * 4 + y;\n this.ipix = this._face$1;\n } else {\n this.parent = parent;\n var parentTile = parent;\n this._face$1 = parentTile._face$1;\n this._tileIndex$1 = parentTile._tileIndex$1 * 4 + y * 2 + x;\n this.ipix = this._face$1 * this._nside$1 * this._nside$1 / 4 + this._tileIndex$1;\n this._faceX$1 = parentTile._faceX$1 * 2 + x;\n this._faceY$1 = parentTile._faceY$1 * 2 + y;\n }\n this.isCatalogTile = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(dataset.get_hipsProperties().get_properties(), 'dataproduct_type') && dataset.get_hipsProperties().get_properties()['dataproduct_type'].toLowerCase() === 'catalog';\n this._computeBoundingSphere$1();\n}\n\nHealpixTile._galacticMatrix$1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.create(-0.0548755604024359, -0.483835015526738, -0.873437090247923, 0, -0.867666148981161, 0.455983776232537, -0.198076373464674, 0, 0.494109427943568, 0.746982244476371, -0.444829629919504, 0, 0, 0, 0, 1);\n\nvar HealpixTile$ = {\n get_URL: function () {\n if (this._url$1 == null) {\n this._url$1 = this._getUrl$1(this.dataset, this.level, this.tileX, this.tileY);\n return this._url$1;\n } else {\n return this._url$1;\n }\n },\n\n _computeBoundingSphere$1: function () {\n this._setStep$1();\n this.createGeometry(null);\n var pointList = new Array(this._vertexList$1.length);\n for (var i = 0; i < this._vertexList$1.length; i++) {\n pointList[i] = this._vertexList$1[i].position;\n }\n this._calcSphere$1(pointList);\n this._setCorners$1();\n },\n\n createGeometry: function (renderContext) {\n if (this._vertexList$1 != null) {\n return true;\n }\n this._vertexList$1 = [];\n this._populateVertexList$1(this._vertexList$1, this._step$1);\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.dataset.get_hipsProperties().get_properties(), 'hips_frame') && this.dataset.get_hipsProperties().get_properties()['hips_frame'] === 'galactic') {\n for (var i = 0; i < this._vertexList$1.length; i++) {\n var vert = this._vertexList$1[i];\n HealpixTile._galacticMatrix$1.multiplyVector(vert.position);\n }\n }\n this.triangleCount = this._step$1 * this._step$1 / 2;\n var ui16array = new Uint16Array(3 * this.triangleCount);\n var indexArray = ui16array;\n if (!this._subDivided$1) {\n try {\n this._vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.ARRAY_BUFFER, this._vertexBuffer);\n var f32array = new Float32Array(this._vertexList$1.length * 5);\n var buffer = f32array;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._vertexList$1);\n while ($enum1.moveNext()) {\n var vert = $enum1.current;\n index = this.addVertex(buffer, index, vert);\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.ARRAY_BUFFER, f32array, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.STATIC_DRAW);\n index = 0;\n var offset = this._vertexList$1.length / (4 * this._step$1);\n\n //0 0 = left\n //1 0 = top\n //1 1 = right\n this._setIndexBufferForQuadrant$1(indexArray, 0, 1);\n if (this._step$1 > 1) {\n this._setIndexBufferForQuadrant$1(indexArray, 0, 0);\n this._setIndexBufferForQuadrant$1(indexArray, 1, 1);\n this._setIndexBufferForQuadrant$1(indexArray, 1, 0);\n }\n }\n catch (exception) {\n }\n }\n return true;\n },\n\n _setIndexBufferForQuadrant$1: function (indexArray, x, y) {\n var index = 0;\n for (var i = x * this._step$1 / 2; i < (this._step$1 / 2) * (x + 1); i++) {\n for (var j = y * this._step$1 / 2; j < (this._step$1 / 2) * (y + 1); j++) {\n indexArray[index++] = (i * (this._step$1 + 1) + j);\n indexArray[index++] = (1 + i * (this._step$1 + 1) + j);\n indexArray[index++] = (this._step$1 + 1 + i * (this._step$1 + 1) + j);\n indexArray[index++] = (1 + i * (this._step$1 + 1) + j);\n indexArray[index++] = (this._step$1 + 1 + i * (this._step$1 + 1) + j);\n indexArray[index++] = (this._step$1 + 2 + i * (this._step$1 + 1) + j);\n }\n }\n this._processIndexBuffer$1(indexArray, x * 2 + y);\n },\n\n _getUrl$1: function (dataset, level, x, y) {\n var extension = this._getHipsFileExtension$1();\n var tileTextureIndex = -1;\n if (!level) {\n tileTextureIndex = this._face$1;\n } else {\n tileTextureIndex = this._face$1 * this._nside$1 * this._nside$1 / 4 + this._tileIndex$1;\n }\n var sb = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.StringBuilder();\n var subDirIndex = Math.floor(tileTextureIndex / 10000) * 10000;\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format(dataset.get_url(), level.toString(), subDirIndex.toString(), tileTextureIndex.toString() + extension);\n },\n\n _getHipsFileExtension$1: function () {\n // The extension will contain either a space-separated list of types\n // or a single type. We currently match preferred filetypes\n // greedily. The extension must be exactly \".fits\" in order to\n // render correctly -- not only because of the greedy matching here,\n // but because there are other parts of the code that check for an\n // exact match.\n\n //prioritize transparent Png over other image formats\n if (this.dataset.get_extension().toLowerCase().indexOf('png') > -1) {\n return '.png';\n }\n if (this.dataset.get_extension().toLowerCase().indexOf('jpeg') > -1 || this.dataset.get_extension().toLowerCase().indexOf('jpg') > -1) {\n return '.jpg';\n }\n if (this.dataset.get_extension().toLowerCase().indexOf('tsv') > -1) {\n return '.tsv';\n }\n if (this.dataset.get_extension().toLowerCase().indexOf('fits') > -1) {\n return '.fits';\n }\n\n //default to most common\n return '.jpg';\n },\n\n isTileBigEnough: function (renderContext) {\n if (this.dataset.get_dataSetType() === 1) {\n var arcPixels = (180 / (Math.pow(2, this.level) * 4));\n return (renderContext.get_fovScale() < arcPixels);\n } else {\n var arcPixels = (3600 / (Math.pow(2, this.level) * 4));\n return (renderContext.get_fovScale() < arcPixels);\n }\n },\n\n _boundaries$1: function (x, y, step) {\n var nside = step * Math.pow(2, this.level);\n var points = new Array(4);\n var xyf = Xyf.create(x + this._faceX$1 * step, y + this._faceY$1 * step, this._face$1);\n var dc = 0.5 / nside;\n var xc = (xyf.ix + 0.5) / nside;\n var yc = (xyf.iy + 0.5) / nside;\n points[0] = _fxyf_js__WEBPACK_IMPORTED_MODULE_7__.Fxyf.create(xc + dc, yc + dc, xyf.face).toVec3();\n points[1] = _fxyf_js__WEBPACK_IMPORTED_MODULE_7__.Fxyf.create(xc - dc, yc + dc, xyf.face).toVec3();\n points[2] = _fxyf_js__WEBPACK_IMPORTED_MODULE_7__.Fxyf.create(xc - dc, yc - dc, xyf.face).toVec3();\n points[3] = _fxyf_js__WEBPACK_IMPORTED_MODULE_7__.Fxyf.create(xc + dc, yc - dc, xyf.face).toVec3();\n return points;\n },\n\n _setCorners$1: function () {\n var xyf = Xyf.create(this.tileX, this.tileY, this._face$1);\n var dc = 0.5 / this._nside$1;\n var xc = (xyf.ix + 0.5) / this._nside$1;\n var yc = (xyf.iy + 0.5) / this._nside$1;\n this.topLeft = _fxyf_js__WEBPACK_IMPORTED_MODULE_7__.Fxyf.create(xc + dc, yc + dc, xyf.face).toVec3();\n this.bottomLeft = _fxyf_js__WEBPACK_IMPORTED_MODULE_7__.Fxyf.create(xc - dc, yc + dc, xyf.face).toVec3();\n this.bottomRight = _fxyf_js__WEBPACK_IMPORTED_MODULE_7__.Fxyf.create(xc - dc, yc - dc, xyf.face).toVec3();\n this.topRight = _fxyf_js__WEBPACK_IMPORTED_MODULE_7__.Fxyf.create(xc + dc, yc - dc, xyf.face).toVec3();\n },\n\n draw3D: function (renderContext, opacity) {\n if (this.isCatalogTile) {\n this.drawCatalogTile(renderContext, opacity);\n return true;\n }\n this.renderedGeneration = _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.currentRenderGeneration;\n _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.tilesTouched++;\n this.inViewFrustum = true;\n var onlyDrawChildren = false;\n if (!this.readyToRender) {\n if (!this.errored) {\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheAddTileToQueue)(this);\n return false;\n }\n if (this.errored && this.level < 3) {\n //Level 0-2 sometimes deleted in favor of allsky.jpg/tsv\n onlyDrawChildren = true;\n }\n else {\n return false;\n }\n }\n var partCount = this.triangleCount;\n _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.trianglesRendered += partCount;\n var anythingToRender = false;\n var childRendered = false;\n var childIndex = 0;\n for (var y1 = 0; y1 < 2; y1++) {\n for (var x1 = 0; x1 < 2; x1++) {\n if (this.level < this.dataset.get_levels()) {\n if (this.children[childIndex] == null) {\n this.children[childIndex] = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheGetTile)(this.level + 1, x1, y1, this.dataset, this);\n }\n if (this.children[childIndex].isTileInFrustum(renderContext.get_frustum())) {\n this.inViewFrustum = true;\n if (this.children[childIndex].isTileBigEnough(renderContext) || onlyDrawChildren) {\n this.renderChildPart[childIndex].set_targetState(!this.children[childIndex].draw3D(renderContext, opacity));\n if (this.renderChildPart[childIndex].get_targetState()) {\n childRendered = true;\n }\n }\n else {\n this.renderChildPart[childIndex].set_targetState(true);\n }\n }\n else {\n this.renderChildPart[childIndex].set_targetState(this.renderChildPart[childIndex].set_state(false));\n }\n }\n else {\n this.renderChildPart[childIndex].set_state(true);\n }\n if (!!this.renderChildPart[childIndex].get_state()) {\n anythingToRender = true;\n }\n childIndex++;\n }\n }\n if (childRendered || anythingToRender) {\n this.renderedAtOrBelowGeneration = _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.currentRenderGeneration;\n if (this.parent != null) {\n this.parent.renderedAtOrBelowGeneration = this.renderedAtOrBelowGeneration;\n }\n }\n if (!anythingToRender) {\n return true;\n }\n if (!this.createGeometry(renderContext)) {\n return false;\n }\n if (onlyDrawChildren) {\n return true;\n }\n _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.tilesInView++;\n for (var i = 0; i < 4; i++) {\n if (this.renderChildPart[i].get_targetState()) {\n this.renderPart(renderContext, i, opacity / 100, false);\n }\n }\n return true;\n },\n\n drawCatalogTile: function (renderContext, opacity) {\n this.renderedGeneration = _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.currentRenderGeneration;\n _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.tilesTouched++;\n this.inViewFrustum = true;\n var onlyDrawChildren = false;\n if (!this.readyToRender) {\n if (!this.errored) {\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheAddTileToQueue)(this);\n return;\n }\n if (this.errored && this.level < 3) {\n //Level 0-2 sometimes deleted in favor of allsky.jpg/tsv\n onlyDrawChildren = true;\n }\n else {\n return;\n }\n }\n var anyChildInFrustum = false;\n var childIndex = 0;\n for (var y1 = 0; y1 < 2; y1++) {\n for (var x1 = 0; x1 < 2; x1++) {\n if (this.level < this.dataset.get_levels()) {\n if (this.children[childIndex] == null) {\n this.children[childIndex] = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheGetTile)(this.level + 1, x1, y1, this.dataset, this);\n }\n if (this.children[childIndex].isTileInFrustum(renderContext.get_frustum())) {\n this.inViewFrustum = true;\n anyChildInFrustum = true;\n if (this.children[childIndex].isTileBigEnough(renderContext) || onlyDrawChildren) {\n (this.children[childIndex]).drawCatalogTile(renderContext, opacity);\n }\n else {\n (this.children[childIndex]).removeCatalogTile();\n }\n }\n else {\n (this.children[childIndex]).removeCatalogTile();\n }\n }\n childIndex++;\n }\n }\n if (!this.level && !anyChildInFrustum && !onlyDrawChildren) {\n this.removeCatalogTile();\n } else if (anyChildInFrustum) {\n _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.tilesInView++;\n this._addCatalogTile$1();\n }\n },\n\n removeCatalogTile: function () {\n this.dataset.get_hipsProperties().get_catalogSpreadSheetLayer().removeTileRows(this.get_key(), this._catalogRows$1);\n },\n\n _addCatalogTile$1: function () {\n this.dataset.get_hipsProperties().get_catalogSpreadSheetLayer().addTileRows(this.get_key(), this._catalogRows$1);\n },\n\n _extractCatalogTileRows$1: function () {\n var headerRemoved = false;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._catalogData$1.getText().split('\\n'));\n while ($enum1.moveNext()) {\n var line = $enum1.current;\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(line, '#') && !headerRemoved) {\n headerRemoved = true;\n continue;\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(line, '#')) {\n var rowData = _ui_tools_js__WEBPACK_IMPORTED_MODULE_9__.UiTools.splitString(line, this.dataset.get_hipsProperties().get_catalogSpreadSheetLayer().get__table().delimiter);\n this._catalogRows$1.push(rowData);\n }\n }\n },\n\n getDataInView: function (renderContext, limit, catalogSpreadSheetLayer) {\n if (!this.readyToRender) {\n if (!this.errored) {\n this.requestImage();\n if (limit) {\n return false;\n }\n }\n else if (this.level >= 3) {\n //Level 0-2 sometimes deleted in favor of allsky.jpg/tsv\n return true;\n }\n }\n var allChildrenReady = true;\n var anyChildInFrustum = false;\n var childIndex = 0;\n for (var y1 = 0; y1 < 2; y1++) {\n for (var x1 = 0; x1 < 2; x1++) {\n if (this.level < this.dataset.get_levels()) {\n if (this.children[childIndex] == null) {\n this.children[childIndex] = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheGetTile)(this.level + 1, x1, y1, this.dataset, this);\n }\n if (this.children[childIndex].isTileInFrustum(renderContext.get_frustum())) {\n anyChildInFrustum = true;\n allChildrenReady = allChildrenReady && (this.children[childIndex]).getDataInView(renderContext, limit, catalogSpreadSheetLayer);\n }\n }\n childIndex++;\n }\n }\n if (anyChildInFrustum) {\n catalogSpreadSheetLayer.addTileRows(this.get_key(), this._catalogRows$1);\n }\n return allChildrenReady && !this.downloading;\n },\n\n _setStep$1: function () {\n if (this.isCatalogTile) {\n this._step$1 = 2;\n } else {\n switch (this.level) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n this._step$1 = 16;\n break;\n case 5:\n this._step$1 = 8;\n break;\n case 6:\n this._step$1 = 4;\n break;\n default:\n this._step$1 = 2;\n break;\n }\n }\n },\n\n requestImage: function () {\n if (this.isCatalogTile) {\n if (!this.downloading && !this.readyToRender) {\n this.downloading = true;\n this._catalogData$1 = new _web_file_js__WEBPACK_IMPORTED_MODULE_8__.WebFile(this.get_URL());\n this._catalogData$1.onStateChange = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_loadCatalogData$1', this);\n this._catalogData$1.send();\n }\n } else {\n _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.prototype.requestImage.call(this);\n }\n },\n\n _loadCatalogData$1: function () {\n if (this._catalogData$1.get_state() === 2) {\n this.requestPending = false;\n this.downloading = false;\n this.errored = true;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheRemoveFromQueue)(this.get_key(), true);\n } else if (this._catalogData$1.get_state() === 1) {\n this._extractCatalogTileRows$1();\n this.texReady = true;\n this.downloading = false;\n this.errored = false;\n this.readyToRender = true;\n this.requestPending = false;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheRemoveFromQueue)(this.get_key(), true);\n }\n },\n\n getIndexBuffer: function (index, accomidation) {\n return this.indexBuffer[index];\n },\n\n _calcSphere$1: function (list) {\n var result = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.ConvexHull.findEnclosingSphere(list);\n this.sphereCenter = result.center;\n this.sphereRadius = result.radius;\n },\n\n isPointInTile: function (lat, lng) {\n if (!this.level) {\n return true;\n }\n if (this.level === 1) {\n if ((lng >= 0 && lng <= 90) && (!this.tileX && this.tileY === 1)) {\n return true;\n }\n if ((lng > 90 && lng <= 180) && (this.tileX === 1 && this.tileY === 1)) {\n return true;\n }\n if ((lng < 0 && lng >= -90) && (!this.tileX && !this.tileY)) {\n return true;\n }\n if ((lng < -90 && lng >= -180) && (this.tileX === 1 && !this.tileY)) {\n return true;\n }\n }\n var testPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.geoTo3dDouble(lat, lng);\n var top = this._isLeftOfHalfSpace$1(this.topLeft, this.topRight, testPoint);\n var right = this._isLeftOfHalfSpace$1(this.topRight, this.bottomRight, testPoint);\n var bottom = this._isLeftOfHalfSpace$1(this.bottomRight, this.bottomLeft, testPoint);\n var left = this._isLeftOfHalfSpace$1(this.bottomLeft, this.topLeft, testPoint);\n if (top && right && bottom && left) {\n return true;\n }\n return false;\n },\n\n _isLeftOfHalfSpace$1: function (pntA, pntB, pntTest) {\n pntA.normalize();\n pntB.normalize();\n var cross = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.cross(pntA, pntB);\n var dot = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.dot(cross, pntTest);\n return dot > 0;\n },\n\n getSurfacePointAltitude: function (lat, lng, meters) {\n if (this.level < _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.lastDeepestLevel) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.children);\n while ($enum1.moveNext()) {\n var child = $enum1.current;\n if (child != null) {\n if (child.isPointInTile(lat, lng)) {\n var retVal = child.getSurfacePointAltitude(lat, lng, meters);\n if (!!retVal) {\n return retVal;\n }\n else {\n break;\n }\n }\n }\n }\n }\n return this._getAltitudeFromLatLng$1(lat, lng, meters);\n },\n\n _getAltitudeFromLatLng$1: function (lat, lng, meters) {\n var testPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.geoTo3dDouble(lat, lng);\n var uv = _util_js__WEBPACK_IMPORTED_MODULE_4__.DistanceCalc.getUVFromInnerPoint(this.topLeft, this.topRight, this.bottomLeft, this.bottomRight, testPoint);\n\n // Get 4 samples and interpolate\n var uud = Math.max(0, Math.min(16, (uv.x * 16)));\n var vvd = Math.max(0, Math.min(16, (uv.y * 16)));\n var uu = Math.max(0, Math.min(15, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((uv.x * 16))));\n var vv = Math.max(0, Math.min(15, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((uv.y * 16))));\n var ha = uud - uu;\n var va = vvd - vv;\n if (this.demArray != null) {\n // 4 nearest neighbors\n var ul = this.demArray[uu + 17 * vv];\n var ur = this.demArray[(uu + 1) + 17 * vv];\n var ll = this.demArray[uu + 17 * (vv + 1)];\n var lr = this.demArray[(uu + 1) + 17 * (vv + 1)];\n var top = ul * (1 - ha) + ha * ur;\n var bottom = ll * (1 - ha) + ha * lr;\n var val = top * (1 - va) + va * bottom;\n return val / ((meters) ? 1 : this.get__demScaleFactor());\n }\n return this.demAverage / ((meters) ? 1 : this.get__demScaleFactor());\n },\n\n _processIndexBuffer$1: function (indexArray, part) {\n this.indexBuffer[part] = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.ELEMENT_ARRAY_BUFFER, this.indexBuffer[part]);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.ELEMENT_ARRAY_BUFFER, indexArray, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.STATIC_DRAW);\n },\n\n cleanUp: function (removeFromParent) {\n _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile.prototype.cleanUp.call(this, removeFromParent);\n this._returnBuffers$1();\n this._subDivided$1 = false;\n },\n\n _returnBuffers$1: function () {\n if (this._vertexList$1 != null) {\n this._vertexList$1 = null;\n }\n },\n\n // Vertices distributed in a grid pattern like the example below\n // Example for pattern with step set to 4\n // 24\n // 19 23\n // 14 18 22\n // 9 13 17 21\n // 4 8 12 16 20\n // 3 7 11 15\n // 2 6 10\n // 1 5\n // 0\n _populateVertexList$1: function (vertexList, step) {\n for (var i = 0; i < step; i += 2) {\n for (var j = 0; j < step; j += 2) {\n var points = this._boundaries$1(j, i, step);\n vertexList[i * (step + 1) + j] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(points[2], (1 / step) * i, (1 / step) * j);\n vertexList[i * (step + 1) + j + 1] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(points[3], (1 / step) * i, (1 / step) + (1 / step) * j);\n vertexList[(i + 1) * (step + 1) + j] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(points[1], (1 / step) + (1 / step) * i, (1 / step) * j);\n vertexList[(i + 1) * (step + 1) + j + 1] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(points[0], (1 / step) + (1 / step) * i, (1 / step) + (1 / step) * j);\n if (j + 2 >= step && step > 1) {\n j = step - 1;\n points = this._boundaries$1(j, i, step);\n vertexList[i * (step + 1) + step] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(points[3], (1 / step) * i, (1 / step) + (1 / step) * j);\n vertexList[(i + 1) * (step + 1) + step] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(points[0], (1 / step) + (1 / step) * i, (1 / step) + (1 / step) * j);\n }\n }\n }\n if (step > 1) {\n this._vertexOfLastRow$1(vertexList, step);\n }\n },\n\n _vertexOfLastRow$1: function (vertexList, step) {\n var i = step - 1;\n for (var j = 0; j < step; j += 2) {\n var points = this._boundaries$1(j, i, step);\n vertexList[(i + 1) * (step + 1) + j] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(points[1], (1 / step) + (1 / step) * i, (1 / step) * j);\n vertexList[(i + 1) * (step + 1) + j + 1] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(points[0], (1 / step) + (1 / step) * i, (1 / step) + (1 / step) * j);\n if (j + 2 >= step) {\n j = step - 1;\n points = this._boundaries$1(j, i, step);\n vertexList[(i + 1) * (step + 1) + step] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(points[0], (1 / step) + (1 / step) * i, (1 / step) + (1 / step) * j);\n }\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"HealpixTile\", [HealpixTile, HealpixTile$, _tile_js__WEBPACK_IMPORTED_MODULE_10__.Tile]);\n\n\n/***/ }),\n\n/***/ \"./esm/healpix_utils.js\":\n/*!******************************!*\\\n !*** ./esm/healpix_utils.js ***!\n \\******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HealpixUtils: () => (/* binding */ HealpixUtils)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _fast_math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fast_math.js */ \"./esm/fast_math.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Utilities relating to HEALPix.\n\n\n\n\n\n// wwtlib.HealpixUtils\n\nfunction HealpixUtils() { }\n\nHealpixUtils.check = function (cond, errtxt) {\n if (!cond) {\n throw new Error(errtxt);\n }\n};\n\n// Integer square root.\nHealpixUtils.isqrt = function (arg) {\n var res = Math.sqrt((arg) + 0.5);\n if (arg < (1 << 50)) {\n return res;\n }\n if (res * res > arg) {\n --res;\n }\n else if ((res + 1) * (res + 1) <= arg) {\n ++res;\n }\n return res;\n};\n\n// Computes the cosine of the angular distance between two z, phi positions on\n// the unit sphere\nHealpixUtils.cosdist_zphi = function (z1, phi1, z2, phi2) {\n return z1 * z2 + _fast_math_js__WEBPACK_IMPORTED_MODULE_1__.FastMath.cos(phi1 - phi2) * Math.sqrt((1 - z1 * z1) * (1 - z2 * z2));\n};\n\nHealpixUtils.fmodulo = function (v1, v2) {\n if (v1 >= 0) {\n return (v1 < v2) ? v1 : v1 % v2;\n }\n var tmp = v1 % v2 + v2;\n return (tmp === v2) ? 0 : tmp;\n};\n\nvar HealpixUtils$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"HealpixUtils\", [HealpixUtils, HealpixUtils$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/hips_properties.js\":\n/*!********************************!*\\\n !*** ./esm/hips_properties.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HipsProperties: () => (/* binding */ HipsProperties)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./web_file.js */ \"./esm/web_file.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n/* harmony import */ var _layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./layers/spreadsheet_layer.js */ \"./esm/layers/spreadsheet_layer.js\");\n/* harmony import */ var _layers_vo_table_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./layers/vo_table.js */ \"./esm/layers/vo_table.js\");\n/* harmony import */ var _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./layers/layer_manager.js */ \"./esm/layers/layer_manager.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Summary properties about HiPS datasets.\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.HipsProperties\n\nfunction HipsProperties(dataset) {\n this._properties = {};\n this._catalogColumnInfo = null;\n this._catalogSpreadSheetLayer = new _layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_5__.CatalogSpreadSheetLayer();\n this._downloadComplete = false;\n this.dataset = dataset;\n this._datasetName = dataset.get_name();\n this._url = dataset.get_url();\n if (this._url.toLowerCase().indexOf('norder') > -1) {\n this._url = this._url.substring(0, this._url.toLowerCase().indexOf('norder'));\n }\n this._url += 'properties';\n this._download();\n}\n\nvar HipsProperties$ = {\n get_properties: function () {\n return this._properties;\n },\n\n get_catalogSpreadSheetLayer: function () {\n return this._catalogSpreadSheetLayer;\n },\n\n set_catalogSpreadSheetLayer: function (value) {\n this._catalogSpreadSheetLayer = value;\n return value;\n },\n\n get_catalogColumnInfo: function () {\n return this._catalogColumnInfo;\n },\n\n set_catalogColumnInfo: function (value) {\n this._catalogColumnInfo = value;\n return value;\n },\n\n get_downloadComplete: function () {\n return this._downloadComplete;\n },\n\n _download: function () {\n this._webFile = new _web_file_js__WEBPACK_IMPORTED_MODULE_3__.WebFile(this._url);\n this._webFile.onStateChange = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_onPropertiesDownloadComplete', this);\n this._webFile.send();\n },\n\n _onPropertiesDownloadComplete: function () {\n if (this._webFile.get_state() === 1) {\n this._parseProperties(this._webFile.getText());\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.get_properties(), 'dataproduct_type') && this.get_properties()['dataproduct_type'].toLowerCase() === 'catalog') {\n this._catalogColumnInfo = _layers_vo_table_js__WEBPACK_IMPORTED_MODULE_6__.VoTable.loadFromUrl(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(this._url, '/properties', '/metadata.xml'), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_onCatalogMetadataDownloadComplete', this));\n }\n else {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.get_properties(), 'hips_data_range')) {\n var hips_data_range = this.get_properties()['hips_data_range'];\n this.dataset.get_fitsProperties().minVal = parseFloat(hips_data_range.split(' ')[0]);\n this.dataset.get_fitsProperties().maxVal = parseFloat(hips_data_range.split(' ')[1]);\n this.dataset.get_fitsProperties().lowerCut = this.dataset.get_fitsProperties().minVal;\n this.dataset.get_fitsProperties().upperCut = this.dataset.get_fitsProperties().maxVal;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.get_properties(), 'hips_pixel_cut')) {\n var hips_pixel_cut = this.get_properties()['hips_pixel_cut'];\n this.dataset.get_fitsProperties().lowerCut = parseFloat(hips_pixel_cut.split(' ')[0]);\n this.dataset.get_fitsProperties().upperCut = parseFloat(hips_pixel_cut.split(' ')[1]);\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.get_properties(), 'hips_data_range')) {\n this.dataset.get_fitsProperties().minVal = this.dataset.get_fitsProperties().lowerCut;\n this.dataset.get_fitsProperties().maxVal = this.dataset.get_fitsProperties().upperCut;\n }\n }\n this._downloadComplete = true;\n if (this._onDownloadComplete != null) {\n this._onDownloadComplete();\n }\n }\n }\n },\n\n _onCatalogMetadataDownloadComplete: function () {\n this._catalogSpreadSheetLayer.useHeadersFromVoTable(this._catalogColumnInfo);\n this._catalogSpreadSheetLayer.set_name(this._datasetName);\n this._catalogSpreadSheetLayer.id = _util_js__WEBPACK_IMPORTED_MODULE_4__.Guid.createFrom(this._datasetName);\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_7__.LayerManager.addSpreadsheetLayer(this.get_catalogSpreadSheetLayer(), 'Sky');\n this._downloadComplete = true;\n if (this._onDownloadComplete != null) {\n this._onDownloadComplete();\n }\n },\n\n setDownloadCompleteListener: function (listener) {\n this._onDownloadComplete = listener;\n },\n\n _parseProperties: function (data) {\n var lines = data.split('\\n');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(lines);\n while ($enum1.moveNext()) {\n var line = $enum1.current;\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.whitespace(line) && !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(line, '#')) {\n var parts = line.split('=');\n if (parts.length === 2) {\n var key = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(parts[0]);\n var val = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(parts[1]);\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.whitespace(key) && !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.whitespace(val)) {\n this.get_properties()[key] = val;\n }\n }\n }\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"HipsProperties\", [HipsProperties, HipsProperties$, null]);\n\n(0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.set_makeNewHipsProperties)(function (imageset) {\n return new HipsProperties(imageset);\n});\n\n\n\n/***/ }),\n\n/***/ \"./esm/hploc.js\":\n/*!**********************!*\\\n !*** ./esm/hploc.js ***!\n \\**********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Hploc: () => (/* binding */ Hploc)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _fast_math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fast_math.js */ \"./esm/fast_math.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A HEALPix location type.\n\n\n\n\n\n\n// wwtlib.Hploc\n\nfunction Hploc() {\n this.z = 0;\n this.phi = 0;\n this.sth = 0;\n this.have_sth = false;\n}\n\nHploc.create = function (v) {\n var temp = new Hploc();\n var xl = 1 / v.length();\n temp.z = v.z * xl;\n temp.phi = _fast_math_js__WEBPACK_IMPORTED_MODULE_2__.FastMath.atan2(v.y, v.x);\n if (Math.abs(temp.z) > 0.99) {\n temp.sth = Math.sqrt(v.x * v.x + v.y * v.y) * xl;\n temp.have_sth = true;\n }\n return temp;\n};\n\nvar Hploc$ = {\n toVec3: function () {\n var st;\n if (this.have_sth) {\n st = this.sth;\n } else {\n st = Math.sqrt((1 - this.z) * (1 + this.z));\n }\n var x = st * _fast_math_js__WEBPACK_IMPORTED_MODULE_2__.FastMath.cos(this.phi);\n var y = st * _fast_math_js__WEBPACK_IMPORTED_MODULE_2__.FastMath.sin(this.phi);\n return _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(x, this.z, y);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Hploc\", [Hploc, Hploc$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/imageset.js\":\n/*!*************************!*\\\n !*** ./esm/imageset.js ***!\n \\*************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BandPass: () => (/* binding */ BandPass),\n/* harmony export */ ImageSetType: () => (/* binding */ ImageSetType),\n/* harmony export */ Imageset: () => (/* binding */ Imageset),\n/* harmony export */ ProjectionType: () => (/* binding */ ProjectionType)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _fits_properties_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./fits_properties.js */ \"./esm/fits_properties.js\");\n/* harmony import */ var _layers_fits_image_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./layers/fits_image.js */ \"./esm/layers/fits_image.js\");\n/* harmony import */ var _equirectangular_tile_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./equirectangular_tile.js */ \"./esm/equirectangular_tile.js\");\n/* harmony import */ var _healpix_tile_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./healpix_tile.js */ \"./esm/healpix_tile.js\");\n/* harmony import */ var _mercator_tile_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./mercator_tile.js */ \"./esm/mercator_tile.js\");\n/* harmony import */ var _plot_tile_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./plot_tile.js */ \"./esm/plot_tile.js\");\n/* harmony import */ var _tangent_tile_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./tangent_tile.js */ \"./esm/tangent_tile.js\");\n/* harmony import */ var _sky_image_tile_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./sky_image_tile.js */ \"./esm/sky_image_tile.js\");\n/* harmony import */ var _toast_tile_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./toast_tile.js */ \"./esm/toast_tile.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// An image tile pyramid.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.ProjectionType\n//\n// This was originally defined in `IImageset.cs`, not `Imageset.cs`, but we've\n// folded it into this file.\n\nvar ProjectionType = {\n mercator: 0,\n equirectangular: 1,\n tangent: 2,\n tan: 2,\n toast: 3,\n spherical: 4,\n skyImage: 5,\n plotted: 6,\n healpix: 7\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ProjectionType\", ProjectionType);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"ProjectionType\", ProjectionType);\n\n\n// wwtlib.ImageSetType\n//\n// This was originally defined in `IImageset.cs`, not `Imageset.cs`, but we've\n// folded it into this file.\n\nvar ImageSetType = {\n earth: 0,\n planet: 1,\n sky: 2,\n panorama: 3,\n solarSystem: 4,\n sandbox: 5\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ImageSetType\", ImageSetType);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"ImageSetType\", ImageSetType);\n\n\n// wwtlib.BandPass\n//\n// This was originally defined in `IImageset.cs`, not `Imageset.cs`, but we've\n// folded it into this file.\n\nvar BandPass = {\n gamma: 0,\n xRay: 1,\n ultraviolet: 2,\n visible: 3,\n hydrogenAlpha: 4,\n IR: 4,\n microwave: 5,\n radio: 6,\n visibleNight: 6\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"BandPass\", BandPass);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"BandPass\", BandPass);\n\n\n// wwtlib.Imageset\n\nfunction Imageset() {\n this._projection = 0;\n this._imageSetID = 0;\n this._baseTileDegrees = 0;\n this._widthFactor = 1;\n this.demUrl = '';\n this._levels = 0;\n this._mercator = false;\n this._bottomsUp = false;\n this._baseLevel = 1;\n this._quadTreeTileMap = '0123';\n this._centerX = 0;\n this._centerY = 0;\n this._rotation = 0;\n this._meanRadius = 0;\n this._dataSetType = 0;\n this._bandPass = 3;\n this._altUrl = '';\n this._singleImage = false;\n this._fitsProperties = new _fits_properties_js__WEBPACK_IMPORTED_MODULE_8__.FitsProperties();\n this._matrixComputed = false;\n this._name = '';\n this._sparse = false;\n this._thumbnailUrl = '';\n this._generic = false;\n this._defaultSet = false;\n this._elevationModel = false;\n this._offsetX = 0;\n this._offsetY = 0;\n}\n\nImageset.getNewTile = function (imageset, level, x, y, parent) {\n // Note: \"spherical\" projection type not handled in the WebGL engine.\n switch (imageset.get_projection()) {\n case ProjectionType.mercator:\n var newTile = _mercator_tile_js__WEBPACK_IMPORTED_MODULE_12__.MercatorTile.create(level, x, y, imageset, parent);\n return newTile;\n case ProjectionType.equirectangular:\n return _equirectangular_tile_js__WEBPACK_IMPORTED_MODULE_10__.EquirectangularTile.create(level, x, y, imageset, parent);\n case ProjectionType.toast:\n default:\n return _toast_tile_js__WEBPACK_IMPORTED_MODULE_16__.ToastTile.create(level, x, y, imageset, parent);\n case ProjectionType.skyImage:\n return new _sky_image_tile_js__WEBPACK_IMPORTED_MODULE_15__.SkyImageTile(level, x, y, imageset, parent);\n case ProjectionType.plotted:\n return _plot_tile_js__WEBPACK_IMPORTED_MODULE_13__.PlotTile.create(level, x, y, imageset, parent);\n case ProjectionType.healpix:\n if (imageset.get_hipsProperties() == null) {\n imageset.set_hipsProperties((0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.makeNewHipsProperties)(imageset));\n }\n if (imageset.get_hipsProperties().get_downloadComplete()) {\n return new _healpix_tile_js__WEBPACK_IMPORTED_MODULE_11__.HealpixTile(level, x, y, imageset, parent);\n }\n else {\n return null;\n }\n case ProjectionType.tangent:\n var newTile = new _tangent_tile_js__WEBPACK_IMPORTED_MODULE_14__.TangentTile(level, x, y, imageset, parent);\n return newTile;\n }\n};\n\nImageset.fromXMLNode = function (node) {\n try {\n var type = 2;\n var projection = 2;\n if (node.attributes.getNamedItem('DataSetType') != null) {\n type = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('ImageSetType', node.attributes.getNamedItem('DataSetType').nodeValue);\n }\n var bandPass = 3;\n bandPass = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('BandPass', node.attributes.getNamedItem('BandPass').nodeValue);\n var wf = 1;\n if (node.attributes.getNamedItem('WidthFactor') != null) {\n wf = parseInt(node.attributes.getNamedItem('WidthFactor').nodeValue);\n }\n if (node.attributes.getNamedItem('Generic') == null || !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('Generic').nodeValue)) {\n projection = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('ProjectionType', node.attributes.getNamedItem('Projection').nodeValue);\n var fileType = node.attributes.getNamedItem('FileType').nodeValue;\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(fileType, '.')) {\n fileType = '.' + fileType;\n }\n var thumbnailUrl = '';\n var thumbUrl = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(node, 'ThumbnailUrl');\n if (thumbUrl != null) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(thumbUrl.text)) {\n var cn = thumbUrl;\n thumbnailUrl = cn.textContent;\n }\n else {\n thumbnailUrl = thumbUrl.text;\n }\n }\n var stockSet = false;\n var elevationModel = false;\n if (node.attributes.getNamedItem('StockSet') != null) {\n stockSet = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('StockSet').nodeValue);\n }\n if (node.attributes.getNamedItem('ElevationModel') != null) {\n elevationModel = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('ElevationModel').nodeValue);\n }\n var demUrl = '';\n if (node.attributes.getNamedItem('DemUrl') != null) {\n demUrl = node.attributes.getNamedItem('DemUrl').nodeValue;\n }\n var alturl = '';\n if (node.attributes.getNamedItem('AltUrl') != null) {\n alturl = node.attributes.getNamedItem('AltUrl').nodeValue;\n }\n var offsetX = 0;\n if (node.attributes.getNamedItem('OffsetX') != null) {\n offsetX = parseFloat(node.attributes.getNamedItem('OffsetX').nodeValue);\n }\n var offsetY = 0;\n if (node.attributes.getNamedItem('OffsetY') != null) {\n offsetY = parseFloat(node.attributes.getNamedItem('OffsetY').nodeValue);\n }\n var creditText = '';\n var credits = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(node, 'Credits');\n if (credits != null) {\n creditText = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.getInnerText(credits);\n }\n var creditsUrl = '';\n credits = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(node, 'CreditsUrl');\n if (credits != null) {\n creditsUrl = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.getInnerText(credits);\n }\n var meanRadius = 0;\n if (node.attributes.getNamedItem('MeanRadius') != null) {\n meanRadius = parseFloat(node.attributes.getNamedItem('MeanRadius').nodeValue);\n }\n var referenceFrame = null;\n if (node.attributes.getNamedItem('ReferenceFrame') != null) {\n referenceFrame = node.attributes.getNamedItem('ReferenceFrame').nodeValue;\n }\n var name = '';\n if (node.attributes.getNamedItem('Name') != null) {\n name = node.attributes.getNamedItem('Name').nodeValue;\n }\n var url = '';\n if (node.attributes.getNamedItem('Url') != null) {\n url = node.attributes.getNamedItem('Url').nodeValue;\n }\n var baseTileLevel = 0;\n if (node.attributes.getNamedItem('BaseTileLevel') != null) {\n baseTileLevel = parseInt(node.attributes.getNamedItem('BaseTileLevel').nodeValue);\n }\n var tileLevels = 0;\n if (node.attributes.getNamedItem('TileLevels') != null) {\n tileLevels = parseInt(node.attributes.getNamedItem('TileLevels').nodeValue);\n }\n var baseDegreesPerTile = 0;\n if (node.attributes.getNamedItem('BaseDegreesPerTile') != null) {\n baseDegreesPerTile = parseFloat(node.attributes.getNamedItem('BaseDegreesPerTile').nodeValue);\n }\n var bottomsUp = false;\n if (node.attributes.getNamedItem('BottomsUp') != null) {\n bottomsUp = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('BottomsUp').nodeValue);\n }\n var quadTreeMap = '';\n if (node.attributes.getNamedItem('QuadTreeMap') != null) {\n quadTreeMap = node.attributes.getNamedItem('QuadTreeMap').nodeValue;\n }\n var centerX = 0;\n if (node.attributes.getNamedItem('CenterX') != null) {\n centerX = parseFloat(node.attributes.getNamedItem('CenterX').nodeValue);\n }\n var centerY = 0;\n if (node.attributes.getNamedItem('CenterY') != null) {\n centerY = parseFloat(node.attributes.getNamedItem('CenterY').nodeValue);\n }\n var rotation = 0;\n if (node.attributes.getNamedItem('Rotation') != null) {\n rotation = parseFloat(node.attributes.getNamedItem('Rotation').nodeValue);\n }\n var sparse = false;\n if (node.attributes.getNamedItem('Sparse') != null) {\n sparse = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('Sparse').nodeValue);\n }\n return Imageset.create(name, url, type, bandPass, projection, Math.abs(_baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.getHashCode(url)), baseTileLevel, tileLevels, 256, baseDegreesPerTile, fileType, bottomsUp, quadTreeMap, centerX, centerY, rotation, sparse, thumbnailUrl, stockSet, elevationModel, wf, offsetX, offsetY, creditText, creditsUrl, demUrl, alturl, meanRadius, referenceFrame);\n } else {\n return Imageset.createGeneric(type, bandPass);\n }\n }\n catch ($e1) {\n return null;\n }\n};\n\nImageset.saveToXml = function (xmlWriter, imageset, alternateUrl) {\n xmlWriter._writeStartElement('ImageSet');\n xmlWriter._writeAttributeString('Generic', imageset.get_generic().toString());\n xmlWriter._writeAttributeString('DataSetType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('ImageSetType', imageset.get_dataSetType()));\n xmlWriter._writeAttributeString('BandPass', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('BandPass', imageset.get_bandPass()));\n if (!imageset.get_generic()) {\n xmlWriter._writeAttributeString('Name', imageset.get_name());\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(alternateUrl)) {\n xmlWriter._writeAttributeString('Url', imageset.get_url());\n } else {\n xmlWriter._writeAttributeString('Url', alternateUrl);\n }\n xmlWriter._writeAttributeString('DemUrl', imageset.get_demUrl());\n xmlWriter._writeAttributeString('BaseTileLevel', imageset.get_baseLevel().toString());\n xmlWriter._writeAttributeString('TileLevels', imageset.get_levels().toString());\n xmlWriter._writeAttributeString('BaseDegreesPerTile', imageset.get_baseTileDegrees().toString());\n xmlWriter._writeAttributeString('FileType', imageset.get_extension());\n xmlWriter._writeAttributeString('BottomsUp', imageset.get_bottomsUp().toString());\n xmlWriter._writeAttributeString('Projection', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('ProjectionType', imageset.get_projection()));\n xmlWriter._writeAttributeString('QuadTreeMap', imageset.get_quadTreeTileMap());\n xmlWriter._writeAttributeString('CenterX', imageset.get_centerX().toString());\n xmlWriter._writeAttributeString('CenterY', imageset.get_centerY().toString());\n xmlWriter._writeAttributeString('OffsetX', imageset.get_offsetX().toString());\n xmlWriter._writeAttributeString('OffsetY', imageset.get_offsetY().toString());\n xmlWriter._writeAttributeString('Rotation', imageset.get_rotation().toString());\n xmlWriter._writeAttributeString('Sparse', imageset.get_sparse().toString());\n xmlWriter._writeAttributeString('ElevationModel', imageset.get_elevationModel().toString());\n xmlWriter._writeAttributeString('StockSet', imageset.get_defaultSet().toString());\n xmlWriter._writeAttributeString('WidthFactor', imageset.get_widthFactor().toString());\n xmlWriter._writeAttributeString('MeanRadius', imageset.get_meanRadius().toString());\n xmlWriter._writeAttributeString('ReferenceFrame', imageset.get_referenceFrame());\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(alternateUrl)) {\n xmlWriter._writeElementString('ThumbnailUrl', imageset.get_thumbnailUrl());\n } else {\n xmlWriter._writeElementString('ThumbnailUrl', imageset.get_url());\n }\n }\n xmlWriter._writeEndElement();\n};\n\nImageset.createGeneric = function (dataSetType, bandPass) {\n var temp = new Imageset();\n temp._generic = true;\n temp._name = 'Generic';\n temp._sparse = false;\n temp._dataSetType = dataSetType;\n temp._bandPass = bandPass;\n temp._quadTreeTileMap = '';\n temp.url = '';\n temp._levels = 0;\n temp._baseTileDegrees = 0;\n temp._imageSetID = 0;\n temp._extension = '';\n temp._projection = 1;\n temp._bottomsUp = false;\n temp._baseLevel = 0;\n temp._mercator = (!temp._projection);\n temp._centerX = 0;\n temp._centerY = 0;\n temp._rotation = 0;\n temp._thumbnailUrl = '';\n temp._matrix = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.get_identity();\n temp._matrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX((temp.get_rotation() / 180 * Math.PI)));\n temp._matrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationZ((temp.get_centerY() / 180 * Math.PI)));\n temp._matrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationY((((360 - temp.get_centerX()) + 180) / 180 * Math.PI)));\n return temp;\n};\n\nImageset.create = function (name, url, dataSetType, bandPass, projection, imageSetID, baseLevel, levels, tileSize, baseTileDegrees, extension, bottomsUp, quadTreeMap, centerX, centerY, rotation, sparse, thumbnailUrl, defaultSet, elevationModel, wf, offsetX, offsetY, credits, creditsUrl, demUrlIn, alturl, meanRadius, referenceFrame) {\n var temp = new Imageset();\n temp.setInitialParameters(name, url, dataSetType, bandPass, projection, imageSetID, baseLevel, levels, baseTileDegrees, extension, bottomsUp, quadTreeMap, centerX, centerY, rotation, sparse, thumbnailUrl, defaultSet, elevationModel, wf, offsetX, offsetY, credits, creditsUrl, demUrlIn, alturl, meanRadius, referenceFrame);\n return temp;\n};\n\nvar Imageset$ = {\n get_wcsImage: function () {\n return this._wcsImage;\n },\n\n set_wcsImage: function (value) {\n this._wcsImage = value;\n return value;\n },\n\n get_projection: function () {\n return this._projection;\n },\n\n set_projection: function (value) {\n this._projection = value;\n return value;\n },\n\n get_referenceFrame: function () {\n return this._referenceFrame;\n },\n\n set_referenceFrame: function (value) {\n this._referenceFrame = value;\n return value;\n },\n\n get_imageSetID: function () {\n return this._imageSetID;\n },\n\n set_imageSetID: function (value) {\n this._imageSetID = value;\n return value;\n },\n\n get_baseTileDegrees: function () {\n return this._baseTileDegrees;\n },\n\n set_baseTileDegrees: function (value) {\n this._baseTileDegrees = value;\n return value;\n },\n\n get_widthFactor: function () {\n return this._widthFactor;\n },\n\n set_widthFactor: function (value) {\n this._widthFactor = value;\n return value;\n },\n\n getHashCode: function () {\n return _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.getHashCode(this.get_url());\n },\n\n get_url: function () {\n return this.url;\n },\n\n set_url: function (value) {\n this.url = value;\n return value;\n },\n\n get_demUrl: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this.demUrl) && !this._projection && !_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.freestandingMode) {\n return _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__.URLHelpers.singleton.coreStaticUrl('wwtweb/BingDemTile.aspx?Q={0},{1},{2}');\n }\n return this.demUrl;\n },\n\n set_demUrl: function (value) {\n this.demUrl = value;\n return value;\n },\n\n get_extension: function () {\n return this._extension;\n },\n\n set_extension: function (value) {\n this._extension = value;\n return value;\n },\n\n get_levels: function () {\n return this._levels;\n },\n\n set_levels: function (value) {\n this._levels = value;\n return value;\n },\n\n get_bottomsUp: function () {\n return this._bottomsUp;\n },\n\n set_bottomsUp: function (value) {\n this._bottomsUp = value;\n return value;\n },\n\n get_mercator: function () {\n return this._mercator;\n },\n\n set_mercator: function (value) {\n this._mercator = value;\n return value;\n },\n\n get_baseLevel: function () {\n return this._baseLevel;\n },\n\n set_baseLevel: function (value) {\n this._baseLevel = value;\n return value;\n },\n\n get_quadTreeTileMap: function () {\n return this._quadTreeTileMap;\n },\n\n set_quadTreeTileMap: function (value) {\n this._quadTreeTileMap = value;\n return value;\n },\n\n get_centerX: function () {\n return this._centerX;\n },\n\n set_centerX: function (value) {\n if (this._centerX !== value) {\n this._centerX = value;\n this._computeMatrix();\n }\n return value;\n },\n\n get_centerY: function () {\n return this._centerY;\n },\n\n set_centerY: function (value) {\n if (this._centerY !== value) {\n this._centerY = value;\n this._computeMatrix();\n }\n return value;\n },\n\n get_rotation: function () {\n return this._rotation;\n },\n\n set_rotation: function (value) {\n if (this._rotation !== value) {\n this._rotation = value;\n this._computeMatrix();\n }\n return value;\n },\n\n get_meanRadius: function () {\n return this._meanRadius;\n },\n\n set_meanRadius: function (value) {\n this._meanRadius = value;\n return value;\n },\n\n get_bandPass: function () {\n return this._bandPass;\n },\n\n set_bandPass: function (value) {\n this._bandPass = value;\n return value;\n },\n\n get_dataSetType: function () {\n return this._dataSetType;\n },\n\n set_dataSetType: function (value) {\n this._dataSetType = value;\n return value;\n },\n\n get_altUrl: function () {\n return this._altUrl;\n },\n\n set_altUrl: function (value) {\n this._altUrl = value;\n return value;\n },\n\n get_singleImage: function () {\n return this._singleImage;\n },\n\n set_singleImage: function (value) {\n this._singleImage = value;\n return value;\n },\n\n get_hipsProperties: function () {\n return this._hipsProperties;\n },\n\n set_hipsProperties: function (value) {\n this._hipsProperties = value;\n return value;\n },\n\n get_fitsProperties: function () {\n return this._fitsProperties;\n },\n\n set_fitsProperties: function (value) {\n this._fitsProperties = value;\n return value;\n },\n\n toString: function () {\n if (this.get_defaultSet()) {\n return this._name + ' *';\n } else {\n return this._name;\n }\n },\n\n get_stockImageSet: function () {\n if (this._generic || !this._defaultSet) {\n return this;\n } else {\n return Imageset.createGeneric(this.get_dataSetType(), this.get_bandPass());\n }\n },\n\n equals: function (obj) {\n if (obj == null) {\n return false;\n }\n if (!(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(obj, Imageset))) {\n return false;\n }\n var b = obj;\n return (_baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.getHashCode(b.get_url()) === _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.getHashCode(this.get_url()) && b.get_dataSetType() === this.get_dataSetType() && b.get_bandPass() === this.get_bandPass() && b.get_generic() === this.get_generic());\n },\n\n get_matrix: function () {\n if (!this._matrixComputed) {\n this._computeMatrix();\n }\n return this._matrix;\n },\n\n set_matrix: function (value) {\n this._matrix = value;\n return value;\n },\n\n _computeMatrix: function () {\n this._matrixComputed = true;\n this._matrix = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.get_identity();\n this._matrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX((this.get_rotation() / 180 * Math.PI)));\n this._matrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationZ((this.get_centerY() / 180 * Math.PI)));\n this._matrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationY(((360 - this.get_centerX()) / 180 * Math.PI)));\n },\n\n get_name: function () {\n return this._name;\n },\n\n set_name: function (value) {\n this._name = value;\n return value;\n },\n\n get_sparse: function () {\n return this._sparse;\n },\n\n set_sparse: function (value) {\n this._sparse = value;\n return value;\n },\n\n get_thumbnailUrl: function () {\n return this._thumbnailUrl;\n },\n\n set_thumbnailUrl: function (value) {\n this._thumbnailUrl = value;\n return value;\n },\n\n get_generic: function () {\n return this._generic;\n },\n\n set_generic: function (value) {\n this._generic = value;\n return value;\n },\n\n get_elevationModel: function () {\n return this._elevationModel;\n },\n\n set_elevationModel: function (value) {\n this._elevationModel = value;\n return value;\n },\n\n get_defaultSet: function () {\n return this._defaultSet;\n },\n\n set_defaultSet: function (value) {\n this._defaultSet = value;\n return value;\n },\n\n get_offsetX: function () {\n return this._offsetX;\n },\n\n set_offsetX: function (value) {\n this._offsetX = value;\n return value;\n },\n\n get_offsetY: function () {\n return this._offsetY;\n },\n\n set_offsetY: function (value) {\n this._offsetY = value;\n return value;\n },\n\n get_creditsText: function () {\n return this._creditsText;\n },\n\n set_creditsText: function (value) {\n this._creditsText = value;\n return value;\n },\n\n get_creditsUrl: function () {\n return this._creditsUrl;\n },\n\n set_creditsUrl: function (value) {\n this._creditsUrl = value;\n return value;\n },\n\n get_isMandelbrot: function () {\n return false;\n },\n\n // Calculate either the X or Y coordinate of the estimated image center.\n //\n // This estimate has some important limitations. First, because images\n // might contain transparent regions, the \"center\" of the image that a\n // user will perceive might have nothing to do with the center of the\n // image bitmap. For instance, imagine that the bitmap is 100x100 but\n // that everything is transparent except for 10x10 pixels in the\n // top-left corner. We don't know anything about the \"barycenter\" of the\n // image here, so we can't account for that.\n //\n // Second, for untiled SkyImage imagesets, to properly compute the\n // bitmap center we need its dimensions, which simply aren't available\n // here. All we can do is guess a \"reasonable\" image size.\n //\n // For these reasons, this method should be avoided when possible. The\n // preferred way to \"know\" the location of an image's center is to wrap\n // the image in a Place object, which can just specify the exact\n // coordinates and zoom level too.\n //\n // Even disregarding the above, it's non-trivial to locate the image\n // center because of the OffsetX/Y parameters and potential rotation of\n // the image's coordinate system relative to the sky.\n _calcViewCenterCoordinate: function (isX) {\n var rot = _coordinates_js__WEBPACK_IMPORTED_MODULE_7__.Coordinates.degreesToRadians(this._rotation);\n var crot = Math.cos(rot);\n var srot = Math.sin(rot);\n var dx = 0, dy = 0;\n if (this.get_levels() > 0) {\n dx = -this._offsetX;\n dy = this._offsetY;\n } else {\n // This is the part where we need the image's dimensions to\n // be able to compute the center coordinate correctly. Since\n // we don't have that information, we just guess :-(\n var effWidth = 800;\n var effHeight = 800;\n dx = (this._offsetX - effWidth / 2) * this._baseTileDegrees;\n dy = (effHeight / 2 - this._offsetY) * this._baseTileDegrees;\n }\n if (this._bottomsUp) {\n dx = -dx;\n }\n if (isX) {\n return this._centerX + dx * crot + dy * srot;\n } else {\n return this._centerY - dx * srot + dy * crot;\n }\n },\n\n get_viewCenterX: function () {\n if (this.get_wcsImage() != null) {\n return (this.get_wcsImage()).get_viewCenterX();\n } else {\n return this._calcViewCenterCoordinate(true);\n }\n },\n\n get_viewCenterY: function () {\n if (this.get_wcsImage() != null) {\n return (this.get_wcsImage()).get_viewCenterY();\n } else {\n return this._calcViewCenterCoordinate(false);\n }\n },\n\n setInitialParameters: function (name, url, dataSetType, bandPass, projection, imageSetID, baseLevel, levels, baseTileDegrees, extension, bottomsUp, quadTreeMap, centerX, centerY, rotation, sparse, thumbnailUrl, defaultSet, elevationModel, wf, offsetX, offsetY, credits, creditsUrl, demUrlIn, alturl, meanRadius, referenceFrame) {\n this.set_referenceFrame(referenceFrame);\n this.set_meanRadius(meanRadius);\n this._altUrl = alturl;\n this.demUrl = demUrlIn;\n this._creditsText = credits;\n this._creditsUrl = creditsUrl;\n this._offsetY = offsetY;\n this._offsetX = offsetX;\n this._widthFactor = wf;\n this._elevationModel = elevationModel;\n this._defaultSet = defaultSet;\n this._name = name;\n this._sparse = sparse;\n this._dataSetType = dataSetType;\n this._bandPass = bandPass;\n this._quadTreeTileMap = quadTreeMap;\n this.url = url;\n this._levels = levels;\n this._baseTileDegrees = baseTileDegrees;\n this._imageSetID = imageSetID;\n this._extension = extension;\n this._projection = projection;\n this._bottomsUp = bottomsUp;\n this._baseLevel = baseLevel;\n this._mercator = (!projection);\n this._centerX = centerX;\n this._centerY = centerY;\n this._rotation = rotation;\n this._thumbnailUrl = thumbnailUrl;\n this._computeMatrix();\n },\n\n // Ideally, imagesets will be associated with Places that specify\n // exactly how the view should be set up when \"going to\" them, but\n // sometimes (especially research datasets) we're interested in deriving\n // a reasonable zoom setting without that extra information. The returned value\n // isn't going to be perfect but it should hopefully be OK.\n _guessZoomSetting: function (currentZoom) {\n const FOV_FACTOR = 1.7;\n var zoom = currentZoom;\n var aswcs = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(this._wcsImage, _layers_fits_image_js__WEBPACK_IMPORTED_MODULE_9__.FitsImage);\n if (this.get_projection() === ProjectionType.skyImage) {\n // Untiled SkyImage: basetiledegrees is degrees per pixel\n if (aswcs != null) {\n zoom = this.get_baseTileDegrees() * aswcs.get_sizeY() * 6 * FOV_FACTOR;\n }\n } else if (aswcs != null) {\n zoom = aswcs.get_scaleY() * aswcs.get_sizeY() * 6 * FOV_FACTOR;\n } else {\n // Tiled. basetiledegrees is angular height of whole image after\n // power-of-2 padding.\n zoom = this.get_baseTileDegrees() * 6 * FOV_FACTOR;\n }\n\n // Only zoom in, not out. Usability-wise this tends to make the most\n // sense.\n if (zoom > currentZoom) {\n zoom = currentZoom;\n }\n return zoom;\n },\n\n // URL parameters\n //{0} ImageSetID\n //{1} level\n //{2} x tile id\n //{3} y tile id\n //{4} quadtree address (VE style)\n //{5} quadtree address (Google maps style)\n //{6} top left corner RA\n //{7} top left corner Dec\n //{8} bottom right corner RA\n //{9} bottom right corner dec\n //{10} bottom left corner RA\n //{11} bottom left corner dec\n //{12} top right corner RA\n //{13} top right corner dec\n\n get_thumbnail: function () {\n return this._thumbnail;\n },\n\n set_thumbnail: function (value) {\n this._thumbnail = value;\n return value;\n },\n\n get_bounds: function () {\n return this._bounds;\n },\n\n set_bounds: function (value) {\n this._bounds = value;\n return value;\n },\n\n get_isImage: function () {\n return true;\n },\n\n get_isTour: function () {\n return false;\n },\n\n get_isFolder: function () {\n return false;\n },\n\n get_isCloudCommunityItem: function () {\n return false;\n },\n\n get_readOnly: function () {\n return false;\n },\n\n get_children: function () {\n return [];\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Imageset\", [Imageset, Imageset$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_5__.IThumbnail]);\n\n\n/***/ }),\n\n/***/ \"./esm/interfaces.js\":\n/*!***************************!*\\\n !*** ./esm/interfaces.js ***!\n \\***************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ IFolder: () => (/* binding */ IFolder),\n/* harmony export */ IPlace: () => (/* binding */ IPlace),\n/* harmony export */ ISettings: () => (/* binding */ ISettings),\n/* harmony export */ IThumbnail: () => (/* binding */ IThumbnail),\n/* harmony export */ IUIServicesCallbacks: () => (/* binding */ IUIServicesCallbacks),\n/* harmony export */ IUiController: () => (/* binding */ IUiController),\n/* harmony export */ IUndoStep: () => (/* binding */ IUndoStep),\n/* harmony export */ IViewMover: () => (/* binding */ IViewMover)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// \"Classes\" corresponding to C# interfaces\n//\n// In our current JS translation, these classes don't declare anything\n// themselves. They can in principle be used in `canCast()` calls for dynamic\n// type checking, but it appears that we don't use this functionality in the\n// current codebase.\n//\n// If/when we translate to TypeScript, these could become TypeScript interfaces\n// that are more useful.\n//\n// Files in this module used to be in\n// `I{Folder,IThumbnail,Place,UIController,ViewMover,Tours/ISettings}.cs`. Note\n// that the source file was indeed (incorrectly) named `IIThumbnail.cs`.\n\n\n\n\n// wwtlib.IFolder\n\nfunction IFolder() { }\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"IFolder\", [IFolder]);\n\n\n// wwtlib.IThumbnail\n\nfunction IThumbnail() { }\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"IThumbnail\", [IThumbnail]);\n\n\n// wwtlib.IPlace\n\nfunction IPlace() { }\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"IPlace\", [IPlace]);\n\n\n// wwtlib.IUiController\n\nfunction IUiController() { }\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"IUiController\", [IUiController]);\n\n\n// wwtlib.IViewMover\n\nfunction IViewMover() { }\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"IViewMover\", [IViewMover]);\n\n\n// wwtlib.IUIServicesCallbacks\n\nfunction IUIServicesCallbacks() { }\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"IUIServicesCallbacks\", [IUIServicesCallbacks]);\n\n\n// wwtlib.ISettings\n\nfunction ISettings() { }\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ISettings\", [ISettings]);\n\n\n// wwtlib.IUndoStep\n\nfunction IUndoStep() { }\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"IUndoStep\", [IUndoStep]);\n\n\n/***/ }),\n\n/***/ \"./esm/kepler_vertex.js\":\n/*!******************************!*\\\n !*** ./esm/kepler_vertex.js ***!\n \\******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ KeplerVertex: () => (/* binding */ KeplerVertex)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Kepler Vertex.\n\n\n\n\n\n\n// wwtlib.KeplerVertex\n\nfunction KeplerVertex() {\n this.ABC = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d();\n this.abc1 = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d();\n this.pointSize = 0;\n this.w = 0;\n this.e = 0;\n this.n = 0;\n this.t = 0;\n this.a = 0;\n this.z = 0;\n this.orbitPos = 0;\n this.orbits = 0;\n}\n\nKeplerVertex._sine = 0;\nKeplerVertex._cose = 1;\nKeplerVertex._degrad = Math.PI / 180;\n\nvar KeplerVertex$ = {\n fill: function (ee) {\n var F = Math.cos(ee.omega * KeplerVertex._degrad);\n var sinOmega = Math.sin(ee.omega * KeplerVertex._degrad);\n var cosi = Math.cos(ee.i * KeplerVertex._degrad);\n var sini = Math.sin(ee.i * KeplerVertex._degrad);\n var G = sinOmega * KeplerVertex._cose;\n var H = sinOmega * KeplerVertex._sine;\n var P = -sinOmega * cosi;\n var Q = (F * cosi * KeplerVertex._cose) - (sini * KeplerVertex._sine);\n var R = (F * cosi * KeplerVertex._sine) + (sini * KeplerVertex._cose);\n var checkA = (F * F) + (G * G) + (H * H); // Should be 1.0\n var checkB = (P * P) + (Q * Q) + (R * R); // Should be 1.0 as well\n this.ABC.x = Math.atan2(F, P);\n this.ABC.y = Math.atan2(G, Q);\n this.ABC.z = Math.atan2(H, R);\n this.abc1.x = Math.sqrt((F * F) + (P * P));\n this.abc1.y = Math.sqrt((G * G) + (Q * Q));\n this.abc1.z = Math.sqrt((H * H) + (R * R));\n this.pointSize = 0.1;\n if (ee.a < 2.5) {\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white();\n } else if (ee.a < 2.83) {\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_red();\n } else if (ee.a < 2.96) {\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_green();\n } else if (ee.a < 3.3) {\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_magenta();\n } else if (ee.a < 5) {\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_cyan();\n } else if (ee.a < 10) {\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_yellow();\n this.pointSize = 0.9;\n } else {\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white();\n this.pointSize = 8;\n }\n this.w = ee.w;\n this.e = ee.e;\n if (!ee.n) {\n this.n = (0.9856076686 / (ee.a * Math.sqrt(ee.a)));\n } else {\n this.n = ee.n;\n }\n this.t = (ee.t - KeplerVertex.baseDate);\n this.a = ee.a;\n this.z = 0;\n this.orbitPos = 0;\n this.orbits = 0;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"KeplerVertex\", [KeplerVertex, KeplerVertex$, null]);\n\n// KeplerVertex.baseDate is initialized at the bottom of the main module.\n\n\n/***/ }),\n\n/***/ \"./esm/layers/color_map_container.js\":\n/*!*******************************************!*\\\n !*** ./esm/layers/color_map_container.js ***!\n \\*******************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ColorMapContainer: () => (/* binding */ ColorMapContainer)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A collection of named colormaps.\n\n\n\n\n\n\n\n// wwtlib.ColorMapContainer\n//\n// This class is intended to be used to store colormaps. It does not handle any\n// interpolation and when using FindClosestColor it will simply check which\n// color is closest to the requested value. Therefore, continuous colormaps should\n// be created by providing a sufficient number of colors (ideally 256 or more).\n\nfunction ColorMapContainer() {\n this.colors = [];\n}\n\nColorMapContainer.colorTextures = {};\n\n// Class method to create a new colormap from a list of [a, r, g, b] lists.\nColorMapContainer.fromArgbList = function (color_list) {\n var temp = new ColorMapContainer();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(color_list);\n while ($enum1.moveNext()) {\n var color = $enum1.current;\n temp.colors.push(_color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(color[0], color[1], color[2], color[3]));\n }\n return temp;\n};\n\n// Class method to create a new colormap from a list of strings.\nColorMapContainer.fromStringList = function (color_list) {\n var temp = new ColorMapContainer();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(color_list);\n while ($enum1.moveNext()) {\n var color = $enum1.current;\n temp.colors.push(_color_js__WEBPACK_IMPORTED_MODULE_2__.Color.load(color));\n }\n return temp;\n};\n\n// Names are chosen to match matplotlib (which explains why some are\n// less-than-ideal).\nColorMapContainer.fromNamedColormap = function (name) {\n if (name == null) {\n return null;\n }\n switch (name.toLowerCase()) {\n case 'viridis':\n return ColorMapContainer.viridis;\n case 'plasma':\n return ColorMapContainer.plasma;\n case 'inferno':\n return ColorMapContainer.inferno;\n case 'magma':\n return ColorMapContainer.magma;\n case 'cividis':\n return ColorMapContainer.cividis;\n case 'greys': // this is 0=>white, 1=>black\n return ColorMapContainer.greys;\n case 'gray': // this is 0=>black, 1=>white\n return ColorMapContainer.gray;\n case 'purples':\n return ColorMapContainer.purples;\n case 'blues':\n return ColorMapContainer.blues;\n case 'greens':\n return ColorMapContainer.greens;\n case 'oranges':\n return ColorMapContainer.oranges;\n case 'reds':\n return ColorMapContainer.reds;\n case 'rdylbu':\n return ColorMapContainer.rdYlBu;\n }\n return null;\n};\n\nColorMapContainer._getTextureFromName = function (gl, name) {\n var texture = ColorMapContainer.colorTextures[name];\n if (texture == null) {\n var colorMapContainer = ColorMapContainer.fromNamedColormap(name);\n if (colorMapContainer != null) {\n texture = ColorMapContainer._initColorTexture(gl, colorMapContainer);\n ColorMapContainer.colorTextures[name.toLowerCase()] = texture;\n }\n }\n return texture;\n};\n\nColorMapContainer.bindColorMapTexture = function (gl, colorMapName) {\n var texture = ColorMapContainer._getTextureFromName(gl, colorMapName);\n if (texture == null) {\n texture = ColorMapContainer._getTextureFromName(gl, 'gray');\n }\n gl.activeTexture(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE1);\n gl.bindTexture(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE_2D, texture);\n};\n\nColorMapContainer._initColorTexture = function (gl, colorMapContainer) {\n var colorTexture = gl.createTexture();\n gl.activeTexture(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE1);\n gl.bindTexture(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE_2D, colorTexture);\n gl.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE_WRAP_S, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.CLAMP_TO_EDGE);\n gl.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE_WRAP_T, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.CLAMP_TO_EDGE);\n var colorBuffer = ColorMapContainer._extractColorArray(colorMapContainer.colors);\n gl.texImage2D(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE_2D, 0, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.RGB8, colorBuffer.length / 3, 1, 0, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.RGB, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.UNSIGNED_BYTE, colorBuffer);\n gl.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE_MIN_FILTER, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.NEAREST);\n gl.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TEXTURE_MAG_FILTER, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.NEAREST);\n return colorTexture;\n};\n\nColorMapContainer._extractColorArray = function (colors) {\n var index = 0;\n var colorBuffer = new Uint8Array(colors.length * 3);\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(colors);\n while ($enum1.moveNext()) {\n var color = $enum1.current;\n colorBuffer[index++] = color.r;\n colorBuffer[index++] = color.g;\n colorBuffer[index++] = color.b;\n }\n return colorBuffer;\n};\n\nvar ColorMapContainer$ = {\n // Given a floating-point value in the range 0 to 1, find the color that is\n // the closest to it.\n findClosestColor: function (value) {\n var index;\n if (value <= 0) {\n return this.colors[0];\n } else if (value >= 1) {\n return this.colors[this.colors.length - 1];\n } else {\n index = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((value * this.colors.length));\n return this.colors[index];\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ColorMapContainer\", [ColorMapContainer, ColorMapContainer$, null]);\n\n// The colormaps below were produced using the following Python code:\n//\n// import numpy as np\n// from matplotlib import cm\n// from matplotlib.colors import to_hex\n// from textwrap import wrap, indent\n//\n// TEMPLATE = \"\"\"\n// public static ColorMapContainer {name} = ColorMapContainer.FromStringList(new List(\n// {colors}\n// ));\n// \"\"\"\n//\n// TEMPLATE_CASE = \"\"\"\n// case \"{name_lower}\":\n// return {name};\"\"\"\n// COLORMAPS = [\"viridis\", \"plasma\", \"inferno\", \"magma\", \"cividis\",\n// \"Greys\", \"gray\", \"Purples\", \"Blues\", \"Greens\", \"Oranges\", \"Reds\", \"RdYlBu\"]\n//\n// named_code = \"\"\n// case_code = \"\"\n//\n// for name in COLORMAPS:\n// cmap = cm.get_cmap(name)\n// x = np.linspace(0.5 / 256, 255.5/256, 256)\n// colors = \", \".join(['\"{0}\"'.format(to_hex(c)) for c in cmap(x)])\n// pretty_name = name[0].upper() + name[1:]\n// named_code += TEMPLATE.format(name=pretty_name, colors=indent('\\n'.join(wrap(colors, 90)), \" \" * 10))\n// case_code += TEMPLATE_CASE.format(name=pretty_name, name_lower=name.lower())\n//\n// named_code = indent(named_code, \" \" * 8)\n//\n// print(named_code)\n// print('-' * 72)\n// print(case_code)\n\nColorMapContainer.viridis = ColorMapContainer.fromStringList([\n '#440154', '#440256', '#450457', '#450559', '#46075a', '#46085c', '#460a5d', '#460b5e',\n '#470d60', '#470e61', '#471063', '#471164', '#471365', '#481467', '#481668', '#481769',\n '#48186a', '#481a6c', '#481b6d', '#481c6e', '#481d6f', '#481f70', '#482071', '#482173',\n '#482374', '#482475', '#482576', '#482677', '#482878', '#482979', '#472a7a', '#472c7a',\n '#472d7b', '#472e7c', '#472f7d', '#46307e', '#46327e', '#46337f', '#463480', '#453581',\n '#453781', '#453882', '#443983', '#443a83', '#443b84', '#433d84', '#433e85', '#423f85',\n '#424086', '#424186', '#414287', '#414487', '#404588', '#404688', '#3f4788', '#3f4889',\n '#3e4989', '#3e4a89', '#3e4c8a', '#3d4d8a', '#3d4e8a', '#3c4f8a', '#3c508b', '#3b518b',\n '#3b528b', '#3a538b', '#3a548c', '#39558c', '#39568c', '#38588c', '#38598c', '#375a8c',\n '#375b8d', '#365c8d', '#365d8d', '#355e8d', '#355f8d', '#34608d', '#34618d', '#33628d',\n '#33638d', '#32648e', '#32658e', '#31668e', '#31678e', '#31688e', '#30698e', '#306a8e',\n '#2f6b8e', '#2f6c8e', '#2e6d8e', '#2e6e8e', '#2e6f8e', '#2d708e', '#2d718e', '#2c718e',\n '#2c728e', '#2c738e', '#2b748e', '#2b758e', '#2a768e', '#2a778e', '#2a788e', '#29798e',\n '#297a8e', '#297b8e', '#287c8e', '#287d8e', '#277e8e', '#277f8e', '#27808e', '#26818e',\n '#26828e', '#26828e', '#25838e', '#25848e', '#25858e', '#24868e', '#24878e', '#23888e',\n '#23898e', '#238a8d', '#228b8d', '#228c8d', '#228d8d', '#218e8d', '#218f8d', '#21908d',\n '#21918c', '#20928c', '#20928c', '#20938c', '#1f948c', '#1f958b', '#1f968b', '#1f978b',\n '#1f988b', '#1f998a', '#1f9a8a', '#1e9b8a', '#1e9c89', '#1e9d89', '#1f9e89', '#1f9f88',\n '#1fa088', '#1fa188', '#1fa187', '#1fa287', '#20a386', '#20a486', '#21a585', '#21a685',\n '#22a785', '#22a884', '#23a983', '#24aa83', '#25ab82', '#25ac82', '#26ad81', '#27ad81',\n '#28ae80', '#29af7f', '#2ab07f', '#2cb17e', '#2db27d', '#2eb37c', '#2fb47c', '#31b57b',\n '#32b67a', '#34b679', '#35b779', '#37b878', '#38b977', '#3aba76', '#3bbb75', '#3dbc74',\n '#3fbc73', '#40bd72', '#42be71', '#44bf70', '#46c06f', '#48c16e', '#4ac16d', '#4cc26c',\n '#4ec36b', '#50c46a', '#52c569', '#54c568', '#56c667', '#58c765', '#5ac864', '#5cc863',\n '#5ec962', '#60ca60', '#63cb5f', '#65cb5e', '#67cc5c', '#69cd5b', '#6ccd5a', '#6ece58',\n '#70cf57', '#73d056', '#75d054', '#77d153', '#7ad151', '#7cd250', '#7fd34e', '#81d34d',\n '#84d44b', '#86d549', '#89d548', '#8bd646', '#8ed645', '#90d743', '#93d741', '#95d840',\n '#98d83e', '#9bd93c', '#9dd93b', '#a0da39', '#a2da37', '#a5db36', '#a8db34', '#aadc32',\n '#addc30', '#b0dd2f', '#b2dd2d', '#b5de2b', '#b8de29', '#bade28', '#bddf26', '#c0df25',\n '#c2df23', '#c5e021', '#c8e020', '#cae11f', '#cde11d', '#d0e11c', '#d2e21b', '#d5e21a',\n '#d8e219', '#dae319', '#dde318', '#dfe318', '#e2e418', '#e5e419', '#e7e419', '#eae51a',\n '#ece51b', '#efe51c', '#f1e51d', '#f4e61e', '#f6e620', '#f8e621', '#fbe723', '#fde725'\n]);\n\nColorMapContainer.plasma = ColorMapContainer.fromStringList([\n '#0d0887', '#100788', '#130789', '#16078a', '#19068c', '#1b068d', '#1d068e', '#20068f',\n '#220690', '#240691', '#260591', '#280592', '#2a0593', '#2c0594', '#2e0595', '#2f0596',\n '#310597', '#330597', '#350498', '#370499', '#38049a', '#3a049a', '#3c049b', '#3e049c',\n '#3f049c', '#41049d', '#43039e', '#44039e', '#46039f', '#48039f', '#4903a0', '#4b03a1',\n '#4c02a1', '#4e02a2', '#5002a2', '#5102a3', '#5302a3', '#5502a4', '#5601a4', '#5801a4',\n '#5901a5', '#5b01a5', '#5c01a6', '#5e01a6', '#6001a6', '#6100a7', '#6300a7', '#6400a7',\n '#6600a7', '#6700a8', '#6900a8', '#6a00a8', '#6c00a8', '#6e00a8', '#6f00a8', '#7100a8',\n '#7201a8', '#7401a8', '#7501a8', '#7701a8', '#7801a8', '#7a02a8', '#7b02a8', '#7d03a8',\n '#7e03a8', '#8004a8', '#8104a7', '#8305a7', '#8405a7', '#8606a6', '#8707a6', '#8808a6',\n '#8a09a5', '#8b0aa5', '#8d0ba5', '#8e0ca4', '#8f0da4', '#910ea3', '#920fa3', '#9410a2',\n '#9511a1', '#9613a1', '#9814a0', '#99159f', '#9a169f', '#9c179e', '#9d189d', '#9e199d',\n '#a01a9c', '#a11b9b', '#a21d9a', '#a31e9a', '#a51f99', '#a62098', '#a72197', '#a82296',\n '#aa2395', '#ab2494', '#ac2694', '#ad2793', '#ae2892', '#b02991', '#b12a90', '#b22b8f',\n '#b32c8e', '#b42e8d', '#b52f8c', '#b6308b', '#b7318a', '#b83289', '#ba3388', '#bb3488',\n '#bc3587', '#bd3786', '#be3885', '#bf3984', '#c03a83', '#c13b82', '#c23c81', '#c33d80',\n '#c43e7f', '#c5407e', '#c6417d', '#c7427c', '#c8437b', '#c9447a', '#ca457a', '#cb4679',\n '#cc4778', '#cc4977', '#cd4a76', '#ce4b75', '#cf4c74', '#d04d73', '#d14e72', '#d24f71',\n '#d35171', '#d45270', '#d5536f', '#d5546e', '#d6556d', '#d7566c', '#d8576b', '#d9586a',\n '#da5a6a', '#da5b69', '#db5c68', '#dc5d67', '#dd5e66', '#de5f65', '#de6164', '#df6263',\n '#e06363', '#e16462', '#e26561', '#e26660', '#e3685f', '#e4695e', '#e56a5d', '#e56b5d',\n '#e66c5c', '#e76e5b', '#e76f5a', '#e87059', '#e97158', '#e97257', '#ea7457', '#eb7556',\n '#eb7655', '#ec7754', '#ed7953', '#ed7a52', '#ee7b51', '#ef7c51', '#ef7e50', '#f07f4f',\n '#f0804e', '#f1814d', '#f1834c', '#f2844b', '#f3854b', '#f3874a', '#f48849', '#f48948',\n '#f58b47', '#f58c46', '#f68d45', '#f68f44', '#f79044', '#f79143', '#f79342', '#f89441',\n '#f89540', '#f9973f', '#f9983e', '#f99a3e', '#fa9b3d', '#fa9c3c', '#fa9e3b', '#fb9f3a',\n '#fba139', '#fba238', '#fca338', '#fca537', '#fca636', '#fca835', '#fca934', '#fdab33',\n '#fdac33', '#fdae32', '#fdaf31', '#fdb130', '#fdb22f', '#fdb42f', '#fdb52e', '#feb72d',\n '#feb82c', '#feba2c', '#febb2b', '#febd2a', '#febe2a', '#fec029', '#fdc229', '#fdc328',\n '#fdc527', '#fdc627', '#fdc827', '#fdca26', '#fdcb26', '#fccd25', '#fcce25', '#fcd025',\n '#fcd225', '#fbd324', '#fbd524', '#fbd724', '#fad824', '#fada24', '#f9dc24', '#f9dd25',\n '#f8df25', '#f8e125', '#f7e225', '#f7e425', '#f6e626', '#f6e826', '#f5e926', '#f5eb27',\n '#f4ed27', '#f3ee27', '#f3f027', '#f2f227', '#f1f426', '#f1f525', '#f0f724', '#f0f921'\n]);\n\nColorMapContainer.inferno = ColorMapContainer.fromStringList([\n '#000004', '#010005', '#010106', '#010108', '#02010a', '#02020c', '#02020e', '#030210',\n '#040312', '#040314', '#050417', '#060419', '#07051b', '#08051d', '#09061f', '#0a0722',\n '#0b0724', '#0c0826', '#0d0829', '#0e092b', '#10092d', '#110a30', '#120a32', '#140b34',\n '#150b37', '#160b39', '#180c3c', '#190c3e', '#1b0c41', '#1c0c43', '#1e0c45', '#1f0c48',\n '#210c4a', '#230c4c', '#240c4f', '#260c51', '#280b53', '#290b55', '#2b0b57', '#2d0b59',\n '#2f0a5b', '#310a5c', '#320a5e', '#340a5f', '#360961', '#380962', '#390963', '#3b0964',\n '#3d0965', '#3e0966', '#400a67', '#420a68', '#440a68', '#450a69', '#470b6a', '#490b6a',\n '#4a0c6b', '#4c0c6b', '#4d0d6c', '#4f0d6c', '#510e6c', '#520e6d', '#540f6d', '#550f6d',\n '#57106e', '#59106e', '#5a116e', '#5c126e', '#5d126e', '#5f136e', '#61136e', '#62146e',\n '#64156e', '#65156e', '#67166e', '#69166e', '#6a176e', '#6c186e', '#6d186e', '#6f196e',\n '#71196e', '#721a6e', '#741a6e', '#751b6e', '#771c6d', '#781c6d', '#7a1d6d', '#7c1d6d',\n '#7d1e6d', '#7f1e6c', '#801f6c', '#82206c', '#84206b', '#85216b', '#87216b', '#88226a',\n '#8a226a', '#8c2369', '#8d2369', '#8f2469', '#902568', '#922568', '#932667', '#952667',\n '#972766', '#982766', '#9a2865', '#9b2964', '#9d2964', '#9f2a63', '#a02a63', '#a22b62',\n '#a32c61', '#a52c60', '#a62d60', '#a82e5f', '#a92e5e', '#ab2f5e', '#ad305d', '#ae305c',\n '#b0315b', '#b1325a', '#b3325a', '#b43359', '#b63458', '#b73557', '#b93556', '#ba3655',\n '#bc3754', '#bd3853', '#bf3952', '#c03a51', '#c13a50', '#c33b4f', '#c43c4e', '#c63d4d',\n '#c73e4c', '#c83f4b', '#ca404a', '#cb4149', '#cc4248', '#ce4347', '#cf4446', '#d04545',\n '#d24644', '#d34743', '#d44842', '#d54a41', '#d74b3f', '#d84c3e', '#d94d3d', '#da4e3c',\n '#db503b', '#dd513a', '#de5238', '#df5337', '#e05536', '#e15635', '#e25734', '#e35933',\n '#e45a31', '#e55c30', '#e65d2f', '#e75e2e', '#e8602d', '#e9612b', '#ea632a', '#eb6429',\n '#eb6628', '#ec6726', '#ed6925', '#ee6a24', '#ef6c23', '#ef6e21', '#f06f20', '#f1711f',\n '#f1731d', '#f2741c', '#f3761b', '#f37819', '#f47918', '#f57b17', '#f57d15', '#f67e14',\n '#f68013', '#f78212', '#f78410', '#f8850f', '#f8870e', '#f8890c', '#f98b0b', '#f98c0a',\n '#f98e09', '#fa9008', '#fa9207', '#fa9407', '#fb9606', '#fb9706', '#fb9906', '#fb9b06',\n '#fb9d07', '#fc9f07', '#fca108', '#fca309', '#fca50a', '#fca60c', '#fca80d', '#fcaa0f',\n '#fcac11', '#fcae12', '#fcb014', '#fcb216', '#fcb418', '#fbb61a', '#fbb81d', '#fbba1f',\n '#fbbc21', '#fbbe23', '#fac026', '#fac228', '#fac42a', '#fac62d', '#f9c72f', '#f9c932',\n '#f9cb35', '#f8cd37', '#f8cf3a', '#f7d13d', '#f7d340', '#f6d543', '#f6d746', '#f5d949',\n '#f5db4c', '#f4dd4f', '#f4df53', '#f4e156', '#f3e35a', '#f3e55d', '#f2e661', '#f2e865',\n '#f2ea69', '#f1ec6d', '#f1ed71', '#f1ef75', '#f1f179', '#f2f27d', '#f2f482', '#f3f586',\n '#f3f68a', '#f4f88e', '#f5f992', '#f6fa96', '#f8fb9a', '#f9fc9d', '#fafda1', '#fcffa4'\n]);\n\nColorMapContainer.magma = ColorMapContainer.fromStringList([\n '#000004', '#010005', '#010106', '#010108', '#020109', '#02020b', '#02020d', '#03030f',\n '#030312', '#040414', '#050416', '#060518', '#06051a', '#07061c', '#08071e', '#090720',\n '#0a0822', '#0b0924', '#0c0926', '#0d0a29', '#0e0b2b', '#100b2d', '#110c2f', '#120d31',\n '#130d34', '#140e36', '#150e38', '#160f3b', '#180f3d', '#19103f', '#1a1042', '#1c1044',\n '#1d1147', '#1e1149', '#20114b', '#21114e', '#221150', '#241253', '#251255', '#271258',\n '#29115a', '#2a115c', '#2c115f', '#2d1161', '#2f1163', '#311165', '#331067', '#341069',\n '#36106b', '#38106c', '#390f6e', '#3b0f70', '#3d0f71', '#3f0f72', '#400f74', '#420f75',\n '#440f76', '#451077', '#471078', '#491078', '#4a1079', '#4c117a', '#4e117b', '#4f127b',\n '#51127c', '#52137c', '#54137d', '#56147d', '#57157e', '#59157e', '#5a167e', '#5c167f',\n '#5d177f', '#5f187f', '#601880', '#621980', '#641a80', '#651a80', '#671b80', '#681c81',\n '#6a1c81', '#6b1d81', '#6d1d81', '#6e1e81', '#701f81', '#721f81', '#732081', '#752181',\n '#762181', '#782281', '#792282', '#7b2382', '#7c2382', '#7e2482', '#802582', '#812581',\n '#832681', '#842681', '#862781', '#882781', '#892881', '#8b2981', '#8c2981', '#8e2a81',\n '#902a81', '#912b81', '#932b80', '#942c80', '#962c80', '#982d80', '#992d80', '#9b2e7f',\n '#9c2e7f', '#9e2f7f', '#a02f7f', '#a1307e', '#a3307e', '#a5317e', '#a6317d', '#a8327d',\n '#aa337d', '#ab337c', '#ad347c', '#ae347b', '#b0357b', '#b2357b', '#b3367a', '#b5367a',\n '#b73779', '#b83779', '#ba3878', '#bc3978', '#bd3977', '#bf3a77', '#c03a76', '#c23b75',\n '#c43c75', '#c53c74', '#c73d73', '#c83e73', '#ca3e72', '#cc3f71', '#cd4071', '#cf4070',\n '#d0416f', '#d2426f', '#d3436e', '#d5446d', '#d6456c', '#d8456c', '#d9466b', '#db476a',\n '#dc4869', '#de4968', '#df4a68', '#e04c67', '#e24d66', '#e34e65', '#e44f64', '#e55064',\n '#e75263', '#e85362', '#e95462', '#ea5661', '#eb5760', '#ec5860', '#ed5a5f', '#ee5b5e',\n '#ef5d5e', '#f05f5e', '#f1605d', '#f2625d', '#f2645c', '#f3655c', '#f4675c', '#f4695c',\n '#f56b5c', '#f66c5c', '#f66e5c', '#f7705c', '#f7725c', '#f8745c', '#f8765c', '#f9785d',\n '#f9795d', '#f97b5d', '#fa7d5e', '#fa7f5e', '#fa815f', '#fb835f', '#fb8560', '#fb8761',\n '#fc8961', '#fc8a62', '#fc8c63', '#fc8e64', '#fc9065', '#fd9266', '#fd9467', '#fd9668',\n '#fd9869', '#fd9a6a', '#fd9b6b', '#fe9d6c', '#fe9f6d', '#fea16e', '#fea36f', '#fea571',\n '#fea772', '#fea973', '#feaa74', '#feac76', '#feae77', '#feb078', '#feb27a', '#feb47b',\n '#feb67c', '#feb77e', '#feb97f', '#febb81', '#febd82', '#febf84', '#fec185', '#fec287',\n '#fec488', '#fec68a', '#fec88c', '#feca8d', '#fecc8f', '#fecd90', '#fecf92', '#fed194',\n '#fed395', '#fed597', '#fed799', '#fed89a', '#fdda9c', '#fddc9e', '#fddea0', '#fde0a1',\n '#fde2a3', '#fde3a5', '#fde5a7', '#fde7a9', '#fde9aa', '#fdebac', '#fcecae', '#fceeb0',\n '#fcf0b2', '#fcf2b4', '#fcf4b6', '#fcf6b8', '#fcf7b9', '#fcf9bb', '#fcfbbd', '#fcfdbf'\n]);\n\nColorMapContainer.cividis = ColorMapContainer.fromStringList([\n '#00224e', '#00234f', '#002451', '#002553', '#002554', '#002656', '#002758', '#002859',\n '#00285b', '#00295d', '#002a5f', '#002a61', '#002b62', '#002c64', '#002c66', '#002d68',\n '#002e6a', '#002e6c', '#002f6d', '#00306f', '#003070', '#003170', '#003171', '#013271',\n '#053371', '#083370', '#0c3470', '#0f3570', '#123570', '#143670', '#163770', '#18376f',\n '#1a386f', '#1c396f', '#1e3a6f', '#203a6f', '#213b6e', '#233c6e', '#243c6e', '#263d6e',\n '#273e6e', '#293f6e', '#2a3f6d', '#2b406d', '#2d416d', '#2e416d', '#2f426d', '#31436d',\n '#32436d', '#33446d', '#34456c', '#35456c', '#36466c', '#38476c', '#39486c', '#3a486c',\n '#3b496c', '#3c4a6c', '#3d4a6c', '#3e4b6c', '#3f4c6c', '#404c6c', '#414d6c', '#424e6c',\n '#434e6c', '#444f6c', '#45506c', '#46516c', '#47516c', '#48526c', '#49536c', '#4a536c',\n '#4b546c', '#4c556c', '#4d556c', '#4e566c', '#4f576c', '#50576c', '#51586d', '#52596d',\n '#535a6d', '#545a6d', '#555b6d', '#555c6d', '#565c6d', '#575d6d', '#585e6d', '#595e6e',\n '#5a5f6e', '#5b606e', '#5c616e', '#5d616e', '#5e626e', '#5e636f', '#5f636f', '#60646f',\n '#61656f', '#62656f', '#636670', '#646770', '#656870', '#656870', '#666970', '#676a71',\n '#686a71', '#696b71', '#6a6c71', '#6b6d72', '#6c6d72', '#6c6e72', '#6d6f72', '#6e6f73',\n '#6f7073', '#707173', '#717274', '#727274', '#727374', '#737475', '#747475', '#757575',\n '#767676', '#777776', '#777777', '#787877', '#797977', '#7a7a78', '#7b7a78', '#7c7b78',\n '#7d7c78', '#7e7c78', '#7e7d78', '#7f7e78', '#807f78', '#817f78', '#828079', '#838179',\n '#848279', '#858279', '#868379', '#878478', '#888578', '#898578', '#8a8678', '#8b8778',\n '#8c8878', '#8d8878', '#8e8978', '#8f8a78', '#908b78', '#918b78', '#928c78', '#928d78',\n '#938e78', '#948e77', '#958f77', '#969077', '#979177', '#989277', '#999277', '#9a9376',\n '#9b9476', '#9c9576', '#9d9576', '#9e9676', '#9f9775', '#a09875', '#a19975', '#a29975',\n '#a39a74', '#a49b74', '#a59c74', '#a69c74', '#a79d73', '#a89e73', '#a99f73', '#aaa073',\n '#aba072', '#aca172', '#ada272', '#aea371', '#afa471', '#b0a571', '#b1a570', '#b3a670',\n '#b4a76f', '#b5a86f', '#b6a96f', '#b7a96e', '#b8aa6e', '#b9ab6d', '#baac6d', '#bbad6d',\n '#bcae6c', '#bdae6c', '#beaf6b', '#bfb06b', '#c0b16a', '#c1b26a', '#c2b369', '#c3b369',\n '#c4b468', '#c5b568', '#c6b667', '#c7b767', '#c8b866', '#c9b965', '#cbb965', '#ccba64',\n '#cdbb63', '#cebc63', '#cfbd62', '#d0be62', '#d1bf61', '#d2c060', '#d3c05f', '#d4c15f',\n '#d5c25e', '#d6c35d', '#d7c45c', '#d9c55c', '#dac65b', '#dbc75a', '#dcc859', '#ddc858',\n '#dec958', '#dfca57', '#e0cb56', '#e1cc55', '#e2cd54', '#e4ce53', '#e5cf52', '#e6d051',\n '#e7d150', '#e8d24f', '#e9d34e', '#ead34c', '#ebd44b', '#edd54a', '#eed649', '#efd748',\n '#f0d846', '#f1d945', '#f2da44', '#f3db42', '#f5dc41', '#f6dd3f', '#f7de3e', '#f8df3c',\n '#f9e03a', '#fbe138', '#fce236', '#fde334', '#fee434', '#fee535', '#fee636', '#fee838'\n]);\n\nColorMapContainer.greys = ColorMapContainer.fromStringList([\n '#ffffff', '#ffffff', '#fefefe', '#fefefe', '#fdfdfd', '#fdfdfd', '#fcfcfc', '#fcfcfc',\n '#fbfbfb', '#fbfbfb', '#fafafa', '#fafafa', '#f9f9f9', '#f9f9f9', '#f8f8f8', '#f8f8f8',\n '#f7f7f7', '#f7f7f7', '#f7f7f7', '#f6f6f6', '#f6f6f6', '#f5f5f5', '#f5f5f5', '#f4f4f4',\n '#f4f4f4', '#f3f3f3', '#f3f3f3', '#f2f2f2', '#f2f2f2', '#f1f1f1', '#f1f1f1', '#f0f0f0',\n '#f0f0f0', '#efefef', '#eeeeee', '#eeeeee', '#ededed', '#ececec', '#ececec', '#ebebeb',\n '#eaeaea', '#e9e9e9', '#e9e9e9', '#e8e8e8', '#e7e7e7', '#e7e7e7', '#e6e6e6', '#e5e5e5',\n '#e4e4e4', '#e4e4e4', '#e3e3e3', '#e2e2e2', '#e1e1e1', '#e1e1e1', '#e0e0e0', '#dfdfdf',\n '#dfdfdf', '#dedede', '#dddddd', '#dcdcdc', '#dcdcdc', '#dbdbdb', '#dadada', '#dadada',\n '#d9d9d9', '#d8d8d8', '#d7d7d7', '#d6d6d6', '#d5d5d5', '#d4d4d4', '#d4d4d4', '#d3d3d3',\n '#d2d2d2', '#d1d1d1', '#d0d0d0', '#cfcfcf', '#cecece', '#cdcdcd', '#cccccc', '#cccccc',\n '#cbcbcb', '#cacaca', '#c9c9c9', '#c8c8c8', '#c7c7c7', '#c6c6c6', '#c5c5c5', '#c5c5c5',\n '#c4c4c4', '#c3c3c3', '#c2c2c2', '#c1c1c1', '#c0c0c0', '#bfbfbf', '#bebebe', '#bebebe',\n '#bdbdbd', '#bbbbbb', '#bababa', '#b9b9b9', '#b8b8b8', '#b6b6b6', '#b5b5b5', '#b4b4b4',\n '#b3b3b3', '#b2b2b2', '#b0b0b0', '#afafaf', '#aeaeae', '#adadad', '#ababab', '#aaaaaa',\n '#a9a9a9', '#a8a8a8', '#a7a7a7', '#a5a5a5', '#a4a4a4', '#a3a3a3', '#a2a2a2', '#a0a0a0',\n '#9f9f9f', '#9e9e9e', '#9d9d9d', '#9c9c9c', '#9a9a9a', '#999999', '#989898', '#979797',\n '#959595', '#949494', '#939393', '#929292', '#919191', '#909090', '#8f8f8f', '#8e8e8e',\n '#8d8d8d', '#8c8c8c', '#8a8a8a', '#898989', '#888888', '#878787', '#868686', '#858585',\n '#848484', '#838383', '#828282', '#818181', '#7f7f7f', '#7e7e7e', '#7d7d7d', '#7c7c7c',\n '#7b7b7b', '#7a7a7a', '#797979', '#787878', '#777777', '#767676', '#757575', '#737373',\n '#727272', '#717171', '#707070', '#6f6f6f', '#6e6e6e', '#6d6d6d', '#6c6c6c', '#6b6b6b',\n '#6a6a6a', '#696969', '#686868', '#676767', '#666666', '#656565', '#646464', '#636363',\n '#626262', '#616161', '#606060', '#5f5f5f', '#5e5e5e', '#5d5d5d', '#5c5c5c', '#5b5b5b',\n '#5a5a5a', '#585858', '#575757', '#565656', '#555555', '#545454', '#535353', '#525252',\n '#515151', '#505050', '#4e4e4e', '#4d4d4d', '#4b4b4b', '#4a4a4a', '#484848', '#474747',\n '#464646', '#444444', '#434343', '#414141', '#404040', '#3f3f3f', '#3d3d3d', '#3c3c3c',\n '#3a3a3a', '#393939', '#383838', '#363636', '#353535', '#333333', '#323232', '#303030',\n '#2f2f2f', '#2e2e2e', '#2c2c2c', '#2b2b2b', '#292929', '#282828', '#272727', '#252525',\n '#242424', '#232323', '#222222', '#212121', '#1f1f1f', '#1e1e1e', '#1d1d1d', '#1c1c1c',\n '#1b1b1b', '#1a1a1a', '#181818', '#171717', '#161616', '#151515', '#141414', '#131313',\n '#111111', '#101010', '#0f0f0f', '#0e0e0e', '#0d0d0d', '#0c0c0c', '#0a0a0a', '#090909',\n '#080808', '#070707', '#060606', '#050505', '#030303', '#020202', '#010101', '#000000'\n]);\n\nColorMapContainer.gray = ColorMapContainer.fromStringList([\n '#000000', '#010101', '#020202', '#030303', '#040404', '#050505', '#060606', '#070707',\n '#080808', '#090909', '#0a0a0a', '#0b0b0b', '#0c0c0c', '#0d0d0d', '#0e0e0e', '#0f0f0f',\n '#101010', '#111111', '#121212', '#131313', '#141414', '#151515', '#161616', '#171717',\n '#181818', '#191919', '#1a1a1a', '#1b1b1b', '#1c1c1c', '#1d1d1d', '#1e1e1e', '#1f1f1f',\n '#202020', '#212121', '#222222', '#232323', '#242424', '#252525', '#262626', '#272727',\n '#282828', '#292929', '#2a2a2a', '#2b2b2b', '#2c2c2c', '#2d2d2d', '#2e2e2e', '#2f2f2f',\n '#303030', '#313131', '#323232', '#333333', '#343434', '#353535', '#363636', '#373737',\n '#383838', '#393939', '#3a3a3a', '#3b3b3b', '#3c3c3c', '#3d3d3d', '#3e3e3e', '#3f3f3f',\n '#404040', '#414141', '#424242', '#434343', '#444444', '#454545', '#464646', '#474747',\n '#484848', '#494949', '#4a4a4a', '#4b4b4b', '#4c4c4c', '#4d4d4d', '#4e4e4e', '#4f4f4f',\n '#505050', '#515151', '#525252', '#535353', '#545454', '#555555', '#565656', '#575757',\n '#585858', '#595959', '#5a5a5a', '#5b5b5b', '#5c5c5c', '#5d5d5d', '#5e5e5e', '#5f5f5f',\n '#606060', '#616161', '#626262', '#636363', '#646464', '#656565', '#666666', '#676767',\n '#686868', '#696969', '#6a6a6a', '#6b6b6b', '#6c6c6c', '#6d6d6d', '#6e6e6e', '#6f6f6f',\n '#707070', '#717171', '#727272', '#737373', '#747474', '#757575', '#767676', '#777777',\n '#787878', '#797979', '#7a7a7a', '#7b7b7b', '#7c7c7c', '#7d7d7d', '#7e7e7e', '#7f7f7f',\n '#808080', '#818181', '#828282', '#838383', '#848484', '#858585', '#868686', '#878787',\n '#888888', '#898989', '#8a8a8a', '#8b8b8b', '#8c8c8c', '#8d8d8d', '#8e8e8e', '#8f8f8f',\n '#909090', '#919191', '#929292', '#939393', '#949494', '#959595', '#969696', '#979797',\n '#989898', '#999999', '#9a9a9a', '#9b9b9b', '#9c9c9c', '#9d9d9d', '#9e9e9e', '#9f9f9f',\n '#a0a0a0', '#a1a1a1', '#a2a2a2', '#a3a3a3', '#a4a4a4', '#a5a5a5', '#a6a6a6', '#a7a7a7',\n '#a8a8a8', '#a9a9a9', '#aaaaaa', '#ababab', '#acacac', '#adadad', '#aeaeae', '#afafaf',\n '#b0b0b0', '#b1b1b1', '#b2b2b2', '#b3b3b3', '#b4b4b4', '#b5b5b5', '#b6b6b6', '#b7b7b7',\n '#b8b8b8', '#b9b9b9', '#bababa', '#bbbbbb', '#bcbcbc', '#bdbdbd', '#bebebe', '#bfbfbf',\n '#c0c0c0', '#c1c1c1', '#c2c2c2', '#c3c3c3', '#c4c4c4', '#c5c5c5', '#c6c6c6', '#c7c7c7',\n '#c8c8c8', '#c9c9c9', '#cacaca', '#cbcbcb', '#cccccc', '#cdcdcd', '#cecece', '#cfcfcf',\n '#d0d0d0', '#d1d1d1', '#d2d2d2', '#d3d3d3', '#d4d4d4', '#d5d5d5', '#d6d6d6', '#d7d7d7',\n '#d8d8d8', '#d9d9d9', '#dadada', '#dbdbdb', '#dcdcdc', '#dddddd', '#dedede', '#dfdfdf',\n '#e0e0e0', '#e1e1e1', '#e2e2e2', '#e3e3e3', '#e4e4e4', '#e5e5e5', '#e6e6e6', '#e7e7e7',\n '#e8e8e8', '#e9e9e9', '#eaeaea', '#ebebeb', '#ececec', '#ededed', '#eeeeee', '#efefef',\n '#f0f0f0', '#f1f1f1', '#f2f2f2', '#f3f3f3', '#f4f4f4', '#f5f5f5', '#f6f6f6', '#f7f7f7',\n '#f8f8f8', '#f9f9f9', '#fafafa', '#fbfbfb', '#fcfcfc', '#fdfdfd', '#fefefe', '#ffffff'\n]);\n\nColorMapContainer.purples = ColorMapContainer.fromStringList([\n '#fcfbfd', '#fcfbfd', '#fbfafc', '#fbfafc', '#faf9fc', '#faf9fc', '#faf8fb', '#f9f8fb',\n '#f9f7fb', '#f8f7fb', '#f8f7fa', '#f8f6fa', '#f7f6fa', '#f7f5fa', '#f6f5f9', '#f6f4f9',\n '#f5f4f9', '#f5f4f9', '#f5f3f8', '#f4f3f8', '#f4f2f8', '#f3f2f8', '#f3f1f7', '#f3f1f7',\n '#f2f0f7', '#f2f0f7', '#f1f0f6', '#f1eff6', '#f1eff6', '#f0eef6', '#f0eef5', '#efedf5',\n '#efedf5', '#eeecf5', '#eeecf4', '#edebf4', '#ecebf4', '#eceaf3', '#ebe9f3', '#eae9f3',\n '#eae8f2', '#e9e8f2', '#e8e7f2', '#e8e6f2', '#e7e6f1', '#e6e5f1', '#e6e5f1', '#e5e4f0',\n '#e4e3f0', '#e4e3f0', '#e3e2ef', '#e2e2ef', '#e2e1ef', '#e1e0ee', '#e0e0ee', '#e0dfee',\n '#dfdfed', '#dedeed', '#dedded', '#ddddec', '#dcdcec', '#dcdcec', '#dbdbec', '#dadaeb',\n '#dadaeb', '#d9d9ea', '#d8d8ea', '#d7d7e9', '#d6d6e9', '#d5d5e9', '#d4d4e8', '#d3d3e8',\n '#d2d2e7', '#d1d2e7', '#d0d1e6', '#cfd0e6', '#cecfe5', '#cecee5', '#cdcde4', '#cccce4',\n '#cbcbe3', '#cacae3', '#c9c9e2', '#c8c8e2', '#c7c8e1', '#c6c7e1', '#c5c6e1', '#c4c5e0',\n '#c3c4e0', '#c2c3df', '#c1c2df', '#c0c1de', '#bfc0de', '#bebfdd', '#bebedd', '#bdbedc',\n '#bcbddc', '#bbbbdb', '#babadb', '#b9b9da', '#b8b8d9', '#b7b7d9', '#b6b6d8', '#b5b5d7',\n '#b4b4d7', '#b3b3d6', '#b2b2d5', '#b1b1d5', '#b0afd4', '#afaed4', '#aeadd3', '#aeacd2',\n '#adabd2', '#acaad1', '#aba9d0', '#aaa8d0', '#a9a7cf', '#a8a6cf', '#a7a4ce', '#a6a3cd',\n '#a5a2cd', '#a4a1cc', '#a3a0cb', '#a29fcb', '#a19eca', '#a09dca', '#9f9cc9', '#9e9bc8',\n '#9e9ac8', '#9d99c7', '#9c98c7', '#9b97c6', '#9a96c6', '#9995c6', '#9894c5', '#9793c5',\n '#9692c4', '#9591c4', '#9490c3', '#9390c3', '#928fc3', '#918ec2', '#908dc2', '#8f8cc1',\n '#8e8bc1', '#8e8ac0', '#8d89c0', '#8c88bf', '#8b87bf', '#8a86bf', '#8986be', '#8885be',\n '#8784bd', '#8683bd', '#8582bc', '#8481bc', '#8380bb', '#827fbb', '#817ebb', '#807dba',\n '#807cba', '#7f7bb9', '#7e79b8', '#7d78b7', '#7d77b7', '#7c75b6', '#7b74b5', '#7b72b4',\n '#7a71b4', '#7970b3', '#796eb2', '#786db2', '#776cb1', '#776ab0', '#7669af', '#7567af',\n '#7566ae', '#7465ad', '#7363ad', '#7262ac', '#7261ab', '#715faa', '#705eaa', '#705ca9',\n '#6f5ba8', '#6e5aa8', '#6e58a7', '#6d57a6', '#6c55a5', '#6c54a5', '#6b53a4', '#6a51a3',\n '#6950a3', '#694fa2', '#684da1', '#674ca1', '#674ba0', '#66499f', '#65489f', '#65479e',\n '#64459e', '#63449d', '#63439c', '#62429c', '#61409b', '#613f9a', '#603e9a', '#5f3c99',\n '#5e3b98', '#5e3a98', '#5d3897', '#5c3797', '#5c3696', '#5b3495', '#5a3395', '#5a3294',\n '#593093', '#582f93', '#582e92', '#572c92', '#562b91', '#552a90', '#552890', '#54278f',\n '#53268f', '#53258e', '#52238d', '#51228d', '#51218c', '#50208c', '#4f1f8b', '#4f1d8b',\n '#4e1c8a', '#4d1b89', '#4d1a89', '#4c1888', '#4c1788', '#4b1687', '#4a1587', '#4a1486',\n '#491285', '#481185', '#481084', '#470f84', '#460d83', '#460c83', '#450b82', '#440a82',\n '#440981', '#430780', '#420680', '#42057f', '#41047f', '#40027e', '#40017e', '#3f007d'\n]);\n\nColorMapContainer.blues = ColorMapContainer.fromStringList([\n '#f7fbff', '#f6faff', '#f5fafe', '#f5f9fe', '#f4f9fe', '#f3f8fe', '#f2f8fd', '#f2f7fd',\n '#f1f7fd', '#f0f6fd', '#eff6fc', '#eef5fc', '#eef5fc', '#edf4fc', '#ecf4fb', '#ebf3fb',\n '#eaf3fb', '#eaf2fb', '#e9f2fa', '#e8f1fa', '#e7f1fa', '#e7f0fa', '#e6f0f9', '#e5eff9',\n '#e4eff9', '#e3eef9', '#e3eef8', '#e2edf8', '#e1edf8', '#e0ecf8', '#dfecf7', '#dfebf7',\n '#deebf7', '#ddeaf7', '#dceaf6', '#dce9f6', '#dbe9f6', '#dae8f6', '#d9e8f5', '#d9e7f5',\n '#d8e7f5', '#d7e6f5', '#d6e6f4', '#d6e5f4', '#d5e5f4', '#d4e4f4', '#d3e4f3', '#d3e3f3',\n '#d2e3f3', '#d1e2f3', '#d0e2f2', '#d0e1f2', '#cfe1f2', '#cee0f2', '#cde0f1', '#cddff1',\n '#ccdff1', '#cbdef1', '#cadef0', '#caddf0', '#c9ddf0', '#c8dcf0', '#c7dcef', '#c7dbef',\n '#c6dbef', '#c4daee', '#c3daee', '#c2d9ee', '#c1d9ed', '#bfd8ed', '#bed8ec', '#bdd7ec',\n '#bcd7eb', '#bad6eb', '#b9d6ea', '#b8d5ea', '#b7d4ea', '#b5d4e9', '#b4d3e9', '#b3d3e8',\n '#b2d2e8', '#b0d2e7', '#afd1e7', '#aed1e7', '#add0e6', '#abd0e6', '#aacfe5', '#a9cfe5',\n '#a8cee4', '#a6cee4', '#a5cde3', '#a4cce3', '#a3cce3', '#a1cbe2', '#a0cbe2', '#9fcae1',\n '#9dcae1', '#9cc9e1', '#9ac8e0', '#99c7e0', '#97c6df', '#95c5df', '#94c4df', '#92c4de',\n '#91c3de', '#8fc2de', '#8dc1dd', '#8cc0dd', '#8abfdd', '#89bedc', '#87bddc', '#85bcdc',\n '#84bcdb', '#82bbdb', '#81badb', '#7fb9da', '#7db8da', '#7cb7da', '#7ab6d9', '#79b5d9',\n '#77b5d9', '#75b4d8', '#74b3d8', '#72b2d8', '#71b1d7', '#6fb0d7', '#6dafd7', '#6caed6',\n '#6aaed6', '#69add5', '#68acd5', '#66abd4', '#65aad4', '#64a9d3', '#63a8d3', '#61a7d2',\n '#60a7d2', '#5fa6d1', '#5da5d1', '#5ca4d0', '#5ba3d0', '#5aa2cf', '#58a1cf', '#57a0ce',\n '#56a0ce', '#549fcd', '#539ecd', '#529dcc', '#519ccc', '#4f9bcb', '#4e9acb', '#4d99ca',\n '#4b98ca', '#4a98c9', '#4997c9', '#4896c8', '#4695c8', '#4594c7', '#4493c7', '#4292c6',\n '#4191c6', '#4090c5', '#3f8fc5', '#3e8ec4', '#3d8dc4', '#3c8cc3', '#3b8bc2', '#3a8ac2',\n '#3989c1', '#3888c1', '#3787c0', '#3686c0', '#3585bf', '#3484bf', '#3383be', '#3282be',\n '#3181bd', '#3080bd', '#2f7fbc', '#2e7ebc', '#2d7dbb', '#2c7cba', '#2b7bba', '#2a7ab9',\n '#2979b9', '#2777b8', '#2676b8', '#2575b7', '#2474b7', '#2373b6', '#2272b6', '#2171b5',\n '#2070b4', '#206fb4', '#1f6eb3', '#1e6db2', '#1d6cb1', '#1c6bb0', '#1c6ab0', '#1b69af',\n '#1a68ae', '#1967ad', '#1966ad', '#1865ac', '#1764ab', '#1663aa', '#1562a9', '#1561a9',\n '#1460a8', '#135fa7', '#125ea6', '#125da6', '#115ca5', '#105ba4', '#0f5aa3', '#0e59a2',\n '#0e58a2', '#0d57a1', '#0c56a0', '#0b559f', '#0a549e', '#0a539e', '#09529d', '#08519c',\n '#08509b', '#084f99', '#084e98', '#084d96', '#084c95', '#084b93', '#084a91', '#084990',\n '#08488e', '#08478d', '#08468b', '#08458a', '#084488', '#084387', '#084285', '#084184',\n '#084082', '#083e81', '#083d7f', '#083c7d', '#083b7c', '#083a7a', '#083979', '#083877',\n '#083776', '#083674', '#083573', '#083471', '#083370', '#08326e', '#08316d', '#08306b'\n]);\n\nColorMapContainer.greens = ColorMapContainer.fromStringList([\n '#f7fcf5', '#f6fcf4', '#f6fcf4', '#f5fbf3', '#f5fbf2', '#f4fbf2', '#f4fbf1', '#f3faf0',\n '#f2faf0', '#f2faef', '#f1faee', '#f1faee', '#f0f9ed', '#f0f9ec', '#eff9ec', '#eff9eb',\n '#eef8ea', '#edf8ea', '#edf8e9', '#ecf8e8', '#ecf8e8', '#ebf7e7', '#ebf7e7', '#eaf7e6',\n '#e9f7e5', '#e9f7e5', '#e8f6e4', '#e8f6e3', '#e7f6e3', '#e7f6e2', '#e6f5e1', '#e5f5e1',\n '#e5f5e0', '#e4f5df', '#e3f4de', '#e2f4dd', '#e1f3dc', '#e0f3db', '#dff3da', '#def2d9',\n '#ddf2d8', '#dcf2d7', '#dbf1d6', '#dbf1d5', '#daf0d4', '#d9f0d3', '#d8f0d2', '#d7efd1',\n '#d6efd0', '#d5efcf', '#d4eece', '#d3eecd', '#d2edcc', '#d1edcb', '#d0edca', '#cfecc9',\n '#ceecc8', '#cdecc7', '#ccebc6', '#cbebc5', '#cbeac4', '#caeac3', '#c9eac2', '#c8e9c1',\n '#c7e9c0', '#c6e8bf', '#c4e8bd', '#c3e7bc', '#c2e7bb', '#c1e6ba', '#c0e6b9', '#bee5b8',\n '#bde5b6', '#bce4b5', '#bbe4b4', '#bae3b3', '#b8e3b2', '#b7e2b1', '#b6e2af', '#b5e1ae',\n '#b4e1ad', '#b2e0ac', '#b1e0ab', '#b0dfaa', '#afdfa8', '#aedea7', '#acdea6', '#abdda5',\n '#aadda4', '#a9dca3', '#a8dca2', '#a7dba0', '#a5db9f', '#a4da9e', '#a3da9d', '#a2d99c',\n '#a0d99b', '#9fd899', '#9ed798', '#9cd797', '#9bd696', '#99d595', '#98d594', '#97d492',\n '#95d391', '#94d390', '#92d28f', '#91d28e', '#90d18d', '#8ed08b', '#8dd08a', '#8bcf89',\n '#8ace88', '#88ce87', '#87cd86', '#86cc85', '#84cc83', '#83cb82', '#81ca81', '#80ca80',\n '#7fc97f', '#7dc87e', '#7cc87c', '#7ac77b', '#79c67a', '#78c679', '#76c578', '#75c477',\n '#73c476', '#72c375', '#70c274', '#6ec173', '#6dc072', '#6bc072', '#6abf71', '#68be70',\n '#66bd6f', '#65bd6f', '#63bc6e', '#62bb6d', '#60ba6c', '#5eb96b', '#5db96b', '#5bb86a',\n '#5ab769', '#58b668', '#56b567', '#55b567', '#53b466', '#52b365', '#50b264', '#4eb264',\n '#4db163', '#4bb062', '#4aaf61', '#48ae60', '#46ae60', '#45ad5f', '#43ac5e', '#42ab5d',\n '#40aa5d', '#3fa95c', '#3fa85b', '#3ea75a', '#3da65a', '#3ca559', '#3ba458', '#3aa357',\n '#39a257', '#38a156', '#37a055', '#369f54', '#359e53', '#349d53', '#339c52', '#329b51',\n '#319a50', '#309950', '#2f984f', '#2f974e', '#2e964d', '#2d954d', '#2c944c', '#2b934b',\n '#2a924a', '#29914a', '#289049', '#278f48', '#268e47', '#258d47', '#248c46', '#238b45',\n '#228a44', '#218944', '#208843', '#1f8742', '#1e8741', '#1d8640', '#1c8540', '#1a843f',\n '#19833e', '#18823d', '#17813d', '#16803c', '#157f3b', '#147e3a', '#137d39', '#127c39',\n '#117b38', '#107a37', '#0e7936', '#0d7836', '#0c7735', '#0b7734', '#0a7633', '#097532',\n '#087432', '#077331', '#067230', '#05712f', '#03702e', '#026f2e', '#016e2d', '#006d2c',\n '#006c2c', '#006b2b', '#00692a', '#00682a', '#006729', '#006529', '#006428', '#006328',\n '#006227', '#006027', '#005f26', '#005e26', '#005c25', '#005b25', '#005a24', '#005924',\n '#005723', '#005622', '#005522', '#005321', '#005221', '#005120', '#005020', '#004e1f',\n '#004d1f', '#004c1e', '#004a1e', '#00491d', '#00481d', '#00471c', '#00451c', '#00441b'\n]);\n\nColorMapContainer.oranges = ColorMapContainer.fromStringList([\n '#fff5eb', '#fff5ea', '#fff4e9', '#fff4e8', '#fff3e7', '#fff3e6', '#fff2e6', '#fff2e5',\n '#fff1e4', '#fff1e3', '#fff0e2', '#fff0e1', '#ffefe0', '#ffefdf', '#ffeede', '#ffeedd',\n '#feeddc', '#feeddc', '#feeddb', '#feecda', '#feecd9', '#feebd8', '#feebd7', '#feead6',\n '#feead5', '#fee9d4', '#fee9d3', '#fee8d2', '#fee8d2', '#fee7d1', '#fee7d0', '#fee6cf',\n '#fee6ce', '#fee5cc', '#fee5cb', '#fee4ca', '#fee3c8', '#fee2c7', '#fee2c6', '#fee1c4',\n '#fee0c3', '#fee0c1', '#fedfc0', '#fedebf', '#fedebd', '#feddbc', '#fedcbb', '#fedcb9',\n '#fddbb8', '#fddab6', '#fdd9b5', '#fdd9b4', '#fdd8b2', '#fdd7b1', '#fdd7af', '#fdd6ae',\n '#fdd5ad', '#fdd5ab', '#fdd4aa', '#fdd3a9', '#fdd3a7', '#fdd2a6', '#fdd1a4', '#fdd1a3',\n '#fdd0a2', '#fdcfa0', '#fdce9e', '#fdcd9c', '#fdcb9b', '#fdca99', '#fdc997', '#fdc895',\n '#fdc794', '#fdc692', '#fdc590', '#fdc48f', '#fdc38d', '#fdc28b', '#fdc189', '#fdc088',\n '#fdbf86', '#fdbe84', '#fdbd83', '#fdbb81', '#fdba7f', '#fdb97d', '#fdb87c', '#fdb77a',\n '#fdb678', '#fdb576', '#fdb475', '#fdb373', '#fdb271', '#fdb170', '#fdb06e', '#fdaf6c',\n '#fdae6a', '#fdad69', '#fdac67', '#fdab66', '#fda965', '#fda863', '#fda762', '#fda660',\n '#fda55f', '#fda45d', '#fda35c', '#fda25a', '#fda159', '#fda057', '#fd9f56', '#fd9e54',\n '#fd9d53', '#fd9c51', '#fd9b50', '#fd9a4e', '#fd994d', '#fd984b', '#fd974a', '#fd9649',\n '#fd9547', '#fd9446', '#fd9344', '#fd9243', '#fd9141', '#fd9040', '#fd8f3e', '#fd8e3d',\n '#fd8c3b', '#fc8b3a', '#fc8a39', '#fc8937', '#fb8836', '#fb8735', '#fb8634', '#fa8532',\n '#fa8331', '#f98230', '#f9812e', '#f9802d', '#f87f2c', '#f87e2b', '#f87d29', '#f77b28',\n '#f77a27', '#f67925', '#f67824', '#f67723', '#f57622', '#f57520', '#f5741f', '#f4721e',\n '#f4711c', '#f3701b', '#f36f1a', '#f36e19', '#f26d17', '#f26c16', '#f26b15', '#f16913',\n '#f16813', '#f06712', '#ef6612', '#ee6511', '#ee6410', '#ed6310', '#ec620f', '#eb610f',\n '#eb600e', '#ea5f0e', '#e95e0d', '#e85d0c', '#e75c0c', '#e75b0b', '#e65a0b', '#e5590a',\n '#e4580a', '#e45709', '#e35608', '#e25508', '#e15407', '#e15307', '#e05206', '#df5106',\n '#de5005', '#de4e05', '#dd4d04', '#dc4c03', '#db4b03', '#db4a02', '#da4902', '#d94801',\n '#d84801', '#d64701', '#d54601', '#d34601', '#d14501', '#d04501', '#ce4401', '#cd4401',\n '#cb4302', '#c94202', '#c84202', '#c64102', '#c54102', '#c34002', '#c14002', '#c03f02',\n '#be3f02', '#bd3e02', '#bb3d02', '#b93d02', '#b83c02', '#b63c02', '#b53b02', '#b33b02',\n '#b13a03', '#b03903', '#ae3903', '#ad3803', '#ab3803', '#a93703', '#a83703', '#a63603',\n '#a53603', '#a43503', '#a23503', '#a13403', '#a03403', '#9f3303', '#9e3303', '#9c3203',\n '#9b3203', '#9a3103', '#993103', '#973003', '#963003', '#952f03', '#942f03', '#932f03',\n '#912e04', '#902e04', '#8f2d04', '#8e2d04', '#8c2c04', '#8b2c04', '#8a2b04', '#892b04',\n '#882a04', '#862a04', '#852904', '#842904', '#832804', '#812804', '#802704', '#7f2704'\n]);\n\nColorMapContainer.reds = ColorMapContainer.fromStringList([\n '#fff5f0', '#fff4ef', '#fff4ee', '#fff3ed', '#fff2ec', '#fff2eb', '#fff1ea', '#fff0e9',\n '#fff0e8', '#ffefe8', '#ffeee7', '#ffeee6', '#ffede5', '#ffece4', '#ffece3', '#ffebe2',\n '#feeae1', '#feeae0', '#fee9df', '#fee8de', '#fee8dd', '#fee7dc', '#fee7db', '#fee6da',\n '#fee5d9', '#fee5d8', '#fee4d8', '#fee3d7', '#fee3d6', '#fee2d5', '#fee1d4', '#fee1d3',\n '#fee0d2', '#fedfd0', '#fedecf', '#fedccd', '#fedbcc', '#fedaca', '#fed9c9', '#fed8c7',\n '#fdd7c6', '#fdd5c4', '#fdd4c2', '#fdd3c1', '#fdd2bf', '#fdd1be', '#fdd0bc', '#fdcebb',\n '#fdcdb9', '#fdccb8', '#fdcbb6', '#fdcab5', '#fdc9b3', '#fdc7b2', '#fdc6b0', '#fdc5ae',\n '#fcc4ad', '#fcc3ab', '#fcc2aa', '#fcc1a8', '#fcbfa7', '#fcbea5', '#fcbda4', '#fcbca2',\n '#fcbba1', '#fcb99f', '#fcb89e', '#fcb79c', '#fcb69b', '#fcb499', '#fcb398', '#fcb296',\n '#fcb095', '#fcaf93', '#fcae92', '#fcad90', '#fcab8f', '#fcaa8d', '#fca98c', '#fca78b',\n '#fca689', '#fca588', '#fca486', '#fca285', '#fca183', '#fca082', '#fc9e80', '#fc9d7f',\n '#fc9c7d', '#fc9b7c', '#fc997a', '#fc9879', '#fc9777', '#fc9576', '#fc9474', '#fc9373',\n '#fc9272', '#fc9070', '#fc8f6f', '#fc8e6e', '#fc8d6d', '#fc8b6b', '#fc8a6a', '#fc8969',\n '#fc8767', '#fc8666', '#fc8565', '#fc8464', '#fc8262', '#fc8161', '#fc8060', '#fc7f5f',\n '#fb7d5d', '#fb7c5c', '#fb7b5b', '#fb7a5a', '#fb7858', '#fb7757', '#fb7656', '#fb7555',\n '#fb7353', '#fb7252', '#fb7151', '#fb7050', '#fb6e4e', '#fb6d4d', '#fb6c4c', '#fb6b4b',\n '#fb694a', '#fa6849', '#fa6648', '#fa6547', '#f96346', '#f96245', '#f96044', '#f85f43',\n '#f85d42', '#f75c41', '#f75b40', '#f7593f', '#f6583e', '#f6563d', '#f6553c', '#f5533b',\n '#f5523a', '#f4503a', '#f44f39', '#f44d38', '#f34c37', '#f34a36', '#f34935', '#f24734',\n '#f24633', '#f14432', '#f14331', '#f14130', '#f0402f', '#f03f2e', '#f03d2d', '#ef3c2c',\n '#ee3a2c', '#ed392b', '#ec382b', '#eb372a', '#ea362a', '#e93529', '#e83429', '#e63328',\n '#e53228', '#e43027', '#e32f27', '#e22e27', '#e12d26', '#e02c26', '#de2b25', '#dd2a25',\n '#dc2924', '#db2824', '#da2723', '#d92523', '#d82422', '#d72322', '#d52221', '#d42121',\n '#d32020', '#d21f20', '#d11e1f', '#d01d1f', '#cf1c1f', '#ce1a1e', '#cc191e', '#cb181d',\n '#ca181d', '#c9181d', '#c8171c', '#c7171c', '#c5171c', '#c4161c', '#c3161b', '#c2161b',\n '#c1161b', '#bf151b', '#be151a', '#bd151a', '#bc141a', '#bb141a', '#b91419', '#b81419',\n '#b71319', '#b61319', '#b51318', '#b31218', '#b21218', '#b11218', '#b01217', '#af1117',\n '#ad1117', '#ac1117', '#ab1016', '#aa1016', '#a91016', '#a81016', '#a60f15', '#a50f15',\n '#a30f15', '#a10e15', '#9f0e14', '#9d0d14', '#9c0d14', '#9a0c14', '#980c13', '#960b13',\n '#940b13', '#920a13', '#900a12', '#8e0912', '#8c0912', '#8a0812', '#880811', '#860811',\n '#840711', '#820711', '#800610', '#7e0610', '#7c0510', '#7a0510', '#79040f', '#77040f',\n '#75030f', '#73030f', '#71020e', '#6f020e', '#6d010e', '#6b010e', '#69000d', '#67000d'\n]);\n\nColorMapContainer.rdYlBu = ColorMapContainer.fromStringList([\n '#a50026', '#a70226', '#a90426', '#ab0626', '#ad0826', '#af0926', '#b10b26', '#b30d26',\n '#b50f26', '#b71126', '#b91326', '#bb1526', '#bd1726', '#be1827', '#c01a27', '#c21c27',\n '#c41e27', '#c62027', '#c82227', '#ca2427', '#cc2627', '#ce2827', '#d02927', '#d22b27',\n '#d42d27', '#d62f27', '#d83128', '#d93429', '#da362a', '#db382b', '#dc3b2c', '#dd3d2d',\n '#de402e', '#e0422f', '#e14430', '#e24731', '#e34933', '#e44c34', '#e54e35', '#e65036',\n '#e75337', '#e95538', '#ea5739', '#eb5a3a', '#ec5c3b', '#ed5f3c', '#ee613e', '#ef633f',\n '#f16640', '#f26841', '#f36b42', '#f46d43', '#f47044', '#f57245', '#f57547', '#f57748',\n '#f67a49', '#f67c4a', '#f67f4b', '#f7814c', '#f7844e', '#f8864f', '#f88950', '#f88c51',\n '#f98e52', '#f99153', '#f99355', '#fa9656', '#fa9857', '#fa9b58', '#fb9d59', '#fba05b',\n '#fba35c', '#fca55d', '#fca85e', '#fcaa5f', '#fdad60', '#fdaf62', '#fdb164', '#fdb366',\n '#fdb567', '#fdb769', '#fdb96b', '#fdbb6d', '#fdbd6f', '#fdbf71', '#fdc173', '#fdc374',\n '#fdc576', '#fdc778', '#fec87a', '#feca7c', '#fecc7e', '#fece7f', '#fed081', '#fed283',\n '#fed485', '#fed687', '#fed889', '#feda8a', '#fedc8c', '#fede8e', '#fee090', '#fee192',\n '#fee294', '#fee496', '#fee597', '#fee699', '#fee79b', '#fee99d', '#feea9f', '#feeba1',\n '#feeca2', '#feeda4', '#feefa6', '#fff0a8', '#fff1aa', '#fff2ac', '#fff3ad', '#fff5af',\n '#fff6b1', '#fff7b3', '#fff8b5', '#fffab7', '#fffbb9', '#fffcba', '#fffdbc', '#fffebe',\n '#feffc0', '#fdfec2', '#fcfec5', '#fbfdc7', '#fafdc9', '#f8fccb', '#f7fcce', '#f6fbd0',\n '#f5fbd2', '#f3fbd4', '#f2fad6', '#f1fad9', '#f0f9db', '#eff9dd', '#edf8df', '#ecf8e2',\n '#ebf7e4', '#eaf7e6', '#e9f6e8', '#e7f6eb', '#e6f5ed', '#e5f5ef', '#e4f4f1', '#e2f4f4',\n '#e1f3f6', '#e0f3f8', '#def2f7', '#dcf1f7', '#daf0f6', '#d8eff6', '#d6eef5', '#d4edf4',\n '#d1ecf4', '#cfebf3', '#cdeaf3', '#cbe9f2', '#c9e8f2', '#c7e7f1', '#c5e6f0', '#c3e5f0',\n '#c1e4ef', '#bfe3ef', '#bde2ee', '#bbe1ed', '#b9e0ed', '#b6dfec', '#b4deec', '#b2ddeb',\n '#b0dcea', '#aedbea', '#acdae9', '#aad8e9', '#a8d6e8', '#a6d5e7', '#a3d3e6', '#a1d1e5',\n '#9fd0e4', '#9dcee3', '#9bcce2', '#99cae1', '#97c9e0', '#94c7df', '#92c5de', '#90c3dd',\n '#8ec2dc', '#8cc0db', '#8abeda', '#87bdd9', '#85bbd9', '#83b9d8', '#81b7d7', '#7fb6d6',\n '#7db4d5', '#7ab2d4', '#78b0d3', '#76afd2', '#74add1', '#72abd0', '#70a9cf', '#6ea6ce',\n '#6da4cc', '#6ba2cb', '#69a0ca', '#679ec9', '#659bc8', '#6399c7', '#6297c6', '#6095c4',\n '#5e93c3', '#5c90c2', '#5a8ec1', '#588cc0', '#578abf', '#5588be', '#5385bd', '#5183bb',\n '#4f81ba', '#4d7fb9', '#4b7db8', '#4a7ab7', '#4878b6', '#4676b5', '#4574b3', '#4471b2',\n '#436fb1', '#426cb0', '#416aaf', '#4167ad', '#4065ac', '#3f62ab', '#3e60aa', '#3e5ea8',\n '#3d5ba7', '#3c59a6', '#3b56a5', '#3a54a4', '#3a51a2', '#394fa1', '#384ca0', '#374a9f',\n '#36479e', '#36459c', '#35429b', '#34409a', '#333d99', '#333b97', '#323896', '#313695'\n]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/fits_image.js\":\n/*!**********************************!*\\\n !*** ./esm/layers/fits_image.js ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FitsImage: () => (/* binding */ FitsImage)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../web_file.js */ \"./esm/web_file.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _wcs_image_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./wcs_image.js */ \"./esm/layers/wcs_image.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A FITS image.\n\n\n\n\n\n\n\n\n// wwtlib.FitsImage\n\nfunction FitsImage(dataset, file, blob, callMeBack) {\n this.errored = false;\n this.numAxis = 0;\n this.histogramMaxCount = 0;\n this.sourceBlob = null;\n this.header = {};\n this.position = 0;\n this.bufferSize = 1;\n this._parseSuccessful$1 = false;\n _wcs_image_js__WEBPACK_IMPORTED_MODULE_4__.WcsImage.call(this);\n this.dataset = dataset;\n this.fitsProperties = dataset.get_fitsProperties();\n this._callBack$1 = callMeBack;\n this.filename = file;\n if (blob != null) {\n this._readFromBlob$1(blob);\n }\n else {\n this.getFile(file);\n }\n}\n\nFitsImage.naN = 0 / 0;\n\nvar FitsImage$ = {\n getFile: function (url) {\n this._webFile$1 = new _web_file_js__WEBPACK_IMPORTED_MODULE_2__.WebFile(url);\n this._webFile$1.responseType = 'blob';\n this._webFile$1.onStateChange = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('fileStateChange', this);\n this._webFile$1.send();\n },\n\n fileStateChange: function () {\n if (this._webFile$1.get_state() === 2) {\n this.errored = true;\n if (this._callBack$1 != null) {\n this._callBack$1(this);\n }\n } else if (this._webFile$1.get_state() === 1) {\n var mainBlob = this._webFile$1.getBlob();\n this._readFromBlob$1(mainBlob);\n }\n },\n _readFromBlob$1: function (blob) {\n var $this = this;\n\n this.sourceBlob = blob;\n var chunck = new FileReader();\n chunck.onloadend = function (e) {\n $this.readFromBin(new DataView(chunck.result));\n $this.errored = !$this._parseSuccessful$1;\n if ($this._callBack$1 != null) {\n $this._callBack$1($this);\n }\n };\n chunck.readAsArrayBuffer(blob);\n },\n _readByteString$1: function (dataView, count) {\n var data = '';\n for (var i = 0; i < count; i++) {\n data += String.fromCharCode(dataView.getUint8(this.position));\n this.position++;\n }\n return data;\n },\n _validateFitsSimple$1: function (dataView) {\n var data = this._readByteString$1(dataView, 8);\n var keyword = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trimEnd(data);\n this.position -= 8;\n return keyword.toUpperCase() === 'SIMPLE';\n },\n\n readFromBin: function (dataView) {\n if (!this._validateFitsSimple$1(dataView)) {\n console.log('The requested file is not a valid FITS file.');\n return;\n }\n var foundEnd = false;\n while (!foundEnd) {\n for (var i = 0; i < 36; i++) {\n var data = this._readByteString$1(dataView, 80);\n if (!foundEnd) {\n var keyword = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trimEnd(data.substring(0, 8));\n var values = data.substring(10).split('/');\n if (keyword.toUpperCase() === 'END') {\n foundEnd = true;\n // Check for XTENSION\n i++;\n data = this._readByteString$1(dataView, 80);\n while (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.whitespace(data)) {\n i++;\n data = this._readByteString$1(dataView, 80);\n }\n keyword = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trimEnd(data.substring(0, 8));\n if (keyword.toUpperCase() === 'XTENSION') {\n // We have additional headers\n foundEnd = false;\n }\n else {\n // Rewind these 80 bytes which could be data\n this.position -= 80;\n }\n }\n else {\n this._addKeyword$1(keyword, values);\n }\n }\n }\n }\n if (!foundEnd) {\n console.log('Unable to parse requested FITS file.');\n return;\n }\n this.numAxis = parseInt(this.header['NAXIS']);\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'BLANK')) {\n this.fitsProperties.blankValue = parseFloat(this.header['BLANK']);\n this.fitsProperties.containsBlanks = true;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'BZERO')) {\n this.fitsProperties.bZero = parseFloat(this.header['BZERO']);\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'BSCALE')) {\n this.fitsProperties.bScale = parseFloat(this.header['BSCALE']);\n }\n this.axisSize = new Array(this.numAxis);\n for (var axis = 0; axis < this.numAxis; axis++) {\n this.axisSize[axis] = parseInt(this.header[_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('NAXIS{0}', axis + 1)]);\n this.bufferSize *= this.axisSize[axis];\n }\n var bitpix = parseInt(this.header['BITPIX']);\n this.readDataUnit(dataView, bitpix);\n if (this.numAxis > 1) {\n this.sizeX = this.axisSize[0];\n this.sizeY = this.axisSize[1];\n this.histogram = this.computeHistogram(256);\n this.histogramMaxCount = this.histogram[256];\n }\n this.computeWcs();\n this._parseSuccessful$1 = true;\n },\n _addKeyword$1: function (keyword, values) {\n if (keyword !== 'CONTINUE' && keyword !== 'COMMENT' && keyword !== 'HISTORY' && !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(keyword)) {\n try {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, keyword)) {\n this.header[keyword] = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(values[0]);\n }\n else {\n this.header[keyword.toUpperCase()] = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(values[0]);\n }\n }\n catch ($e1) {\n }\n }\n },\n\n readDataUnit: function (dataView, bitpix) {\n this.dataUnit = new Float32Array(this.bufferSize);\n switch (bitpix) {\n case -64:\n this.readDataUnitFloat64(dataView);\n break;\n case -32:\n this.readDataUnitFloat32(dataView);\n break;\n case 8:\n this.readDataUnitUint8(dataView);\n break;\n case 16:\n this.readDataUnitInt16(dataView);\n break;\n case 32:\n this.readDataUnitInt32(dataView);\n break;\n case 64:\n // 64 bit integers not supported by Safari\n console.log('64 bit integer FITS are not yet supported');\n break;\n }\n },\n\n readDataUnitFloat64: function (dataView) {\n var i = 0;\n while (this.position < dataView.byteLength) {\n this.dataUnit[i] = dataView.getFloat64(this.position, false);\n var physicalValue = this.dataUnit[i] * this.fitsProperties.bScale + this.fitsProperties.bZero;\n if (this.fitsProperties.minVal > physicalValue) {\n this.fitsProperties.minVal = physicalValue;\n }\n if (this.fitsProperties.maxVal < physicalValue) {\n this.fitsProperties.maxVal = physicalValue;\n }\n i++;\n this.position += 8;\n }\n this.fitsProperties.lowerCut = this.fitsProperties.minVal;\n this.fitsProperties.upperCut = this.fitsProperties.maxVal;\n },\n\n readDataUnitFloat32: function (dataView) {\n var i = 0;\n while (this.position < dataView.byteLength) {\n this.dataUnit[i] = dataView.getFloat32(this.position, false);\n var physicalValue = this.dataUnit[i] * this.fitsProperties.bScale + this.fitsProperties.bZero;\n if (this.fitsProperties.minVal > physicalValue) {\n this.fitsProperties.minVal = physicalValue;\n }\n if (this.fitsProperties.maxVal < physicalValue) {\n this.fitsProperties.maxVal = physicalValue;\n }\n i++;\n this.position += 4;\n }\n this.fitsProperties.lowerCut = this.fitsProperties.minVal;\n this.fitsProperties.upperCut = this.fitsProperties.maxVal;\n },\n\n readDataUnitUint8: function (dataView) {\n var i = 0;\n while (this.position < dataView.byteLength) {\n this.dataUnit[i] = dataView.getUint8(this.position);\n if (this.fitsProperties.minVal > this.dataUnit[i]) {\n this.fitsProperties.minVal = this.dataUnit[i];\n }\n if (this.fitsProperties.maxVal < this.dataUnit[i]) {\n this.fitsProperties.maxVal = this.dataUnit[i];\n }\n i++;\n this.position += 1;\n }\n this.fitsProperties.lowerCut = this.fitsProperties.minVal;\n this.fitsProperties.upperCut = this.fitsProperties.maxVal;\n },\n\n readDataUnitInt16: function (dataView) {\n var i = 0;\n while (this.position < dataView.byteLength) {\n this.dataUnit[i] = dataView.getInt16(this.position, false);\n if (this.fitsProperties.minVal > this.dataUnit[i]) {\n this.fitsProperties.minVal = this.dataUnit[i];\n }\n if (this.fitsProperties.maxVal < this.dataUnit[i]) {\n this.fitsProperties.maxVal = this.dataUnit[i];\n }\n i++;\n this.position += 2;\n }\n this.fitsProperties.lowerCut = this.fitsProperties.minVal;\n this.fitsProperties.upperCut = this.fitsProperties.maxVal;\n },\n\n readDataUnitInt32: function (dataView) {\n var i = 0;\n while (this.position < dataView.byteLength) {\n this.dataUnit[i] = dataView.getInt32(this.position, false);\n if (this.fitsProperties.minVal > this.dataUnit[i]) {\n this.fitsProperties.minVal = this.dataUnit[i];\n }\n if (this.fitsProperties.maxVal < this.dataUnit[i]) {\n this.fitsProperties.maxVal = this.dataUnit[i];\n }\n i++;\n this.position += 4;\n }\n this.fitsProperties.lowerCut = this.fitsProperties.minVal;\n this.fitsProperties.upperCut = this.fitsProperties.maxVal;\n },\n\n computeWcs: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CROTA2')) {\n this.rotation = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['CROTA2']));\n this.hasRotation = true;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CDELT1')) {\n this.scaleX = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['CDELT1']));\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CDELT2')) {\n this.scaleY = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['CDELT2']));\n this.hasScale = true;\n }\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CRPIX1')) {\n // In FITS/ WCS, pixel coordinates are 1 - based and integer pixel\n // coordinates land on pixel centers. Therefore in standard FITS\n // orientation, where the \"first\" pixel is at the lower-left, the\n // lower-left corner of the image has pixel coordinate (0.5, 0.5). For\n // the WWT offset parameters, the lower-left corner of the image has\n // coordinate (0, 0).\n this.referenceX = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['CRPIX1'])) - 0.5;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CRPIX2')) {\n this.referenceY = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['CRPIX2'])) - 0.5;\n this.hasPixel = true;\n }\n }\n var galactic = false;\n var tan = false;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CTYPE1')) {\n if (this.header['CTYPE1'].indexOf('GLON-') > -1) {\n galactic = true;\n tan = true;\n }\n if (this.header['CTYPE2'].indexOf('GLAT-') > -1) {\n galactic = true;\n tan = true;\n }\n if (this.header['CTYPE1'].indexOf('-TAN') > -1) {\n tan = true;\n }\n if (this.header['CTYPE1'].indexOf('-SIN') > -1) {\n tan = true;\n }\n }\n if (!tan) {\n throw new Error('Only TAN projected images are supported: ');\n }\n this.hasSize = true;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CRVAL1')) {\n this.centerX = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['CRVAL1']));\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CRVAL2')) {\n this.centerY = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['CRVAL2']));\n this.hasLocation = true;\n }\n }\n if (galactic) {\n var result = _coordinates_js__WEBPACK_IMPORTED_MODULE_3__.Coordinates.galactictoJ2000(this.centerX, this.centerY);\n this.centerX = result[0];\n this.centerY = result[1];\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CD1_1') && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CD1_2') && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CD2_1') && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'CD2_2')) {\n this.cd1_1 = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['CD1_1']));\n this.cd1_2 = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['CD1_2']));\n this.cd2_1 = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['CD2_1']));\n this.cd2_2 = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['CD2_2']));\n if (!this.hasRotation) {\n this.calculateRotationFromCD();\n }\n if (!this.hasScale) {\n this.calculateScaleFromCD();\n }\n this.hasScale = true;\n this.hasRotation = true;\n }\n this.set_validWcs(this.hasScale && this.hasRotation && this.hasPixel && this.hasLocation);\n },\n\n // Modify the FitsProperties object to apply any settings stored in this\n // FITS image's header keywords. This mechanism gives us a way to set up\n // the rendering of a tiled FITS image through keywords set on its\n // level-0 tile file.\n //\n // I'm not aware of any standard, or even standard-ish, headers to\n // define these settings, so we'll roll our own here.\n applyDisplaySettings: function () {\n // TODO for tiled FITS: distinguish between datamin in this one tile,\n // and datamin across the full, un-downsampled original imagery.\n\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'DATAMIN')) {\n this.fitsProperties.lowerCut = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['DATAMIN']));\n this.fitsProperties.minVal = this.fitsProperties.lowerCut;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'DATAMAX')) {\n this.fitsProperties.upperCut = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['DATAMAX']));\n this.fitsProperties.maxVal = this.fitsProperties.upperCut;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'PXCUTMIN')) {\n this.fitsProperties.lowerCut = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['PXCUTMIN']));\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this.header, 'PXCUTMAX')) {\n this.fitsProperties.upperCut = parseFloat(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(this.header['PXCUTMAX']));\n }\n },\n\n computeHistogram: function (count) {\n var histogram = new Array(count + 1);\n for (var i = 0; i < count + 1; i++) {\n histogram[i] = 0;\n }\n this.populateHistogram(histogram);\n var maxCounter = 1;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(histogram);\n while ($enum1.moveNext()) {\n var val = $enum1.current;\n if (val > maxCounter) {\n maxCounter = val;\n }\n }\n histogram[count] = maxCounter;\n return histogram;\n },\n\n populateHistogram: function (histogram) {\n var buckets = histogram.length;\n var factor = (this.fitsProperties.maxVal - this.fitsProperties.minVal) / buckets;\n for (var i = 0; i < this.dataUnit.length; i++) {\n if (!(this.dataUnit[i] === FitsImage.naN)) {\n histogram[Math.min(buckets - 1, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((this.fitsProperties.bZero + this.fitsProperties.bScale * this.dataUnit[i] - this.fitsProperties.minVal) / factor)))]++;\n }\n }\n },\n\n drawHistogram: function (ctx) {\n ctx.clearRect(0, 0, 255, 150);\n ctx.beginPath();\n ctx.strokeStyle = 'rgba(255,255,255,255)';\n var logMax = Math.log(this.histogramMaxCount);\n for (var i = 0; i < this.histogram.length; i++) {\n var height = Math.log(this.histogram[i]) / logMax;\n if (height < 0) {\n height = 0;\n }\n ctx.moveTo(i, 150);\n ctx.lineTo(i, 150 - (height * 150));\n ctx.stroke();\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"FitsImage\", [FitsImage, FitsImage$, _wcs_image_js__WEBPACK_IMPORTED_MODULE_4__.WcsImage]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/fits_image_js.js\":\n/*!*************************************!*\\\n !*** ./esm/layers/fits_image_js.js ***!\n \\*************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DataTypes: () => (/* binding */ DataTypes),\n/* harmony export */ FitsImageJs: () => (/* binding */ FitsImageJs),\n/* harmony export */ HistogramEqualization: () => (/* binding */ HistogramEqualization),\n/* harmony export */ ScaleLinear: () => (/* binding */ ScaleLinear),\n/* harmony export */ ScaleLog: () => (/* binding */ ScaleLog),\n/* harmony export */ ScaleMap: () => (/* binding */ ScaleMap),\n/* harmony export */ ScalePow: () => (/* binding */ ScalePow),\n/* harmony export */ ScaleSqrt: () => (/* binding */ ScaleSqrt)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utilities/binary_reader.js */ \"./esm/utilities/binary_reader.js\");\n/* harmony import */ var _utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utilities/bitmap.js */ \"./esm/utilities/bitmap.js\");\n/* harmony import */ var _color_map_container_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./color_map_container.js */ \"./esm/layers/color_map_container.js\");\n/* harmony import */ var _fits_image_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fits_image.js */ \"./esm/layers/fits_image.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A FITS image with a pure JavaScript implementation.\n//\n// This class is used when WebGL 2 is not available, as in Safari.\n\n\n\n\n\n\n\n\n\n// wwtlib.DataTypes\n\nvar DataTypes = {\n byteT: 0,\n int16T: 1,\n int32T: 2,\n floatT: 3,\n doubleT: 4,\n none: 5\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"DataTypes\", DataTypes);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"DataTypes\", DataTypes);\n\n\n// wwtlib.ScaleMap\n\nfunction ScaleMap() { }\n\nvar ScaleMap$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ScaleMap\", [ScaleMap, ScaleMap$, null]);\n\n\n// wwtlib.ScaleLinear\n\nfunction ScaleLinear(min, max) {\n this._min$1 = 0;\n this._max$1 = 0;\n this._factor$1 = 0;\n this._logFactor$1 = 0;\n ScaleMap.call(this);\n this._min$1 = min;\n this._max$1 = max;\n this._factor$1 = max - min;\n}\n\nvar ScaleLinear$ = {\n map: function (val) {\n return Math.min(255, Math.max(0, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((val - this._min$1) / this._factor$1 * 255))));\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ScaleLinear\", [ScaleLinear, ScaleLinear$, ScaleMap]);\n\n\n// wwtlib.ScaleLog\n\nfunction ScaleLog(min, max) {\n this._min$1 = 0;\n this._max$1 = 0;\n this._factor$1 = 0;\n this._logFactor$1 = 0;\n ScaleMap.call(this);\n this._min$1 = min;\n this._max$1 = max;\n this._factor$1 = max - min;\n this._logFactor$1 = 255 / Math.log(255);\n}\n\nvar ScaleLog$ = {\n map: function (val) {\n return Math.min(255, Math.max(0, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((Math.log((val - this._min$1) / this._factor$1 * 255) * this._logFactor$1))));\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ScaleLog\", [ScaleLog, ScaleLog$, ScaleMap]);\n\n\n// wwtlib.ScalePow\n\nfunction ScalePow(min, max) {\n this._min$1 = 0;\n this._max$1 = 0;\n this._factor$1 = 0;\n this._powFactor$1 = 0;\n ScaleMap.call(this);\n this._min$1 = min;\n this._max$1 = max;\n this._factor$1 = max - min;\n this._powFactor$1 = 255 / Math.pow(255, 2);\n}\n\nvar ScalePow$ = {\n map: function (val) {\n return Math.min(255, Math.max(0, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((Math.pow((val - this._min$1) / this._factor$1 * 255, 2) * this._powFactor$1))));\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ScalePow\", [ScalePow, ScalePow$, ScaleMap]);\n\n\n// wwtlib.ScaleSqrt\n\nfunction ScaleSqrt(min, max) {\n this._min$1 = 0;\n this._max$1 = 0;\n this._factor$1 = 0;\n this._sqrtFactor$1 = 0;\n ScaleMap.call(this);\n this._min$1 = min;\n this._max$1 = max;\n this._factor$1 = max - min;\n this._sqrtFactor$1 = 255 / Math.sqrt(255);\n}\n\nvar ScaleSqrt$ = {\n map: function (val) {\n return Math.min(255, Math.max(0, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((Math.sqrt((val - this._min$1) / this._factor$1 * 255) * this._sqrtFactor$1))));\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ScaleSqrt\", [ScaleSqrt, ScaleSqrt$, ScaleMap]);\n\n\n// wwtlib.HistogramEqualization\n\nfunction HistogramEqualization(image, min, max) {\n this._min$1 = 0;\n this._max$1 = 0;\n this._factor$1 = 0;\n this._maxHistogramValue$1 = 1;\n ScaleMap.call(this);\n this._min$1 = min;\n this._max$1 = max;\n this._factor$1 = max - min;\n this._histogram$1 = image.computeHistogram(10000);\n this._maxHistogramValue$1 = this._histogram$1[10000];\n this._lookup$1 = new Array(10000);\n var totalCounts = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((image.get_sizeX() * image.get_sizeY()));\n var sum = 0;\n for (var i = 0; i < 10000; i++) {\n sum += this._histogram$1[i];\n this._lookup$1[i] = (Math.min(255, (sum * 255) / totalCounts) + 0.5);\n }\n}\n\nvar HistogramEqualization$ = {\n map: function (val) {\n return this._lookup$1[Math.min(10000 - 1, Math.max(0, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((val - this._min$1) / this._factor$1 * (10000 - 1)))))];\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"HistogramEqualization\", [HistogramEqualization, HistogramEqualization$, ScaleMap]);\n\n\n// wwtlib.FitsImageJs\n\nfunction FitsImageJs(dataset, file, blob, callMeBack) {\n this.dataType = DataTypes.none;\n this._color$2 = false;\n this.isTiledFits = false;\n _fits_image_js__WEBPACK_IMPORTED_MODULE_5__.FitsImage.call(this, dataset, file, blob, callMeBack);\n}\n\nFitsImageJs.createTiledFits = function (dataset, file, callMeBack) {\n var fits = new FitsImageJs(dataset, file, null, callMeBack);\n fits.isTiledFits = true;\n return fits;\n};\n\nvar FitsImageJs$ = {\n readFromBin: function (dataView) {\n _fits_image_js__WEBPACK_IMPORTED_MODULE_5__.FitsImage.prototype.readFromBin.call(this, dataView);\n if (this.numAxis === 3) {\n if (this.axisSize[2] === 3) {\n this._color$2 = true;\n }\n }\n },\n\n readDataUnit: function (dataView, bitpix) {\n var br = new _utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_2__.BinaryReader(new Uint8Array(dataView.buffer));\n br.position = this.position;\n switch (bitpix) {\n case -64:\n this.dataType = DataTypes.doubleT;\n this._readDataUnitFloat64$2(br);\n break;\n case -32:\n this.dataType = DataTypes.floatT;\n this._readDataUnitFloat32$2(br);\n break;\n case 8:\n this.dataType = DataTypes.byteT;\n this._readDataUnitUint8$2(br);\n break;\n case 16:\n this.dataType = DataTypes.int16T;\n this._readDataUnitInt16$2(br);\n break;\n case 32:\n this.dataType = DataTypes.int32T;\n this._readDataUnitInt32$2(br);\n break;\n }\n this.fitsProperties.lowerCut = this.fitsProperties.minVal;\n this.fitsProperties.upperCut = this.fitsProperties.maxVal;\n },\n _readDataUnitUint8$2: function (br) {\n var buffer = new Array(this.bufferSize);\n this._dataBuffer$2 = buffer;\n for (var i = 0; i < this.bufferSize; i++) {\n buffer[i] = br.readByte();\n if (this.fitsProperties.minVal > buffer[i]) {\n this.fitsProperties.minVal = buffer[i];\n }\n if (this.fitsProperties.maxVal < buffer[i]) {\n this.fitsProperties.maxVal = buffer[i];\n }\n }\n },\n _readDataUnitInt16$2: function (br) {\n var buffer = new Array(this.bufferSize);\n this._dataBuffer$2 = buffer;\n for (var i = 0; i < this.bufferSize; i++) {\n buffer[i] = ((br.readSByte() * 256) + br.readByte());\n if (this.fitsProperties.minVal > buffer[i]) {\n this.fitsProperties.minVal = buffer[i];\n }\n if (this.fitsProperties.maxVal < buffer[i]) {\n this.fitsProperties.maxVal = buffer[i];\n }\n }\n },\n _readDataUnitInt32$2: function (br) {\n var buffer = new Array(this.bufferSize);\n this._dataBuffer$2 = buffer;\n for (var i = 0; i < this.bufferSize; i++) {\n buffer[i] = (br.readSByte() << 24) + (br.readSByte() << 16) + (br.readSByte() << 8) + br.readByte();\n if (this.fitsProperties.minVal > buffer[i]) {\n this.fitsProperties.minVal = buffer[i];\n }\n if (this.fitsProperties.maxVal < buffer[i]) {\n this.fitsProperties.maxVal = buffer[i];\n }\n }\n },\n _readDataUnitFloat32$2: function (br) {\n var buffer = new Array(this.bufferSize);\n this._dataBuffer$2 = buffer;\n var part = new Uint8Array(4);\n for (var i = 0; i < this.bufferSize; i++) {\n part[3] = br.readByte();\n part[2] = br.readByte();\n part[1] = br.readByte();\n part[0] = br.readByte();\n buffer[i] = new Float32Array(part.buffer, 0, 1)[0];\n if (this.fitsProperties.minVal > buffer[i]) {\n this.fitsProperties.minVal = buffer[i];\n }\n if (this.fitsProperties.maxVal < buffer[i]) {\n this.fitsProperties.maxVal = buffer[i];\n }\n }\n },\n _readDataUnitFloat64$2: function (br) {\n var buffer = new Array(this.bufferSize);\n var part = new Uint8Array(8);\n this._dataBuffer$2 = buffer;\n for (var i = 0; i < this.bufferSize; i++) {\n part[7] = br.readByte();\n part[6] = br.readByte();\n part[5] = br.readByte();\n part[4] = br.readByte();\n part[3] = br.readByte();\n part[2] = br.readByte();\n part[1] = br.readByte();\n part[0] = br.readByte();\n buffer[i] = new Float64Array(part.buffer, 0, 1)[0];\n if (this.fitsProperties.minVal > buffer[i]) {\n this.fitsProperties.minVal = buffer[i];\n }\n if (this.fitsProperties.maxVal < buffer[i]) {\n this.fitsProperties.maxVal = buffer[i];\n }\n }\n },\n\n getBitmap: function () {\n if (!this.fitsProperties.upperCut && !this.fitsProperties.lowerCut) {\n this.fitsProperties.lowerCut = this.fitsProperties.minVal;\n this.fitsProperties.upperCut = this.fitsProperties.maxVal;\n }\n return this.getScaledBitmap(this.fitsProperties.lowerCut, this.fitsProperties.upperCut, this.fitsProperties.scaleType, 0, this.fitsProperties.colorMapName);\n },\n\n getScaledBitmap: function (min, max, scaleType, z, colorMapperName) {\n var scale;\n this.fitsProperties.scaleType = scaleType;\n this.fitsProperties.lowerCut = min;\n this.fitsProperties.upperCut = max;\n this.fitsProperties.colorMapName = colorMapperName;\n var colorMapper = _color_map_container_js__WEBPACK_IMPORTED_MODULE_4__.ColorMapContainer.fromNamedColormap(colorMapperName);\n switch (scaleType) {\n case 0:\n default:\n scale = new ScaleLinear(min, max);\n break;\n case 1:\n scale = new ScaleLog(min, max);\n break;\n case 2:\n scale = new ScalePow(min, max);\n break;\n case 3:\n scale = new ScaleSqrt(min, max);\n break;\n case 4:\n scale = new HistogramEqualization(this, min, max);\n break;\n }\n try {\n switch (this.dataType) {\n case DataTypes.byteT:\n return this._getBitmapByte$2(min, max, scale, 0, colorMapper);\n case DataTypes.int16T:\n return this.getBitmapShort(min, max, scale, 0, colorMapper);\n case DataTypes.int32T:\n return this._getBitmapInt$2(min, max, scale, 0, colorMapper);\n case DataTypes.floatT:\n return this._getBitmapFloat$2(min, max, scale, 0, colorMapper);\n case DataTypes.doubleT:\n return this._getBitmapDouble$2(min, max, scale, 0, colorMapper);\n case DataTypes.none:\n default:\n return _utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_3__.Bitmap.create(100, 100);\n }\n }\n catch ($e1) {\n return _utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_3__.Bitmap.create(10, 10);\n }\n },\n _setPixelWithColorMap$2: function (bmp, x, y, val, colorMapper) {\n if (colorMapper == null) {\n bmp.setPixel(x, y, val, val, val, (this.fitsProperties.transparentBlack && !val) ? 0 : 255);\n return;\n }\n var pixel_value = val / 255;\n if (Number.isNaN(pixel_value)) {\n // This case \"can't happen\" in C#, but due to JavaScript's numerical\n // model, it can happen here.\n bmp.setPixel(x, y, 0, 0, 0, 0);\n return;\n }\n var pixel_color = colorMapper.findClosestColor(pixel_value);\n bmp.setPixel(x, y, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(pixel_color.r), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(pixel_color.g), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(pixel_color.b), (this.fitsProperties.transparentBlack && !val) ? 0 : 255);\n },\n _getBitmapByte$2: function (min, max, scale, z, colorMapper) {\n var buf = this._dataBuffer$2;\n var factor = max - min;\n var stride = this.axisSize[0];\n var page = this.axisSize[0] * this.axisSize[1] * z;\n var bmp = _utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_3__.Bitmap.create(this.axisSize[0], this.axisSize[1]);\n for (var y = 0; y < this.axisSize[1]; y++) {\n var indexY = ((this.axisSize[1] - 1) - y);\n for (var x = 0; x < this.axisSize[0]; x++) {\n if (this._color$2) {\n var datR = buf[(x + indexY * stride)];\n var datG = buf[(x + indexY * stride) + page];\n var datB = buf[(x + indexY * stride) + page * 2];\n if (this.fitsProperties.containsBlanks && datR === this.fitsProperties.blankValue) {\n bmp.setPixel(x, y, 0, 0, 0, 0);\n }\n else {\n var r = scale.map(datR);\n var g = scale.map(datG);\n var b = scale.map(datB);\n bmp.setPixel(x, y, r, g, b, 255);\n }\n }\n else {\n var dataValue = buf[x + indexY * stride + page];\n if (this.fitsProperties.containsBlanks && dataValue === this.fitsProperties.blankValue) {\n bmp.setPixel(x, y, 0, 0, 0, 0);\n }\n else {\n var val = scale.map(dataValue);\n this._setPixelWithColorMap$2(bmp, x, y, val, colorMapper);\n }\n }\n }\n }\n return bmp;\n },\n _getBitmapDouble$2: function (min, max, scale, z, colorMapper) {\n var buf = this._dataBuffer$2;\n var factor = max - min;\n var stride = this.axisSize[0];\n var page = this.axisSize[0] * this.axisSize[1] * z;\n var bmp = _utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_3__.Bitmap.create(this.axisSize[0], this.axisSize[1]);\n for (var y = 0; y < this.axisSize[1]; y++) {\n var indexY = ((this.axisSize[1] - 1) - y);\n for (var x = 0; x < this.axisSize[0]; x++) {\n if (this._color$2) {\n var datR = buf[(x + indexY * stride)];\n var datG = buf[(x + indexY * stride) + page];\n var datB = buf[(x + indexY * stride) + page * 2];\n if (this.fitsProperties.containsBlanks && datR === this.fitsProperties.blankValue) {\n bmp.setPixel(x, y, 0, 0, 0, 0);\n }\n else {\n var r = scale.map(datR);\n var g = scale.map(datG);\n var b = scale.map(datB);\n bmp.setPixel(x, y, r, g, b, 255);\n }\n }\n else {\n var dataValue = buf[x + indexY * stride + page];\n if (this.fitsProperties.containsBlanks && dataValue === this.fitsProperties.blankValue) {\n bmp.setPixel(x, y, 0, 0, 0, 0);\n }\n else {\n var val = scale.map(dataValue);\n this._setPixelWithColorMap$2(bmp, x, y, val, colorMapper);\n }\n }\n }\n }\n return bmp;\n },\n _getBitmapFloat$2: function (min, max, scale, z, colorMapper) {\n var buf = this._dataBuffer$2;\n var factor = max - min;\n var stride = this.axisSize[0];\n var page = this.axisSize[0] * this.axisSize[1] * z;\n var bmp = _utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_3__.Bitmap.create(this.axisSize[0], this.axisSize[1]);\n for (var y = 0; y < this.axisSize[1]; y++) {\n var indexY = ((this.axisSize[1] - 1) - y);\n for (var x = 0; x < this.axisSize[0]; x++) {\n if (this._color$2) {\n var datR = buf[(x + indexY * stride)];\n var datG = buf[(x + indexY * stride) + page];\n var datB = buf[(x + indexY * stride) + page * 2];\n if (this.fitsProperties.containsBlanks && datR === this.fitsProperties.blankValue) {\n bmp.setPixel(x, y, 0, 0, 0, 0);\n }\n else {\n var r = scale.map(datR);\n var g = scale.map(datG);\n var b = scale.map(datB);\n bmp.setPixel(x, y, r, g, b, 255);\n }\n }\n else {\n var dataValue = buf[x + indexY * stride + page];\n if (this.fitsProperties.containsBlanks && dataValue === this.fitsProperties.blankValue) {\n bmp.setPixel(x, y, 0, 0, 0, 0);\n }\n else {\n var val = scale.map(dataValue);\n this._setPixelWithColorMap$2(bmp, x, y, val, colorMapper);\n }\n }\n }\n }\n return bmp;\n },\n _getBitmapInt$2: function (min, max, scale, z, colorMapper) {\n var buf = this._dataBuffer$2;\n var factor = max - min;\n var stride = this.axisSize[0];\n var page = this.axisSize[0] * this.axisSize[1] * z;\n var bmp = _utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_3__.Bitmap.create(this.axisSize[0], this.axisSize[1]);\n for (var y = 0; y < this.axisSize[1]; y++) {\n var indexY = ((this.axisSize[1] - 1) - y);\n for (var x = 0; x < this.axisSize[0]; x++) {\n if (this._color$2) {\n var datR = buf[(x + indexY * stride)];\n var datG = buf[(x + indexY * stride) + page];\n var datB = buf[(x + indexY * stride) + page * 2];\n if (this.fitsProperties.containsBlanks && datR === this.fitsProperties.blankValue) {\n bmp.setPixel(x, y, 0, 0, 0, 0);\n }\n else {\n var r = scale.map(datR);\n var g = scale.map(datG);\n var b = scale.map(datB);\n bmp.setPixel(x, y, r, g, b, 255);\n }\n }\n else {\n var dataValue = buf[x + indexY * stride + page];\n if (this.fitsProperties.containsBlanks && dataValue === this.fitsProperties.blankValue) {\n bmp.setPixel(x, y, 0, 0, 0, 0);\n }\n else {\n var val = scale.map(dataValue);\n this._setPixelWithColorMap$2(bmp, x, y, val, colorMapper);\n }\n }\n }\n }\n return bmp;\n },\n\n getBitmapShort: function (min, max, scale, z, colorMapper) {\n var buf = this._dataBuffer$2;\n var factor = max - min;\n var stride = this.axisSize[0];\n var page = this.axisSize[0] * this.axisSize[1] * z;\n var bmp = _utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_3__.Bitmap.create(this.axisSize[0], this.axisSize[1]);\n for (var y = 0; y < this.axisSize[1]; y++) {\n var indexY = ((this.axisSize[1] - 1) - y);\n for (var x = 0; x < this.axisSize[0]; x++) {\n if (this._color$2) {\n var datR = buf[(x + indexY * stride)];\n var datG = buf[(x + indexY * stride) + page];\n var datB = buf[(x + indexY * stride) + page * 2];\n if (this.fitsProperties.containsBlanks && datR === this.fitsProperties.blankValue) {\n bmp.setPixel(x, y, 0, 0, 0, 0);\n }\n else {\n var r = scale.map(datR);\n var g = scale.map(datG);\n var b = scale.map(datB);\n bmp.setPixel(x, y, r, g, b, 255);\n }\n }\n else {\n var dataValue = buf[x + indexY * stride + page];\n if (this.fitsProperties.containsBlanks && dataValue === this.fitsProperties.blankValue) {\n bmp.setPixel(x, y, 0, 0, 0, 0);\n }\n else {\n var val = scale.map(dataValue);\n this._setPixelWithColorMap$2(bmp, x, y, val, colorMapper);\n }\n }\n }\n }\n return bmp;\n },\n\n computeWcs: function () {\n if (!this.isTiledFits) {\n _fits_image_js__WEBPACK_IMPORTED_MODULE_5__.FitsImage.prototype.computeWcs.call(this);\n }\n },\n\n populateHistogram: function (histogram) {\n switch (this.dataType) {\n case DataTypes.byteT:\n this._populateHistogramByte$2(histogram);\n break;\n case DataTypes.int16T:\n this._populateHistogramInt16$2(histogram);\n break;\n case DataTypes.int32T:\n this._populateHistogramInt32$2(histogram);\n break;\n case DataTypes.floatT:\n this._populateHistogramFloat$2(histogram);\n break;\n case DataTypes.doubleT:\n this._populateHistogramDouble$2(histogram);\n break;\n }\n },\n _populateHistogramDouble$2: function (histogram) {\n var buckets = histogram.length;\n var buf = this._dataBuffer$2;\n var factor = (this.fitsProperties.maxVal - this.fitsProperties.minVal) / buckets;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(buf);\n while ($enum1.moveNext()) {\n var val = $enum1.current;\n if (!Number.isNaN(val)) {\n histogram[Math.min(buckets - 1, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((val - this.fitsProperties.minVal) / factor)))]++;\n }\n }\n },\n _populateHistogramFloat$2: function (histogram) {\n var buckets = histogram.length;\n var buf = this._dataBuffer$2;\n var factor = (this.fitsProperties.maxVal - this.fitsProperties.minVal) / buckets;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(buf);\n while ($enum1.moveNext()) {\n var val = $enum1.current;\n if (!(val === _fits_image_js__WEBPACK_IMPORTED_MODULE_5__.FitsImage.naN)) {\n histogram[Math.min(buckets - 1, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((val - this.fitsProperties.minVal) / factor)))]++;\n }\n }\n },\n _populateHistogramInt32$2: function (histogram) {\n var buckets = histogram.length;\n var buf = this._dataBuffer$2;\n var factor = (this.fitsProperties.maxVal - this.fitsProperties.minVal) / buckets;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(buf);\n while ($enum1.moveNext()) {\n var val = $enum1.current;\n histogram[Math.min(buckets - 1, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((val - this.fitsProperties.minVal) / factor)))]++;\n }\n },\n _populateHistogramInt16$2: function (histogram) {\n var buckets = histogram.length;\n var buf = this._dataBuffer$2;\n var factor = (this.fitsProperties.maxVal - this.fitsProperties.minVal) / buckets;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(buf);\n while ($enum1.moveNext()) {\n var val = $enum1.current;\n histogram[Math.min(buckets - 1, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((val - this.fitsProperties.minVal) / factor)))]++;\n }\n },\n _populateHistogramByte$2: function (histogram) {\n var buckets = histogram.length;\n var buf = this._dataBuffer$2;\n var factor = (this.fitsProperties.maxVal - this.fitsProperties.minVal) / buckets;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(buf);\n while ($enum1.moveNext()) {\n var val = $enum1.current;\n histogram[Math.min(buckets - 1, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((val - this.fitsProperties.minVal) / factor)))]++;\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"FitsImageJs\", [FitsImageJs, FitsImageJs$, _fits_image_js__WEBPACK_IMPORTED_MODULE_5__.FitsImage]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/fits_image_tile.js\":\n/*!***************************************!*\\\n !*** ./esm/layers/fits_image_tile.js ***!\n \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FitsImageTile: () => (/* binding */ FitsImageTile)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _fits_image_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fits_image.js */ \"./esm/layers/fits_image.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A FITS image used as a tile in a pyramid.\n\n\n\n\n\n// wwtlib.FitsImageTile\n//\n// Min & Max are already known for pyramid FITS.\n// To improve performance, the below per pixel methods are overriden\n\nfunction FitsImageTile(dataset, file, callMeBack) {\n _fits_image_js__WEBPACK_IMPORTED_MODULE_1__.FitsImage.call(this, dataset, file, null, callMeBack);\n}\n\nvar FitsImageTile$ = {\n readDataUnitFloat64: function (dataView) {\n var i = 0;\n while (this.position < dataView.byteLength) {\n this.dataUnit[i] = dataView.getFloat64(this.position, false);\n i++;\n this.position += 8;\n }\n },\n\n readDataUnitFloat32: function (dataView) {\n var i = 0;\n while (this.position < dataView.byteLength) {\n this.dataUnit[i] = dataView.getFloat32(this.position, false);\n i++;\n this.position += 4;\n }\n },\n\n readDataUnitUint8: function (dataView) {\n var i = 0;\n while (this.position < dataView.byteLength) {\n this.dataUnit[i] = dataView.getUint8(this.position);\n i++;\n this.position += 1;\n }\n },\n\n readDataUnitInt16: function (dataView) {\n var i = 0;\n while (this.position < dataView.byteLength) {\n this.dataUnit[i] = dataView.getInt16(this.position, false);\n i++;\n this.position += 2;\n }\n },\n\n readDataUnitInt32: function (dataView) {\n var i = 0;\n while (this.position < dataView.byteLength) {\n this.dataUnit[i] = dataView.getInt32(this.position, false);\n i++;\n this.position += 4;\n }\n },\n\n computeWcs: function () { }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"FitsImageTile\", [FitsImageTile, FitsImageTile$, _fits_image_js__WEBPACK_IMPORTED_MODULE_1__.FitsImage]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/from_xml.js\":\n/*!********************************!*\\\n !*** ./esm/layers/from_xml.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ layerFromXml: () => (/* binding */ layerFromXml)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _layer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layer.js */ \"./esm/layers/layer.js\");\n/* harmony import */ var _great_circle_route_layer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./great_circle_route_layer.js */ \"./esm/layers/great_circle_route_layer.js\");\n/* harmony import */ var _grid_layer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./grid_layer.js */ \"./esm/layers/grid_layer.js\");\n/* harmony import */ var _imageset_layer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./imageset_layer.js */ \"./esm/layers/imageset_layer.js\");\n/* harmony import */ var _object3d_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./object3d.js */ \"./esm/layers/object3d.js\");\n/* harmony import */ var _orbit_layer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./orbit_layer.js */ \"./esm/layers/orbit_layer.js\");\n/* harmony import */ var _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./spreadsheet_layer.js */ \"./esm/layers/spreadsheet_layer.js\");\n/* harmony import */ var _vo_table_layer_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./vo_table_layer.js */ \"./esm/layers/vo_table_layer.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Set up the `Layer.fromXml()` function, which depends on a bunch of Layer\n// subclasses.\n//\n// There are a variety of ways that we could set this up, possibly including\n// just implementing this function in `layer.js`. This is a more conservating\n// approach that tries to avoid circular module imports.\n\n\n\n\n\n\n\n\n\n\n\n\n// The `layerFromXml` function, which we also install as `Layer.fromXml()`. It\n// needs to be aware of a bunch of layer subclasses.\nfunction layerFromXml(layerNode, someFlag) {\n var layerClassName = layerNode.attributes.getNamedItem('Type').nodeValue;\n\n var overLayType = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(layerClassName, 'TerraViewer.', '');\n if (overLayType == null) {\n return null;\n }\n\n var newLayer = null;\n switch (overLayType) {\n case 'SpreadSheetLayer':\n newLayer = new _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_7__.SpreadSheetLayer();\n break;\n case 'GreatCirlceRouteLayer':\n newLayer = new _great_circle_route_layer_js__WEBPACK_IMPORTED_MODULE_2__.GreatCirlceRouteLayer();\n break;\n case 'GridLayer':\n newLayer = new _grid_layer_js__WEBPACK_IMPORTED_MODULE_3__.GridLayer();\n break;\n case 'ImageSetLayer':\n newLayer = new _imageset_layer_js__WEBPACK_IMPORTED_MODULE_4__.ImageSetLayer();\n break;\n case 'Object3dLayer':\n newLayer = new _object3d_js__WEBPACK_IMPORTED_MODULE_5__.Object3dLayer();\n break;\n case 'OrbitLayer':\n newLayer = new _orbit_layer_js__WEBPACK_IMPORTED_MODULE_6__.OrbitLayer();\n break;\n case 'VoTableLayer':\n newLayer = new _vo_table_layer_js__WEBPACK_IMPORTED_MODULE_8__.VoTableLayer();\n break;\n default:\n return null;\n }\n\n newLayer.initFromXml(layerNode);\n return newLayer;\n}\n\n_layer_js__WEBPACK_IMPORTED_MODULE_1__.Layer.fromXml = layerFromXml;\n\n\n/***/ }),\n\n/***/ \"./esm/layers/great_circle_route_layer.js\":\n/*!************************************************!*\\\n !*** ./esm/layers/great_circle_route_layer.js ***!\n \\************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GreatCirlceRouteLayer: () => (/* binding */ GreatCirlceRouteLayer)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _layer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./layer.js */ \"./esm/layers/layer.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A layer that renders progress along a great circle.\n//\n// Yes, there is an egregious typo in the name of this class. But to maintain\n// API compatibility, we're not fixing it.\n\n\n\n\n\n\n\n\n// wwtlib.GreatCirlceRouteLayer\n\nfunction GreatCirlceRouteLayer() {\n this._triangleList$1 = null;\n this._latStart$1 = 0;\n this._lngStart$1 = 0;\n this._latEnd$1 = 0;\n this._lngEnd$1 = 0;\n this._width$1 = 4;\n this._percentComplete$1 = 100;\n _layer_js__WEBPACK_IMPORTED_MODULE_4__.Layer.call(this);\n}\n\nvar GreatCirlceRouteLayer$ = {\n // Even if we fix the typo in this class's name in an API break, we need to\n // maintain it here to maintain compatibility with existing data files and\n // older WWT clients.\n getTypeName: function () {\n return 'TerraViewer.GreatCirlceRouteLayer';\n },\n\n cleanUp: function () {\n if (this._triangleList$1 != null) {\n this._triangleList$1.clear();\n }\n this._triangleList$1 = null;\n _layer_js__WEBPACK_IMPORTED_MODULE_4__.Layer.prototype.cleanUp.call(this);\n },\n\n draw: function (renderContext, opacity, flat) {\n if (this._triangleList$1 == null) {\n this._initializeRoute$1(renderContext);\n }\n this._triangleList$1.jNow = this._percentComplete$1 / 100;\n this._triangleList$1.draw(renderContext, opacity * this.get_opacity(), 2);\n return true;\n },\n _initializeRoute$1: function (renderContext) {\n this._triangleList$1 = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_2__.TriangleList();\n this._triangleList$1.decay = 1000;\n this._triangleList$1.sky = this.get_astronomical();\n this._triangleList$1.timeSeries = true;\n this._triangleList$1.depthBuffered = false;\n this._triangleList$1.autoTime = false;\n var steps = 500;\n var start = _coordinates_js__WEBPACK_IMPORTED_MODULE_3__.Coordinates.geoTo3dDouble(this._latStart$1, this._lngStart$1);\n var end = _coordinates_js__WEBPACK_IMPORTED_MODULE_3__.Coordinates.geoTo3dDouble(this._latEnd$1, this._lngEnd$1);\n var dir = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.subtractVectors(end, start);\n dir.normalize();\n var startNormal = start;\n startNormal.normalize();\n var left = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.cross(startNormal, dir);\n var right = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.cross(dir, startNormal);\n left.normalize();\n right.normalize();\n left.multiply(0.001 * this._width$1);\n right.multiply(0.001 * this._width$1);\n var lastLeft = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d();\n var lastRight = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d();\n var firstTime = true;\n for (var i = 0; i <= steps; i++) {\n var v = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.lerp(start, end, i / steps);\n v.normalize();\n var cl = v;\n var cr = v;\n cl.add(left);\n cr.add(right);\n if (!firstTime) {\n this._triangleList$1.addQuad(lastRight, lastLeft, cr, cl, this.get_color(), new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_2__.Dates(i / steps, 2));\n }\n else {\n firstTime = false;\n }\n lastLeft = cl;\n lastRight = cr;\n }\n },\n\n getParams: function () {\n return [this._percentComplete$1];\n },\n\n getParamNames: function () {\n return ['Percentage'];\n },\n\n setParams: function (paramList) {\n if (paramList.length > 0) {\n this._percentComplete$1 = paramList[0];\n }\n },\n\n get_latStart: function () {\n return this._latStart$1;\n },\n\n set_latStart: function (value) {\n if (this._latStart$1 !== value) {\n this._latStart$1 = value;\n this.version++;\n }\n return value;\n },\n\n get_lngStart: function () {\n return this._lngStart$1;\n },\n\n set_lngStart: function (value) {\n if (this._lngStart$1 !== value) {\n this._lngStart$1 = value;\n this.version++;\n }\n return value;\n },\n\n get_latEnd: function () {\n return this._latEnd$1;\n },\n\n set_latEnd: function (value) {\n if (this._latEnd$1 !== value) {\n this._latEnd$1 = value;\n this.version++;\n }\n return value;\n },\n\n get_lngEnd: function () {\n return this._lngEnd$1;\n },\n\n set_lngEnd: function (value) {\n if (this._lngEnd$1 !== value) {\n this._lngEnd$1 = value;\n this.version++;\n }\n return value;\n },\n\n get_width: function () {\n return this._width$1;\n },\n\n set_width: function (value) {\n if (this._width$1 !== value) {\n this._width$1 = value;\n this.version++;\n }\n return value;\n },\n\n get_percentComplete: function () {\n return this._percentComplete$1;\n },\n\n set_percentComplete: function (value) {\n if (this._percentComplete$1 !== value) {\n this._percentComplete$1 = value;\n this.version++;\n }\n return value;\n },\n\n writeLayerProperties: function (xmlWriter) {\n xmlWriter._writeAttributeString('LatStart', this.get_latStart().toString());\n xmlWriter._writeAttributeString('LngStart', this.get_lngStart().toString());\n xmlWriter._writeAttributeString('LatEnd', this.get_latEnd().toString());\n xmlWriter._writeAttributeString('LngEnd', this.get_lngEnd().toString());\n xmlWriter._writeAttributeString('Width', this.get_width().toString());\n xmlWriter._writeAttributeString('PercentComplete', this.get_percentComplete().toString());\n },\n\n initializeFromXml: function (node) {\n this._latStart$1 = parseFloat(node.attributes.getNamedItem('LatStart').nodeValue);\n this._lngStart$1 = parseFloat(node.attributes.getNamedItem('LngStart').nodeValue);\n this._latEnd$1 = parseFloat(node.attributes.getNamedItem('LatEnd').nodeValue);\n this._lngEnd$1 = parseFloat(node.attributes.getNamedItem('LngEnd').nodeValue);\n this._width$1 = parseFloat(node.attributes.getNamedItem('Width').nodeValue);\n this._percentComplete$1 = parseFloat(node.attributes.getNamedItem('PercentComplete').nodeValue);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"GreatCirlceRouteLayer\", [GreatCirlceRouteLayer, GreatCirlceRouteLayer$, _layer_js__WEBPACK_IMPORTED_MODULE_4__.Layer]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/grid_layer.js\":\n/*!**********************************!*\\\n !*** ./esm/layers/grid_layer.js ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GridLayer: () => (/* binding */ GridLayer)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _grids_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../grids.js */ \"./esm/grids.js\");\n/* harmony import */ var _layer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./layer.js */ \"./esm/layers/layer.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A layer that renders a coordinate grid on a planet.\n\n\n\n\n\n\n// wwtlib.GridLayer\n\nfunction GridLayer() {\n _layer_js__WEBPACK_IMPORTED_MODULE_2__.Layer.call(this);\n}\n\nvar GridLayer$ = {\n draw: function (renderContext, opacity, flat) {\n _grids_js__WEBPACK_IMPORTED_MODULE_1__.Grids.drawPlanetGrid(renderContext, opacity * this.get_opacity(), this.get_color());\n _grids_js__WEBPACK_IMPORTED_MODULE_1__.Grids.drawPlanetGridText(renderContext, opacity * this.get_opacity(), this.get_color());\n return true;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"GridLayer\", [GridLayer, GridLayer$, _layer_js__WEBPACK_IMPORTED_MODULE_2__.Layer]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/imageset_layer.js\":\n/*!**************************************!*\\\n !*** ./esm/layers/imageset_layer.js ***!\n \\**************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ImageSetLayer: () => (/* binding */ ImageSetLayer)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _utilities_histogram_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utilities/histogram.js */ \"./esm/utilities/histogram.js\");\n/* harmony import */ var _color_map_container_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./color_map_container.js */ \"./esm/layers/color_map_container.js\");\n/* harmony import */ var _fits_image_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./fits_image.js */ \"./esm/layers/fits_image.js\");\n/* harmony import */ var _fits_image_js_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./fits_image_js.js */ \"./esm/layers/fits_image_js.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../imageset.js */ \"./esm/imageset.js\");\n/* harmony import */ var _layer_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./layer.js */ \"./esm/layers/layer.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A layer that renders an arbitrary imageset\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.ImageSetLayer\n\nfunction ImageSetLayer() {\n this._imageSet$1 = null;\n this._extension$1 = '.txt';\n this._overrideDefaultLayer$1 = false;\n this._loaded$1 = false;\n _layer_js__WEBPACK_IMPORTED_MODULE_9__.Layer.call(this);\n}\n\nImageSetLayer.create = function (set) {\n var isl = new ImageSetLayer();\n isl._imageSet$1 = set;\n return isl;\n};\n\nvar ImageSetLayer$ = {\n get_imageSet: function () {\n return this._imageSet$1;\n },\n\n set_imageSet: function (value) {\n this._imageSet$1 = value;\n return value;\n },\n\n get_overrideDefaultLayer: function () {\n return this._overrideDefaultLayer$1;\n },\n\n set_overrideDefaultLayer: function (value) {\n this._overrideDefaultLayer$1 = value;\n return value;\n },\n\n getFitsImage: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(this._imageSet$1.get_wcsImage(), _fits_image_js__WEBPACK_IMPORTED_MODULE_6__.FitsImage);\n },\n\n // Test whether our underlying imagery is FITS based.\n //\n // This can come in two flavors: a single FITS image, or tiled FITS.\n // Note that even though the FileType/Extension field can currently\n // specify multiple file formats, the rendering code requires that the\n // extension is exactly \".fits\" for FITS rendering to kick in.\n _isFitsImageset$1: function () {\n var hasFitsExt = this._imageSet$1.get_extension() === '.fits';\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this._imageSet$1.get_wcsImage(), _fits_image_js__WEBPACK_IMPORTED_MODULE_6__.FitsImage) || (this._imageSet$1.get_wcsImage() == null && hasFitsExt);\n },\n\n initializeFromXml: function (node) {\n var imageSetNode = _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.selectSingleNode(node, 'ImageSet');\n this._imageSet$1 = _imageset_js__WEBPACK_IMPORTED_MODULE_8__.Imageset.fromXMLNode(imageSetNode);\n if (node.attributes.getNamedItem('Extension') != null) {\n this._extension$1 = node.attributes.getNamedItem('Extension').nodeValue;\n }\n if (node.attributes.getNamedItem('ScaleType') != null) {\n this.get_imageSet().get_fitsProperties().scaleType = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('ScaleTypes', node.attributes.getNamedItem('ScaleType').nodeValue);\n }\n if (node.attributes.getNamedItem('MinValue') != null) {\n this.get_imageSet().get_fitsProperties().minVal = parseFloat(node.attributes.getNamedItem('MinValue').nodeValue);\n this.get_imageSet().get_fitsProperties().lowerCut = (node.attributes.getNamedItem('LowerCut') != null) ? parseFloat(node.attributes.getNamedItem('LowerCut').nodeValue) : this.get_imageSet().get_fitsProperties().minVal;\n }\n if (node.attributes.getNamedItem('MaxValue') != null) {\n this.get_imageSet().get_fitsProperties().maxVal = parseFloat(node.attributes.getNamedItem('MaxValue').nodeValue);\n this.get_imageSet().get_fitsProperties().upperCut = (node.attributes.getNamedItem('UpperCut') != null) ? parseFloat(node.attributes.getNamedItem('UpperCut').nodeValue) : this.get_imageSet().get_fitsProperties().maxVal;\n }\n if (node.attributes.getNamedItem('ColorMapperName') != null) {\n this.get_imageSet().get_fitsProperties().colorMapName = node.attributes.getNamedItem('ColorMapperName').nodeValue;\n }\n if (node.attributes.getNamedItem('OverrideDefault') != null) {\n this._overrideDefaultLayer$1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('OverrideDefault').nodeValue);\n }\n },\n\n draw: function (renderContext, opacity, flat) {\n if (!this._loaded$1) {\n return false;\n }\n renderContext.set_worldBase(renderContext.get_world());\n renderContext.set_viewBase(renderContext.get_view());\n renderContext.makeFrustum();\n renderContext.drawImageSet(this._imageSet$1, this.get_opacity() * opacity * 100);\n return true;\n },\n\n writeLayerProperties: function (xmlWriter) {\n if (this._imageSet$1.get_wcsImage() != null) {\n if (this._isFitsImageset$1()) {\n this._extension$1 = '.fit';\n }\n else {\n this._extension$1 = '.png';\n }\n xmlWriter._writeAttributeString('Extension', this._extension$1);\n }\n if (this._isFitsImageset$1()) {\n xmlWriter._writeAttributeString('ScaleType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('ScaleTypes', this._imageSet$1.get_fitsProperties().scaleType));\n xmlWriter._writeAttributeString('MinValue', this._imageSet$1.get_fitsProperties().minVal.toString());\n xmlWriter._writeAttributeString('MaxValue', this._imageSet$1.get_fitsProperties().maxVal.toString());\n xmlWriter._writeAttributeString('LowerCut', this._imageSet$1.get_fitsProperties().lowerCut.toString());\n xmlWriter._writeAttributeString('UpperCut', this._imageSet$1.get_fitsProperties().upperCut.toString());\n if (this._imageSet$1.get_fitsProperties().colorMapName != null) {\n xmlWriter._writeAttributeString('ColorMapperName', this._imageSet$1.get_fitsProperties().colorMapName);\n }\n }\n xmlWriter._writeAttributeString('OverrideDefault', this._overrideDefaultLayer$1.toString());\n _imageset_js__WEBPACK_IMPORTED_MODULE_8__.Imageset.saveToXml(xmlWriter, this._imageSet$1, '');\n _layer_js__WEBPACK_IMPORTED_MODULE_9__.Layer.prototype.writeLayerProperties.call(this, xmlWriter);\n },\n\n getTypeName: function () {\n return 'TerraViewer.ImageSetLayer';\n },\n\n cleanUp: function () {\n _layer_js__WEBPACK_IMPORTED_MODULE_9__.Layer.prototype.cleanUp.call(this);\n },\n\n addFilesToCabinet: function (fc) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this._imageSet$1.get_wcsImage(), _fits_image_js__WEBPACK_IMPORTED_MODULE_6__.FitsImage)) {\n var fName = (this._imageSet$1.get_wcsImage()).get_filename();\n var fileName = fc.tempDirectory + _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0}\\\\{1}{2}', fc.get_packageID(), this.id.toString(), this._extension$1);\n fc.addFile(fileName, (this._imageSet$1.get_wcsImage()).sourceBlob);\n }\n },\n\n getParamNames: function () {\n return _layer_js__WEBPACK_IMPORTED_MODULE_9__.Layer.prototype.getParamNames.call(this);\n },\n\n getParams: function () {\n return _layer_js__WEBPACK_IMPORTED_MODULE_9__.Layer.prototype.getParams.call(this);\n },\n\n setParams: function (paramList) {\n _layer_js__WEBPACK_IMPORTED_MODULE_9__.Layer.prototype.setParams.call(this, paramList);\n },\n\n setImageScale: function (scaleType, min, max) {\n console.warn('SetImageScale is considered deprecated. Use setImageScaleRaw or setImageScalePhysical instead.');\n this.setImageScaleRaw(scaleType, min, max);\n },\n\n setImageScaleRaw: function (scaleType, min, max) {\n this.get_imageSet().get_fitsProperties().lowerCut = min;\n this.get_imageSet().get_fitsProperties().upperCut = max;\n this.get_imageSet().get_fitsProperties().scaleType = scaleType;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this._imageSet$1.get_wcsImage(), _fits_image_js_js__WEBPACK_IMPORTED_MODULE_7__.FitsImageJs)) {\n _utilities_histogram_js__WEBPACK_IMPORTED_MODULE_4__.Histogram.updateScale(this, scaleType, min, max);\n }\n },\n\n setImageScalePhysical: function (scaleType, min, max) {\n var newMin = min;\n var newMax = max;\n if (this._isFitsImageset$1()) {\n newMin = (newMin - this._imageSet$1.get_fitsProperties().bZero) / this._imageSet$1.get_fitsProperties().bScale;\n newMax = (newMax - this._imageSet$1.get_fitsProperties().bZero) / this._imageSet$1.get_fitsProperties().bScale;\n }\n this.setImageScaleRaw(scaleType, newMin, newMax);\n },\n\n setImageZ: function (z) {\n if (this._isFitsImageset$1()) {\n _utilities_histogram_js__WEBPACK_IMPORTED_MODULE_4__.Histogram.updateImage(this, z);\n }\n },\n\n get_colorMapperName: function () {\n return this.get_imageSet().get_fitsProperties().colorMapName;\n },\n\n set_colorMapperName: function (value) {\n if (_color_map_container_js__WEBPACK_IMPORTED_MODULE_5__.ColorMapContainer.fromNamedColormap(value) == null) {\n throw new Error('Invalid colormap name');\n }\n this.version++;\n if (this._isFitsImageset$1()) {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGlVersion2) {\n this._imageSet$1.get_fitsProperties().colorMapName = value;\n }\n else {\n _utilities_histogram_js__WEBPACK_IMPORTED_MODULE_4__.Histogram.updateColorMapper(this, value);\n }\n }\n return value;\n },\n\n get_colorMapper: function () {\n if (this.get_imageSet().get_fitsProperties().colorMapName == null) {\n return null;\n } else {\n return _color_map_container_js__WEBPACK_IMPORTED_MODULE_5__.ColorMapContainer.fromNamedColormap(this.get_imageSet().get_fitsProperties().colorMapName);\n }\n },\n\n loadData: function (tourDoc, filename) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(this._extension$1.toLowerCase(), '.fit')) {\n var blob = tourDoc.getFileBlob(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(filename, '.txt', this._extension$1));\n var fi;\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGlVersion2) {\n fi = new _fits_image_js__WEBPACK_IMPORTED_MODULE_6__.FitsImage(this._imageSet$1, 'image.fit', blob, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('doneLoading', this));\n }\n else {\n fi = new _fits_image_js_js__WEBPACK_IMPORTED_MODULE_7__.FitsImageJs(this._imageSet$1, 'image.fit', blob, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('doneLoading', this));\n }\n this._imageSet$1.set_wcsImage(fi);\n } else {\n this._loaded$1 = true;\n }\n },\n\n doneLoading: function (wcsImage) {\n this._loaded$1 = true;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ImageSetLayer\", [ImageSetLayer, ImageSetLayer$, _layer_js__WEBPACK_IMPORTED_MODULE_9__.Layer]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/iss_layer.js\":\n/*!*********************************!*\\\n !*** ./esm/layers/iss_layer.js ***!\n \\*********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ISSLayer: () => (/* binding */ ISSLayer)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _object3d_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./object3d.js */ \"./esm/layers/object3d.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A layer that adds the International Space Station (ISS) with an up-to-date orbit.\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.ISSLayer\n\nfunction ISSLayer() {\n _object3d_js__WEBPACK_IMPORTED_MODULE_7__.Object3dLayer.call(this);\n this.id = ISSLayer.issGuid;\n}\n\nISSLayer.issGuid = _util_js__WEBPACK_IMPORTED_MODULE_2__.Guid.fromString('00000001-0002-0003-0405-060708090a0b');\nISSLayer._loading$2 = false;\nISSLayer._issmodel$2 = null;\nISSLayer._doc$2 = null;\n\nISSLayer.loadBackground = function () {\n // The ISS frame cannot be created in freestanding mode, so I'm not\n // sure if this function will even get called, but just in case, we\n // make sure to noop if we're in freestanding mode.\n if (ISSLayer._loading$2 || _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.freestandingMode) {\n return;\n }\n ISSLayer._loading$2 = true;\n var url = _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__.URLHelpers.singleton.coreStaticUrl('data/iss.wtt');\n ISSLayer._doc$2 = (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.tourDocumentFromUrlRaw)(url, function () {\n ISSLayer.createSpaceStation();\n });\n};\n\nISSLayer.createSpaceStation = function () {\n ISSLayer._doc$2.set_id('28016047-97a9-4b33-a226-cd820262a151');\n var filename = '0c10ae54-b6da-4282-bfda-f34562d403bc.3ds';\n var o3d = new _object3d_js__WEBPACK_IMPORTED_MODULE_7__.Object3d(ISSLayer._doc$2, filename, true, false, true, _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white());\n if (o3d != null) {\n o3d.issLayer = true;\n ISSLayer._issmodel$2 = o3d;\n }\n};\n\nvar ISSLayer$ = {\n draw: function (renderContext, opacity, flat) {\n if (this.object3d == null && ISSLayer._issmodel$2 == null) {\n if (!ISSLayer._loading$2) {\n var worldView = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n var v = worldView.transform(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.get_empty());\n var scaleFactor = Math.sqrt(worldView.get_m11() * worldView.get_m11() + worldView.get_m22() * worldView.get_m22() + worldView.get_m33() * worldView.get_m33());\n var dist = v.length();\n var radius = scaleFactor;\n\n // Calculate pixelsPerUnit which is the number of pixels covered\n // by an object 1 AU at the distance of the planet center from\n // the camera. This calculation works regardless of the projection\n // type.\n var viewportHeight = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(renderContext.height);\n var p11 = renderContext.get_projection().get_m11();\n var p34 = renderContext.get_projection().get_m34();\n var p44 = renderContext.get_projection().get_m44();\n var w = Math.abs(p34) * dist + p44;\n var pixelsPerUnit = (p11 / w) * viewportHeight;\n var radiusInPixels = (radius * pixelsPerUnit);\n if (radiusInPixels > 0.5) {\n ISSLayer.loadBackground();\n }\n }\n }\n this.object3d = ISSLayer._issmodel$2;\n return _object3d_js__WEBPACK_IMPORTED_MODULE_7__.Object3dLayer.prototype.draw.call(this, renderContext, opacity, flat);\n },\n\n getPrimaryUI: function () {\n return null;\n },\n\n addFilesToCabinet: function (fc) {\n return;\n },\n\n loadData: function (doc, filename) {\n return;\n },\n\n cleanUp: function () { }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ISSLayer\", [ISSLayer, ISSLayer$, _object3d_js__WEBPACK_IMPORTED_MODULE_7__.Object3dLayer]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/layer.js\":\n/*!*****************************!*\\\n !*** ./esm/layers/layer.js ***!\n \\*****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AltUnits: () => (/* binding */ AltUnits),\n/* harmony export */ DomainValue: () => (/* binding */ DomainValue),\n/* harmony export */ FadeType: () => (/* binding */ FadeType),\n/* harmony export */ Layer: () => (/* binding */ Layer),\n/* harmony export */ LayerCollection: () => (/* binding */ LayerCollection)\n/* harmony export */ });\n/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! pako */ \"../node_modules/pako/index.js\");\n/* harmony import */ var pako__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(pako__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Top-level information about a tour.\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.AltUnits\n\nvar AltUnits = {\n meters: 1,\n feet: 2,\n inches: 3,\n miles: 4,\n kilometers: 5,\n astronomicalUnits: 6,\n lightYears: 7,\n parsecs: 8,\n megaParsecs: 9,\n custom: 10\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_2__.registerType)(\"AltUnits\", AltUnits);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_2__.registerEnum)(\"AltUnits\", AltUnits);\n\n\n// wwtlib.FadeType\n\nvar FadeType = {\n fadeIn: 1,\n fadeOut: 2,\n both: 3,\n none: 4\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_2__.registerType)(\"FadeType\", FadeType);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_2__.registerEnum)(\"FadeType\", FadeType);\n\n\n// wwtlib.DomainValue\n\nfunction DomainValue(text, markerIndex) {\n this.markerIndex = 4;\n this.customMarker = null;\n this.text = text;\n this.markerIndex = markerIndex;\n}\n\nvar DomainValue$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_2__.registerType)(\"DomainValue\", [DomainValue, DomainValue$, null]);\n\n\n// wwtlib.Layer\n\nfunction Layer() {\n this.id = _util_js__WEBPACK_IMPORTED_MODULE_6__.Guid.newGuid();\n this.loadedFromTour = false;\n this.tourDocument = null;\n this.opacity = 1;\n this.opened = false;\n this._startTime = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.date('01/01/1900');\n this._endTime = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.date('01/01/2100');\n this._fadeSpan = 0;\n this._fadeType = 4;\n this.version = 0;\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_4__.Colors.get_white();\n this.enabled = true;\n this.astronomical = false;\n}\n\nvar Layer$ = {\n getPrimaryUI: function () {\n return null;\n },\n\n getFileStreamUrl: function (filename) {\n if (this.tourDocument != null) {\n return this.tourDocument.getFileStream(filename);\n }\n return null;\n },\n\n get_opacity: function () {\n return this.opacity;\n },\n\n set_opacity: function (value) {\n if (this.opacity !== value) {\n this.version++;\n this.opacity = value;\n }\n return value;\n },\n\n get_opened: function () {\n return this.opened;\n },\n\n set_opened: function (value) {\n if (this.opened !== value) {\n this.version++;\n this.opened = value;\n }\n return value;\n },\n\n get_startTime: function () {\n return this._startTime;\n },\n\n set_startTime: function (value) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.compareDates(this._startTime, value)) {\n this.version++;\n this._startTime = value;\n }\n return value;\n },\n\n get_endTime: function () {\n return this._endTime;\n },\n\n set_endTime: function (value) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.compareDates(this._endTime, value)) {\n this.version++;\n this._endTime = value;\n }\n return value;\n },\n\n get_fadeSpan: function () {\n return this._fadeSpan;\n },\n\n set_fadeSpan: function (value) {\n this.version++;\n this._fadeSpan = value;\n return value;\n },\n\n get_fadeType: function () {\n return this._fadeType;\n },\n\n set_fadeType: function (value) {\n if (this._fadeType !== value) {\n this.set_version(this.get_version() + 1) - 1;\n this._fadeType = value;\n }\n return value;\n },\n\n get_version: function () {\n return this.version;\n },\n\n set_version: function (value) {\n this.version = value;\n return value;\n },\n\n findClosest: function (target, distance, closestPlace, astronomical) {\n return closestPlace;\n },\n\n hoverCheckScreenSpace: function (cursor) {\n return false;\n },\n\n clickCheckScreenSpace: function (cursor) {\n return false;\n },\n\n draw: function (renderContext, opacity, flat) {\n return true;\n },\n\n preDraw: function (renderContext, opacity) {\n return true;\n },\n\n updateData: function (data, purgeOld, purgeAll, hasHeader) {\n return true;\n },\n\n // \"updateData\" used to be named this. We add this function as a\n // compatibility shim just in case there's some JavaScript out there\n // still using the old name.\n upadteData: function (data, purgeOld, purgeAll, hasHeader) {\n return this.updateData(data, purgeOld, purgeAll, hasHeader);\n },\n\n canCopyToClipboard: function () {\n return false;\n },\n\n copyToClipboard: function () {\n return;\n },\n\n getParams: function () {\n var paramList = new Array(5);\n paramList[0] = this.color.r / 255;\n paramList[1] = this.color.g / 255;\n paramList[2] = this.color.b / 255;\n paramList[3] = this.color.a / 255;\n paramList[4] = this.opacity;\n return paramList;\n },\n\n setParams: function (paramList) {\n if (paramList.length === 5) {\n this.opacity = paramList[4];\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_4__.Color.fromArgb((paramList[3] * 255), (paramList[0] * 255), (paramList[1] * 255), (paramList[2] * 255));\n }\n },\n\n getParamNames: function () {\n return ['Color.Red', 'Color.Green', 'Color.Blue', 'Color.Alpha', 'Opacity'];\n },\n\n getEditUI: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.safeCast(this, _interfaces_js__WEBPACK_IMPORTED_MODULE_5__.IUiController);\n },\n\n cleanUp: function () { },\n\n get_name: function () {\n return this._name;\n },\n\n set_name: function (value) {\n if (this._name !== value) {\n this.version++;\n this._name = value;\n }\n return value;\n },\n\n toString: function () {\n return this._name;\n },\n\n get_referenceFrame: function () {\n return this.referenceFrame;\n },\n\n set_referenceFrame: function (value) {\n this.referenceFrame = value;\n return value;\n },\n\n getProps: function () {\n return '';\n },\n\n get_color: function () {\n return this.color;\n },\n\n set_color: function (value) {\n if (this.color !== value) {\n this.color = value;\n this.version++;\n }\n return value;\n },\n\n colorChanged: function () { },\n\n get_colorValue: function () {\n return this.get_color().toString();\n },\n\n set_colorValue: function (value) {\n this.set_color(_color_js__WEBPACK_IMPORTED_MODULE_4__.Color.fromName(value));\n return value;\n },\n\n // These named accessor functions were added so that we can support\n // `enabled` as a \"setting\" in our TypeScript framework, without breaking\n // anything that might rely on `this.enabled` being a genuine bool.\n get_enabled: function () {\n return this.enabled;\n },\n\n set_enabled: function (value) {\n this.enabled = value;\n return value;\n },\n\n get_astronomical: function () {\n return this.astronomical;\n },\n\n set_astronomical: function (value) {\n if (this.astronomical !== value) {\n this.version++;\n this.astronomical = value;\n }\n return value;\n },\n\n getTypeName: function () {\n return 'TerraViewer.Layer';\n },\n\n saveToXml: function (xmlWriter) {\n xmlWriter._writeStartElement('Layer');\n xmlWriter._writeAttributeString('Id', this.id.toString());\n xmlWriter._writeAttributeString('Type', this.getTypeName());\n xmlWriter._writeAttributeString('Name', this.get_name());\n xmlWriter._writeAttributeString('ReferenceFrame', this.referenceFrame);\n xmlWriter._writeAttributeString('Color', this.color.save());\n xmlWriter._writeAttributeString('Opacity', this.opacity.toString());\n xmlWriter._writeAttributeString('StartTime', _baseutil_js__WEBPACK_IMPORTED_MODULE_3__.Util.xmlDate(this.get_startTime()));\n xmlWriter._writeAttributeString('EndTime', _baseutil_js__WEBPACK_IMPORTED_MODULE_3__.Util.xmlDate(this.get_endTime()));\n xmlWriter._writeAttributeString('FadeSpan', this.get_fadeSpan().toString());\n xmlWriter._writeAttributeString('FadeType', this.get_fadeType().toString());\n this.writeLayerProperties(xmlWriter);\n xmlWriter._writeEndElement();\n },\n\n writeLayerProperties: function (xmlWriter) {\n return;\n },\n\n initializeFromXml: function (node) { },\n\n initFromXml: function (node) {\n this.id = _util_js__WEBPACK_IMPORTED_MODULE_6__.Guid.fromString(node.attributes.getNamedItem('Id').nodeValue);\n this.set_name(node.attributes.getNamedItem('Name').nodeValue);\n this.referenceFrame = node.attributes.getNamedItem('ReferenceFrame').nodeValue;\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_4__.Color.load(node.attributes.getNamedItem('Color').nodeValue);\n this.opacity = parseFloat(node.attributes.getNamedItem('Opacity').nodeValue);\n if (node.attributes.getNamedItem('StartTime') != null) {\n this.set_startTime(new Date(node.attributes.getNamedItem('StartTime').nodeValue));\n }\n if (node.attributes.getNamedItem('EndTime') != null) {\n this.set_endTime(new Date(node.attributes.getNamedItem('EndTime').nodeValue));\n }\n if (node.attributes.getNamedItem('FadeSpan') != null) {\n this.set_fadeSpan(_baseutil_js__WEBPACK_IMPORTED_MODULE_3__.Util.parseTimeSpan(node.attributes.getNamedItem('FadeSpan').nodeValue));\n }\n if (node.attributes.getNamedItem('FadeType') != null) {\n switch (node.attributes.getNamedItem('FadeType').nodeValue) {\n case 'In':\n this.set_fadeType(1);\n break;\n case 'Out':\n this.set_fadeType(2);\n break;\n case 'Both':\n this.set_fadeType(3);\n break;\n case 'None':\n this.set_fadeType(4);\n break;\n default:\n break;\n }\n }\n this.initializeFromXml(node);\n },\n\n loadData: function (doc, filename) {\n return;\n },\n\n addFilesToCabinet: function (fc) {\n return;\n },\n\n // This method decompresses a blob into a string, and if the string cannot be decompressed\n // due to an invalid header, we assume the blob is not compressed and return the string\n // as-is.\n getStringFromGzipBlob: function (blob, dataReady) {\n var reader = new FileReader();\n reader.onloadend = function (e) {\n var result = '';\n try {\n result = pako__WEBPACK_IMPORTED_MODULE_0___default().inflate(e.target.result, { to: 'string' });\n }\n catch (err) {\n var errString = err.toString();\n if (errString === 'incorrect header check' || errString === 'unknown compression method') {\n result = String.fromCharCode.apply(null, new Uint8Array(e.target.result));\n }\n else {\n throw err;\n }\n }\n dataReady(result);\n };\n reader.readAsArrayBuffer(blob);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_2__.registerType)(\"Layer\", [Layer, Layer$, null]);\n\n\n// wwtlib.LayerCollection\n\nfunction LayerCollection() {\n Layer.call(this);\n}\n\nvar LayerCollection$ = {\n draw: function (renderContext, opacity, flat) {\n return Layer.prototype.draw.call(this, renderContext, opacity, false);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_2__.registerType)(\"LayerCollection\", [LayerCollection, LayerCollection$, Layer]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/layer_manager.js\":\n/*!*************************************!*\\\n !*** ./esm/layers/layer_manager.js ***!\n \\*************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FrameTarget: () => (/* binding */ FrameTarget),\n/* harmony export */ GroundOverlayLayer: () => (/* binding */ GroundOverlayLayer),\n/* harmony export */ LayerManager: () => (/* binding */ LayerManager),\n/* harmony export */ LayerMap: () => (/* binding */ LayerMap),\n/* harmony export */ ReferenceFrames: () => (/* binding */ ReferenceFrames),\n/* harmony export */ SkyOverlays: () => (/* binding */ SkyOverlays)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../astrocalc/elliptical.js */ \"./esm/astrocalc/elliptical.js\");\n/* harmony import */ var _utilities_histogram_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utilities/histogram.js */ \"./esm/utilities/histogram.js\");\n/* harmony import */ var _utilities_simple_input_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utilities/simple_input.js */ \"./esm/utilities/simple_input.js\");\n/* harmony import */ var _utilities_color_picker_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utilities/color_picker.js */ \"./esm/utilities/color_picker.js\");\n/* harmony import */ var _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utilities/context_menu_strip.js */ \"./esm/utilities/context_menu_strip.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _fits_image_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./fits_image.js */ \"./esm/layers/fits_image.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../imageset.js */ \"./esm/imageset.js\");\n/* harmony import */ var _planets_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../planets.js */ \"./esm/planets.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../web_file.js */ \"./esm/web_file.js\");\n/* harmony import */ var _layer_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./layer.js */ \"./esm/layers/layer.js\");\n/* harmony import */ var _reference_frame_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./reference_frame.js */ \"./esm/layers/reference_frame.js\");\n/* harmony import */ var _great_circle_route_layer_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./great_circle_route_layer.js */ \"./esm/layers/great_circle_route_layer.js\");\n/* harmony import */ var _grid_layer_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./grid_layer.js */ \"./esm/layers/grid_layer.js\");\n/* harmony import */ var _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./imageset_layer.js */ \"./esm/layers/imageset_layer.js\");\n/* harmony import */ var _iss_layer_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./iss_layer.js */ \"./esm/layers/iss_layer.js\");\n/* harmony import */ var _orbit_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./orbit.js */ \"./esm/layers/orbit.js\");\n/* harmony import */ var _orbit_layer_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./orbit_layer.js */ \"./esm/layers/orbit_layer.js\");\n/* harmony import */ var _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./spreadsheet_layer.js */ \"./esm/layers/spreadsheet_layer.js\");\n/* harmony import */ var _vo_table_layer_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./vo_table_layer.js */ \"./esm/layers/vo_table_layer.js\");\n/* harmony import */ var _tours_tour_stop_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../tours/tour_stop.js */ \"./esm/tours/tour_stop.js\");\n/* harmony import */ var _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../tours/tour_player.js */ \"./esm/tours/tour_player.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Managing the tree of renderer layers.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.ReferenceFrames\n\nvar ReferenceFrames = {\n sky: 0,\n ecliptic: 1,\n galactic: 2,\n sun: 3,\n mercury: 4,\n venus: 5,\n earth: 6,\n mars: 7,\n jupiter: 8,\n saturn: 9,\n uranus: 10,\n neptune: 11,\n pluto: 12,\n moon: 13,\n io: 14,\n europa: 15,\n ganymede: 16,\n callisto: 17,\n custom: 18,\n identity: 19,\n sandbox: 20\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ReferenceFrames\", ReferenceFrames);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"ReferenceFrames\", ReferenceFrames);\n\n\n// wwtlib.LayerManager\n\nfunction LayerManager() { }\n\nLayerManager._version = 0;\nLayerManager._tourLayers = false;\nLayerManager._layerMaps = {};\nLayerManager._layerMapsTours = {};\nLayerManager._allMaps = {};\nLayerManager._allMapsTours = {};\nLayerManager._currentMap = 'Earth';\nLayerManager._layerList = {};\nLayerManager._layerListTours = {};\nLayerManager._moonfile = '';\nLayerManager._selectedLayer = null;\nLayerManager._lastMenuClick = new _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d();\n\nLayerManager.get_version = function () {\n return LayerManager._version;\n};\n\nLayerManager.set_version = function (value) {\n LayerManager._version = value;\n return value;\n};\n\nLayerManager.get_frameWizardDialog = function () {\n return LayerManager._frameWizardDialog;\n};\n\nLayerManager.get_dataVizWizardDialog = function () {\n return LayerManager._dataVizWizardDialog;\n};\n\nLayerManager.get_referenceFramePropsDialog = function () {\n return LayerManager._referenceFramePropsDialog;\n};\n\nLayerManager.get_greatCircleDlg = function () {\n return LayerManager._greatCircleDialog;\n};\n\nLayerManager.get_tourLayers = function () {\n return LayerManager._tourLayers;\n};\n\nLayerManager.set_tourLayers = function (value) {\n if (LayerManager._tourLayers !== value && !value) {\n LayerManager._clearLayers();\n LayerManager._tourLayers = value;\n LayerManager.loadTree();\n }\n else if (LayerManager._tourLayers !== value && !!value) {\n LayerManager._tourLayers = value;\n LayerManager.initLayers();\n }\n return value;\n};\n\nLayerManager.loadTree = function () {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalScriptInterface != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalScriptInterface.refreshLayerManagerNow();\n }\n};\n\nLayerManager.get_layerMaps = function () {\n if (LayerManager.get_tourLayers()) {\n return LayerManager._layerMapsTours;\n }\n else {\n return LayerManager._layerMaps;\n }\n};\n\nLayerManager.set_layerMaps = function (value) {\n if (LayerManager.get_tourLayers()) {\n LayerManager._layerMapsTours = value;\n }\n else {\n LayerManager._layerMaps = value;\n }\n return value;\n};\n\nLayerManager.get_allMaps = function () {\n if (LayerManager.get_tourLayers()) {\n return LayerManager._allMapsTours;\n }\n else {\n return LayerManager._allMaps;\n }\n};\n\n(0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.set_layerManagerGetAllMaps)(LayerManager.get_allMaps);\n\nLayerManager.set_allMaps = function (value) {\n if (LayerManager.get_tourLayers()) {\n LayerManager._allMapsTours = value;\n }\n else {\n LayerManager._allMaps = value;\n }\n return value;\n};\n\nLayerManager.get_currentMap = function () {\n return LayerManager._currentMap;\n};\n\nLayerManager.set_currentMap = function (value) {\n LayerManager._currentMap = value;\n return value;\n};\n\nLayerManager.get_layerList = function () {\n if (LayerManager.get_tourLayers()) {\n return LayerManager._layerListTours;\n }\n else {\n return LayerManager._layerList;\n }\n};\n\nLayerManager.set_layerList = function (value) {\n if (LayerManager.get_tourLayers()) {\n LayerManager._layerListTours = value;\n }\n else {\n LayerManager._layerList = value;\n }\n return value;\n};\n\n// This function *can* be called multiple times safely, but it only\n// needs to be called once upon app startup. The `InitLayers` function\n// can be called more than once, if/when the `TourLayers` setting is\n// toggled.\nLayerManager.oneTimeInitialization = function () {\n if (LayerManager._webFileMoons == null) {\n LayerManager.getMoonFile(_url_helpers_js__WEBPACK_IMPORTED_MODULE_16__.URLHelpers.singleton.engineAssetUrl('moons.txt'));\n }\n _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_27__.PushPin.triggerLoadSprite();\n};\n\nLayerManager.initLayers = function () {\n LayerManager._clearLayers();\n var iss = null;\n var doISS = !LayerManager.get_tourLayers() && !_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.freestandingMode;\n if (doISS) {\n iss = new LayerMap('ISS', 18);\n iss.frame.epoch = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController._twoLineDateToJulian('10184.51609218');\n iss.frame.semiMajorAxis = 6728829.41;\n iss.frame.referenceFrameType = 1;\n iss.frame.inclination = 51.6442;\n iss.frame.longitudeOfAscendingNode = 147.0262;\n iss.frame.eccentricity = 0.0009909;\n iss.frame.meanAnomolyAtEpoch = 325.5563;\n iss.frame.meanDailyMotion = 360 * 15.72172655;\n iss.frame.argumentOfPeriapsis = 286.4623;\n iss.frame.scale = 1;\n iss.frame.semiMajorAxisUnits = 1;\n iss.frame.meanRadius = 130;\n iss.frame.oblateness = 0;\n iss.frame.showOrbitPath = true;\n var isstle = new Array(0);\n\n //This is downloaded now on startup\n var url = _url_helpers_js__WEBPACK_IMPORTED_MODULE_16__.URLHelpers.singleton.coreDynamicUrl('wwtweb/isstle.aspx');\n var webFile;\n webFile = new _web_file_js__WEBPACK_IMPORTED_MODULE_18__.WebFile(url);\n webFile.onStateChange = function () {\n if (webFile.get_state() === 1) {\n var data = webFile.getText();\n isstle = data.split('\\n');\n if (isstle.length > 1) {\n iss.frame.fromTLE(isstle[0], isstle[1], 398600441800000);\n }\n }\n };\n webFile.send();\n iss.enabled = true;\n }\n LayerManager.get_layerMaps()['Sun'] = new LayerMap('Sun', 3);\n LayerManager.get_layerMaps()['Sun'].addChild(new LayerMap('Mercury', 4));\n LayerManager.get_layerMaps()['Sun'].addChild(new LayerMap('Venus', 5));\n LayerManager.get_layerMaps()['Sun'].addChild(new LayerMap('Earth', 6));\n LayerManager.get_layerMaps()['Sun'].childMaps['Earth'].addChild(new LayerMap('Moon', 13));\n if (doISS) {\n LayerManager.get_layerMaps()['Sun'].childMaps['Earth'].addChild(iss);\n }\n LayerManager.get_layerMaps()['Sun'].addChild(new LayerMap('Mars', 7));\n LayerManager.get_layerMaps()['Sun'].addChild(new LayerMap('Jupiter', 8));\n LayerManager.get_layerMaps()['Sun'].childMaps['Jupiter'].addChild(new LayerMap('Io', 14));\n LayerManager.get_layerMaps()['Sun'].childMaps['Jupiter'].addChild(new LayerMap('Europa', 15));\n LayerManager.get_layerMaps()['Sun'].childMaps['Jupiter'].addChild(new LayerMap('Ganymede', 16));\n LayerManager.get_layerMaps()['Sun'].childMaps['Jupiter'].addChild(new LayerMap('Callisto', 17));\n LayerManager.get_layerMaps()['Sun'].addChild(new LayerMap('Saturn', 9));\n LayerManager.get_layerMaps()['Sun'].addChild(new LayerMap('Uranus', 10));\n LayerManager.get_layerMaps()['Sun'].addChild(new LayerMap('Neptune', 11));\n LayerManager.get_layerMaps()['Sun'].addChild(new LayerMap('Pluto', 12));\n LayerManager._addMoons(LayerManager._moonfile);\n LayerManager.get_layerMaps()['Sky'] = new LayerMap('Sky', 0);\n LayerManager.get_layerMaps()['Sun'].open = true;\n LayerManager._allMaps = {};\n LayerManager._addAllMaps(LayerManager.get_layerMaps(), null);\n if (doISS) {\n LayerManager._addIss();\n }\n LayerManager._version++;\n LayerManager.loadTree();\n};\n\nLayerManager._addIss = function () {\n var layer = new _iss_layer_js__WEBPACK_IMPORTED_MODULE_24__.ISSLayer();\n layer.set_name(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1314, 'ISS Model (Toshiyuki Takahei)'));\n layer.enabled = _settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_showISSModel();\n LayerManager.get_layerList()[layer.id] = layer;\n layer.set_referenceFrame('ISS');\n LayerManager.get_allMaps()['ISS'].layers.push(layer);\n LayerManager.get_allMaps()['ISS'].open = true;\n};\n\nLayerManager._addAllMaps = function (maps, parent) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(maps));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var map = maps[key];\n map.frame.parent = parent;\n LayerManager.get_allMaps()[map.get_name()] = map;\n LayerManager._addAllMaps(map.childMaps, map.get_name());\n }\n};\n\nLayerManager._clearLayers = function () {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager.get_layerList()));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var layer = LayerManager.get_layerList()[key];\n layer.cleanUp();\n }\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(LayerManager.get_layerList());\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(LayerManager.get_layerMaps());\n};\n\nLayerManager.getMoonFile = function (url) {\n LayerManager._webFileMoons = new _web_file_js__WEBPACK_IMPORTED_MODULE_18__.WebFile(url);\n LayerManager._webFileMoons.onStateChange = LayerManager.moonFileStateChange;\n LayerManager._webFileMoons.send();\n};\n\nLayerManager.moonFileStateChange = function () {\n if (LayerManager._webFileMoons.get_state() === 2) {\n alert(LayerManager._webFileMoons.get_message());\n }\n else if (LayerManager._webFileMoons.get_state() === 1) {\n LayerManager._moonfile = LayerManager._webFileMoons.getText();\n LayerManager.initLayers();\n }\n};\n\nLayerManager._addMoons = function (file) {\n var data = file.split('\\r\\n');\n var first = true;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(data);\n while ($enum1.moveNext()) {\n var line = $enum1.current;\n if (first) {\n first = false;\n continue;\n }\n var parts = line.split('\\t');\n if (parts.length > 16) {\n var planet = parts[0];\n var frame = new LayerMap(parts[2], 18);\n frame.frame._systemGenerated = true;\n frame.frame.epoch = parseFloat(parts[1]);\n frame.frame.semiMajorAxis = parseFloat(parts[3]) * 1000;\n frame.frame.referenceFrameType = 1;\n frame.frame.inclination = parseFloat(parts[7]);\n frame.frame.longitudeOfAscendingNode = parseFloat(parts[8]);\n frame.frame.eccentricity = parseFloat(parts[4]);\n frame.frame.meanAnomolyAtEpoch = parseFloat(parts[6]);\n frame.frame.meanDailyMotion = parseFloat(parts[9]);\n frame.frame.argumentOfPeriapsis = parseFloat(parts[5]);\n frame.frame.scale = 1;\n frame.frame.semiMajorAxisUnits = 1;\n frame.frame.meanRadius = parseFloat(parts[16]) * 1000;\n frame.frame.rotationalPeriod = parseFloat(parts[17]);\n frame.frame.showAsPoint = false;\n frame.frame.showOrbitPath = true;\n frame.frame.set_representativeColor(_color_js__WEBPACK_IMPORTED_MODULE_10__.Color.fromArgb(255, 175, 216, 230));\n frame.frame.oblateness = 0;\n LayerManager.get_layerMaps()['Sun'].childMaps[planet].addChild(frame);\n }\n }\n};\n\nLayerManager.addVoTableLayer = function (table, title) {\n return LayerManager.addVoTableLayerWithPlotType(table, title, 2);\n};\n\nLayerManager.addVoTableLayerWithPlotType = function (table, title, plotType) {\n var layer = _vo_table_layer_js__WEBPACK_IMPORTED_MODULE_28__.VoTableLayer.create(table, plotType);\n layer.set_name(title);\n layer.set_astronomical(true);\n layer.set_referenceFrame('Sky');\n LayerManager.get_layerList()[layer.id] = layer;\n LayerManager.get_allMaps()['Sky'].layers.push(layer);\n LayerManager.get_allMaps()['Sky'].open = true;\n layer.enabled = true;\n LayerManager._version++;\n LayerManager.loadTree();\n return layer;\n};\n\nLayerManager.addImageSetLayer = function (imageset, title) {\n var layer = _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer.create(imageset);\n return LayerManager.addFitsImageSetLayer(layer, title);\n};\n\nLayerManager.addImageSetLayerCallback = function (imageset, title, callback) {\n var layer = _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer.create(imageset);\n\n // The tile rendering codepaths require that \"Extension\" is exactly\n // .fits -- multiple extensions are not currently supported.\n var isNonHipsTiledFits =\n imageset.get_extension() === '.fits' &&\n layer.getFitsImage() == null &&\n imageset.get_projection() !== _imageset_js__WEBPACK_IMPORTED_MODULE_12__.ProjectionType.healpix;\n\n // The goal here is to fire the callback once the initial imageset\n // data have loaded. In particular, for FITS-type imagesets, we\n // inevitably need to download some data in order to figure out\n // parameters like FitsProperties.LowerCut.\n //\n // At the moment, this is only wired up correctly for non-HiPS tiled\n // FITS. In a pretty egregious hack, the OnMainImageLoaded callback\n // below will be fired once the level-0 FITS tile is loaded. We\n // basically needed to add this new callback hook because there\n // wasn't any other way to get something to fire when the level-0\n // tile data actually arrive.\n //\n // HiPS FITS datasets will *eventually* get the right FitsProperties\n // because the fetch of the HipsProperties data sets this up. (This\n // is triggered by the HipsProperties constructor, used in\n // Imageset.GetNewTile.) But the timing of the callback here is\n // uncorrelated with that process. The same is broadly true for\n // untiled FITS. This function should be improved to make sure that\n // the callback argument gets fired at the right time for such\n // datasets.\n\n if (isNonHipsTiledFits) {\n imageset.get_fitsProperties().onMainImageLoaded = function (image) {\n image.applyDisplaySettings();\n if (callback != null) {\n callback(layer);\n }\n };\n }\n LayerManager.addFitsImageSetLayer(layer, title);\n\n // For everything not yet handled, just trigger the callback now, if\n // needed.\n if (callback != null && (!isNonHipsTiledFits || imageset.get_fitsProperties().mainImageLoadedEventHasFired)) {\n callback(layer);\n }\n\n return layer;\n};\n\n// This method is somewhat misnamed - there's nothing FITS-specific about it.\nLayerManager.addFitsImageSetLayer = function (layer, title) {\n layer.doneLoading(null);\n layer.set_name(title);\n layer.set_astronomical(true);\n layer.set_referenceFrame('Sky');\n LayerManager.get_layerList()[layer.id] = layer;\n LayerManager.get_allMaps()['Sky'].layers.push(layer);\n LayerManager.get_allMaps()['Sky'].open = true;\n layer.enabled = true;\n LayerManager._version++;\n LayerManager.loadTree();\n return layer;\n};\n\nLayerManager.getNextFitsName = function () {\n return LayerManager._getNextName('Fits Image');\n};\n\nLayerManager.getNextImageSetName = function () {\n return LayerManager._getNextName('Image Set');\n};\n\nLayerManager._getNextName = function (type) {\n var currentNumber = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager.get_allMaps()));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(LayerManager.get_allMaps()[key].layers);\n while ($enum2.moveNext()) {\n var layer = $enum2.current;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(layer.get_name(), type + ' ')) {\n var number = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(layer.get_name(), type + ' ', '');\n try {\n var num = parseInt(number);\n if (num > currentNumber) {\n currentNumber = num;\n }\n }\n catch ($e3) {\n }\n }\n }\n }\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0} {1}', type, currentNumber + 1);\n};\n\nLayerManager._closeAllTourLoadedLayers = function () {\n var purgeTargets = [];\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager.get_layerList()));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var layer = LayerManager.get_layerList()[key];\n if (layer.loadedFromTour) {\n purgeTargets.push(layer.id);\n }\n }\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(purgeTargets);\n while ($enum2.moveNext()) {\n var guid = $enum2.current;\n LayerManager.deleteLayerByID(guid, true, false);\n }\n var purgeMapsNames = [];\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager.get_allMaps()));\n while ($enum3.moveNext()) {\n var key = $enum3.current;\n var map = LayerManager.get_allMaps()[key];\n if (map.loadedFromTour && !map.layers.length) {\n purgeMapsNames.push(map.get_name());\n }\n }\n var $enum4 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(purgeMapsNames);\n while ($enum4.moveNext()) {\n var name = $enum4.current;\n LayerManager.purgeLayerMapDeep(LayerManager.get_allMaps()[name], true);\n }\n LayerManager.set_version(LayerManager.get_version() + 1) - 1;\n LayerManager.loadTree();\n};\n\nLayerManager.purgeLayerMapDeep = function (target, topLevel) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(target.layers);\n while ($enum1.moveNext()) {\n var layer = $enum1.current;\n LayerManager.deleteLayerByID(layer.id, false, false);\n }\n target.layers.length = 0;\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(target.childMaps));\n while ($enum2.moveNext()) {\n var key = $enum2.current;\n var map = target.childMaps[key];\n LayerManager.purgeLayerMapDeep(map, false);\n }\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(target.childMaps);\n if (topLevel) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(target.frame.parent)) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_allMaps(), target.frame.parent)) {\n delete LayerManager.get_allMaps()[target.frame.parent].childMaps[target.get_name()];\n }\n } else {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_layerMaps(), target.get_name())) {\n delete LayerManager.get_layerMaps()[target.get_name()];\n }\n }\n }\n delete LayerManager.get_allMaps()[target.get_name()];\n LayerManager._version++;\n};\n\nLayerManager._cleanAllTourLoadedLayers = function () {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager.get_layerList()));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var layer = LayerManager.get_layerList()[key];\n if (layer.loadedFromTour) {\n layer.loadedFromTour = false;\n }\n }\n};\n\n// Merge layers from Tour Player Alternate universe into the real layer manager layers list\nLayerManager.mergeToursLayers = function () {\n LayerManager._tourLayers = false;\n var OverWrite = false;\n var CollisionChecked = false;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager._allMapsTours));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var map = LayerManager._allMapsTours[key];\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager._allMaps, map.get_name())) {\n var newMap = new LayerMap(map.get_name(), 18);\n newMap.frame = map.frame;\n newMap.loadedFromTour = true;\n LayerManager.get_allMaps()[newMap.get_name()] = newMap;\n }\n }\n LayerManager.connectAllChildren();\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager._layerListTours));\n while ($enum2.moveNext()) {\n var key = $enum2.current;\n var layer = LayerManager._layerListTours[key];\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_layerList(), layer.id)) {\n if (!CollisionChecked) {\n OverWrite = true;\n CollisionChecked = true;\n }\n if (OverWrite) {\n LayerManager.deleteLayerByID(layer.id, true, false);\n }\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_layerList(), layer.id)) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_allMaps(), layer.get_referenceFrame())) {\n LayerManager.get_layerList()[layer.id] = layer;\n LayerManager.get_allMaps()[layer.get_referenceFrame()].layers.push(layer);\n }\n } else {\n layer.cleanUp();\n }\n }\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(LayerManager._layerListTours);\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(LayerManager._allMapsTours);\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(LayerManager._layerMapsTours);\n LayerManager.loadTree();\n};\n\nLayerManager.connectAllChildren = function () {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager.get_allMaps()));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var map = LayerManager.get_allMaps()[key];\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(map.frame.parent) && !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_layerMaps(), map.frame.name)) {\n LayerManager.get_layerMaps()[map.get_name()] = map;\n } else if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(map.frame.parent) && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_allMaps(), map.frame.parent)) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_allMaps()[map.frame.parent].childMaps, map.frame.name)) {\n LayerManager.get_allMaps()[map.frame.parent].childMaps[map.frame.name] = map;\n map.parent = LayerManager.get_allMaps()[map.frame.parent];\n }\n }\n }\n};\n\nLayerManager.deleteLayerByID = function (ID, removeFromParent, updateTree) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_layerList(), ID)) {\n var layer = LayerManager.get_layerList()[ID];\n layer.cleanUp();\n if (removeFromParent) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(LayerManager.get_allMaps()[layer.get_referenceFrame()].layers, layer);\n }\n delete LayerManager.get_layerList()[ID];\n LayerManager._version++;\n if (updateTree) {\n LayerManager.loadTree();\n }\n return true;\n }\n else {\n return false;\n }\n};\n\nLayerManager._getFrameTarget = function (renderContext, TrackingFrame) {\n var target = new FrameTarget();\n var targetPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d.get_empty();\n target.target = _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d.get_empty();\n target.matrix = _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Matrix3d.get_identity();\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_allMaps(), TrackingFrame)) {\n return target;\n }\n var mapList = [];\n var current = LayerManager.get_allMaps()[TrackingFrame];\n mapList.push(current);\n while (current.frame.reference === 18) {\n current = current.parent;\n mapList.splice(0, 0, current);\n }\n var matOld = renderContext.get_world().clone();\n var matOldNonRotating = renderContext.get_worldBaseNonRotating();\n var matOldBase = renderContext.get_worldBase();\n var oldNominalRadius = renderContext.get_nominalRadius();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(mapList);\n while ($enum1.moveNext()) {\n var map = $enum1.current;\n if (map.frame.reference !== 18 && map.frame.reference !== 20) {\n _planets_js__WEBPACK_IMPORTED_MODULE_13__.Planets.setupPlanetMatrix(renderContext, _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('SolarSystemObjects', map.frame.name), _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d.get_empty(), false);\n } else {\n map.computeFrame(renderContext);\n if (map.frame.useRotatingParentFrame()) {\n renderContext.set_world(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Matrix3d.multiplyMatrix(map.frame.worldMatrix, renderContext.get_world()));\n }\n else {\n renderContext.set_world(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Matrix3d.multiplyMatrix(map.frame.worldMatrix, renderContext.get_worldBaseNonRotating()));\n }\n if (map.frame.referenceFrameType === 3) {\n renderContext.set_worldBaseNonRotating(renderContext.get_world().clone());\n }\n renderContext.set_nominalRadius(map.frame.meanRadius);\n }\n }\n targetPoint = renderContext.get_world().transform(targetPoint);\n var lookAt = renderContext.get_world().transform(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d.create(0, 0, 1));\n var lookUp = _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d.subtractVectors(renderContext.get_world().transform(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d.create(0, 1, 0)), targetPoint);\n lookUp.normalize();\n target.matrix = _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Matrix3d.lookAtLH(new _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d(), _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d.subtractVectors(lookAt, targetPoint), lookUp);\n renderContext.set_nominalRadius(oldNominalRadius);\n renderContext.set_world(matOld);\n renderContext.set_worldBaseNonRotating(matOldNonRotating);\n renderContext.set_worldBase(matOldBase);\n target.target = targetPoint;\n return target;\n};\n\nLayerManager._prepTourLayers = function () {\n if (_tours_tour_player_js__WEBPACK_IMPORTED_MODULE_30__.TourPlayer.get_playing()) {\n var player = _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.uiController;\n if (player != null) {\n var tour = player.get_tour();\n if (tour.get_currentTourStop() != null) {\n player.updateTweenPosition(-1);\n if (!tour.get_currentTourStop().get_keyFramed()) {\n tour.get_currentTourStop()._updateLayerOpacity();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(tour.get_currentTourStop().layers));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var info = tour.get_currentTourStop().layers[key];\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_layerList(), info.id)) {\n LayerManager.get_layerList()[info.id].set_opacity(info.frameOpacity);\n LayerManager.get_layerList()[info.id].setParams(info.frameParams);\n }\n }\n }\n }\n }\n }\n};\n\nLayerManager._draw = function (renderContext, opacity, astronomical, referenceFrame, nested, cosmos) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_allMaps(), referenceFrame)) {\n return;\n }\n var thisMap = LayerManager.get_allMaps()[referenceFrame];\n if (!thisMap.enabled || (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyCount(thisMap.childMaps) && !thisMap.layers.length && !(thisMap.frame.showAsPoint || thisMap.frame.showOrbitPath))) {\n return;\n }\n if (_tours_tour_player_js__WEBPACK_IMPORTED_MODULE_30__.TourPlayer.get_playing()) {\n var player = _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.uiController;\n if (player != null) {\n var tour = player.get_tour();\n if (tour.get_currentTourStop() != null) {\n player.updateTweenPosition(-1);\n tour.get_currentTourStop()._updateLayerOpacity();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(tour.get_currentTourStop().layers));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var info = tour.get_currentTourStop().layers[key];\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_layerList(), info.id)) {\n LayerManager.get_layerList()[info.id].set_opacity(info.frameOpacity);\n LayerManager.get_layerList()[info.id].setParams(info.frameParams);\n }\n }\n }\n }\n }\n var matOld = renderContext.get_world();\n var matOldNonRotating = renderContext.get_worldBaseNonRotating();\n var oldNominalRadius = renderContext.get_nominalRadius();\n if ((thisMap.frame.reference === 18 | thisMap.frame.reference === 18) === 1) {\n thisMap.computeFrame(renderContext);\n if (thisMap.frame.referenceFrameType !== 1 && thisMap.frame.referenceFrameType !== 2) {\n renderContext.set_world(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Matrix3d.multiplyMatrix(thisMap.frame.worldMatrix, renderContext.get_world()));\n } else {\n renderContext.set_world(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Matrix3d.multiplyMatrix(thisMap.frame.worldMatrix, renderContext.get_worldBaseNonRotating()));\n }\n renderContext.set_nominalRadius(thisMap.frame.meanRadius);\n }\n if (thisMap.frame.showAsPoint) {\n // todo Draw point planet...\n // Planets.DrawPointPlanet(renderContext.Device, new Vector3d(0, 0, 0), (float).2, thisMap.Frame.RepresentativeColor, true);\n }\n for (var pass = 0; pass < 2; pass++) {\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(LayerManager.get_allMaps()[referenceFrame].layers);\n while ($enum2.moveNext()) {\n var layer = $enum2.current;\n if ((!pass && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(layer, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer)) || (pass === 1 && !(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(layer, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer)))) {\n var skipLayer = false;\n if (!pass) {\n // Skip default image set layer so that it's not drawn twice\n skipLayer = !astronomical && (layer).get_overrideDefaultLayer();\n }\n if (layer.enabled && !skipLayer) {\n var layerStart = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.utcToJulian(layer.get_startTime());\n var layerEnd = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.utcToJulian(layer.get_endTime());\n var fadeIn = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.utcToJulian(layer.get_startTime()) - ((layer.get_fadeType() === 1 || layer.get_fadeType() === 3) ? (layer.get_fadeSpan() / 864000000) : 0);\n var fadeOut = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.utcToJulian(layer.get_endTime()) + ((layer.get_fadeType() === 2 || layer.get_fadeType() === 3) ? (layer.get_fadeSpan() / 864000000) : 0);\n if (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow() > fadeIn && _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow() < fadeOut) {\n var fadeOpacity = 1;\n if (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow() < layerStart) {\n fadeOpacity = ((_space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow() - fadeIn) / (layer.get_fadeSpan() / 864000000));\n }\n if (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow() > layerEnd) {\n fadeOpacity = ((fadeOut - _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow()) / (layer.get_fadeSpan() / 864000000));\n }\n layer.set_astronomical(astronomical);\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(layer, _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_27__.SpreadSheetLayer)) {\n var tsl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(layer, _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_27__.SpreadSheetLayer);\n tsl.draw(renderContext, opacity * fadeOpacity, cosmos);\n }\n else {\n layer.draw(renderContext, opacity * fadeOpacity, cosmos);\n }\n }\n }\n }\n }\n }\n if (nested) {\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager.get_allMaps()[referenceFrame].childMaps));\n while ($enum3.moveNext()) {\n var key = $enum3.current;\n var map = LayerManager.get_allMaps()[referenceFrame].childMaps[key];\n if (!(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(map, LayerMap))) {\n continue;\n }\n if (map.enabled && map.frame.showOrbitPath && _settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_solarSystemOrbits() && _settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_solarSystemMinorOrbits()) {\n if (map.frame.referenceFrameType === 1) {\n if (map.frame.get_orbit() == null) {\n map.frame.set_orbit(new _orbit_js__WEBPACK_IMPORTED_MODULE_25__.Orbit(map.frame.get_elements(), 360, map.frame.get_representativeColor(), 1, map.parent.frame.meanRadius));\n }\n var matSaved = renderContext.get_world();\n renderContext.set_world(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Matrix3d.multiplyMatrix(thisMap.frame.worldMatrix, renderContext.get_worldBaseNonRotating()));\n map.frame.get_orbit().draw3D(renderContext, 1 * 0.5, _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d.create(0, 0, 0));\n renderContext.set_world(matSaved);\n }\n else if (map.frame.referenceFrameType === 2) {\n }\n }\n if ((map.frame.reference === 18 || map.frame.reference === 19)) {\n LayerManager._draw(renderContext, opacity, astronomical, map.get_name(), nested, cosmos);\n }\n }\n }\n renderContext.set_nominalRadius(oldNominalRadius);\n renderContext.set_world(matOld);\n renderContext.set_worldBaseNonRotating(matOldNonRotating);\n};\n\nLayerManager._getVisibleLayerList = function (previous) {\n var list = {};\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager.get_layerList()));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var layer = LayerManager.get_layerList()[key];\n if (layer.enabled) {\n var info = new _tours_tour_stop_js__WEBPACK_IMPORTED_MODULE_29__.LayerInfo();\n info.startOpacity = info.endOpacity = layer.get_opacity();\n info.id = layer.id;\n info.startParams = layer.getParams();\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(previous, info.id)) {\n info.endOpacity = previous[info.id].endOpacity;\n info.endParams = previous[info.id].endParams;\n }\n else {\n info.endParams = layer.getParams();\n }\n list[layer.id] = info;\n }\n }\n return list;\n};\n\nLayerManager.setVisibleLayerList = function (list) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager.get_layerList()));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var layer = LayerManager.get_layerList()[key];\n layer.enabled = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(list, layer.id);\n try {\n if (layer.enabled) {\n layer.set_opacity(list[layer.id].frameOpacity);\n layer.setParams(list[layer.id].frameParams);\n }\n }\n catch ($e2) {\n }\n }\n};\n\n(0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.set_setManagerVisibleLayerList)(LayerManager.setVisibleLayerList);\n\nLayerManager._preDraw = function (renderContext, opacity, astronomical, referenceFrame, nested) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_allMaps(), referenceFrame)) {\n return;\n }\n var thisMap = LayerManager.get_allMaps()[referenceFrame];\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyCount(thisMap.childMaps) && !thisMap.layers.length) {\n return;\n }\n if (_tours_tour_player_js__WEBPACK_IMPORTED_MODULE_30__.TourPlayer.get_playing()) {\n var player = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.uiController, _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_30__.TourPlayer);\n if (player != null) {\n var tour = player.get_tour();\n if (tour.get_currentTourStop() != null) {\n player.updateTweenPosition(-1);\n tour.get_currentTourStop()._updateLayerOpacity();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(tour.get_currentTourStop().layers));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var info = tour.get_currentTourStop().layers[key];\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_layerList(), info.id)) {\n LayerManager.get_layerList()[info.id].set_opacity(info.frameOpacity);\n LayerManager.get_layerList()[info.id].setParams(info.frameParams);\n }\n }\n }\n }\n }\n var matOld = renderContext.get_world();\n var matOldNonRotating = renderContext.get_worldBaseNonRotating();\n var oldNominalRadius = renderContext.get_nominalRadius();\n if (thisMap.frame.reference === 18) {\n thisMap.computeFrame(renderContext);\n if (thisMap.frame.referenceFrameType !== 1) {\n renderContext.set_world(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Matrix3d.multiplyMatrix(thisMap.frame.worldMatrix, renderContext.get_world()));\n } else {\n renderContext.set_world(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Matrix3d.multiplyMatrix(thisMap.frame.worldMatrix, renderContext.get_worldBaseNonRotating()));\n }\n renderContext.set_nominalRadius(thisMap.frame.meanRadius);\n }\n for (var pass = 0; pass < 2; pass++) {\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(LayerManager.get_allMaps()[referenceFrame].layers);\n while ($enum2.moveNext()) {\n var layer = $enum2.current;\n if ((!pass && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(layer, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer)) || (pass === 1 && !(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(layer, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer)))) {\n if (layer.enabled) {\n var layerStart = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.utcToJulian(layer.get_startTime());\n var layerEnd = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.utcToJulian(layer.get_endTime());\n var fadeIn = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.utcToJulian(layer.get_startTime()) - ((layer.get_fadeType() === 1 || layer.get_fadeType() === 3) ? (layer.get_fadeSpan() / 864000000) : 0);\n var fadeOut = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.utcToJulian(layer.get_endTime()) + ((layer.get_fadeType() === 2 || layer.get_fadeType() === 3) ? (layer.get_fadeSpan() / 864000000) : 0);\n if (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow() > fadeIn && _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow() < fadeOut) {\n var fadeOpacity = 1;\n if (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow() < layerStart) {\n fadeOpacity = ((_space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow() - fadeIn) / (layer.get_fadeSpan() / 864000000));\n }\n if (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow() > layerEnd) {\n fadeOpacity = ((fadeOut - _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_jNow()) / (layer.get_fadeSpan() / 864000000));\n }\n if (!thisMap.frame.reference) {\n layer.set_astronomical(true);\n }\n layer.preDraw(renderContext, opacity * fadeOpacity);\n }\n }\n }\n }\n }\n if (nested) {\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(LayerManager.get_allMaps()[referenceFrame].childMaps));\n while ($enum3.moveNext()) {\n var key = $enum3.current;\n var map = LayerManager.get_allMaps()[referenceFrame].childMaps[key];\n if ((map.frame.reference === 18 || map.frame.reference === 19)) {\n LayerManager._preDraw(renderContext, opacity, astronomical, map.get_name(), nested);\n }\n }\n }\n renderContext.set_nominalRadius(oldNominalRadius);\n renderContext.set_world(matOld);\n renderContext.set_worldBaseNonRotating(matOldNonRotating);\n};\n\nLayerManager.add = function (layer, updateTree) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_layerList(), layer.id)) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_allMaps(), layer.get_referenceFrame())) {\n LayerManager.get_layerList()[layer.id] = layer;\n LayerManager.get_allMaps()[layer.get_referenceFrame()].layers.push(layer);\n LayerManager._version++;\n if (updateTree) {\n LayerManager.loadTree();\n }\n }\n }\n};\n\nLayerManager.layerSelectionChanged = function (selected) {\n LayerManager._selectedLayer = selected;\n if (LayerManager._selectedLayer != null) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(LayerManager._selectedLayer, LayerMap)) {\n var map = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(LayerManager._selectedLayer, LayerMap);\n if (map != null) {\n LayerManager.set_currentMap(map.get_name());\n }\n } else {\n var layer = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(LayerManager._selectedLayer, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer);\n if (layer != null && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(layer.get_imageSet().get_wcsImage(), _fits_image_js__WEBPACK_IMPORTED_MODULE_11__.FitsImage)) {\n return;\n }\n }\n }\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalScriptInterface.setTimeSlider('left', '');\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalScriptInterface.setTimeSlider('right', '');\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalScriptInterface.setTimeSlider('title', _util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(667, 'Time Scrubber'));\n};\n\n//Fits time slider not implemented for webgl engine (only Windows version)\nLayerManager.setTimeSliderValue = function (pos) {\n var layer = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(LayerManager._selectedLayer, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer);\n if (layer != null && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(layer.get_imageSet().get_wcsImage(), _fits_image_js__WEBPACK_IMPORTED_MODULE_11__.FitsImage)) { }\n};\n\nLayerManager.showLayerMenu = function (selected, x, y) {\n LayerManager._lastMenuClick = _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d.create(x, y);\n LayerManager._selectedLayer = selected;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(selected, LayerMap)) {\n LayerManager.set_currentMap((selected).get_name());\n }\n else if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(selected, _layer_js__WEBPACK_IMPORTED_MODULE_19__.Layer)) {\n LayerManager.set_currentMap((selected).get_referenceFrame());\n }\n if (((_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(selected, _layer_js__WEBPACK_IMPORTED_MODULE_19__.Layer)) && !(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(selected, SkyOverlays)))) {\n var selectedLayer = selected;\n LayerManager._contextMenu = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ContextMenuStrip();\n var renameMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(225, 'Rename'));\n var Expand = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(981, 'Expand'));\n var Collapse = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(982, 'Collapse'));\n var copyMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(428, 'Copy'));\n var deleteMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(167, 'Delete'));\n var saveMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(960, 'Save...'));\n var publishMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(983, 'Publish to Community...'));\n var colorMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(458, 'Color/Opacity'));\n var opacityMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(305, 'Opacity'));\n var propertiesMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(20, 'Properties'));\n var scaleMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1291, 'Scale/Histogram'));\n var lifeTimeMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(683, 'Lifetime'));\n var spacer1 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripSeparator();\n var top = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(684, 'Move to Top'));\n var up = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(685, 'Move Up'));\n var down = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(686, 'Move Down'));\n var bottom = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(687, 'Move to Bottom'));\n var showViewer = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(957, 'VO Table Viewer'));\n var spacer2 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripSeparator();\n var defaultImageset = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1294, 'Background Image Set'));\n top.click = LayerManager._top_Click;\n up.click = LayerManager._up_Click;\n down.click = LayerManager._down_Click;\n bottom.click = LayerManager._bottom_Click;\n saveMenu.click = LayerManager._saveMenu_Click;\n publishMenu.click = LayerManager._publishMenu_Click;\n Expand.click = LayerManager._expand_Click;\n Collapse.click = LayerManager._collapse_Click;\n copyMenu.click = LayerManager._copyMenu_Click;\n colorMenu.click = LayerManager._colorMenu_Click;\n deleteMenu.click = LayerManager._deleteMenu_Click;\n renameMenu.click = LayerManager._renameMenu_Click;\n propertiesMenu.click = LayerManager._propertiesMenu_Click;\n scaleMenu.click = LayerManager.scaleMenu_click;\n defaultImageset.click = LayerManager._defaultImageset_Click;\n opacityMenu.click = LayerManager._opacityMenu_Click;\n lifeTimeMenu.click = LayerManager._lifeTimeMenu_Click;\n showViewer.click = LayerManager._showViewer_Click;\n LayerManager._contextMenu.items.push(renameMenu);\n if (!selectedLayer.get_opened() && selectedLayer.getPrimaryUI() != null && selectedLayer.getPrimaryUI().get_hasTreeViewNodes()) {\n LayerManager._contextMenu.items.push(Expand);\n }\n if (selectedLayer.get_opened()) {\n LayerManager._contextMenu.items.push(Collapse);\n }\n if (selectedLayer.canCopyToClipboard()) {\n }\n LayerManager._contextMenu.items.push(deleteMenu);\n LayerManager._contextMenu.items.push(spacer2);\n LayerManager._contextMenu.items.push(colorMenu);\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(selected, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer)) {\n LayerManager._contextMenu.items.push(defaultImageset);\n var isl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(selected, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer);\n defaultImageset.checked = isl.get_overrideDefaultLayer();\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(selected, _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_27__.SpreadSheetLayer) || _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(selected, _great_circle_route_layer_js__WEBPACK_IMPORTED_MODULE_21__.GreatCirlceRouteLayer)) {\n LayerManager._contextMenu.items.push(propertiesMenu);\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(selected, _vo_table_layer_js__WEBPACK_IMPORTED_MODULE_28__.VoTableLayer)) {\n LayerManager._contextMenu.items.push(showViewer);\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(selected, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer)) {\n var isl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(selected, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer);\n LayerManager._contextMenu.items.push(scaleMenu);\n }\n if (LayerManager.get_allMaps()[selectedLayer.get_referenceFrame()].layers.length > 1) {\n LayerManager._contextMenu.items.push(spacer1);\n LayerManager._contextMenu.items.push(top);\n LayerManager._contextMenu.items.push(up);\n LayerManager._contextMenu.items.push(down);\n LayerManager._contextMenu.items.push(bottom);\n }\n LayerManager._contextMenu._show(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d.create(x, y));\n }\n else if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(selected, LayerMap)) {\n var map = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(selected, LayerMap);\n var sandbox = map.frame.reference.toString() === 'Sandbox';\n var Dome = map.frame.name === 'Dome';\n var Sky = map.frame.name === 'Sky';\n if (Dome) {\n return;\n }\n LayerManager._contextMenu = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ContextMenuStrip();\n var trackFrame = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1298, 'Track this frame'));\n var goTo = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1299, 'Fly Here'));\n var showOrbit = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create('Show Orbit');\n var newMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(674, 'New Reference Frame'));\n var newLayerGroupMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(675, 'New Layer Group'));\n var addMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(166, 'Add'));\n var newLight = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create('Add Light');\n var addFeedMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(956, 'Add OData/table feed as Layer'));\n var addWmsLayer = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(987, 'New WMS Layer'));\n var addGridLayer = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1300, 'New Lat/Lng Grid'));\n var addGreatCircle = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(988, 'New Great Circle'));\n var importTLE = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(989, 'Import Orbital Elements'));\n var addMpc = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1301, 'Add Minor Planet'));\n var deleteFrameMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(167, 'Delete'));\n var pasteMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(425, 'Paste'));\n var addToTimeline = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1290, 'Add to Timeline'));\n var addKeyframe = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1280, 'Add Keyframe'));\n var popertiesMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(20, 'Properties'));\n var saveMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(990, 'Save Layers'));\n var publishLayers = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(991, 'Publish Layers to Community'));\n var spacer1 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripSeparator();\n var spacer0 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripSeparator();\n var spacer2 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripSeparator();\n var asReferenceFrame = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create('As Reference Frame');\n var asOrbitalLines = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create('As Orbital Line');\n trackFrame.click = LayerManager._trackFrame_Click;\n goTo.click = LayerManager._goTo_Click;\n asReferenceFrame.click = LayerManager._addMpc_Click;\n asOrbitalLines.click = LayerManager._asOrbitalLines_Click;\n\n // Add Sub Menus\n addMpc.dropDownItems.push(asReferenceFrame);\n addMpc.dropDownItems.push(asOrbitalLines);\n addMenu.click = LayerManager._addMenu_Click;\n newLayerGroupMenu.click = LayerManager._newLayerGroupMenu_Click;\n pasteMenu.click = LayerManager._pasteLayer_Click;\n newMenu.click = LayerManager._newMenu_Click;\n deleteFrameMenu.click = LayerManager._deleteFrameMenu_Click;\n popertiesMenu.click = LayerManager._framePropertiesMenu_Click;\n addGreatCircle.click = LayerManager._addGreatCircle_Click;\n addGridLayer.click = LayerManager._addGirdLayer_Click;\n var convertToOrbit = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__.ToolStripMenuItem.create('Extract Orbit Layer');\n if (map.frame.reference !== 19) {\n if ((_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.get_solarSystemMode() | _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.sandboxMode) === 1) {\n var spacerNeeded = false;\n if (map.frame.reference !== 18 && !_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.sandboxMode) {\n // fly to\n if (!Sky) {\n }\n try {\n var name = map.frame.reference.toString();\n if (name !== 'Sandbox') {\n var ssObj = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('SolarSystemObjects', name);\n var id = ssObj;\n var bit = Math.pow(2, id);\n showOrbit.checked = !!(_settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_planetOrbitsFilter() & bit);\n showOrbit.click = LayerManager._showOrbitPlanet_Click;\n showOrbit.tag = bit.toString();\n }\n }\n catch ($e1) {\n }\n }\n else {\n // track\n if (!sandbox && !Sky) {\n LayerManager._contextMenu.items.push(trackFrame);\n spacerNeeded = true;\n }\n showOrbit.checked = map.frame.showOrbitPath;\n showOrbit.click = LayerManager._showOrbit_Click;\n }\n if (spacerNeeded) {\n LayerManager._contextMenu.items.push(spacer2);\n }\n if (!Sky && !sandbox) {\n LayerManager._contextMenu.items.push(showOrbit);\n LayerManager._contextMenu.items.push(spacer0);\n }\n if (map.frame.reference.toString() === 'Sandbox') {\n LayerManager._contextMenu.items.push(newLight);\n }\n }\n if (!Sky) {\n LayerManager._contextMenu.items.push(newMenu);\n }\n }\n if (!Sky) {\n LayerManager._contextMenu.items.push(addGreatCircle);\n LayerManager._contextMenu.items.push(addGridLayer);\n }\n if ((map.frame.reference !== 19 && map.frame.name === 'Sun') || (map.frame.reference === 19 && map.parent != null && map.parent.frame.name === 'Sun')) {\n LayerManager._contextMenu.items.push(addMpc);\n }\n if (map.frame.reference === 18 && map.frame.referenceFrameType === 1 && map.parent != null && map.parent.frame.name === 'Sun') {\n }\n if (!Sky) {\n }\n LayerManager._contextMenu.items.push(pasteMenu);\n if (map.frame.reference === 19) {\n LayerManager._contextMenu.items.push(deleteFrameMenu);\n }\n if (map.frame.reference === 18) {\n LayerManager._contextMenu.items.push(deleteFrameMenu);\n LayerManager._contextMenu.items.push(popertiesMenu);\n }\n LayerManager._contextMenu.items.push(spacer1);\n LayerManager._contextMenu._show(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d.create(x, y));\n }\n};\n\nLayerManager._publishMenu_Click = function (sender, e) { };\n\nLayerManager._addGirdLayer_Click = function (sender, e) {\n var layer = new _grid_layer_js__WEBPACK_IMPORTED_MODULE_22__.GridLayer();\n layer.enabled = true;\n layer.set_name('Lat-Lng Grid');\n LayerManager.get_layerList()[layer.id] = layer;\n layer.set_referenceFrame(LayerManager._currentMap);\n LayerManager.get_allMaps()[LayerManager._currentMap].layers.push(layer);\n LayerManager.get_allMaps()[LayerManager._currentMap].open = true;\n LayerManager._version++;\n LayerManager.loadTree();\n};\n\nLayerManager._trackFrame_Click = function (sender, e) {\n var target = LayerManager._selectedLayer;\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.set_solarSystemTrack(20);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.set_trackingFrame(target.get_name());\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.zoom = _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.targetCamera.zoom = 1E-09;\n};\n\nLayerManager._goTo_Click = function (sender, e) { };\n\nLayerManager._saveMenu_Click = function (sender, e) { };\n\nLayerManager._expand_Click = function (sender, e) { };\n\nLayerManager._collapse_Click = function (sender, e) { };\n\nLayerManager._copyMenu_Click = function (sender, e) {\n if (LayerManager._selectedLayer != null && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(LayerManager._selectedLayer, _layer_js__WEBPACK_IMPORTED_MODULE_19__.Layer)) {\n var node = LayerManager._selectedLayer;\n node.copyToClipboard();\n }\n};\n\nLayerManager._newLayerGroupMenu_Click = function (sender, e) { };\n\nLayerManager._importTLEFile = function (filename) { };\n\nLayerManager._makeLayerGroupNow = function (name) {\n var target = LayerManager._selectedLayer;\n LayerManager._makeLayerGroup(name, target);\n};\n\nLayerManager._makeLayerGroup = function (name, target) {\n var frame = new _reference_frame_js__WEBPACK_IMPORTED_MODULE_20__.ReferenceFrame();\n frame.name = name;\n frame.reference = 19;\n var newMap = new LayerMap(frame.name, 19);\n newMap.frame = frame;\n newMap.frame._systemGenerated = false;\n target.addChild(newMap);\n newMap.frame.parent = target.get_name();\n LayerManager.get_allMaps()[frame.name] = newMap;\n LayerManager._version++;\n};\n\nLayerManager._lifeTimeMenu_Click = function (sender, e) { };\n\nLayerManager._deleteFrameMenu_Click = function (sender, e) { };\n\nLayerManager._framePropertiesMenu_Click = function (sender, e) {\n var target = LayerManager._selectedLayer;\n LayerManager.get_referenceFramePropsDialog().show(target.frame, e);\n};\n\nLayerManager._newMenu_Click = function (sender, e) {\n var frame = new _reference_frame_js__WEBPACK_IMPORTED_MODULE_20__.ReferenceFrame();\n LayerManager.get_frameWizardDialog().show(frame, e);\n};\n\nLayerManager.referenceFrameWizardFinished = function (frame) {\n var target = LayerManager._selectedLayer;\n var newMap = new LayerMap(frame.name, 18);\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_allMaps(), frame.name)) {\n newMap.frame = frame;\n target.addChild(newMap);\n newMap.frame.parent = target.get_name();\n LayerManager.get_allMaps()[frame.name] = newMap;\n LayerManager._version++;\n LayerManager.loadTree();\n }\n};\n\nLayerManager.pasteFromTle = function (lines, frame) {\n var line1 = '';\n var line2 = '';\n for (var i = 0; i < lines.length; i++) {\n lines[i] = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(lines[i]);\n if (lines[i].length === 69 && _reference_frame_js__WEBPACK_IMPORTED_MODULE_20__.ReferenceFrame.isTLECheckSumGood(lines[i])) {\n if (!line1.length && lines[i].substring(0, 1) === '1') {\n line1 = lines[i];\n }\n if (!line2.length && lines[i].substring(0, 1) === '2') {\n line2 = lines[i];\n }\n }\n }\n if (line1.length === 69 && line2.length === 69) {\n frame.fromTLE(line1, line2, 398600441800000);\n return true;\n }\n return false;\n};\n\nLayerManager._opacityMenu_Click = function (sender, e) { };\n\nLayerManager._defaultImageset_Click = function (sender, e) {\n var isl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(LayerManager._selectedLayer, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer);\n isl.set_overrideDefaultLayer(!isl.get_overrideDefaultLayer());\n};\n\nLayerManager._propertiesMenu_Click = function (sender, e) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(LayerManager._selectedLayer, _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_27__.SpreadSheetLayer)) {\n var target = LayerManager._selectedLayer;\n LayerManager.get_dataVizWizardDialog().show(target, e);\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(LayerManager._selectedLayer, _great_circle_route_layer_js__WEBPACK_IMPORTED_MODULE_21__.GreatCirlceRouteLayer)) {\n LayerManager.get_greatCircleDlg().show(LayerManager._selectedLayer, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n};\n\nLayerManager._renameMenu_Click = function (sender, e) {\n var layer = LayerManager._selectedLayer;\n var input = new _utilities_simple_input_js__WEBPACK_IMPORTED_MODULE_7__.SimpleInput(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(225, 'Rename'), _util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(228, 'New Name'), layer.get_name(), 32);\n input.show(LayerManager._lastMenuClick, function () {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(input.text)) {\n layer.set_name(input.text);\n LayerManager._version++;\n LayerManager.loadTree();\n }\n });\n};\n\nLayerManager._colorMenu_Click = function (sender, e) {\n var layer = LayerManager._selectedLayer;\n var picker = new _utilities_color_picker_js__WEBPACK_IMPORTED_MODULE_8__.ColorPicker();\n if (layer.get_color() != null) {\n picker.color = layer.get_color();\n }\n picker.callBack = function () {\n layer.set_color(picker.color);\n };\n picker.show(e);\n};\n\nLayerManager._addMenu_Click = function (sender, e) { };\n\nLayerManager._deleteMenu_Click = function (sender, e) {\n LayerManager._deleteSelectedLayer();\n};\n\nLayerManager._deleteSelectedLayer = function () {\n if (LayerManager._selectedLayer != null && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(LayerManager._selectedLayer, _layer_js__WEBPACK_IMPORTED_MODULE_19__.Layer)) {\n var node = LayerManager._selectedLayer;\n delete LayerManager.get_layerList()[node.id];\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(LayerManager.get_allMaps()[LayerManager.get_currentMap()].layers, node);\n node.cleanUp();\n node.set_version(node.get_version() + 1) - 1;\n LayerManager.loadTree();\n LayerManager._version++;\n }\n};\n\nLayerManager.scaleMenu_click = function (sender, e) {\n var isl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(LayerManager._selectedLayer, _imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__.ImageSetLayer);\n if (isl != null) {\n var hist = new _utilities_histogram_js__WEBPACK_IMPORTED_MODULE_6__.Histogram();\n hist.image = isl.getFitsImage();\n hist.layer = isl;\n hist.show(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d.create(200, 200));\n }\n};\n\nLayerManager._showViewer_Click = function (sender, e) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(LayerManager._selectedLayer, _vo_table_layer_js__WEBPACK_IMPORTED_MODULE_28__.VoTableLayer)) {\n var layer = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(LayerManager._selectedLayer, _vo_table_layer_js__WEBPACK_IMPORTED_MODULE_28__.VoTableLayer);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalScriptInterface.displayVoTableLayer(layer);\n }\n};\n\nLayerManager._bottom_Click = function (sender, e) {\n var layer = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(LayerManager._selectedLayer, _layer_js__WEBPACK_IMPORTED_MODULE_19__.Layer);\n if (layer != null) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(LayerManager.get_allMaps()[layer.get_referenceFrame()].layers, layer);\n LayerManager.get_allMaps()[layer.get_referenceFrame()].layers.push(layer);\n }\n LayerManager._version++;\n LayerManager.loadTree();\n};\n\nLayerManager._down_Click = function (sender, e) {\n var layer = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(LayerManager._selectedLayer, _layer_js__WEBPACK_IMPORTED_MODULE_19__.Layer);\n if (layer != null) {\n var index = LayerManager.get_allMaps()[layer.get_referenceFrame()].layers.lastIndexOf(layer);\n if (index < (LayerManager.get_allMaps()[layer.get_referenceFrame()].layers.length - 1)) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(LayerManager.get_allMaps()[layer.get_referenceFrame()].layers, layer);\n LayerManager.get_allMaps()[layer.get_referenceFrame()].layers.splice(index + 1, 0, layer);\n }\n }\n LayerManager._version++;\n LayerManager.loadTree();\n};\n\nLayerManager._up_Click = function (sender, e) {\n var layer = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(LayerManager._selectedLayer, _layer_js__WEBPACK_IMPORTED_MODULE_19__.Layer);\n if (layer != null) {\n var index = LayerManager.get_allMaps()[layer.get_referenceFrame()].layers.lastIndexOf(layer);\n if (index > 0) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(LayerManager.get_allMaps()[layer.get_referenceFrame()].layers, layer);\n LayerManager.get_allMaps()[layer.get_referenceFrame()].layers.splice(index - 1, 0, layer);\n }\n }\n LayerManager._version++;\n LayerManager.loadTree();\n};\n\nLayerManager._top_Click = function (sender, e) {\n var layer = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(LayerManager._selectedLayer, _layer_js__WEBPACK_IMPORTED_MODULE_19__.Layer);\n if (layer != null) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(LayerManager.get_allMaps()[layer.get_referenceFrame()].layers, layer);\n LayerManager.get_allMaps()[layer.get_referenceFrame()].layers.splice(0, 0, layer);\n }\n LayerManager._version++;\n LayerManager.loadTree();\n};\n\nLayerManager._pasteLayer_Click = function (sender, e) {\n LayerManager.get_dataVizWizardDialog().show(LayerManager.get_currentMap(), e);\n};\n\nLayerManager.createSpreadsheetLayer = function (frame, name, data) {\n var layer = new _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_27__.SpreadSheetLayer();\n layer.loadFromString(data, false, false, false, true);\n layer.set_name(name);\n LayerManager.addSpreadsheetLayer(layer, frame);\n return layer;\n};\n\nLayerManager.addSpreadsheetLayer = function (layer, frame) {\n layer.enabled = true;\n layer.set_referenceFrame(frame);\n LayerManager.add(layer, true);\n};\n\nLayerManager._showOrbitPlanet_Click = function (sender, e) {\n try {\n var bit = parseInt((sender).tag.toString());\n // Flip the state\n if (!(_settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_globalSettings().get_planetOrbitsFilter() & bit)) {\n _settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_globalSettings().set_planetOrbitsFilter(_settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_globalSettings().get_planetOrbitsFilter() | bit);\n } else {\n _settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_globalSettings().set_planetOrbitsFilter(_settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_globalSettings().get_planetOrbitsFilter() & ~bit);\n }\n }\n catch ($e1) { }\n};\n\nLayerManager._showOrbit_Click = function (sender, e) {\n // Flip the state\n var map = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(LayerManager._selectedLayer, LayerMap);\n map.frame.showOrbitPath = !map.frame.showOrbitPath;\n};\n\nLayerManager._addGreatCircle_Click = function (sender, e) {\n LayerManager._addGreatCircleLayer();\n};\n\nLayerManager._addMpc_Click = function (sender, e) {\n var target = LayerManager._selectedLayer;\n var input = new _utilities_simple_input_js__WEBPACK_IMPORTED_MODULE_7__.SimpleInput(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1302, 'Minor planet name or designation'), _util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(238, 'Name'), '', 32);\n var retry = false;\n do {\n if (input.showDialog() === 1) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(target.childMaps, input.text)) {\n retry = true;\n }\n else {\n try {\n LayerManager._getMpc(input.text, target);\n retry = false;\n }\n catch ($e1) {\n retry = true;\n }\n }\n } else {\n retry = false;\n }\n } while (retry);\n return;\n};\n\nLayerManager._asOrbitalLines_Click = function (sender, e) {\n var target = LayerManager._selectedLayer;\n var input = new _utilities_simple_input_js__WEBPACK_IMPORTED_MODULE_7__.SimpleInput(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1302, 'Minor planet name or designation'), _util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(238, 'Name'), '', 32);\n input.show(_util_js__WEBPACK_IMPORTED_MODULE_17__.Cursor.get_position(), function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(target.childMaps, input.text)) {\n } else {\n LayerManager._getMpcAsTLE(input.text, target);\n }\n });\n};\n\nLayerManager._getMpcAsTLE = function (id, target) {\n var file = new _web_file_js__WEBPACK_IMPORTED_MODULE_18__.WebFile('https://www.minorplanetcenter.net/db_search/show_object?object_id=' + id);\n file.onStateChange = function () {\n if (file.get_state() !== 1) {\n return;\n }\n var data = file.getText();\n var startform = data.indexOf('show-orbit-button');\n var lastForm = data.indexOf('/form', startform);\n var formpart = data.substring(startform, lastForm);\n var name = id;\n var frame = new _reference_frame_js__WEBPACK_IMPORTED_MODULE_20__.ReferenceFrame();\n frame.oblateness = 0;\n frame.showOrbitPath = true;\n frame.showAsPoint = true;\n frame.epoch = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.utcToJulian(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.date(LayerManager._getValueByID(formpart, 'epoch').substring(0, 10)));\n frame.semiMajorAxis = parseFloat(LayerManager._getValueByID(formpart, 'a')) * 149598000 * 1000;\n frame.referenceFrameType = 1;\n frame.inclination = parseFloat(LayerManager._getValueByID(formpart, 'incl'));\n frame.longitudeOfAscendingNode = parseFloat(LayerManager._getValueByID(formpart, 'node'));\n frame.eccentricity = parseFloat(LayerManager._getValueByID(formpart, 'e'));\n frame.meanAnomolyAtEpoch = parseFloat(LayerManager._getValueByID(formpart, 'm'));\n frame.meanDailyMotion = _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_5__.ELL.meanMotionFromSemiMajorAxis(parseFloat(LayerManager._getValueByID(formpart, 'a')));\n frame.argumentOfPeriapsis = parseFloat(LayerManager._getValueByID(formpart, 'peri'));\n frame.scale = 1;\n frame.semiMajorAxisUnits = 1;\n frame.meanRadius = 10;\n frame.oblateness = 0;\n var TLE = name + '\\n' + frame.toTLE();\n LayerManager._loadOrbitsFile(id, TLE, target.get_name());\n LayerManager.loadTree();\n };\n file.send();\n};\n\nLayerManager._getMpc = function (id, target) {\n var file = new _web_file_js__WEBPACK_IMPORTED_MODULE_18__.WebFile('https://www.minorplanetcenter.net/db_search/show_object?object_id=' + id);\n file.onStateChange = function () {\n var data = file.getText();\n var startform = data.indexOf('show-orbit-button');\n var lastForm = data.indexOf('/form', startform);\n var formpart = data.substring(startform, lastForm);\n var name = id;\n var orbit = new LayerMap(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(name), 18);\n orbit.frame.oblateness = 0;\n orbit.frame.showOrbitPath = true;\n orbit.frame.showAsPoint = true;\n orbit.frame.epoch = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.utcToJulian(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.date(LayerManager._getValueByID(formpart, 'epoch').substring(0, 10)));\n orbit.frame.semiMajorAxis = parseFloat(LayerManager._getValueByID(formpart, 'a')) * 149598000 * 1000;\n orbit.frame.referenceFrameType = 1;\n orbit.frame.inclination = parseFloat(LayerManager._getValueByID(formpart, 'incl'));\n orbit.frame.longitudeOfAscendingNode = parseFloat(LayerManager._getValueByID(formpart, 'node'));\n orbit.frame.eccentricity = parseFloat(LayerManager._getValueByID(formpart, 'e'));\n orbit.frame.meanAnomolyAtEpoch = parseFloat(LayerManager._getValueByID(formpart, 'm'));\n orbit.frame.meanDailyMotion = _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_5__.ELL.meanMotionFromSemiMajorAxis(parseFloat(LayerManager._getValueByID(formpart, 'a')));\n orbit.frame.argumentOfPeriapsis = parseFloat(LayerManager._getValueByID(formpart, 'peri'));\n orbit.frame.scale = 1;\n orbit.frame.semiMajorAxisUnits = 1;\n orbit.frame.meanRadius = 10;\n orbit.frame.oblateness = 0;\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(LayerManager.get_allMaps()[target.get_name()].childMaps, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(name))) {\n LayerManager.get_allMaps()[target.get_name()].addChild(orbit);\n }\n LayerManager.get_allMaps()[orbit.get_name()] = orbit;\n orbit.frame.parent = target.get_name();\n LayerManager._makeLayerGroup('Minor Planet', orbit);\n LayerManager.loadTree();\n };\n};\n\nLayerManager._getValueByID = function (data, id) {\n var valStart = data.indexOf('id=\"' + id + '\"');\n valStart = data.indexOf('value=', valStart) + 7;\n var valEnd = data.indexOf('\"', valStart);\n return data.substr(valStart, valEnd - valStart);\n};\n\nLayerManager._addGreatCircleLayer = function () {\n var layer = new _great_circle_route_layer_js__WEBPACK_IMPORTED_MODULE_21__.GreatCirlceRouteLayer();\n var camera = _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera;\n layer.set_latStart(camera.lat);\n layer.set_latEnd(camera.lat - 5);\n layer.set_lngStart(camera.lng);\n layer.set_lngEnd(camera.lng + 5);\n layer.set_width(4);\n layer.enabled = true;\n layer.set_name(_util_js__WEBPACK_IMPORTED_MODULE_17__.Language.getLocalizedText(1144, 'Great Circle Route'));\n LayerManager.get_layerList()[layer.id] = layer;\n layer.set_referenceFrame(LayerManager._currentMap);\n LayerManager.get_allMaps()[LayerManager._currentMap].layers.push(layer);\n LayerManager.get_allMaps()[LayerManager._currentMap].open = true;\n LayerManager._version++;\n LayerManager.loadTree();\n LayerManager.get_greatCircleDlg().show(layer, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n};\n\nLayerManager._loadOrbitsFile = function (name, data, currentMap) {\n var layer = new _orbit_layer_js__WEBPACK_IMPORTED_MODULE_26__.OrbitLayer();\n layer.loadString(data);\n layer.enabled = true;\n layer.set_name(name);\n LayerManager.get_layerList()[layer.id] = layer;\n layer.set_referenceFrame(currentMap);\n LayerManager.get_allMaps()[currentMap].layers.push(layer);\n LayerManager.get_allMaps()[currentMap].open = true;\n LayerManager._version++;\n LayerManager.loadTree();\n return layer;\n};\n\nvar LayerManager$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"LayerManager\", [LayerManager, LayerManager$, null]);\n\n\n// wwtlib.LayerMap\n\nfunction LayerMap(name, reference) {\n this.childMaps = {};\n this.parent = null;\n this.layers = [];\n this.open = false;\n this.enabled = true;\n this.loadedFromTour = false;\n this.frame = new _reference_frame_js__WEBPACK_IMPORTED_MODULE_20__.ReferenceFrame();\n this.set_name(name);\n this.frame.reference = reference;\n var radius = 6371000;\n switch (reference) {\n case 0:\n break;\n case 1:\n break;\n case 2:\n break;\n case 3:\n radius = 696000000;\n break;\n case 4:\n radius = 2439700;\n break;\n case 5:\n radius = 6051800;\n break;\n case 6:\n radius = 6371000;\n break;\n case 7:\n radius = 3390000;\n break;\n case 8:\n radius = 69911000;\n break;\n case 9:\n radius = 58232000;\n break;\n case 10:\n radius = 25362000;\n break;\n case 11:\n radius = 24622000;\n break;\n case 12:\n radius = 1161000;\n break;\n case 13:\n radius = 1737100;\n break;\n case 14:\n radius = 1821500;\n break;\n case 15:\n radius = 1561000;\n break;\n case 16:\n radius = 2631200;\n break;\n case 17:\n radius = 2410300;\n break;\n case 18:\n break;\n case 19:\n break;\n default:\n break;\n }\n this.frame.meanRadius = radius;\n}\n\nvar LayerMap$ = {\n addChild: function (child) {\n child.parent = this;\n this.childMaps[child.get_name()] = child;\n },\n\n get_name: function () {\n return this.frame.name;\n },\n\n set_name: function (value) {\n this.frame.name = value;\n return value;\n },\n\n computeFrame: function (renderContext) {\n if (this.frame.reference === 18) {\n this.frame.computeFrame(renderContext);\n }\n },\n\n toString: function () {\n return this.get_name();\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"LayerMap\", [LayerMap, LayerMap$, null]);\n\n\n// wwtlib.SkyOverlays\n\nfunction SkyOverlays() { }\n\nvar SkyOverlays$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"SkyOverlays\", [SkyOverlays, SkyOverlays$, null]);\n\n\n// wwtlib.GroundOverlayLayer\n\nfunction GroundOverlayLayer() { }\n\nvar GroundOverlayLayer$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"GroundOverlayLayer\", [GroundOverlayLayer, GroundOverlayLayer$, null]);\n\n\n// wwtlib.FrameTarget\n\nfunction FrameTarget() { }\n\nvar FrameTarget$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"FrameTarget\", [FrameTarget, FrameTarget$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/layer_ui.js\":\n/*!********************************!*\\\n !*** ./esm/layers/layer_ui.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LayerUI: () => (/* binding */ LayerUI),\n/* harmony export */ LayerUIMenuItem: () => (/* binding */ LayerUIMenuItem),\n/* harmony export */ LayerUITreeNode: () => (/* binding */ LayerUITreeNode)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A framework for constructing UIs associated with specific layers. Largely\n// unused in the web engine context.\n\n\n\n\n\n\n// wwtlib.LayerUI\n\nfunction LayerUI() { }\n\nLayerUI._type = null;\n\nvar LayerUI$ = {\n get_hasTreeViewNodes: function () {\n return false;\n },\n\n getTreeNodes: function () {\n return null;\n },\n\n getNodeContextMenu: function (node) {\n return null;\n },\n\n setUICallbacks: function (callbacks) { }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"LayerUI\", [LayerUI, LayerUI$, null]);\n\n\n// wwtlib.LayerUIMenuItem\n\nfunction LayerUIMenuItem() {\n this._tag = null;\n this._isChecked = false;\n this._isEnabled = true;\n this._subMenus = null;\n}\n\nvar LayerUIMenuItem$ = {\n get_name: function () {\n return this._name;\n },\n\n set_name: function (value) {\n this._name = value;\n return value;\n },\n\n get_tag: function () {\n return this._tag;\n },\n\n set_tag: function (value) {\n this._tag = value;\n return value;\n },\n\n get_checked: function () {\n return this._isChecked;\n },\n\n set_checked: function (value) {\n this._isChecked = value;\n return value;\n },\n\n get_enabled: function () {\n return this._isEnabled;\n },\n\n set_enabled: function (value) {\n this._isEnabled = value;\n return value;\n },\n\n add_menuItemSelected: function (value) {\n this.__menuItemSelected = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__menuItemSelected, value);\n },\n\n remove_menuItemSelected: function (value) {\n this.__menuItemSelected = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__menuItemSelected, value);\n },\n\n fireMenuItemSelected: function () {\n if (this.__menuItemSelected != null) {\n this.__menuItemSelected(this);\n }\n },\n\n get_subMenus: function () {\n if (this._subMenus == null) {\n this._subMenus = [];\n }\n return this._subMenus;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"LayerUIMenuItem\", [LayerUIMenuItem, LayerUIMenuItem$, null]);\n\n\n// wwtlib.LayerUITreeNode\n\nfunction LayerUITreeNode() {\n this._parent = null;\n this._level = 0;\n this._open = false;\n this._isChecked = false;\n this._bold = false;\n this._color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white();\n this._nodes = null;\n}\n\nvar LayerUITreeNode$ = {\n add_nodeChecked: function (value) {\n this.__nodeChecked = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__nodeChecked, value);\n },\n\n remove_nodeChecked: function (value) {\n this.__nodeChecked = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__nodeChecked, value);\n },\n\n fireNodeChecked: function (newState) {\n if (this.__nodeChecked != null) {\n this.__nodeChecked(this, newState);\n }\n },\n\n add_nodeUpdated: function (value) {\n this.__nodeUpdated = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__nodeUpdated, value);\n },\n\n remove_nodeUpdated: function (value) {\n this.__nodeUpdated = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__nodeUpdated, value);\n },\n\n fireNodeUpdated: function () {\n if (this.__nodeUpdated != null) {\n this.__nodeUpdated(this);\n }\n },\n\n add_nodeSelected: function (value) {\n this.__nodeSelected = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__nodeSelected, value);\n },\n\n remove_nodeSelected: function (value) {\n this.__nodeSelected = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__nodeSelected, value);\n },\n\n fireNodeSelected: function () {\n if (this.__nodeSelected != null) {\n this.__nodeSelected(this);\n }\n },\n\n add_nodeActivated: function (value) {\n this.__nodeActivated = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__nodeActivated, value);\n },\n\n remove_nodeActivated: function (value) {\n this.__nodeActivated = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__nodeActivated, value);\n },\n\n fireNodeActivated: function () {\n if (this.__nodeActivated != null) {\n this.__nodeActivated(this);\n }\n },\n\n get_name: function () {\n return this._name;\n },\n\n set_name: function (value) {\n if (this._name !== value) {\n this._name = value;\n this.fireNodeUpdated();\n }\n return value;\n },\n\n get_parent: function () {\n return this._parent;\n },\n\n set_parent: function (value) {\n this._parent = value;\n return value;\n },\n\n get_level: function () {\n return this._level;\n },\n\n set_level: function (value) {\n this._level = value;\n return value;\n },\n\n get_tag: function () {\n return this._tag;\n },\n\n set_tag: function (value) {\n this._tag = value;\n return value;\n },\n\n get_referenceTag: function () {\n return this._referenceTag;\n },\n\n set_referenceTag: function (value) {\n this._referenceTag = value;\n return value;\n },\n\n get_opened: function () {\n return this._open;\n },\n\n set_opened: function (value) {\n if (this._open !== value) {\n this._open = value;\n this.fireNodeUpdated();\n }\n return value;\n },\n\n get_checked: function () {\n return this._isChecked;\n },\n\n set_checked: function (value) {\n if (this._isChecked !== value) {\n this._isChecked = value;\n this.fireNodeUpdated();\n }\n return value;\n },\n\n get_bold: function () {\n return this._bold;\n },\n\n set_bold: function (value) {\n if (this._bold !== value) {\n this._bold = value;\n this.fireNodeUpdated();\n }\n return value;\n },\n\n get_color: function () {\n return this._color;\n },\n\n set_color: function (value) {\n if (this._color !== value) {\n this._color = value;\n this.fireNodeUpdated();\n }\n return value;\n },\n\n add: function (name) {\n var node = new LayerUITreeNode();\n node.set_name(name);\n node.set_parent(this);\n node.set_level(this.get_level() + 1);\n this.get_nodes().push(node);\n return node;\n },\n\n get_nodes: function () {\n if (this._nodes == null) {\n this._nodes = [];\n }\n return this._nodes;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"LayerUITreeNode\", [LayerUITreeNode, LayerUITreeNode$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/manager_dialogs.js\":\n/*!***************************************!*\\\n !*** ./esm/layers/manager_dialogs.js ***!\n \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DataVizWizard: () => (/* binding */ DataVizWizard),\n/* harmony export */ FrameWizard: () => (/* binding */ FrameWizard),\n/* harmony export */ GreatCircleDialog: () => (/* binding */ GreatCircleDialog),\n/* harmony export */ ReferenceFrameProps: () => (/* binding */ ReferenceFrameProps)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _utilities_dialog_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utilities/dialog.js */ \"./esm/utilities/dialog.js\");\n/* harmony import */ var _layer_manager_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./layer_manager.js */ \"./esm/layers/layer_manager.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Types defining UI elements associated with the layer manager.\n//\n// These don't do anything in the web client, but to preserve API compatibility,\n// we keep them hanging around.\n\n\n\n\n\n\n// wwtlib.FrameWizard\n//\n// This was originally defined in `Utilities/Dialog.cs`.\n\nfunction FrameWizard() {\n _utilities_dialog_js__WEBPACK_IMPORTED_MODULE_1__.Dialog.call(this);\n}\n\nvar FrameWizard$ = {\n OK: function (frame) {\n _layer_manager_js__WEBPACK_IMPORTED_MODULE_2__.LayerManager.referenceFrameWizardFinished(frame);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"FrameWizard\", [FrameWizard, FrameWizard$, _utilities_dialog_js__WEBPACK_IMPORTED_MODULE_1__.Dialog]);\n\n\n// wwtlib.ReferenceFrameProps\n//\n// This was originally defined in `Utilities/Dialog.cs`.\n\nfunction ReferenceFrameProps() {\n _utilities_dialog_js__WEBPACK_IMPORTED_MODULE_1__.Dialog.call(this);\n}\n\nvar ReferenceFrameProps$ = {\n OK: function (frame) {\n _layer_manager_js__WEBPACK_IMPORTED_MODULE_2__.LayerManager.loadTree();\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ReferenceFrameProps\", [ReferenceFrameProps, ReferenceFrameProps$, _utilities_dialog_js__WEBPACK_IMPORTED_MODULE_1__.Dialog]);\n\n\n// wwtlib.GreatCircleDialog\n//\n// This was originally defined in `Utilities/Dialog.cs`.\n\nfunction GreatCircleDialog() {\n _utilities_dialog_js__WEBPACK_IMPORTED_MODULE_1__.Dialog.call(this);\n}\n\nvar GreatCircleDialog$ = {\n OK: function (frame) { }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"GreatCircleDialog\", [GreatCircleDialog, GreatCircleDialog$, _utilities_dialog_js__WEBPACK_IMPORTED_MODULE_1__.Dialog]);\n\n\n// wwtlib.DataVizWizard\n//\n// This was originally defined in `Utilities/Dialog.cs`.\n\nfunction DataVizWizard() {\n _utilities_dialog_js__WEBPACK_IMPORTED_MODULE_1__.Dialog.call(this);\n}\n\nvar DataVizWizard$ = {\n OK: function () { }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"DataVizWizard\", [DataVizWizard, DataVizWizard$, _utilities_dialog_js__WEBPACK_IMPORTED_MODULE_1__.Dialog]);\n\n\n// Initialize:\n\n_layer_manager_js__WEBPACK_IMPORTED_MODULE_2__.LayerManager._frameWizardDialog = new FrameWizard();\n_layer_manager_js__WEBPACK_IMPORTED_MODULE_2__.LayerManager._dataVizWizardDialog = new DataVizWizard();\n_layer_manager_js__WEBPACK_IMPORTED_MODULE_2__.LayerManager._referenceFramePropsDialog = new ReferenceFrameProps();\n_layer_manager_js__WEBPACK_IMPORTED_MODULE_2__.LayerManager._greatCircleDialog = new GreatCircleDialog();\n\n\n/***/ }),\n\n/***/ \"./esm/layers/object3d.js\":\n/*!********************************!*\\\n !*** ./esm/layers/object3d.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Group: () => (/* binding */ Group),\n/* harmony export */ Material: () => (/* binding */ Material),\n/* harmony export */ Mesh: () => (/* binding */ Mesh),\n/* harmony export */ Object3d: () => (/* binding */ Object3d),\n/* harmony export */ Object3dLayer: () => (/* binding */ Object3dLayer),\n/* harmony export */ Object3dLayerUI: () => (/* binding */ Object3dLayerUI),\n/* harmony export */ ObjectNode: () => (/* binding */ ObjectNode),\n/* harmony export */ VertexPosition: () => (/* binding */ VertexPosition)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n/* harmony import */ var _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../graphics/gl_buffers.js */ \"./esm/graphics/gl_buffers.js\");\n/* harmony import */ var _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../graphics/shaders.js */ \"./esm/graphics/shaders.js\");\n/* harmony import */ var _utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utilities/binary_reader.js */ \"./esm/utilities/binary_reader.js\");\n/* harmony import */ var _baseplanets_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../baseplanets.js */ \"./esm/baseplanets.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n/* harmony import */ var _layer_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./layer.js */ \"./esm/layers/layer.js\");\n/* harmony import */ var _layer_ui_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./layer_ui.js */ \"./esm/layers/layer_ui.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A layer adding a 3D object model, and supporting code.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.Material\n//\n// This was defined in `RenderContext.cs` in the C# code, but that really didn't\n// make any sense, so we've moved it here.\n\nfunction Material() {\n this.specularSharpness = 0;\n this.opacity = 0;\n this.isDefault = false;\n}\n\nvar Material$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Material\", [Material, Material$, null]);\n\n\n// wwtlib.Object3dLayer\n\nfunction Object3dLayer() {\n this._primaryUI$1 = null;\n this._heading$1 = 0;\n this._flipV$1 = true;\n this._flipHandedness$1 = false;\n this._smooth$1 = true;\n this._twoSidedGeometry$1 = false;\n this._pitch$1 = 0;\n this._roll$1 = 0;\n this._scale$1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1, 1, 1);\n this._translate$1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 0, 0);\n this._lightID$1 = 0;\n this._dirty$1 = false;\n this.objType = false;\n this._xHandle$1 = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d();\n this._yHandle$1 = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d();\n this._zHandle$1 = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d();\n this._hprHandles$1 = new Array(6);\n this._uiScale$1 = 1;\n this._showEditUi$1 = false;\n this._dragMode$1 = 0;\n this._pntDown$1 = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d();\n this._valueOnDown$1 = 0;\n this._valueOnDown2$1 = 0;\n this._hitDist$1 = 20;\n this._lockPreferedAxis$1 = false;\n this._preferY$1 = false;\n _layer_js__WEBPACK_IMPORTED_MODULE_14__.Layer.call(this);\n}\n\nObject3dLayer._translateUI$1 = null;\nObject3dLayer._translateUILines$1 = null;\nObject3dLayer._scaleUI$1 = null;\nObject3dLayer._rotateUi$1 = null;\n\nObject3dLayer._initTranslateUI$1 = function () {\n Object3dLayer._translateUILines$1 = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.LineList();\n Object3dLayer._translateUILines$1.timeSeries = false;\n Object3dLayer._translateUILines$1.set_depthBuffered(false);\n Object3dLayer._translateUILines$1.showFarSide = true;\n Object3dLayer._translateUI$1 = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.TriangleList();\n Object3dLayer._translateUI$1.depthBuffered = false;\n Object3dLayer._translateUI$1.timeSeries = false;\n Object3dLayer._translateUI$1.writeZbuffer = false;\n var twoPi = Math.PI * 2;\n var step = twoPi / 45;\n var rad = 0.05;\n\n // X\n\n for (var a = 0; a < twoPi; a += step) {\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1 - rad * 4, 0, 0);\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1 - rad * 4, Math.cos(a) * rad, Math.sin(a) * rad);\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1 - rad * 4, Math.cos(a + step) * rad, Math.sin(a + step) * rad);\n Object3dLayer._translateUI$1.addTriangle(pnt1, pnt2, pnt3, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_red(), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n }\n for (var a = 0; a < twoPi; a += step) {\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1, 0, 0);\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1 - rad * 4, Math.cos(a) * rad, Math.sin(a) * rad);\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1 - rad * 4, Math.cos(a + step) * rad, Math.sin(a + step) * rad);\n Object3dLayer._translateUI$1.addTriangle(pnt1, pnt2, pnt3, _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, 255, Math.max(0, (Math.sin(a) * 128)), Math.max(0, (Math.sin(a) * 128))), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n }\n Object3dLayer._translateUILines$1.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 0, 0), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1, 0, 0), _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_red(), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n\n // Y\n\n for (var a = 0; a < twoPi; a += step) {\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 1 - rad * 4, 0);\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a) * rad, 1 - rad * 4, Math.sin(a) * rad);\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step) * rad, 1 - rad * 4, Math.sin(a + step) * rad);\n Object3dLayer._translateUI$1.addTriangle(pnt1, pnt2, pnt3, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_green(), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n }\n for (var a = 0; a < twoPi; a += step) {\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 1, 0);\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a) * rad, 1 - rad * 4, Math.sin(a) * rad);\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step) * rad, 1 - rad * 4, Math.sin(a + step) * rad);\n Object3dLayer._translateUI$1.addTriangle(pnt1, pnt2, pnt3, _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, Math.max(0, (Math.sin(a) * 128)), 255, Math.max(0, (Math.sin(a) * 128))), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n }\n Object3dLayer._translateUILines$1.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 0, 0), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 1, 0), _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_green(), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n\n // Z\n\n for (var a = 0; a < twoPi; a += step) {\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 0, 1 - rad * 4);\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a) * rad, Math.sin(a) * rad, 1 - rad * 4);\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step) * rad, Math.sin(a + step) * rad, 1 - rad * 4);\n Object3dLayer._translateUI$1.addTriangle(pnt1, pnt2, pnt3, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_blue(), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n }\n for (var a = 0; a < twoPi; a += step) {\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 0, 1);\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a) * rad, Math.sin(a) * rad, 1 - rad * 4);\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step) * rad, Math.sin(a + step) * rad, 1 - rad * 4);\n Object3dLayer._translateUI$1.addTriangle(pnt1, pnt2, pnt3, _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, Math.max(0, (Math.sin(a) * 128)), Math.max(0, (Math.sin(a) * 128)), 255), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n }\n Object3dLayer._translateUILines$1.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 0, 0), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 0, 1), _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_blue(), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n Object3dLayer._initRotateUI$1();\n Object3dLayer._initScaleUI$1();\n};\n\nObject3dLayer._initScaleUI$1 = function () {\n Object3dLayer._scaleUI$1 = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.TriangleList();\n Object3dLayer._scaleUI$1.depthBuffered = false;\n Object3dLayer._scaleUI$1.timeSeries = false;\n Object3dLayer._scaleUI$1.writeZbuffer = false;\n var twoPi = Math.PI * 2;\n var step = twoPi / 45;\n var rad = 0.05;\n Object3dLayer._makeCube$1(Object3dLayer._scaleUI$1, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1 - rad * 2, 0, 0), rad * 2, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_red());\n Object3dLayer._makeCube$1(Object3dLayer._scaleUI$1, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 1 - rad * 2, 0), rad * 2, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_green());\n Object3dLayer._makeCube$1(Object3dLayer._scaleUI$1, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 0, 1 - rad * 2), rad * 2, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_blue());\n};\n\nObject3dLayer._makeCube$1 = function (tl, center, size, color) {\n var dark = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((color.r * 0.6)), color.g, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((color.b * 0.6)));\n var med = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((color.r * 0.8)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((color.g * 0.8)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((color.b * 0.8)));\n tl.addQuad(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y + size, center.z + size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y + size, center.z - size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y + size, center.z + size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y + size, center.z - size), color, _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n tl.addQuad(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y - size, center.z + size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y - size, center.z + size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y - size, center.z - size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y - size, center.z - size), color, _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n tl.addQuad(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y + size, center.z + size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y + size, center.z - size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y - size, center.z + size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y - size, center.z - size), dark, _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n tl.addQuad(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y + size, center.z + size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y - size, center.z + size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y + size, center.z - size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y - size, center.z - size), dark, _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n tl.addQuad(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y + size, center.z + size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y + size, center.z + size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y - size, center.z + size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y - size, center.z + size), med, _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n tl.addQuad(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y + size, center.z - size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x + size, center.y - size, center.z - size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y + size, center.z - size), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(center.x - size, center.y - size, center.z - size), med, _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n};\n\nObject3dLayer._initRotateUI$1 = function () {\n Object3dLayer._rotateUi$1 = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.TriangleList();\n Object3dLayer._rotateUi$1.depthBuffered = false;\n Object3dLayer._rotateUi$1.timeSeries = false;\n Object3dLayer._rotateUi$1.writeZbuffer = false;\n var twoPi = Math.PI * 2;\n var step = twoPi / 40;\n var rad = 0.05;\n var index = 0;\n for (var a = 0; a < twoPi; a += step) {\n var start = !(index % 10);\n var end = !((index + 1) % 10);\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(rad * ((start) ? 0 : ((end) ? 1.5 : 1)), Math.cos(a), Math.sin(a));\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(-rad * ((start) ? 0 : ((end) ? 1.5 : 1)), Math.cos(a), Math.sin(a));\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(rad * ((start) ? 1.5 : ((end) ? 0 : 1)), Math.cos(a + step), Math.sin(a + step));\n var pnt4 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(-rad * ((start) ? 1.5 : ((end) ? 0 : 1)), Math.cos(a + step), Math.sin(a + step));\n Object3dLayer._rotateUi$1.addQuad(pnt1, pnt3, pnt2, pnt4, _color_js__WEBPACK_IMPORTED_MODULE_2__.Color._fromArgbColor(192, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_red()), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n index++;\n }\n index = 0;\n for (var a = 0; a < twoPi; a += step) {\n var start = !(index % 10);\n var end = !((index + 1) % 10);\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a), Math.sin(a), rad * ((start) ? 0 : ((end) ? 1.5 : 1)));\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a), Math.sin(a), -rad * ((start) ? 0 : ((end) ? 1.5 : 1)));\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step), Math.sin(a + step), rad * ((start) ? 1.5 : ((end) ? 0 : 1)));\n var pnt4 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step), Math.sin(a + step), -rad * ((start) ? 1.5 : ((end) ? 0 : 1)));\n Object3dLayer._rotateUi$1.addQuad(pnt1, pnt3, pnt2, pnt4, _color_js__WEBPACK_IMPORTED_MODULE_2__.Color._fromArgbColor(192, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_blue()), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n index++;\n }\n index = 0;\n for (var a = 0; a < twoPi; a += step) {\n var start = !(index % 10);\n var end = !((index + 1) % 10);\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a), rad * ((start) ? 0 : ((end) ? 1.5 : 1)), Math.sin(a));\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a), -rad * ((start) ? 0 : ((end) ? 1.5 : 1)), Math.sin(a));\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step), rad * ((start) ? 1.5 : ((end) ? 0 : 1)), Math.sin(a + step));\n var pnt4 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step), -rad * ((start) ? 1.5 : ((end) ? 0 : 1)), Math.sin(a + step));\n Object3dLayer._rotateUi$1.addQuad(pnt1, pnt2, pnt3, pnt4, _color_js__WEBPACK_IMPORTED_MODULE_2__.Color._fromArgbColor(192, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_green()), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n index++;\n }\n\n // X\n\n index = 0;\n for (var a = 0; a < twoPi; a += step) {\n var start = !(index % 10);\n var end = !((index + 1) % 10);\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(-rad * ((start) ? 0 : ((end) ? 1.5 : 1)), Math.cos(a), Math.sin(a));\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(rad * ((start) ? 0 : ((end) ? 1.5 : 1)), Math.cos(a), Math.sin(a));\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(-rad * ((start) ? 1.5 : ((end) ? 0 : 1)), Math.cos(a + step), Math.sin(a + step));\n var pnt4 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(rad * ((start) ? 1.5 : ((end) ? 0 : 1)), Math.cos(a + step), Math.sin(a + step));\n Object3dLayer._rotateUi$1.addQuad(pnt1, pnt3, pnt2, pnt4, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_red(), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n index++;\n }\n\n // Y\n\n index = 0;\n for (var a = 0; a < twoPi; a += step) {\n var start = !(index % 10);\n var end = !((index + 1) % 10);\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a), Math.sin(a), -rad * ((start) ? 0 : ((end) ? 1.5 : 1)));\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a), Math.sin(a), rad * ((start) ? 0 : ((end) ? 1.5 : 1)));\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step), Math.sin(a + step), -rad * ((start) ? 1.5 : ((end) ? 0 : 1)));\n var pnt4 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step), Math.sin(a + step), rad * ((start) ? 1.5 : ((end) ? 0 : 1)));\n Object3dLayer._rotateUi$1.addQuad(pnt1, pnt3, pnt2, pnt4, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_blue(), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n index++;\n }\n\n // Z\n\n index = 0;\n for (var a = 0; a < twoPi; a += step) {\n var start = !(index % 10);\n var end = !((index + 1) % 10);\n var pnt1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a), -rad * ((start) ? 0 : ((end) ? 1.5 : 1)), Math.sin(a));\n var pnt2 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a), rad * ((start) ? 0 : ((end) ? 1.5 : 1)), Math.sin(a));\n var pnt3 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step), -rad * ((start) ? 1.5 : ((end) ? 0 : 1)), Math.sin(a + step));\n var pnt4 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(Math.cos(a + step), rad * ((start) ? 1.5 : ((end) ? 0 : 1)), Math.sin(a + step));\n Object3dLayer._rotateUi$1.addQuad(pnt1, pnt2, pnt3, pnt4, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_green(), _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__.Dates.empty());\n index++;\n }\n};\n\nvar Object3dLayer$ = {\n getPrimaryUI: function () {\n if (this._primaryUI$1 == null) {\n this._primaryUI$1 = new Object3dLayerUI(this);\n }\n return this._primaryUI$1;\n },\n\n get_flipV: function () {\n return this._flipV$1;\n },\n\n set_flipV: function (value) {\n if (this._flipV$1 !== value) {\n this._flipV$1 = value;\n if (this.object3d != null) {\n this.object3d.flipV = this._flipV$1;\n this.object3d._reload();\n }\n this.version++;\n }\n return value;\n },\n\n get_flipHandedness: function () {\n return this._flipHandedness$1;\n },\n\n set_flipHandedness: function (value) {\n if (this._flipHandedness$1 !== value) {\n this._flipHandedness$1 = value;\n if (this.object3d != null) {\n this.object3d.flipHandedness = this._flipHandedness$1;\n this.object3d._reload();\n }\n this.version++;\n }\n return value;\n },\n\n get_smooth: function () {\n return this._smooth$1;\n },\n\n set_smooth: function (value) {\n if (this._smooth$1 !== value) {\n this._smooth$1 = value;\n if (this.object3d != null) {\n this.object3d.smooth = this._smooth$1;\n this.object3d._reload();\n }\n this.version++;\n }\n return value;\n },\n\n get_twoSidedGeometry: function () {\n return this._twoSidedGeometry$1;\n },\n\n set_twoSidedGeometry: function (value) {\n if (this._twoSidedGeometry$1 !== value) {\n this._twoSidedGeometry$1 = value;\n this.version++;\n }\n return value;\n },\n\n get_heading: function () {\n return this._heading$1;\n },\n\n set_heading: function (value) {\n if (this._heading$1 !== value) {\n this.version++;\n this._heading$1 = value;\n }\n return value;\n },\n\n get_pitch: function () {\n return this._pitch$1;\n },\n\n set_pitch: function (value) {\n if (this._pitch$1 !== value) {\n this.version++;\n this._pitch$1 = value;\n }\n return value;\n },\n\n get_roll: function () {\n return this._roll$1;\n },\n\n set_roll: function (value) {\n if (this._roll$1 !== value) {\n this.version++;\n this._roll$1 = value;\n }\n return value;\n },\n\n get_scale: function () {\n return this._scale$1;\n },\n\n set_scale: function (value) {\n if (this._scale$1 !== value) {\n this.version++;\n this._scale$1 = value;\n }\n return value;\n },\n\n get_translate: function () {\n return this._translate$1;\n },\n\n set_translate: function (value) {\n if (this._translate$1 !== value) {\n this.version++;\n this._translate$1 = value;\n }\n return value;\n },\n\n get_lightID: function () {\n return this._lightID$1;\n },\n\n set_lightID: function (value) {\n this._lightID$1 = value;\n return value;\n },\n\n cleanUp: function () {\n this._dirty$1 = true;\n },\n\n colorChanged: function () {\n if (this.object3d != null) {\n this.object3d.color = this.get_color();\n }\n },\n\n writeLayerProperties: function (xmlWriter) {\n xmlWriter._writeAttributeString('FlipV', this.get_flipV().toString());\n xmlWriter._writeAttributeString('FlipHandedness', this.get_flipHandedness().toString());\n xmlWriter._writeAttributeString('Smooth', this.get_smooth().toString());\n xmlWriter._writeAttributeString('TwoSidedGeometry', this.get_twoSidedGeometry().toString());\n xmlWriter._writeAttributeString('Heading', this.get_heading().toString());\n xmlWriter._writeAttributeString('Pitch', this.get_pitch().toString());\n xmlWriter._writeAttributeString('Roll', this.get_roll().toString());\n xmlWriter._writeAttributeString('Scale', this.get_scale().toString());\n xmlWriter._writeAttributeString('Translate', this.get_translate().toString());\n xmlWriter._writeAttributeString('LightID', this.get_lightID().toString());\n xmlWriter._writeAttributeString('Obj', this.objType.toString());\n },\n\n getParams: function () {\n var paramList = new Array(14);\n paramList[0] = this._heading$1;\n paramList[1] = this._pitch$1;\n paramList[2] = this._roll$1;\n paramList[3] = this._scale$1.x;\n paramList[4] = this._scale$1.y;\n paramList[5] = this._scale$1.z;\n paramList[6] = this._translate$1.x;\n paramList[7] = this._translate$1.y;\n paramList[8] = this._translate$1.z;\n paramList[9] = this.get_color().r / 255;\n paramList[10] = this.get_color().g / 255;\n paramList[11] = this.get_color().b / 255;\n paramList[12] = this.get_color().a / 255;\n paramList[13] = this.get_opacity();\n return paramList;\n },\n\n getParamNames: function () {\n return ['Heading', 'Pitch', 'Roll', 'Scale.X', 'Scale.Y', 'Scale.Z', 'Translate.X', 'Translate.Y', 'Translate.Z', 'Colors.Red', 'Colors.Green', 'Colors.Blue', 'Colors.Alpha', 'Opacity'];\n },\n\n setParams: function (paramList) {\n if (paramList.length === 14) {\n this._heading$1 = paramList[0];\n this._pitch$1 = paramList[1];\n this._roll$1 = paramList[2];\n this._scale$1.x = paramList[3];\n this._scale$1.y = paramList[4];\n this._scale$1.z = paramList[5];\n this._translate$1.x = paramList[6];\n this._translate$1.y = paramList[7];\n this._translate$1.z = paramList[8];\n this.set_opacity(paramList[13]);\n var color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((paramList[12] * 255)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((paramList[9] * 255)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((paramList[10] * 255)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((paramList[11] * 255)));\n this.set_color(color);\n }\n },\n\n add_propertiesChanged: function (value) {\n this.__propertiesChanged$1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__propertiesChanged$1, value);\n },\n\n remove_propertiesChanged: function (value) {\n this.__propertiesChanged$1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__propertiesChanged$1, value);\n },\n\n fireChanged: function () {\n if (this.__propertiesChanged$1 != null) {\n this.__propertiesChanged$1(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n },\n\n getEditUI: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(this, _interfaces_js__WEBPACK_IMPORTED_MODULE_11__.IUiController);\n },\n\n initializeFromXml: function (node) {\n this.set_flipV(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('FlipV').nodeValue));\n if (node.attributes.getNamedItem('FlipHandedness') != null) {\n this.set_flipHandedness(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('FlipHandedness').nodeValue));\n } else {\n this.set_flipHandedness(false);\n }\n if (node.attributes.getNamedItem('Smooth') != null) {\n this.set_smooth(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('Smooth').nodeValue));\n } else {\n this.set_smooth(true);\n }\n if (node.attributes.getNamedItem('TwoSidedGeometry') != null) {\n this.set_twoSidedGeometry(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('TwoSidedGeometry').nodeValue));\n } else {\n this.set_twoSidedGeometry(false);\n }\n if (node.attributes.getNamedItem('Obj') != null) {\n this.objType = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('Obj').nodeValue);\n } else {\n this.objType = false;\n }\n this.set_heading(parseFloat(node.attributes.getNamedItem('Heading').nodeValue));\n this.set_pitch(parseFloat(node.attributes.getNamedItem('Pitch').nodeValue));\n this.set_roll(parseFloat(node.attributes.getNamedItem('Roll').nodeValue));\n this.set_scale(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.parse(node.attributes.getNamedItem('Scale').nodeValue));\n this.set_translate(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.parse(node.attributes.getNamedItem('Translate').nodeValue));\n if (node.attributes.getNamedItem('LightID') != null) {\n this.set_lightID(parseInt(node.attributes.getNamedItem('LightID').nodeValue));\n }\n },\n\n draw: function (renderContext, opacity, flat) {\n var oldWorld = renderContext.get_world();\n var rotation = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationZ(-this._roll$1 / 180 * Math.PI), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX(-this._pitch$1 / 180 * Math.PI)), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationY(this._heading$1 / 180 * Math.PI));\n renderContext.set_world(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(rotation, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._scaling(this._scale$1.x, this._scale$1.y, this._scale$1.z)), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.translation(this._translate$1)), oldWorld));\n renderContext.set_twoSidedLighting(this.get_twoSidedGeometry());\n _baseplanets_js__WEBPACK_IMPORTED_MODULE_10__.BasePlanets.drawPointPlanet(renderContext, new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d(), 1, _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_red(), false);\n if (this._lightID$1 > 0) {\n // draw light\n } else {\n if (this.object3d != null) {\n this.object3d.color = this.get_color();\n this.object3d.render(renderContext, opacity * this.get_opacity());\n }\n }\n\n // todo enable edit UI\n\n renderContext.set_twoSidedLighting(false);\n renderContext.set_world(oldWorld);\n return true;\n },\n\n addFilesToCabinet: function (fc) {\n // todo: implement\n },\n\n loadData: function (doc, filename) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.endsWith(filename.toLowerCase(), '.obj')) {\n this.objType = true;\n }\n if (!this._lightID$1) {\n if (this.objType) {\n this.object3d = new Object3d(doc, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(filename, '.txt', '.obj'), this.get_flipV(), this._flipHandedness$1, true, this.get_color());\n }\n else {\n this.object3d = new Object3d(doc, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(filename, '.txt', '.3ds'), this.get_flipV(), this._flipHandedness$1, true, this.get_color());\n }\n }\n },\n\n pointToView: function (pnt) {\n var clientHeight = _render_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalRenderContext.height;\n var clientWidth = _render_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalRenderContext.width;\n var viewWidth = (_render_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalRenderContext.width / _render_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalRenderContext.height) * 1116;\n var x = ((pnt.x) / (clientWidth) * viewWidth) - ((viewWidth - 1920) / 2);\n var y = (pnt.y) / clientHeight * 1116;\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(x, y);\n },\n\n render: function (renderEngine) {\n this._showEditUi$1 = true;\n return;\n },\n\n preRender: function (renderEngine) {\n this._showEditUi$1 = true;\n return;\n },\n\n mouseDown: function (sender, e) {\n var location = this.pointToView(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(e.offsetX, e.offsetY));\n this._pntDown$1 = location;\n var pnt = location;\n if (e.shiftKey) {\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.subtract(pnt, this._xHandle$1).get_length() < this._hitDist$1) {\n this._dragMode$1 = 10;\n this._valueOnDown$1 = this._scale$1.x;\n return true;\n }\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.subtract(pnt, this._yHandle$1).get_length() < this._hitDist$1) {\n this._dragMode$1 = 10;\n this._valueOnDown$1 = this._scale$1.y;\n return true;\n }\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.subtract(pnt, this._zHandle$1).get_length() < this._hitDist$1) {\n this._dragMode$1 = 10;\n this._valueOnDown$1 = this._scale$1.z;\n return true;\n }\n } else {\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.subtract(pnt, this._xHandle$1).get_length() < this._hitDist$1) {\n this._dragMode$1 = 1;\n this._valueOnDown$1 = this._translate$1.x;\n return true;\n }\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.subtract(pnt, this._yHandle$1).get_length() < this._hitDist$1) {\n this._dragMode$1 = 2;\n this._valueOnDown$1 = this._translate$1.y;\n return true;\n }\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.subtract(pnt, this._zHandle$1).get_length() < this._hitDist$1) {\n this._dragMode$1 = 3;\n this._valueOnDown$1 = this._translate$1.z;\n return true;\n }\n }\n for (var i = 0; i < this._hprHandles$1.length; i++) {\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.subtract(pnt, this._hprHandles$1[i]).get_length() < this._hitDist$1) {\n switch (i) {\n case 0:\n this._dragMode$1 = 4;\n this._valueOnDown$1 = this._heading$1;\n this._valueOnDown2$1 = this._pitch$1;\n return true;\n case 1:\n this._dragMode$1 = 7;\n this._valueOnDown$1 = this._heading$1;\n this._valueOnDown2$1 = this._pitch$1;\n return true;\n case 2:\n this._dragMode$1 = 5;\n this._valueOnDown$1 = this._pitch$1;\n this._valueOnDown2$1 = this._roll$1;\n return true;\n case 3:\n this._dragMode$1 = 8;\n this._valueOnDown$1 = this._pitch$1;\n this._valueOnDown2$1 = this._roll$1;\n return true;\n case 4:\n this._dragMode$1 = 6;\n this._valueOnDown$1 = this._roll$1;\n this._valueOnDown2$1 = this._heading$1;\n return true;\n case 5:\n this._dragMode$1 = 9;\n this._valueOnDown$1 = this._roll$1;\n this._valueOnDown2$1 = this._heading$1;\n return true;\n default:\n break;\n }\n }\n }\n return false;\n },\n\n mouseUp: function (sender, e) {\n if (!!this._dragMode$1) {\n this._dragMode$1 = 0;\n this._lockPreferedAxis$1 = false;\n return true;\n }\n return false;\n },\n\n mouseMove: function (sender, e) {\n var location = this.pointToView(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(e.offsetX, e.offsetY));\n if (!!this._dragMode$1) {\n var dist = 0;\n var distX = location.x - this._pntDown$1.x;\n var distY = -(location.y - this._pntDown$1.y);\n if (this._lockPreferedAxis$1) {\n if (this._preferY$1) {\n dist = distY;\n this._preferY$1 = true;\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeNS());\n }\n else {\n dist = distX;\n this._preferY$1 = false;\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeWE());\n }\n }\n else {\n if (Math.abs(distX) > Math.abs(distY)) {\n dist = distX;\n this._preferY$1 = false;\n }\n else {\n dist = distY;\n this._preferY$1 = true;\n }\n if (dist > 5) {\n this._lockPreferedAxis$1 = true;\n }\n }\n switch (this._dragMode$1) {\n case 0:\n break;\n case 1:\n this._translate$1.x = this._valueOnDown$1 + (12 * this._uiScale$1 * (dist / _render_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalRenderContext.width));\n break;\n case 2:\n this._translate$1.y = this._valueOnDown$1 + (12 * this._uiScale$1 * (dist / _render_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalRenderContext.width));\n break;\n case 3:\n this._translate$1.z = this._valueOnDown$1 + (12 * this._uiScale$1 * (dist / _render_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalRenderContext.width));\n break;\n case 4:\n this._heading$1 = this._valueOnDown$1 - distX / 4;\n this._pitch$1 = this._valueOnDown2$1 + distY / 4;\n break;\n case 5:\n this._pitch$1 = this._valueOnDown$1 + distY / 4;\n this._roll$1 = this._valueOnDown2$1 - distX / 4;\n break;\n case 6:\n this._roll$1 = this._valueOnDown$1 + distY / 4;\n this._heading$1 = this._valueOnDown2$1 - distX / 4;\n break;\n case 7:\n this._heading$1 = this._valueOnDown$1 - distX / 4;\n this._pitch$1 = this._valueOnDown2$1 - distY / 4;\n break;\n case 8:\n this._pitch$1 = this._valueOnDown$1 + distY / 4;\n this._roll$1 = this._valueOnDown2$1 + distX / 4;\n break;\n case 9:\n this._roll$1 = this._valueOnDown$1 - distY / 4;\n this._heading$1 = this._valueOnDown2$1 - distX / 4;\n break;\n case 10:\n this._scale$1.x = this._scale$1.y = this._scale$1.z = this._valueOnDown$1 * Math.pow(2, (dist / 100));\n break;\n default:\n break;\n }\n this.fireChanged();\n return true;\n } else {\n var pnt = location;\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.subtract(pnt, this._xHandle$1).get_length() < this._hitDist$1) {\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeAll());\n return true;\n }\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.subtract(pnt, this._yHandle$1).get_length() < this._hitDist$1) {\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeAll());\n return true;\n }\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.subtract(pnt, this._zHandle$1).get_length() < this._hitDist$1) {\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeAll());\n return true;\n }\n for (var i = 0; i < this._hprHandles$1.length; i++) {\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.subtract(pnt, this._hprHandles$1[i]).get_length() < this._hitDist$1) {\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeAll());\n return true;\n }\n }\n }\n return false;\n },\n\n mouseClick: function (sender, e) {\n return false;\n },\n\n click: function (sender, e) {\n return false;\n },\n\n mouseDoubleClick: function (sender, e) {\n return false;\n },\n\n keyDown: function (sender, e) {\n return false;\n },\n\n keyUp: function (sender, e) {\n return false;\n },\n\n hover: function (pnt) {\n return false;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Object3dLayer\", [Object3dLayer, Object3dLayer$, _layer_js__WEBPACK_IMPORTED_MODULE_14__.Layer, _interfaces_js__WEBPACK_IMPORTED_MODULE_11__.IUiController]);\n\n\n// wwtlib.Group\n\nfunction Group() {\n this.startIndex = 0;\n this.indexCount = 0;\n this.materialIndex = 0;\n}\n\nvar Group$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Group\", [Group, Group$, null]);\n\n// wwtlib.Mesh\n\nfunction Mesh() {\n this.boundingSphere = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.SphereHull();\n}\n\nMesh.create = function (vertices, indices) {\n var mesh = new Mesh();\n mesh.vertices = vertices;\n mesh.indices = indices;\n var points = new Array(vertices.length);\n for (var i = 0; i < vertices.length; ++i) {\n points[i] = vertices[i].get_position();\n }\n mesh.boundingSphere = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.ConvexHull.findEnclosingSphereFast(points);\n return mesh;\n};\n\nMesh.createTangent = function (vertices, indices) {\n var mesh = new Mesh();\n mesh.tangentVertices = vertices;\n mesh.indices = indices;\n var points = new Array(mesh.tangentVertices.length);\n for (var i = 0; i < mesh.tangentVertices.length; ++i) {\n points[i] = mesh.tangentVertices[i].get_position();\n }\n mesh.boundingSphere = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.ConvexHull.findEnclosingSphereFast(points);\n return mesh;\n};\n\nvar Mesh$ = {\n dispose: function () {\n if (this.vertexBuffer != null) {\n this.vertexBuffer.dispose();\n this.vertexBuffer = null;\n }\n if (this.tangentVertexBuffer != null) {\n this.tangentVertexBuffer.dispose();\n this.tangentVertexBuffer = null;\n }\n if (this.indexBuffer != null) {\n this.indexBuffer.dispose();\n this.indexBuffer = null;\n }\n },\n\n setObjects: function (objects) {\n this._objects = objects;\n },\n\n // Convert the vertex data to a GPU vertex buffer\n commitToDevice: function () {\n if (this.vertices != null) {\n this.vertexBuffer = _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_7__.PositionNormalTexturedVertexBuffer.create(this.vertices);\n } else if (this.tangentVertices != null) {\n this.tangentVertexBuffer = _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_7__.PositionNormalTexturedTangentVertexBuffer.create(this.tangentVertices);\n }\n this.indexBuffer = new _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_7__.IndexBuffer(new Uint32Array(this.indices));\n },\n\n beginDrawing: function (renderContext) {\n if (this.vertexBuffer != null) {\n renderContext._setVertexBuffer(this.vertexBuffer);\n } else if (this.tangentVertexBuffer != null) {\n renderContext._setVertexBuffer(this.tangentVertexBuffer);\n }\n if (this.indexBuffer != null) {\n renderContext._setIndexBuffer(this.indexBuffer);\n }\n },\n\n drawSubset: function (renderContext, materialIndex) {\n if (this.indexBuffer == null || this._objects == null) {\n return;\n }\n this.drawHierarchy(this._objects, materialIndex, renderContext, 0);\n },\n\n drawHierarchy: function (nodes, materialIndex, renderContext, depth) {\n if (depth > 1212) {\n return;\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(nodes);\n while ($enum1.moveNext()) {\n var node = $enum1.current;\n if (node.drawGroup != null && node.enabled) {\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(node.drawGroup);\n while ($enum2.moveNext()) {\n var group = $enum2.current;\n if (group.materialIndex === materialIndex) {\n renderContext.gl.drawElements(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TRIANGLES, group.indexCount, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.UNSIGNED_INT, group.startIndex * 4);\n }\n }\n }\n this.drawHierarchy(node.children, materialIndex, renderContext, depth + 1);\n }\n },\n\n get_objects: function () {\n return this._objects;\n },\n\n set_objects: function (value) {\n this._objects = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Mesh\", [Mesh, Mesh$, null, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.IDisposable]);\n\n\n// wwtlib.VertexPosition\n\nfunction VertexPosition() {\n this.index = 0;\n}\n\nvar VertexPosition$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"VertexPosition\", [VertexPosition, VertexPosition$, null]);\n\n\n// wwtlib.Object3d\n\nfunction Object3d(tourDoc, filename, flipV, flipHandedness, smooth, color) {\n this.flipHandedness = false;\n this.flipV = true;\n this.smooth = true;\n this._mesh = null; // Our mesh object in sysmem\n this._meshMaterials = [];\n this._meshTextures = [];\n this._meshSpecularTextures = [];\n this._meshNormalMaps = [];\n this.meshFilenames = [];\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white();\n this._textureCache = {};\n this._matFiles = new Array(0);\n this._matFileIndex = 0;\n this.objects = [];\n this._matLib = {};\n this._textureLib = {};\n this._tourDocument = null;\n this.issLayer = false;\n this._readyToRender = false;\n this.useCurrentAmbient = false;\n this._dirty = true;\n this.color = color;\n this.smooth = smooth;\n this.flipV = flipV;\n this.flipHandedness = flipHandedness;\n this.filename = filename;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.endsWith(this.filename.toLowerCase(), '.obj')) {\n this._loadMeshFromObj(tourDoc, this.filename);\n }\n else {\n this._loadMeshFrom3ds(tourDoc, this.filename, 1);\n }\n}\n\nObject3d._compareVector3 = function (v0, v1) {\n if (v0.x < v1.x) {\n return -1;\n }\n else if (v0.x > v1.x) {\n return 1;\n }\n else if (v0.y < v1.y) {\n return -1;\n }\n else if (v0.y > v1.y) {\n return 1;\n }\n else if (v0.z < v1.z) {\n return -1;\n }\n else if (v0.z > v1.z) {\n return 1;\n }\n else {\n return 0;\n }\n};\n\nObject3d._compareVector = function (v0, v1) {\n if (v0.x < v1.x) {\n return -1;\n }\n else if (v0.x > v1.x) {\n return 1;\n }\n else if (v0.y < v1.y) {\n return -1;\n }\n else if (v0.y > v1.y) {\n return 1;\n }\n else {\n return 0;\n }\n};\n\nObject3d._getMaterialID = function (material, materialNames) {\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(materialNames);\n while ($enum1.moveNext()) {\n var mat = $enum1.current;\n if (mat === material) {\n return index;\n }\n index++;\n }\n return -1;\n};\n\nObject3d._disposeTextureList = function (textures) {\n if (textures != null) {\n for (var i = 0; i < textures.length; ++i) {\n if (textures[i] != null) {\n textures[i].dispose();\n textures[i] = null;\n }\n }\n textures.length = 0;\n }\n};\n\nvar Object3d$ = {\n _reload: function () {\n if (!this.issLayer) {\n this.dispose();\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.endsWith(this.filename.toLowerCase(), '.obj')) {\n this._loadMeshFromObj(this._tourDocument, this.filename);\n }\n else {\n this._loadMeshFrom3ds(this._tourDocument, this.filename, 1);\n }\n }\n },\n\n // Calculate per-vertex normals by averaging face normals. Normals of adjacent faces with an\n // angle of greater than crease angle are not included in the average. CalculateVertexNormalsMerged\n // is slower than the other normal generation method, CalculateVertexNormals, but it produces better\n // results. Vertices with identical positions (bot possibly different texture coordinates) are treated\n // as the same vertex for purposes of normal calculation. This allows smooth normals across texture\n // wrap seams.\n //\n // This method returns an array of vertex normals, one for each index in the index list\n _calculateVertexNormalsMerged: function (vertexList, indexList, creaseAngleRad) {\n if (!vertexList.length) {\n return null;\n }\n var vertexCount = vertexList.length;\n var triangleCount = Math.floor(indexList.length / 3);\n\n // Create a list of vertices sorted by their positions. This will be used to\n // produce a list of vertices with unique positions.\n var vertexPositions = [];\n for (var vertexIndex = 0; vertexIndex < vertexList.length; ++vertexIndex) {\n var vp = new VertexPosition();\n vp.position = vertexList[vertexIndex].get_position();\n vp.index = vertexIndex;\n vertexPositions.push(vp);\n }\n vertexPositions.sort(function (v0, v1) {\n return Object3d._compareVector3(v0.position, v1.position);\n });\n\n // vertexMap will map a vertex index to the index of a vertex with a unique position\n var vertexMap = new Array(vertexPositions.length);\n var uniqueVertexCount = 0;\n for (var vertexIndex = 0; vertexIndex < vertexPositions.length; vertexIndex++) {\n if (!vertexIndex || !!Object3d._compareVector3(vertexPositions[vertexIndex].position, vertexPositions[vertexIndex - 1].position)) {\n ++uniqueVertexCount;\n }\n vertexMap[vertexPositions[vertexIndex].index] = uniqueVertexCount - 1;\n }\n var vertexInstanceCounts = new Array(uniqueVertexCount);\n for (var i = 0; i < uniqueVertexCount; i++) {\n vertexInstanceCounts[i] = 0;\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(indexList);\n while ($enum1.moveNext()) {\n var vertexIndex = $enum1.current;\n var uniqueIndex = vertexMap[vertexIndex];\n vertexInstanceCounts[uniqueIndex]++;\n }\n\n // vertexInstances contains the list of faces each vertex is referenced in\n var vertexInstances = new Array(uniqueVertexCount);\n for (var i = 0; i < uniqueVertexCount; ++i) {\n var count = vertexInstanceCounts[i];\n if (count > 0) {\n vertexInstances[i] = new Array(count);\n for (var j = 0; j < count; j++) {\n vertexInstances[i][j] = 0;\n }\n }\n }\n\n // For each vertex, record all faces which include it\n for (var i = 0; i < indexList.length; ++i) {\n var faceIndex = Math.floor(i / 3);\n var uniqueIndex = vertexMap[indexList[i]];\n vertexInstances[uniqueIndex][--vertexInstanceCounts[uniqueIndex]] = faceIndex;\n }\n\n // At this point, vertexInstanceCounts should contain nothing but zeroes\n\n // Compute normals for all faces\n var faceNormals = new Array(triangleCount);\n for (var i = 0; i < triangleCount; ++i) {\n // The face normal is just the cross product of the two edge vectors\n var i0 = indexList[i * 3 + 0];\n var i1 = indexList[i * 3 + 1];\n var i2 = indexList[i * 3 + 2];\n var edge0 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(vertexList[i1].get_position(), vertexList[i0].get_position());\n var edge1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(vertexList[i2].get_position(), vertexList[i1].get_position());\n faceNormals[i] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.cross(edge0, edge1);\n faceNormals[i].normalize();\n }\n\n // Finally, average the face normals\n var newVertexCount = triangleCount * 3;\n var vertexNormals = new Array(newVertexCount);\n var cosCreaseAngle = Math.min(0.9999, Math.cos(creaseAngleRad));\n for (var i = 0; i < newVertexCount; ++i) {\n var vertexIndex = indexList[i];\n var uniqueIndex = vertexMap[vertexIndex];\n var faceNormal = faceNormals[Math.floor(i / 3)];\n var sum = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d();\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(vertexInstances[uniqueIndex]);\n while ($enum2.moveNext()) {\n var faceIndex = $enum2.current;\n var n = faceNormals[faceIndex];\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.dot(faceNormal, n) > cosCreaseAngle) {\n sum.add(n);\n }\n }\n vertexNormals[i] = sum;\n vertexNormals[i].normalize();\n }\n return vertexNormals;\n },\n\n // Calculate tangent vectors at each vertex. The 'face tangent' is a direction in the plane of the\n // triangle and parallel to the direction of increasing tex coord u, i.e. the partial derivative\n // with respect to u of the triangle's plane equation expressed in terms of the texture coordinate\n // (u, v). Partial derivatives of the triangles containing a vertex are averaged to compute the\n // vertex tangent. Faces are not included in the when the angle formed with the test face is\n // greater than the crease angle, or when the texture texture coordinates are not continuous.\n //\n // This method returns an array of vertex normals, one for each index in the index list\n _calculateVertexTangents: function (vertexList, indexList, creaseAngleRad) {\n if (!vertexList.length) {\n return null;\n }\n var vertexCount = vertexList.length;\n var triangleCount = Math.floor(indexList.length / 3);\n\n // Create a list of vertices sorted by their positions. This will be used to\n // produce a list of vertices with unique positions.\n var vertexPositions = [];\n for (var vertexIndex = 0; vertexIndex < vertexList.length; ++vertexIndex) {\n var vp = new VertexPosition();\n vp.position = vertexList[vertexIndex].get_position();\n vp.index = vertexIndex;\n vertexPositions.push(vp);\n }\n vertexPositions.sort(function (v0, v1) {\n return Object3d._compareVector3(v0.position, v1.position);\n });\n\n // vertexMap will map a vertex index to the index of a vertex with a unique position\n var vertexMap = new Array(vertexPositions.length);\n var uniqueVertexCount = 0;\n for (var vertexIndex = 0; vertexIndex < vertexPositions.length; vertexIndex++) {\n if (!vertexIndex || !!Object3d._compareVector3(vertexPositions[vertexIndex].position, vertexPositions[vertexIndex - 1].position)) {\n ++uniqueVertexCount;\n }\n vertexMap[vertexPositions[vertexIndex].index] = (uniqueVertexCount - 1);\n }\n var vertexInstanceCounts = new Array(uniqueVertexCount);\n for (var i = 0; i < uniqueVertexCount; i++) {\n vertexInstanceCounts[i] = 0;\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(indexList);\n while ($enum1.moveNext()) {\n var vertexIndex = $enum1.current;\n var uniqueIndex = vertexMap[vertexIndex];\n vertexInstanceCounts[uniqueIndex]++;\n }\n\n // vertexInstances contains the list of faces each vertex is referenced in\n var vertexInstances = new Array(uniqueVertexCount);\n for (var i = 0; i < uniqueVertexCount; ++i) {\n var count = vertexInstanceCounts[i];\n if (count > 0) {\n vertexInstances[i] = new Array(count);\n for (var j = 0; j < count; j++) {\n vertexInstances[i][j] = 0;\n }\n }\n }\n\n // For each vertex, record all faces which include it\n for (var i = 0; i < indexList.length; ++i) {\n var faceIndex = Math.floor(i / 3);\n var uniqueIndex = vertexMap[indexList[i]];\n vertexInstances[uniqueIndex][--vertexInstanceCounts[uniqueIndex]] = faceIndex;\n }\n\n // At this point, vertexInstanceCounts should contain nothing but zeroes\n\n // Compute partial derivatives for all faces\n var partials = new Array(triangleCount);\n for (var i = 0; i < triangleCount; ++i) {\n var v0 = vertexList[indexList[i * 3 + 0]];\n var v1 = vertexList[indexList[i * 3 + 1]];\n var v2 = vertexList[indexList[i * 3 + 2]];\n var edge0 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(v1.get_position(), v0.get_position());\n var edge1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(v2.get_position(), v0.get_position());\n var m00 = v1.tu - v0.tu;\n var m01 = v1.tv - v0.tv;\n var m10 = v2.tu - v0.tu;\n var m11 = v2.tv - v0.tv;\n var determinant = m00 * m11 - m01 * m10;\n if (Math.abs(determinant) < 1E-06) {\n if (edge0.lengthSq() > 0) {\n // No unique vector; just select one of the edges\n partials[i] = edge0;\n partials[i].normalize();\n }\n else {\n // Degenerate edge; just use the unit x vector\n partials[i] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1, 0, 0);\n }\n }\n else {\n // Matrix n is the inverse of m\n var invDeterminant = 1 / determinant;\n var n00 = m11 * invDeterminant;\n var n01 = -m01 * invDeterminant;\n var n10 = -m10 * invDeterminant;\n var n11 = m00 * invDeterminant;\n partials[i] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.addVectors(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.multiplyScalar(edge0, n00), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.multiplyScalar(edge1, n01));\n partials[i].normalize();\n }\n }\n\n // Finally, average the partial derivatives\n var newVertexCount = triangleCount * 3;\n var tangents = new Array(newVertexCount);\n var cosCreaseAngle = Math.min(0.9999, Math.cos(creaseAngleRad));\n for (var i = 0; i < newVertexCount; ++i) {\n var vertexIndex = indexList[i];\n var uniqueIndex = vertexMap[vertexIndex];\n var du = partials[Math.floor(i / 3)];\n var sum = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d();\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(vertexInstances[uniqueIndex]);\n while ($enum2.moveNext()) {\n var faceIndex = $enum2.current;\n var T = partials[faceIndex];\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.dot(du, T) > cosCreaseAngle) {\n sum.add(T);\n }\n }\n var N = vertexList[vertexIndex].get_normal();\n\n // Make the tangent orthogonal to the vertex normal\n tangents[i] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(sum, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.multiplyScalar(N, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.dot(N, sum)));\n tangents[i].normalize();\n }\n return tangents;\n },\n\n // Calculate per-vertex normals by averaging face normals. Normals of adjacent faces with an\n // angle of greater than crease angle are not included in the average.\n //\n // This method returns an array of vertex normals, one for each index in the index list\n _calculateVertexNormals: function (vertexList, indexList, creaseAngleRad) {\n var vertexCount = vertexList.length;\n var triangleCount = Math.floor(indexList.length / 3);\n\n // vertexInstanceCounts contains the number of times each vertex is referenced in the mesh\n var vertexInstanceCounts = new Array(vertexCount);\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(indexList);\n while ($enum1.moveNext()) {\n var vertexIndex = $enum1.current;\n vertexInstanceCounts[vertexIndex]++;\n }\n\n // vertexInstances contains the list of faces each vertex is referenced in\n var vertexInstances = new Array(vertexCount);\n for (var i = 0; i < vertexCount; ++i) {\n var count = vertexInstanceCounts[i];\n if (count > 0) {\n vertexInstances[i] = new Array(count);\n }\n }\n\n // For each vertex, record all faces which include it\n for (var i = 0; i < indexList.length; ++i) {\n var faceIndex = Math.floor(i / 3);\n var vertexIndex = indexList[i];\n vertexInstances[vertexIndex][--vertexInstanceCounts[vertexIndex]] = faceIndex;\n }\n\n // At this point, vertexInstanceCounts should contain nothing but zeroes\n\n // Compute normals for all faces\n var faceNormals = new Array(triangleCount);\n for (var i = 0; i < triangleCount; ++i) {\n // The face normal is just the cross product of the two edge vectors\n var i0 = indexList[i * 3 + 0];\n var i1 = indexList[i * 3 + 1];\n var i2 = indexList[i * 3 + 2];\n var edge0 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(vertexList[i1].get_position(), vertexList[i0].get_position());\n var edge1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(vertexList[i2].get_position(), vertexList[i1].get_position());\n faceNormals[i] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.cross(edge0, edge1);\n faceNormals[i].normalize();\n }\n\n // Finally, average the face normals\n var newVertexCount = triangleCount * 3;\n var vertexNormals = new Array(newVertexCount);\n var cosCreaseAngle = Math.min(0.9999, Math.cos(creaseAngleRad));\n for (var i = 0; i < newVertexCount; ++i) {\n var vertexIndex = indexList[i];\n var faceNormal = faceNormals[Math.floor(i / 3)];\n var sum = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d();\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(vertexInstances[vertexIndex]);\n while ($enum2.moveNext()) {\n var faceIndex = $enum2.current;\n var n = faceNormals[faceIndex];\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.dot(faceNormal, n) > cosCreaseAngle) {\n sum.add(n);\n }\n }\n vertexNormals[i] = sum;\n vertexNormals[i].normalize();\n }\n return vertexNormals;\n },\n\n // Add textures to ensure that we have as many textures as [...]\n _addMaterial: function (material) {\n this._meshMaterials.push(material);\n while (this._meshTextures.length < this._meshMaterials.length) {\n this._meshTextures.push(null);\n }\n while (this._meshSpecularTextures.length < this._meshMaterials.length) {\n this._meshSpecularTextures.push(null);\n }\n while (this._meshNormalMaps.length < this._meshMaterials.length) {\n this._meshNormalMaps.push(null);\n }\n },\n\n // Load a color chunk from a 3ds file`\n // Colors may be stored in a 3ds file either as 3 floats or 3 bytes\n _loadColorChunk: function (br) {\n var chunkID = br.readUInt16();\n var chunkLength = br.readUInt32();\n var color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_black();\n if ((chunkID === 16 || chunkID === 19) && chunkLength === 18) {\n // Need to guard against values outside of [0, 1], otherwise Colors.FromArgb\n // will throw an exception.\n var r = Math.max(0, Math.min(1, br.readSingle()));\n var g = Math.max(0, Math.min(1, br.readSingle()));\n var b = Math.max(0, Math.min(1, br.readSingle()));\n color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((255 * r)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((255 * g)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((255 * b)));\n } else if ((chunkID === 17 || chunkID === 18) && chunkLength === 9) {\n color = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, br.readByte(), br.readByte(), br.readByte());\n } else {\n // Unknown color block; ignore it\n br.readBytes(chunkLength - 6);\n }\n return color;\n },\n\n // Load a percentage chunk from a 3ds file\n // A percentage may be stored as either a float or a 16-bit integer\n _loadPercentageChunk: function (br) {\n var chunkID = br.readUInt16();\n var chunkLength = br.readUInt32();\n var percentage = 0;\n if (chunkID === 48 && chunkLength === 8) {\n percentage = br.readUInt16();\n } else if (chunkID === 49 && chunkLength === 10) {\n percentage = br.readSingle();\n } else {\n // Unknown percentage block; ignore it\n br.readBytes(chunkLength - 6);\n }\n return percentage;\n },\n\n _loadMeshFromObj: function (doc, filename) {\n var $this = this;\n\n this.filename = filename;\n this._tourDocument = doc;\n var blob = doc.getFileBlob(filename);\n var chunck = new FileReader();\n chunck.onloadend = function (e) {\n $this._matFiles = $this._readObjMaterialsFromBin(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(chunck.result, String));\n $this._matFileIndex = 0;\n\n // pass data to LoadMatLib. It will chain load all the material\n // files, then load the obj from this data - hack for having no\n // synchronous blob reading in javascript\n $this._loadMatLib(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(chunck.result, String));\n };\n chunck.readAsText(blob);\n },\n\n _readObjMaterialsFromBin: function (data) {\n var matFiles = [];\n var lines = data.split('\\n');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(lines);\n while ($enum1.moveNext()) {\n var lineraw = $enum1.current;\n var line = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(lineraw, ' ', ' ');\n var parts = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(line).split(' ');\n if (parts.length > 0) {\n switch (parts[0]) {\n case 'mtllib':\n var path = this.filename.substring(0, this.filename.lastIndexOf('\\\\') + 1);\n var matFile = path + parts[1];\n matFiles.push(matFile);\n break;\n }\n }\n }\n return matFiles;\n },\n\n _readObjFromBin: function (data) {\n var objectFound = false;\n var objects = [];\n var currentObject = new ObjectNode();\n currentObject.name = 'Default';\n var triangleCount = 0;\n var vertexCount = 0;\n var vertexList = [];\n var vertList = [];\n var normList = [];\n var uvList = [];\n vertList.push(new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d());\n normList.push(new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d());\n uvList.push(new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d());\n var indexList = [];\n var attribList = [];\n var applyLists = [];\n var applyListsIndex = [];\n var materialNames = [];\n var currentMaterialIndex = -1;\n var currentMaterial = new Material();\n var currentGroup = new Group();\n var currentIndex = 0;\n\n // initialize the default material\n currentMaterial = new Material();\n currentMaterial.diffuse = this.color;\n currentMaterial.ambient = this.color;\n currentMaterial.specular = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white();\n currentMaterial.specularSharpness = 30;\n currentMaterial.opacity = 1;\n currentMaterial.isDefault = true;\n\n // initialize the group\n currentGroup.startIndex = 0;\n currentGroup.indexCount = 0;\n currentGroup.materialIndex = 0;\n var lines = data.split('\\n');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(lines);\n while ($enum1.moveNext()) {\n var lineraw = $enum1.current;\n var line = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(lineraw, ' ', ' ');\n var parts = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(line).split(' ');\n if (parts.length > 0) {\n switch (parts[0]) {\n case 'mtllib':\n // We have to pre-load these now in JavaScript, since we\n // can't synchronously load the file and we need file\n // contents to interpret the rest of this file\n break;\n case 'usemtl':\n var materialName = parts[1];\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._matLib, materialName)) {\n if (currentMaterialIndex === -1 && currentIndex > 0) {\n this._addMaterial(currentMaterial);\n currentMaterialIndex++;\n }\n if (currentMaterialIndex > -1) {\n currentGroup.indexCount = currentIndex - currentGroup.startIndex;\n currentObject.drawGroup.push(currentGroup);\n }\n currentMaterialIndex++;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._matLib, materialName)) {\n currentMaterial = this._matLib[materialName];\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._textureLib, materialName)) {\n try {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._textureCache, this._textureLib[materialName])) {\n var path = this.filename.substring(0, this.filename.lastIndexOf('\\\\') + 1);\n var tex = this._tourDocument.getCachedTexture2d(path + this._textureLib[materialName]);\n if (tex != null) {\n this.meshFilenames.push(this._textureLib[materialName]);\n this._textureCache[this._textureLib[materialName]] = tex;\n }\n }\n this._meshTextures.push(this._textureCache[this._textureLib[materialName]]);\n }\n catch ($e2) {\n }\n }\n this._addMaterial(currentMaterial);\n currentGroup = new Group();\n currentGroup.startIndex = currentIndex;\n currentGroup.indexCount = 0;\n currentGroup.materialIndex = currentMaterialIndex;\n }\n }\n break;\n case 'v':\n vertexCount++;\n if (this.flipHandedness) {\n vertList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(-parseFloat(parts[1]), parseFloat(parts[2]), parseFloat(parts[3])));\n }\n else {\n vertList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(parseFloat(parts[1]), parseFloat(parts[2]), parseFloat(parts[3])));\n }\n break;\n case 'vn':\n if (this.flipHandedness) {\n normList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(-parseFloat(parts[1]), parseFloat(parts[2]), parseFloat(parts[3])));\n }\n else {\n normList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(parseFloat(parts[1]), parseFloat(parts[2]), parseFloat(parts[3])));\n }\n break;\n case 'vt':\n uvList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(parseFloat(parts[1]), (this.flipV) ? (1 - parseFloat(parts[2])) : parseFloat(parts[2])));\n break;\n case 'g':\n case 'o':\n if (objectFound) {\n if (currentMaterialIndex > -1) {\n currentGroup.indexCount = currentIndex - currentGroup.startIndex;\n currentObject.drawGroup.push(currentGroup);\n currentGroup = new Group();\n currentGroup.startIndex = currentIndex;\n currentGroup.indexCount = 0;\n currentGroup.materialIndex = currentMaterialIndex;\n }\n currentObject = new ObjectNode();\n }\n objectFound = true;\n if (parts.length > 1) {\n currentObject.name = parts[1];\n }\n else {\n currentObject.name = 'Unnamed';\n }\n objects.push(currentObject);\n break;\n case 'f':\n var indexiesA = this._getIndexies(parts[1]);\n var indexiesB = this._getIndexies(parts[2]);\n var indexiesC = this._getIndexies(parts[3]);\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionNormalTextured.createUV(vertList[indexiesA[0]], normList[indexiesA[2]], uvList[indexiesA[1]]));\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionNormalTextured.createUV(vertList[indexiesB[0]], normList[indexiesB[2]], uvList[indexiesB[1]]));\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionNormalTextured.createUV(vertList[indexiesC[0]], normList[indexiesC[2]], uvList[indexiesC[1]]));\n if (this.flipHandedness) {\n indexList.push(currentIndex);\n indexList.push(currentIndex + 2);\n indexList.push(currentIndex + 1);\n }\n else {\n indexList.push(currentIndex);\n indexList.push(currentIndex + 1);\n indexList.push(currentIndex + 2);\n }\n triangleCount++;\n currentIndex += 3;\n if (parts.length > 4) {\n var partIndex = 4;\n while (partIndex < parts.length) {\n if (this.flipHandedness) {\n indexiesA = this._getIndexies(parts[1]);\n indexiesC = this._getIndexies(parts[partIndex]);\n indexiesB = this._getIndexies(parts[partIndex - 1]);\n }\n else {\n indexiesA = this._getIndexies(parts[1]);\n indexiesB = this._getIndexies(parts[partIndex - 1]);\n indexiesC = this._getIndexies(parts[partIndex]);\n }\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionNormalTextured.createUV(vertList[indexiesA[0]], normList[indexiesA[2]], uvList[indexiesA[1]]));\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionNormalTextured.createUV(vertList[indexiesB[0]], normList[indexiesB[2]], uvList[indexiesB[1]]));\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionNormalTextured.createUV(vertList[indexiesC[0]], normList[indexiesC[2]], uvList[indexiesC[1]]));\n indexList.push(currentIndex);\n indexList.push(currentIndex + 1);\n indexList.push(currentIndex + 2);\n triangleCount++;\n currentIndex += 3;\n partIndex++;\n }\n }\n break;\n }\n }\n }\n\n if (!objectFound) {\n // add the default object\n objects.push(currentObject);\n }\n\n if (currentMaterialIndex === -1 && currentIndex > 0) {\n this._addMaterial(currentMaterial);\n currentMaterialIndex++;\n }\n\n if (currentMaterialIndex > -1) {\n currentGroup.indexCount = (currentIndex - currentGroup.startIndex);\n currentObject.drawGroup.push(currentGroup);\n }\n\n if (normList.length < 2) {\n var degtorag = Math.PI / 180;\n var creaseAngleRad = ((this.smooth) ? 170 * degtorag : 45 * degtorag);\n var vertexNormals = this._calculateVertexNormalsMerged(vertexList, indexList, creaseAngleRad);\n var newVertexList = [];\n var newVertexCount = indexList.length;\n for (var vertexIndex = 0; vertexIndex < newVertexCount; ++vertexIndex) {\n var v = vertexList[indexList[vertexIndex]];\n v.set_normal(vertexNormals[vertexIndex]);\n newVertexList.push(v);\n }\n vertexList = newVertexList;\n }\n this._mesh = Mesh.create(vertexList, indexList);\n var rootDummy = new ObjectNode();\n rootDummy.name = 'Root';\n rootDummy.parent = null;\n rootDummy.level = -1;\n rootDummy.drawGroup = null;\n rootDummy.children = objects;\n this.objects = [];\n this.objects.push(rootDummy);\n this._mesh.setObjects(this.objects);\n this._mesh.commitToDevice();\n this._dirty = false;\n this._readyToRender = true;\n },\n\n _loadMatLib: function (data) {\n var $this = this;\n\n if (this._matFileIndex < this._matFiles.length) {\n var filename = this._matFiles[this._matFileIndex++];\n var blob = this._tourDocument.getFileBlob(filename);\n var chunck = new FileReader();\n chunck.onloadend = function (e) {\n $this._readMatLibFromBin(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(chunck.result, String));\n $this._loadMatLib(data);\n };\n chunck.readAsText(blob);\n } else {\n this._readObjFromBin(data);\n }\n },\n\n _readMatLibFromBin: function (data) {\n try {\n var currentMaterial = new Material();\n var materialName = '';\n this._matLib = {};\n this._textureLib = {};\n var lines = data.split('\\n');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(lines);\n while ($enum1.moveNext()) {\n var lineraw = $enum1.current;\n var line = lineraw;\n var parts = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(line).split(' ');\n if (parts.length > 0) {\n switch (parts[0]) {\n case 'newmtl':\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(materialName)) {\n this._matLib[materialName] = currentMaterial;\n }\n currentMaterial = new Material();\n currentMaterial.diffuse = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white();\n currentMaterial.ambient = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white();\n currentMaterial.specular = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_black();\n currentMaterial.specularSharpness = 30;\n currentMaterial.opacity = 1;\n materialName = parts[1];\n break;\n case 'Ka':\n currentMaterial.ambient = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, Math.min(parseFloat(parts[1]) * 255, 255), Math.min(parseFloat(parts[2]) * 255, 255), Math.min(parseFloat(parts[3]) * 255, 255));\n break;\n case 'map_Kd':\n //ENDURE TEXTURES ARE NOT BLACK!\n currentMaterial.diffuse = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white();\n var textureFilename = parts[1];\n for (var i = 2; i < parts.length; i++) {\n textureFilename += ' ' + parts[i];\n }\n var path = this.filename.substring(0, this.filename.lastIndexOf('\\\\') + 1);\n textureFilename = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(textureFilename, '/', '\\\\');\n if (textureFilename.indexOf('\\\\') !== -1) {\n textureFilename = textureFilename.substring(textureFilename.lastIndexOf('\\\\') + 1);\n }\n this._textureLib[materialName] = textureFilename;\n break;\n case 'Kd':\n currentMaterial.diffuse = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, Math.min(parseFloat(parts[1]) * 255, 255), Math.min(parseFloat(parts[2]) * 255, 255), Math.min(parseFloat(parts[3]) * 255, 255));\n break;\n case 'Ks':\n currentMaterial.specular = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, Math.min(parseFloat(parts[1]) * 255, 255), Math.min(parseFloat(parts[2]) * 255, 255), Math.min(parseFloat(parts[3]) * 255, 255));\n break;\n case 'd':\n // Where does this map?\n currentMaterial.opacity = parseFloat(parts[1]);\n break;\n case 'Tr':\n // Where does this map?\n currentMaterial.opacity = 1 - parseFloat(parts[1]);\n break;\n case 'illum':\n // Where does this map?\n var illuminationMode = parseInt(parts[1]);\n break;\n case 'sharpness':\n currentMaterial.specularSharpness = parseFloat(parts[1]);\n break;\n case 'Ns':\n currentMaterial.specularSharpness = 1 + 2 * parseFloat(parts[1]);\n currentMaterial.specularSharpness = Math.max(10, currentMaterial.specularSharpness);\n break;\n }\n }\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(materialName)) {\n this._matLib[materialName] = currentMaterial;\n }\n }\n catch ($e2) {\n }\n },\n\n _getIndexies: function (data) {\n var parts = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(data).split('/');\n var indecies = new Array(3);\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(data)) {\n return indecies;\n }\n if (parts.length > 0) {\n indecies[0] = parseInt(parts[0]);\n }\n if (parts.length > 1) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(parts[1])) {\n indecies[1] = 0;\n }\n else {\n indecies[1] = parseInt(parts[1]);\n }\n }\n if (parts.length > 2) {\n indecies[2] = parseInt(parts[2]);\n }\n return indecies;\n },\n\n _loadMeshFrom3ds: function (doc, filename, scale) {\n var $this = this;\n\n this._tourDocument = doc;\n var blob = doc.getFileBlob(filename);\n var chunck = new FileReader();\n chunck.onloadend = function (e) {\n $this._read3dsFromBin(new _utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_9__.BinaryReader(new Uint8Array(chunck.result)), scale);\n };\n chunck.readAsArrayBuffer(blob);\n },\n\n _read3dsFromBin: function (br, scale) {\n var i;\n var sectionID;\n var sectionLength;\n var name = '';\n var material = '';\n var triangleCount = 0;\n var vertexCount = 0;\n var vertexList = [];\n var indexList = [];\n var attribList = [];\n var materialNames = [];\n var currentMaterialIndex = -1;\n var currentMaterial = new Material();\n var attributeID = 0;\n var count = 0;\n var lastID = 0;\n var exit = false;\n var normalMapFound = false;\n var offsetX = 0;\n var offsetY = 0;\n var offsetZ = 0;\n var objects = [];\n var currentObject = null;\n var objHierarchy = [];\n var objNames = [];\n var objectTable = {};\n var dummyCount = 0;\n var length = br.get_length() - 1;\n var startMapIndex = 0;\n var startTriangleIndex = 0;\n\n // Loop to scan the whole file\n while (br.get_position() < length && !exit) {\n sectionID = br.readUInt16();\n sectionLength = br.readUInt32();\n switch (sectionID) {\n //This section the begining of the file\n case 0x4D4D:\n break;\n\n // This section marks the edit section containing the 3d models (3d3d get it? very punny!)\n case 0x3D3D:\n break;\n\n // Object section contains meshes, etc.\n case 0x4000:\n name = '';\n var b;\n do {\n b = br.readByte();\n if (b > 0) {\n name += String.fromCharCode(b);\n }\n } while (!!b);\n currentObject = new ObjectNode();\n currentObject.name = name;\n objects.push(currentObject);\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(objectTable, currentObject.name)) {\n objectTable[currentObject.name] = currentObject;\n }\n break;\n\n // Marks the start of a mesh section\n case 0x4100:\n startMapIndex = vertexList.length;\n startTriangleIndex = Math.floor(indexList.length / 3);\n break;\n\n // This section has the vertex list.. Maps to Vertext buffer in Direct3d\n case 0x4110:\n vertexCount = br.readUInt16();\n for (i = 0; i < vertexCount; i++) {\n var x = br.readSingle() - offsetX;\n var y = br.readSingle() - offsetY;\n var z = br.readSingle() - offsetZ;\n var vert = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionNormalTextured._create(x * scale, z * scale, y * scale, 0, 0, 0, 0, 0);\n vertexList.push(vert);\n }\n break;\n\n // This section is a triangle index list. Maps to Index Buffer in Direct3d\n case 0x4120:\n var triCount = br.readUInt16();\n triangleCount += triCount;\n for (i = 0; i < triCount; i++) {\n var aa = br.readUInt16() + startMapIndex;\n var bb = br.readUInt16() + startMapIndex;\n var cc = br.readUInt16() + startMapIndex;\n indexList.push(cc);\n indexList.push(bb);\n indexList.push(aa);\n var flags = br.readUInt16();\n }\n break;\n\n // Material for face from start face to triCount\n case 0x4130:\n material = '';\n i = 0;\n var b1;\n do {\n b1 = br.readByte();\n if (b1 > 0) {\n material += String.fromCharCode(b1);\n }\n i++;\n } while (!!b1);\n var triCount = br.readUInt16();\n var applyList = new Array(triCount);\n attributeID = Object3d._getMaterialID(material, materialNames);\n for (i = 0; i < triCount; i++) {\n applyList[i] = br.readUInt16() + startTriangleIndex;\n }\n currentObject.applyLists.push(applyList);\n currentObject.applyListsIndex.push(attributeID);\n break;\n\n // Section for UV texture maps\n case 0x4140:\n count = br.readUInt16();\n for (i = 0; i < count; i++) {\n var vert = vertexList[startMapIndex + i];\n var texCoord = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(br.readSingle(), (this.flipV) ? (1 - br.readSingle()) : br.readSingle());\n vertexList[startMapIndex + i] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionNormalTextured.createUV(vert.get_position(), new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d(), texCoord);\n }\n break;\n\n // Section for Smoothing Groups ??\n case 0x4160:\n var mat = new Array(12);\n for (i = 0; i < 12; i++) {\n mat[i] = br.readSingle();\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(objectTable, name)) {\n objectTable[name].localMat = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.create(mat[0], mat[1], mat[2], 0, mat[3], mat[4], mat[5], 0, mat[6], mat[7], mat[8], 0, mat[9], mat[10], mat[11], 1);\n objectTable[name].localMat.invert();\n }\n break;\n\n // Materials library section\n case 0xAFFF:\n break;\n\n // Material Name\n case 0xA000:\n var matName = '';\n i = 0;\n var b2;\n do {\n b2 = br.readByte();\n if (b2 > 0) {\n matName += String.fromCharCode(b2);\n }\n i++;\n } while (!!b2);\n materialNames.push(matName);\n if (currentMaterialIndex > -1) {\n this._addMaterial(currentMaterial);\n }\n currentMaterialIndex++;\n currentMaterial = new Material();\n currentMaterial.diffuse = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white();\n currentMaterial.ambient = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white();\n currentMaterial.specular = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_black();\n currentMaterial.specularSharpness = 30;\n currentMaterial.opacity = 1;\n break;\n\n // Ambient color\n case 0xA010:\n currentMaterial.ambient = this._loadColorChunk(br);\n break;\n\n // Diffuse color\n case 0xA020:\n currentMaterial.diffuse = this._loadColorChunk(br);\n break;\n\n // Specular color\n case 0xA030:\n currentMaterial.specular = this._loadColorChunk(br);\n break;\n\n // Specular power\n case 0xA040:\n // This is just a reasonable guess at the mapping from percentage to\n // specular exponent used by 3D Studio.\n currentMaterial.specularSharpness = 1 + 2 * this._loadPercentageChunk(br);\n\n // Minimum sharpness of 10 enforced here because of bad specular exponents\n // in ISS model.\n // TODO: Fix ISS and permit lower specular exponents here\n currentMaterial.specularSharpness = Math.max(10, currentMaterial.specularSharpness);\n break;\n\n //Texture map file\n case 0xA200:\n break;\n\n // Texture file name\n case 0xA300:\n var textureFilename = '';\n i = 0;\n var b2;\n do {\n b2 = br.readByte();\n if (b2 > 0) {\n textureFilename += String.fromCharCode(b2);\n }\n i++;\n } while (!!b2);\n var path = this.filename.substring(0, this.filename.lastIndexOf('\\\\') + 1);\n try {\n var tex = this._tourDocument.getCachedTexture2d(path + textureFilename);\n if (tex != null) {\n this._meshTextures.push(tex);\n this.meshFilenames.push(textureFilename);\n // The ISS model has black for the diffuse color; to work around this\n // we'll set the diffuse color to white when there's a texture present.\n // The correct fix is to modify the 3ds model of ISS.\n currentMaterial.diffuse = _color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white();\n }\n else {\n this._meshTextures.push(null);\n }\n }\n catch ($e1) {\n this._meshTextures.push(null);\n }\n break;\n\n // Bump map\n case 0xA230:\n var percentage = this._loadPercentageChunk(br);\n var nameId = br.readUInt16();\n var nameBlockLength = br.readUInt32();\n var textureFilename = '';\n i = 0;\n var b2;\n do {\n b2 = br.readByte();\n if (b2 > 0) {\n textureFilename += String.fromCharCode(b2);\n }\n i++;\n } while (!!b2);\n var path = this.filename.substring(0, this.filename.lastIndexOf('\\\\') + 1);\n try {\n var tex = this._tourDocument.getCachedTexture2d(path + textureFilename);\n if (tex != null) {\n this._meshNormalMaps.push(tex);\n this.meshFilenames.push(textureFilename);\n // Indicate that we have a normal map so that we know to generate tangent vectors for the mesh\n normalMapFound = true;\n }\n else {\n this._meshNormalMaps.push(null);\n }\n }\n catch ($e2) {\n this._meshNormalMaps.push(null);\n }\n break;\n\n // Specular map\n case 0xA204:\n var strength = this._loadPercentageChunk(br);\n var nameId = br.readUInt16();\n var nameBlockLength = br.readUInt32();\n var textureFilename = '';\n i = 0;\n var b2;\n do {\n b2 = br.readByte();\n if (b2 > 0) {\n textureFilename += String.fromCharCode(b2);\n }\n i++;\n } while (!!b2);\n var path = this.filename.substring(0, this.filename.lastIndexOf('\\\\') + 1);\n try {\n var tex = this._tourDocument.getCachedTexture2d(path + textureFilename);\n if (tex != null) {\n this._meshSpecularTextures.push(tex);\n this.meshFilenames.push(textureFilename);\n // Set the current specular color from the specular texture strength\n var gray = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((255.99 * strength / 100));\n currentMaterial.specular = _color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, gray, gray, gray);\n }\n else {\n this._meshSpecularTextures.push(null);\n }\n }\n catch ($e3) {\n this._meshSpecularTextures.push(null);\n }\n break;\n\n case 0xB000:\n break;\n case 0xB002:\n break;\n case 0xB010:\n name = '';\n i = 0;\n var b1;\n do {\n b1 = br.readByte();\n if (b1 > 0) {\n name += String.fromCharCode(b1);\n }\n i++;\n } while (!!b1);\n var dum1 = br.readUInt16();\n var dum2 = br.readUInt16();\n var level = br.readUInt16();\n if (level === 65535) {\n level = -1;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(name, '$')) {\n dummyCount++;\n }\n else {\n objNames.push(name);\n }\n objHierarchy.push(level);\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(objectTable, name)) {\n objectTable[name].level = level;\n }\n break;\n\n case 0xB011:\n name = '';\n i = 0;\n var b1;\n do {\n b1 = br.readByte();\n if (b1 > 0) {\n name += String.fromCharCode(b1);\n }\n i++;\n } while (!!b1);\n objNames.push('$$$' + name);\n break;\n\n case 0xB013:\n // pivot point\n var points = new Array(3);\n for (i = 0; i < 3; i++) {\n points[i] = br.readSingle();\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(objectTable, name)) {\n objectTable[name].pivotPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(-points[0], -points[1], -points[2]);\n }\n break;\n\n case 0xB020:\n var pos = new Array(8);\n for (i = 0; i < 8; i++) {\n pos[i] = br.readSingle();\n }\n break;\n\n // If we don't recognize a section then jump over it. Subract the header from the section length\n default:\n br.seekRelative((sectionLength - 6));\n break;\n }\n\n lastID = sectionID;\n }\n\n br.close();\n if (currentMaterialIndex > -1) {\n this._addMaterial(currentMaterial);\n }\n\n // Generate vertex normals\n\n // Vertex normals are computed by averaging the normals of all faces\n // with an angle between them less than the crease angle. By setting\n // the crease angle to 0 degrees, the model will have a faceted appearance.\n // Right now, the smooth flag selects between one of two crease angles,\n // but some smoothing is always applied.\n\n var degtorag = Math.PI / 180;\n var creaseAngleRad = ((this.smooth) ? 70 * degtorag : 45 * degtorag);\n var vertexNormals = this._calculateVertexNormalsMerged(vertexList, indexList, creaseAngleRad);\n var newVertexList = [];\n var newVertexCount = triangleCount * 3;\n for (var vertexIndex = 0; vertexIndex < newVertexCount; ++vertexIndex) {\n var v = vertexList[indexList[vertexIndex]];\n v.set_normal(vertexNormals[vertexIndex]);\n newVertexList.push(v);\n }\n\n // Use the triangle mesh and material assignments to create a single\n // index list for the mesh.\n var newIndexList = [];\n var $enum4 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(objects);\n while ($enum4.moveNext()) {\n var node = $enum4.current;\n var materialGroups = [];\n for (i = 0; i < node.applyLists.length; i++) {\n var matId = node.applyListsIndex[i];\n var startIndex = newIndexList.length;\n var $enum5 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(node.applyLists[i]);\n while ($enum5.moveNext()) {\n var triangleIndex = $enum5.current;\n newIndexList.push((triangleIndex * 3));\n newIndexList.push((triangleIndex * 3 + 1));\n newIndexList.push((triangleIndex * 3 + 2));\n }\n var group = new Group();\n group.startIndex = startIndex;\n group.indexCount = node.applyLists[i].length * 3;\n group.materialIndex = matId;\n materialGroups.push(group);\n }\n node.drawGroup = materialGroups;\n }\n\n // Turn objects into tree\n var nodeStack = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.Stack();\n var nodeTreeRoot = [];\n var rootDummy = new ObjectNode();\n rootDummy.name = 'Root';\n rootDummy.parent = null;\n rootDummy.level = -1;\n rootDummy.drawGroup = null;\n var currentLevel = -1;\n nodeStack.push(rootDummy);\n nodeTreeRoot.push(rootDummy);\n for (i = 0; i < objHierarchy.length; i++) {\n var level = objHierarchy[i];\n if (level <= currentLevel) {\n // pop out all the nodes to intended parent\n while (level <= nodeStack.peek().level && nodeStack.count > 1) {\n nodeStack.pop();\n }\n currentLevel = level;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(objNames[i], '$$$')) {\n var dummy = new ObjectNode();\n dummy.name = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(objNames[i], '$$$', '');\n dummy.parent = nodeStack.peek();\n dummy.parent.children.push(dummy);\n dummy.level = currentLevel = level;\n dummy.drawGroup = null;\n nodeStack.push(dummy);\n }\n else {\n objectTable[objNames[i]].level = currentLevel = level;\n objectTable[objNames[i]].parent = nodeStack.peek();\n objectTable[objNames[i]].parent.children.push(objectTable[objNames[i]]);\n nodeStack.push(objectTable[objNames[i]]);\n }\n }\n if (!objHierarchy.length) {\n var $enum6 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(objects);\n while ($enum6.moveNext()) {\n var node = $enum6.current;\n rootDummy.children.push(node);\n node.parent = rootDummy;\n }\n }\n if (normalMapFound) {\n // If we've got a normal map, we want to generate tangent vectors for the mesh\n\n // Mapping of vertices to geometry is extremely straightforward now, but this could\n // change when a mesh optimization step is introduced.\n var tangentIndexList = [];\n for (var tangentIndex = 0; tangentIndex < newVertexCount; ++tangentIndex) {\n tangentIndexList.push(tangentIndex);\n }\n var tangents = this._calculateVertexTangents(newVertexList, tangentIndexList, creaseAngleRad);\n\n // Copy the tangents in the vertex data list\n var vertices = new Array(newVertexList.length);\n var vertexIndex = 0;\n var $enum7 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(newVertexList);\n while ($enum7.moveNext()) {\n var v = $enum7.current;\n var tvertex = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionNormalTexturedTangent(v.get_position(), v.get_normal(), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(v.tu, v.tv), tangents[vertexIndex]);\n vertices[vertexIndex] = tvertex;\n ++vertexIndex;\n }\n this._mesh = Mesh.createTangent(vertices, newIndexList);\n } else {\n this._mesh = Mesh.create(newVertexList, newIndexList);\n }\n this.objects = nodeTreeRoot;\n this._mesh.setObjects(nodeTreeRoot);\n this._mesh.commitToDevice();\n this._dirty = false;\n this._readyToRender = true;\n },\n\n _offsetObjects: function (vertList, objects, offsetMat, offsetPoint) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(objects);\n while ($enum1.moveNext()) {\n var node = $enum1.current;\n var matLoc = node.localMat;\n this._offsetObjects(vertList, node.children, matLoc, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.addVectors(node.pivotPoint, offsetPoint));\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(node.drawGroup);\n while ($enum2.moveNext()) {\n var group = $enum2.current;\n var end = group.startIndex + group.indexCount;\n for (var i = group.startIndex; i < end; i++) {\n var vert = vertList[i];\n vert.set_position(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.addVectors(vert.get_position(), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.addVectors(node.pivotPoint, offsetPoint)));\n vertList[i] = vert;\n }\n }\n }\n },\n\n // Set up lighting state to account for:\n // - Light reflected from a nearby planet\n // - Shadows cast by nearby planets\n setupLighting: function (renderContext) {\n var objPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(renderContext.get_world().get_offsetX(), renderContext.get_world().get_offsetY(), renderContext.get_world().get_offsetZ());\n var objToLight = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(objPosition, renderContext.get_reflectedLightPosition());\n var sunPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(renderContext.get_sunPosition(), renderContext.get_reflectedLightPosition());\n var cosPhaseAngle = (sunPosition.length() <= 0) ? 1 : _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.dot(objToLight, sunPosition) / (objToLight.length() * sunPosition.length());\n var reflectedLightFactor = Math.max(0, cosPhaseAngle);\n reflectedLightFactor = Math.sqrt(reflectedLightFactor); // Tweak falloff of reflected light\n var hemiLightFactor = 0;\n\n // 1. Reduce the amount of sunlight when the object is in the shadow of a planet\n // 2. Introduce some lighting due to scattering by the planet's atmosphere if it's\n // close to the surface.\n var sunlightFactor = 1;\n if (renderContext.get_occludingPlanetRadius() > 0) {\n var objAltitude = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(objPosition, renderContext.get_occludingPlanetPosition()).length() - renderContext.get_occludingPlanetRadius();\n hemiLightFactor = Math.max(0, Math.min(1, 1 - (objAltitude / renderContext.get_occludingPlanetRadius()) * 300));\n reflectedLightFactor *= (1 - hemiLightFactor);\n\n // Compute the distance from the center of the object to the line between the sun and occluding planet\n // We're assuming that the radius of the object is very small relative to Earth;\n // for large objects the amount of shadow will vary, and we should use circular\n // eclipse shadows.\n var sunToPlanet = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(renderContext.get_occludingPlanetPosition(), renderContext.get_sunPosition());\n var objToPlanet = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(renderContext.get_occludingPlanetPosition(), objPosition);\n var hemiLightDirection = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(-objToPlanet.x, -objToPlanet.y, -objToPlanet.z);\n hemiLightDirection.normalize();\n renderContext.set_hemisphereLightUp(hemiLightDirection);\n var objToSun = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(renderContext.get_sunPosition(), objPosition);\n var sunPlanetDistance = sunToPlanet.length();\n var t = -_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.dot(objToSun, sunToPlanet) / (sunPlanetDistance * sunPlanetDistance);\n if (t > 1) {\n // Object is on the side of the planet opposite the sun, so a shadow is possible\n\n // Compute the position of the object projected onto the shadow axis\n var shadowAxisPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.addVectors(renderContext.get_sunPosition(), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.multiplyScalar(sunToPlanet, t));\n\n // d is the distance to the shadow axis\n var d = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(shadowAxisPoint, objPosition).length();\n\n // s is the distance from the sun along the shadow axis\n var s = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(shadowAxisPoint, renderContext.get_sunPosition()).length();\n\n // Use the sun's radius to accurately compute the penumbra and umbra cones\n var solarRadius = 0.004645784;\n var penumbraRadius = renderContext.get_occludingPlanetRadius() + (t - 1) * (renderContext.get_occludingPlanetRadius() + solarRadius);\n var umbraRadius = renderContext.get_occludingPlanetRadius() + (t - 1) * (renderContext.get_occludingPlanetRadius() - solarRadius);\n if (d < penumbraRadius) {\n // The object is inside the penumbra, so it is at least partly shadowed\n var minimumShadow = 0;\n if (umbraRadius < 0) {\n // No umbra at this point; degree of shadowing is limited because the\n // planet doesn't completely cover the sun even when the object is positioned\n // exactly on the shadow axis.\n var occlusion = Math.pow(1 / (1 - umbraRadius), 2);\n umbraRadius = 0;\n minimumShadow = 1 - occlusion;\n }\n\n // Approximate the amount of shadow with linear interpolation. The accurate\n // calculation involves computing the area of the intersection of two circles.\n var u = Math.max(0, umbraRadius);\n sunlightFactor = Math.max(minimumShadow, (d - u) / (penumbraRadius - u));\n var gray = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((255.99 * sunlightFactor));\n renderContext.set_sunlightColor(_color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, gray, gray, gray));\n\n // Reduce sky-scattered light as well\n hemiLightFactor *= sunlightFactor;\n }\n }\n }\n renderContext.set_reflectedLightColor(_color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((renderContext.get_reflectedLightColor().r * reflectedLightFactor)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((renderContext.get_reflectedLightColor().g * reflectedLightFactor)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((renderContext.get_reflectedLightColor().b * reflectedLightFactor))));\n renderContext.set_hemisphereLightColor(_color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((renderContext.get_hemisphereLightColor().r * hemiLightFactor)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((renderContext.get_hemisphereLightColor().g * hemiLightFactor)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((renderContext.get_hemisphereLightColor().b * hemiLightFactor))));\n },\n\n render: function (renderContext, opacity) {\n if (!this._readyToRender) {\n return;\n }\n if (this._dirty && !this.issLayer) {\n this._reload();\n }\n var oldWorld = renderContext.get_world();\n var offset = this._mesh.boundingSphere.center;\n var unitScale = 1;\n if (this._mesh.boundingSphere.radius > 0) {\n unitScale = 1 / this._mesh.boundingSphere.radius;\n }\n renderContext.set_world(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.translation(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(-offset.x, -offset.y, -offset.z)), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._scaling(unitScale, unitScale, unitScale)), oldWorld));\n var worldView = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(renderContext.get_world(), renderContext.get_view());\n var v = worldView.transform(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.get_empty());\n var scaleFactor = Math.sqrt(worldView.get_m11() * worldView.get_m11() + worldView.get_m22() * worldView.get_m22() + worldView.get_m33() * worldView.get_m33()) / unitScale;\n var dist = v.length();\n var radius = scaleFactor;\n\n // Calculate pixelsPerUnit which is the number of pixels covered\n // by an object 1 AU at the distance of the planet center from\n // the camera. This calculation works regardless of the projection\n // type.\n var viewportHeight = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(renderContext.height);\n var p11 = renderContext.get_projection().get_m11();\n var p34 = renderContext.get_projection().get_m34();\n var p44 = renderContext.get_projection().get_m44();\n var w = Math.abs(p34) * dist + p44;\n var pixelsPerUnit = (p11 / w) * viewportHeight;\n var radiusInPixels = (radius * pixelsPerUnit);\n if (radiusInPixels < 0.5) {\n // Too small to be visible; skip rendering\n return;\n }\n\n // These colors can be modified by shadows, distance from planet, etc. Restore\n // the original values after rendering.\n var savedSunlightColor = renderContext.get_sunlightColor();\n var savedReflectedColor = renderContext.get_reflectedLightColor();\n var savedHemiColor = renderContext.get_hemisphereLightColor();\n if (_settings_js__WEBPACK_IMPORTED_MODULE_12__.Settings.get_current().get_solarSystemLighting()) {\n this.setupLighting(renderContext);\n if (!this.useCurrentAmbient) {\n renderContext.set_ambientLightColor(_color_js__WEBPACK_IMPORTED_MODULE_2__.Color.fromArgb(255, 11, 11, 11));\n }\n } else {\n // No lighting: set ambient light to white and turn off all other light sources\n renderContext.set_sunlightColor(_color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_black());\n renderContext.set_reflectedLightColor(_color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_black());\n renderContext.set_hemisphereLightColor(_color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_black());\n renderContext.set_ambientLightColor(_color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_white());\n }\n if (this._mesh == null) {\n return;\n }\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_8__.ModelShader.minLightingBrightness = 0.1;\n var count = this._meshMaterials.length;\n this._mesh.beginDrawing(renderContext);\n if (count > 0) {\n for (var i = 0; i < this._meshMaterials.length; i++) {\n if (this._meshMaterials[i].isDefault) {\n var mat = this._meshMaterials[i];\n mat.diffuse = this.color;\n mat.ambient = this.color;\n this._meshMaterials[i] = mat;\n }\n\n // Set the material and texture for this subset\n renderContext.setMaterial(this._meshMaterials[i], this._meshTextures[i], this._meshSpecularTextures[i], this._meshNormalMaps[i], opacity);\n if (this._mesh.vertexBuffer != null) {\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_8__.ModelShader.use(renderContext, this._mesh.vertexBuffer.vertexBuffer, this._mesh.indexBuffer.buffer, (this._meshTextures[i] != null) ? this._meshTextures[i].texture2d : null, opacity, false, 32);\n }\n else {\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_8__.ModelShader.use(renderContext, this._mesh.tangentVertexBuffer.vertexBuffer, this._mesh.indexBuffer.buffer, (this._meshTextures[i] != null) ? this._meshTextures[i].texture2d : null, opacity, false, 44);\n }\n renderContext.preDraw();\n this._mesh.drawSubset(renderContext, i);\n }\n } else {\n renderContext.preDraw();\n for (var i = 0; i < this._meshTextures.length; i++) {\n if (this._meshTextures[i] != null) {\n renderContext.set_mainTexture(this._meshTextures[i]);\n if (this._mesh.vertexBuffer != null) {\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_8__.ModelShader.use(renderContext, this._mesh.vertexBuffer.vertexBuffer, this._mesh.indexBuffer.buffer, (this._meshTextures[i] != null) ? this._meshTextures[i].texture2d : null, opacity, false, 32);\n }\n else {\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_8__.ModelShader.use(renderContext, this._mesh.tangentVertexBuffer.vertexBuffer, this._mesh.indexBuffer.buffer, (this._meshTextures[i] != null) ? this._meshTextures[i].texture2d : null, opacity, false, 44);\n }\n }\n renderContext.preDraw();\n this._mesh.drawSubset(renderContext, i);\n }\n }\n renderContext.set_world(oldWorld);\n renderContext.set_sunlightColor(savedSunlightColor);\n renderContext.set_reflectedLightColor(savedReflectedColor);\n renderContext.set_hemisphereLightColor(savedHemiColor);\n renderContext.set_ambientLightColor(_color_js__WEBPACK_IMPORTED_MODULE_2__.Colors.get_black());\n },\n\n dispose: function () {\n if (this._mesh != null) {\n this._mesh.dispose();\n this._mesh = null;\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this._textureCache));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var tex = this._textureCache[key];\n if (tex != null) {\n tex.dispose();\n }\n }\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(this._textureCache);\n Object3d._disposeTextureList(this._meshTextures);\n Object3d._disposeTextureList(this._meshSpecularTextures);\n Object3d._disposeTextureList(this._meshNormalMaps);\n this._meshMaterials.length = 0;\n this._dirty = true;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Object3d\", [Object3d, Object3d$, null]);\n\n\n// wwtlib.ObjectNode\n\nfunction ObjectNode() {\n this.level = -1;\n this.children = [];\n this.enabled = true;\n this.drawGroup = [];\n this.applyLists = [];\n this.applyListsIndex = [];\n}\n\nvar ObjectNode$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ObjectNode\", [ObjectNode, ObjectNode$, null]);\n\n\n// wwtlib.Object3dLayerUI\n\nfunction Object3dLayerUI(layer) {\n this._layer$1 = null;\n this._opened$1 = true;\n this._callbacks$1 = null;\n _layer_ui_js__WEBPACK_IMPORTED_MODULE_15__.LayerUI.call(this);\n this._layer$1 = layer;\n}\n\nvar Object3dLayerUI$ = {\n setUICallbacks: function (callbacks) {\n this._callbacks$1 = callbacks;\n },\n\n get_hasTreeViewNodes: function () {\n return true;\n },\n\n getTreeNodes: function () {\n var nodes = [];\n if (this._layer$1.object3d.objects.length > 0 && this._layer$1.object3d.objects[0].children != null) {\n this._loadTree$1(nodes, this._layer$1.object3d.objects[0].children);\n }\n return nodes;\n },\n _loadTree$1: function (nodes, children) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(children);\n while ($enum1.moveNext()) {\n var child = $enum1.current;\n var node = new _layer_ui_js__WEBPACK_IMPORTED_MODULE_15__.LayerUITreeNode();\n node.set_name(child.name);\n node.set_tag(child);\n node.set_checked(child.enabled);\n node.add_nodeSelected(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_node_NodeSelected$1', this));\n node.add_nodeChecked(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_node_NodeChecked$1', this));\n nodes.push(node);\n this._loadTree$1(node.get_nodes(), child.children);\n }\n },\n _node_NodeChecked$1: function (node, newState) {\n var child = node.get_tag();\n if (child != null) {\n child.enabled = newState;\n }\n },\n _node_NodeSelected$1: function (node) {\n if (this._callbacks$1 != null) {\n var child = node.get_tag();\n var rowData = {};\n rowData['Name'] = child.name;\n rowData['Pivot.X'] = child.pivotPoint.x.toString();\n rowData['Pivot.Y'] = child.pivotPoint.y.toString();\n rowData['Pivot.Z'] = child.pivotPoint.z.toString();\n this._callbacks$1.showRowData(rowData);\n }\n },\n\n getNodeContextMenu: function (node) {\n return _layer_ui_js__WEBPACK_IMPORTED_MODULE_15__.LayerUI.prototype.getNodeContextMenu.call(this, node);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Object3dLayerUI\", [Object3dLayerUI, Object3dLayerUI$, _layer_ui_js__WEBPACK_IMPORTED_MODULE_15__.LayerUI]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/orbit.js\":\n/*!*****************************!*\\\n !*** ./esm/layers/orbit.js ***!\n \\*****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EllipseRenderer: () => (/* binding */ EllipseRenderer),\n/* harmony export */ Orbit: () => (/* binding */ Orbit)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../graphics/shaders.js */ \"./esm/graphics/shaders.js\");\n/* harmony import */ var _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../graphics/gl_buffers.js */ \"./esm/graphics/gl_buffers.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../space_time_controller.js */ \"./esm/space_time_controller.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Arbitrary orbits and how we render them.\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.Orbit\n\nfunction Orbit(elements, segments, color, thickness, scale) {\n this._elements = null;\n this._orbitColor = _color_js__WEBPACK_IMPORTED_MODULE_6__.Colors.get_white();\n this._scale = 0;\n this._segmentCount = 0;\n this._elements = elements;\n this._segmentCount = segments;\n this._orbitColor = color;\n this._scale = scale;\n}\n\n// Convert from standard coordinate system with z normal to the orbital plane\n// to WWT's system where y is the normal. Note that this transformation is not\n// a pure rotation: it incorporates a reflection, because the two systems have\n// different handedness.\nOrbit._orbitalToWwt = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.create(1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1);\nOrbit._initBegun = false;\n\nvar Orbit$ = {\n cleanUp: function () { },\n\n // Get the radius of a sphere (centered at a focus of the ellipse) that is\n // large enough to contain the orbit. The value returned has units of the orbit scale.\n get_boundingRadius: function () {\n if (this._elements != null) {\n return (this._elements.a * (1 + this._elements.e)) / this._scale;\n } else {\n return 0;\n }\n },\n\n draw3D: function (renderContext, opacity, centerPoint) {\n // Extra transformation required because the ellipse shader uses the xy-plane, but WWT uses the\n // xz-plane as the reference.\n var orbitalPlaneOrientation = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationZ(_coordinates_js__WEBPACK_IMPORTED_MODULE_7__.Coordinates.degreesToRadians(this._elements.w)), _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(_coordinates_js__WEBPACK_IMPORTED_MODULE_7__.Coordinates.degreesToRadians(this._elements.i)), _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationZ(_coordinates_js__WEBPACK_IMPORTED_MODULE_7__.Coordinates.degreesToRadians(this._elements.omega))));\n orbitalPlaneOrientation = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(orbitalPlaneOrientation, Orbit._orbitalToWwt);\n\n var worldMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(orbitalPlaneOrientation, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.translation(centerPoint)), renderContext.get_world());\n var M = this._elements.n * (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_8__.SpaceTimeController.get_jNow() - this._elements.t);\n var F = 1;\n if (M < 0) {\n F = -1;\n }\n M = Math.abs(M) / 360;\n M = (M - _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(M)) * 360 * F;\n var color = _color_js__WEBPACK_IMPORTED_MODULE_6__.Color._fromArgbColor(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((opacity * 255)), this._orbitColor);\n\n // Newton-Raphson iteration to solve Kepler's equation.\n // This is faster than calling CAAKepler.Calculate(), and 5 steps\n // is more than adequate for draw the orbit paths of small satellites\n // (which are ultimately rendered using single-precision floating point.)\n M = _coordinates_js__WEBPACK_IMPORTED_MODULE_7__.Coordinates.degreesToRadians(M);\n var E = M;\n for (var i = 0; i < 5; i++) {\n E += (M - E + this._elements.e * Math.sin(E)) / (1 - this._elements.e * Math.cos(E));\n }\n EllipseRenderer.drawEllipse(renderContext, this._elements.a / this._scale, this._elements.e, E, color, worldMatrix);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Orbit\", [Orbit, Orbit$, null]);\n\n\n// wwtlib.EllipseRenderer\n\nfunction EllipseRenderer() { }\n\n// Draw an ellipse with the specified semi-major axis and eccentricity. The orbit is drawn over a single period,\n// fading from full brightness at the given eccentric anomaly.\n//\n// In order to match exactly the position at which a planet is drawn, the planet's position at the current time\n// must be passed as a parameter. positionNow is in the current coordinate system of the render context, not the\n// translated and rotated system of the orbital plane.\nEllipseRenderer.drawEllipseWithPosition = function (renderContext, semiMajorAxis, eccentricity, eccentricAnomaly, color, worldMatrix, positionNow) {\n if (EllipseRenderer._ellipseShader == null) {\n EllipseRenderer._ellipseShader = new _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_4__.EllipseShader();\n }\n if (EllipseRenderer._ellipseVertexBuffer == null) {\n EllipseRenderer._ellipseVertexBuffer = EllipseRenderer.createEllipseVertexBuffer(500);\n }\n var savedWorld = renderContext.get_world();\n renderContext.set_world(worldMatrix);\n renderContext.gl.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, EllipseRenderer._ellipseVertexBuffer.vertexBuffer);\n renderContext.gl.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ELEMENT_ARRAY_BUFFER, null);\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_4__.EllipseShader.use(renderContext, semiMajorAxis, eccentricity, eccentricAnomaly, color, 1, savedWorld, positionNow);\n renderContext.gl.drawArrays(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.LINE_STRIP, 0, EllipseRenderer._ellipseVertexBuffer.count);\n renderContext.set_world(savedWorld);\n};\n\n// This version of DrawEllipse works without a 'head' point\nEllipseRenderer.drawEllipse = function (renderContext, semiMajorAxis, eccentricity, eccentricAnomaly, color, worldMatrix) {\n if (EllipseRenderer._ellipseShader == null) {\n EllipseRenderer._ellipseShader = new _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_4__.EllipseShader();\n }\n if (EllipseRenderer._ellipseWithoutStartPointVertexBuffer == null) {\n EllipseRenderer._ellipseWithoutStartPointVertexBuffer = EllipseRenderer.createEllipseVertexBufferWithoutStartPoint(360);\n }\n var savedWorld = renderContext.get_world();\n renderContext.set_world(worldMatrix);\n renderContext.gl.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ARRAY_BUFFER, EllipseRenderer._ellipseWithoutStartPointVertexBuffer.vertexBuffer);\n renderContext.gl.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.ELEMENT_ARRAY_BUFFER, null);\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_4__.EllipseShader.use(renderContext, semiMajorAxis, eccentricity, eccentricAnomaly, color, 1, savedWorld, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, 0));\n renderContext.gl.drawArrays(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.LINE_STRIP, 0, EllipseRenderer._ellipseWithoutStartPointVertexBuffer.count - 1);\n renderContext.set_world(savedWorld);\n};\n\nEllipseRenderer.createEllipseVertexBuffer = function (vertexCount) {\n var vb = new _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_5__.PositionVertexBuffer(vertexCount);\n var verts = vb.lock();\n var index = 0;\n\n // Pack extra samples into the front of the orbit to avoid obvious segmentation\n // when viewed from near the planet or moon.\n for (var i = 0; i < vertexCount / 2; ++i) {\n verts[index++] = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(2 * i / vertexCount * 0.05, 0, 0);\n }\n for (var i = 0; i < vertexCount / 2; ++i) {\n verts[index++] = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(2 * i / vertexCount * 0.95 + 0.05, 0, 0);\n }\n vb.unlock();\n return vb;\n};\n\nEllipseRenderer.createEllipseVertexBufferWithoutStartPoint = function (vertexCount) {\n var vb = new _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_5__.PositionVertexBuffer(vertexCount);\n var verts = vb.lock();\n\n // Setting a non-zero value will prevent the ellipse shader from using the 'head' point\n verts[0] = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(1E-06, 0, 0);\n for (var i = 1; i < vertexCount; ++i) {\n verts[i] = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(2 * i / vertexCount, 0, 0);\n }\n vb.unlock();\n return vb;\n};\n\nvar EllipseRenderer$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"EllipseRenderer\", [EllipseRenderer, EllipseRenderer$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/orbit_layer.js\":\n/*!***********************************!*\\\n !*** ./esm/layers/orbit_layer.js ***!\n \\***********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OrbitLayer: () => (/* binding */ OrbitLayer),\n/* harmony export */ OrbitLayerUI: () => (/* binding */ OrbitLayerUI)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _layer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./layer.js */ \"./esm/layers/layer.js\");\n/* harmony import */ var _layer_ui_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./layer_ui.js */ \"./esm/layers/layer_ui.js\");\n/* harmony import */ var _orbit_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./orbit.js */ \"./esm/layers/orbit.js\");\n/* harmony import */ var _reference_frame_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./reference_frame.js */ \"./esm/layers/reference_frame.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A layer that renders an orbit.\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.OrbitLayer\n\nfunction OrbitLayer() {\n this._frames$1 = [];\n this._primaryUI$1 = null;\n this._pointOpacity$1 = 1;\n this._pointColor$1 = _color_js__WEBPACK_IMPORTED_MODULE_3__.Colors.get_yellow();\n this._filename$1 = '';\n this._dataFile$1 = '';\n _layer_js__WEBPACK_IMPORTED_MODULE_4__.Layer.call(this);\n}\n\nvar OrbitLayer$ = {\n get_frames: function () {\n return this._frames$1;\n },\n\n set_frames: function (value) {\n this._frames$1 = value;\n return value;\n },\n\n getPrimaryUI: function () {\n if (this._primaryUI$1 == null) {\n this._primaryUI$1 = new OrbitLayerUI(this);\n }\n return this._primaryUI$1;\n },\n\n cleanUp: function () {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._frames$1);\n while ($enum1.moveNext()) {\n var frame = $enum1.current;\n if (frame.get_orbit() != null) {\n frame.get_orbit().cleanUp();\n frame.set_orbit(null);\n }\n }\n },\n\n writeLayerProperties: function (xmlWriter) {\n xmlWriter._writeAttributeString('PointOpacity', this.get_pointOpacity().toString());\n xmlWriter._writeAttributeString('PointColor', this._pointColor$1.save());\n },\n\n get_pointOpacity: function () {\n return this._pointOpacity$1;\n },\n\n set_pointOpacity: function (value) {\n if (this._pointOpacity$1 !== value) {\n this.version++;\n this._pointOpacity$1 = value;\n }\n return value;\n },\n\n get_pointColor: function () {\n return this._pointColor$1;\n },\n\n set_pointColor: function (value) {\n if (this._pointColor$1 !== value) {\n this.version++;\n this._pointColor$1 = value;\n }\n return value;\n },\n\n getParams: function () {\n var paramList = new Array(6);\n paramList[0] = this._pointOpacity$1;\n paramList[1] = this.get_color().r / 255;\n paramList[2] = this.get_color().g / 255;\n paramList[3] = this.get_color().b / 255;\n paramList[4] = this.get_color().a / 255;\n paramList[5] = this.get_opacity();\n return paramList;\n },\n\n getParamNames: function () {\n return ['PointOpacity', 'Color.Red', 'Color.Green', 'Color.Blue', 'Color.Alpha', 'Opacity'];\n },\n\n setParams: function (paramList) {\n if (paramList.length === 6) {\n this._pointOpacity$1 = paramList[0];\n this.set_opacity(paramList[5]);\n var color = _color_js__WEBPACK_IMPORTED_MODULE_3__.Color.fromArgb(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((paramList[4] * 255)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((paramList[1] * 255)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((paramList[2] * 255)), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((paramList[3] * 255)));\n this.set_color(color);\n }\n },\n\n initializeFromXml: function (node) {\n this.set_pointOpacity(parseFloat(node.attributes.getNamedItem('PointOpacity').nodeValue));\n this.set_pointColor(_color_js__WEBPACK_IMPORTED_MODULE_3__.Color.load(node.attributes.getNamedItem('PointColor').nodeValue));\n },\n\n draw: function (renderContext, opacity, flat) {\n var matSaved = renderContext.get_world();\n renderContext.set_world(renderContext.get_worldBaseNonRotating());\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._frames$1);\n while ($enum1.moveNext()) {\n var frame = $enum1.current;\n if (frame.showOrbitPath) {\n if (frame.get_orbit() == null) {\n frame.set_orbit(new _orbit_js__WEBPACK_IMPORTED_MODULE_6__.Orbit(frame.get_elements(), 360, this.get_color(), 1, renderContext.get_nominalRadius()));\n }\n frame.get_orbit().draw3D(renderContext, opacity * this.get_opacity(), new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d());\n }\n }\n renderContext.set_world(matSaved);\n return true;\n },\n\n addFilesToCabinet: function (fc) {\n this._filename$1 = fc.tempDirectory + _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0}\\\\{1}.txt', fc.get_packageID(), this.id.toString());\n var dir = this._filename$1.substring(0, this._filename$1.lastIndexOf('\\\\'));\n var blob = new Blob([this._dataFile$1]);\n fc.addFile(this._filename$1, blob);\n _layer_js__WEBPACK_IMPORTED_MODULE_4__.Layer.prototype.addFilesToCabinet.call(this, fc);\n },\n\n loadData: function (tourDoc, filename) {\n var $this = this;\n\n var blob = tourDoc.getFileBlob(filename);\n var doc = new FileReader();\n doc.onloadend = function (ee) {\n $this._dataFile$1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(doc.result, String);\n $this.loadString($this._dataFile$1);\n };\n doc.readAsText(blob);\n },\n\n loadString: function (dataFile) {\n var data = dataFile.split('\\n');\n this._frames$1.length = 0;\n for (var i = 0; i < data.length; i += 2) {\n var line1 = i;\n var line2 = i + 1;\n if (data[i].length > 0) {\n var frame = new _reference_frame_js__WEBPACK_IMPORTED_MODULE_7__.ReferenceFrame();\n if (data[i].substring(0, 1) !== '1') {\n line1++;\n line2++;\n frame.name = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(data[i]);\n i++;\n }\n else if (data[i].substring(0, 1) === '1') {\n frame.name = data[i].substring(2, 5);\n }\n else {\n i -= 2;\n continue;\n }\n frame.reference = 18;\n frame.oblateness = 0;\n frame.showOrbitPath = true;\n frame.showAsPoint = true;\n frame.referenceFrameType = 1;\n frame.scale = 1;\n frame.semiMajorAxisUnits = 1;\n frame.meanRadius = 10;\n frame.oblateness = 0;\n frame.fromTLE(data[line1], data[line2], 398600441800000);\n this._frames$1.push(frame);\n }\n else {\n i -= 1;\n }\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"OrbitLayer\", [OrbitLayer, OrbitLayer$, _layer_js__WEBPACK_IMPORTED_MODULE_4__.Layer]);\n\n\n// wwtlib.OrbitLayerUI\n\nfunction OrbitLayerUI(layer) {\n this._layer$1 = null;\n this._opened$1 = true;\n this._callbacks$1 = null;\n _layer_ui_js__WEBPACK_IMPORTED_MODULE_5__.LayerUI.call(this);\n this._layer$1 = layer;\n}\n\nvar OrbitLayerUI$ = {\n setUICallbacks: function (callbacks) {\n this._callbacks$1 = callbacks;\n },\n\n get_hasTreeViewNodes: function () {\n return true;\n },\n\n getTreeNodes: function () {\n var nodes = [];\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._layer$1.get_frames());\n while ($enum1.moveNext()) {\n var frame = $enum1.current;\n var node = new _layer_ui_js__WEBPACK_IMPORTED_MODULE_5__.LayerUITreeNode();\n node.set_name(frame.name);\n node.set_tag(frame);\n node.set_checked(frame.showOrbitPath);\n node.add_nodeSelected(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_node_NodeSelected$1', this));\n node.add_nodeChecked(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_node_NodeChecked$1', this));\n nodes.push(node);\n }\n return nodes;\n },\n _node_NodeChecked$1: function (node, newState) {\n var frame = node.get_tag();\n if (frame != null) {\n frame.showOrbitPath = newState;\n }\n },\n _node_NodeSelected$1: function (node) {\n if (this._callbacks$1 != null) {\n var frame = node.get_tag();\n var rowData = {};\n rowData['Name'] = frame.name;\n rowData['SemiMajor Axis'] = frame.semiMajorAxis.toString();\n rowData['SMA Units'] = frame.semiMajorAxisUnits.toString();\n rowData['Inclination'] = frame.inclination.toString();\n rowData['Eccentricity'] = frame.eccentricity.toString();\n rowData['Long of Asc. Node'] = frame.longitudeOfAscendingNode.toString();\n rowData['Argument Of Periapsis'] = frame.argumentOfPeriapsis.toString();\n rowData['Epoch'] = frame.epoch.toString();\n rowData['Mean Daily Motion'] = frame.meanDailyMotion.toString();\n rowData['Mean Anomoly at Epoch'] = frame.meanAnomolyAtEpoch.toString();\n this._callbacks$1.showRowData(rowData);\n }\n },\n\n getNodeContextMenu: function (node) {\n return _layer_ui_js__WEBPACK_IMPORTED_MODULE_5__.LayerUI.prototype.getNodeContextMenu.call(this, node);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"OrbitLayerUI\", [OrbitLayerUI, OrbitLayerUI$, _layer_ui_js__WEBPACK_IMPORTED_MODULE_5__.LayerUI]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/reference_frame.js\":\n/*!***************************************!*\\\n !*** ./esm/layers/reference_frame.js ***!\n \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ReferenceFrame: () => (/* binding */ ReferenceFrame),\n/* harmony export */ ReferenceFrameTypes: () => (/* binding */ ReferenceFrameTypes)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../astrocalc/elliptical.js */ \"./esm/astrocalc/elliptical.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../space_time_controller.js */ \"./esm/space_time_controller.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A reference frame for the 3D mode.\n\n\n\n\n\n\n\n\n\n// wwtlib.ReferenceFrameTypes\n\nvar ReferenceFrameTypes = {\n fixedSherical: 0,\n orbital: 1,\n trajectory: 2,\n synodic: 3\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ReferenceFrameTypes\", ReferenceFrameTypes);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"ReferenceFrameTypes\", ReferenceFrameTypes);\n\n\n// wwtlib.ReferenceFrame\n\nfunction ReferenceFrame() {\n this._systemGenerated = false;\n\n // Calclulated\n this.meanAnomoly = 0;\n this.orbitalYears = 0;\n\n // Serialized\n this.observingLocation = false;\n this.reference = 18;\n this.parentsRoationalBase = false;\n this.referenceFrameType = 0;\n this.meanRadius = 6371000;\n this.oblateness = 0.0033528;\n this.heading = 0;\n this.pitch = 0;\n this.roll = 0;\n this.scale = 1;\n this.tilt = 0;\n this.translation = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d();\n\n // For Spherical Offset\n this.lat = 0;\n this.lng = 0;\n this.altitude = 0;\n\n // For Rotating frames\n this.rotationalPeriod = 0; // days\n this.zeroRotationDate = 0; // julian decimal\n\n // For representing orbits & distant point location\n this.representativeColor = _color_js__WEBPACK_IMPORTED_MODULE_4__.Colors.get_white(); // Used for orbits and points\n this.showAsPoint = false;\n this.showOrbitPath = false;\n this.stationKeeping = true;\n\n this.semiMajorAxis = 0; // a Au's\n this.semiMajorAxisUnits = 1; // AltUnits\n this.eccentricity = 0; // e\n this.inclination = 0; // i\n this.argumentOfPeriapsis = 0; // w\n this.longitudeOfAscendingNode = 0; // Omega\n this.meanAnomolyAtEpoch = 0; // M\n this.meanDailyMotion = 0; // n .degrees day\n this.epoch = 0; // standard equinox\n\n this._orbit = null;\n this._elements = new _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_2__.EOE();\n this.worldMatrix = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d();\n this.worldMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.get_identity();\n}\n\nReferenceFrame.isTLECheckSumGood = function (line) {\n if (line.length !== 69) {\n return false;\n }\n var checksum = 0;\n for (var i = 0; i < 68; i++) {\n switch (line.substr(i, 1)) {\n case '1':\n checksum += 1;\n break;\n case '2':\n checksum += 2;\n break;\n case '3':\n checksum += 3;\n break;\n case '4':\n checksum += 4;\n break;\n case '5':\n checksum += 5;\n break;\n case '6':\n checksum += 6;\n break;\n case '7':\n checksum += 7;\n break;\n case '8':\n checksum += 8;\n break;\n case '9':\n checksum += 9;\n break;\n case '-':\n checksum += 1;\n break;\n }\n }\n return (checksum % 10).toString() === line.charAt(68).toString();\n};\n\nReferenceFrame.toTLEExponential = function (num, size) {\n var exp = num.toExponential(size);\n if (exp.length < size + 6) {\n exp = exp.substring(0, size + 4) + '0' + exp.substr(size + 4, 1);\n }\n return exp;\n};\n\nReferenceFrame.tleNumberString = function (num, left, right) {\n var formated = num.toFixed(right);\n var point = formated.indexOf('.');\n if (point === -1) {\n point = formated.length;\n formated += '.0';\n }\n var len = formated.length - point - 1;\n var fill = '00000000';\n formated = fill.substr(0, left - point) + formated + fill.substr(0, right - len);\n return formated;\n};\n\nReferenceFrame.computeTLECheckSum = function (line) {\n if (line.length !== 68) {\n return '0';\n }\n var checksum = 0;\n for (var i = 0; i < 68; i++) {\n switch (line[i]) {\n case '1':\n checksum += 1;\n break;\n case '2':\n checksum += 2;\n break;\n case '3':\n checksum += 3;\n break;\n case '4':\n checksum += 4;\n break;\n case '5':\n checksum += 5;\n break;\n case '6':\n checksum += 6;\n break;\n case '7':\n checksum += 7;\n break;\n case '8':\n checksum += 8;\n break;\n case '9':\n checksum += 9;\n break;\n case '-':\n checksum += 1;\n break;\n }\n }\n return ((checksum % 10));\n};\n\nvar ReferenceFrame$ = {\n get_representativeColor: function () {\n return this.representativeColor;\n },\n\n set_representativeColor: function (value) {\n if (value !== this.representativeColor) {\n this.representativeColor = value;\n this._orbit = null;\n }\n return value;\n },\n\n get_orbit: function () {\n return this._orbit;\n },\n\n set_orbit: function (value) {\n this._orbit = value;\n return value;\n },\n\n getIndentifier: function () {\n return this.name;\n },\n\n importTrajectory: function (filename) { },\n\n saveToXml: function (xmlWriter) {\n xmlWriter._writeStartElement('ReferenceFrame');\n xmlWriter._writeAttributeString('Name', this.name);\n xmlWriter._writeAttributeString('Parent', this.parent);\n xmlWriter._writeAttributeString('ReferenceFrameType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('ReferenceFrameTypes', this.referenceFrameType));\n xmlWriter._writeAttributeString('Reference', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('ReferenceFrames', this.reference));\n xmlWriter._writeAttributeString('ParentsRoationalBase', this.parentsRoationalBase.toString());\n xmlWriter._writeAttributeString('MeanRadius', this.meanRadius.toString());\n xmlWriter._writeAttributeString('Oblateness', this.oblateness.toString());\n xmlWriter._writeAttributeString('Heading', this.heading.toString());\n xmlWriter._writeAttributeString('Pitch', this.pitch.toString());\n xmlWriter._writeAttributeString('Roll', this.roll.toString());\n xmlWriter._writeAttributeString('Scale', this.scale.toString());\n xmlWriter._writeAttributeString('Tilt', this.tilt.toString());\n xmlWriter._writeAttributeString('Translation', this.translation.toString());\n if (!this.referenceFrameType) {\n xmlWriter._writeAttributeString('Lat', this.lat.toString());\n xmlWriter._writeAttributeString('Lng', this.lng.toString());\n xmlWriter._writeAttributeString('Altitude', this.altitude.toString());\n }\n xmlWriter._writeAttributeString('RotationalPeriod', this.rotationalPeriod.toString());\n xmlWriter._writeAttributeString('ZeroRotationDate', this.zeroRotationDate.toString());\n xmlWriter._writeAttributeString('RepresentativeColor', this.get_representativeColor().save());\n xmlWriter._writeAttributeString('ShowAsPoint', this.showAsPoint.toString());\n xmlWriter._writeAttributeString('ShowOrbitPath', this.showOrbitPath.toString());\n xmlWriter._writeAttributeString('StationKeeping', this.stationKeeping.toString());\n if (this.referenceFrameType === 1) {\n xmlWriter._writeAttributeString('SemiMajorAxis', this.semiMajorAxis.toString());\n xmlWriter._writeAttributeString('SemiMajorAxisScale', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('AltUnits', this.semiMajorAxisUnits));\n xmlWriter._writeAttributeString('Eccentricity', this.eccentricity.toString());\n xmlWriter._writeAttributeString('Inclination', this.inclination.toString());\n xmlWriter._writeAttributeString('ArgumentOfPeriapsis', this.argumentOfPeriapsis.toString());\n xmlWriter._writeAttributeString('LongitudeOfAscendingNode', this.longitudeOfAscendingNode.toString());\n xmlWriter._writeAttributeString('MeanAnomolyAtEpoch', this.meanAnomolyAtEpoch.toString());\n xmlWriter._writeAttributeString('MeanDailyMotion', this.meanDailyMotion.toString());\n xmlWriter._writeAttributeString('Epoch', this.epoch.toString());\n }\n xmlWriter._writeEndElement();\n },\n\n initializeFromXml: function (node) {\n this.name = node.attributes.getNamedItem('Name').nodeValue;\n this.parent = node.attributes.getNamedItem('Parent').nodeValue;\n this.referenceFrameType = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('ReferenceFrameTypes', node.attributes.getNamedItem('ReferenceFrameType').nodeValue);\n this.reference = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('ReferenceFrames', node.attributes.getNamedItem('Reference').nodeValue);\n this.parentsRoationalBase = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('ParentsRoationalBase').nodeValue);\n this.meanRadius = parseFloat(node.attributes.getNamedItem('MeanRadius').nodeValue);\n this.oblateness = parseFloat(node.attributes.getNamedItem('Oblateness').nodeValue);\n this.heading = parseFloat(node.attributes.getNamedItem('Heading').nodeValue);\n this.pitch = parseFloat(node.attributes.getNamedItem('Pitch').nodeValue);\n this.roll = parseFloat(node.attributes.getNamedItem('Roll').nodeValue);\n this.scale = parseFloat(node.attributes.getNamedItem('Scale').nodeValue);\n this.tilt = parseFloat(node.attributes.getNamedItem('Tilt').nodeValue);\n this.translation = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.parse(node.attributes.getNamedItem('Translation').nodeValue);\n if (!this.referenceFrameType) {\n this.lat = parseFloat(node.attributes.getNamedItem('Lat').nodeValue);\n this.lng = parseFloat(node.attributes.getNamedItem('Lng').nodeValue);\n this.altitude = parseFloat(node.attributes.getNamedItem('Altitude').nodeValue);\n }\n this.rotationalPeriod = parseFloat(node.attributes.getNamedItem('RotationalPeriod').nodeValue);\n this.zeroRotationDate = parseFloat(node.attributes.getNamedItem('ZeroRotationDate').nodeValue);\n this.set_representativeColor(_color_js__WEBPACK_IMPORTED_MODULE_4__.Color.load(node.attributes.getNamedItem('RepresentativeColor').nodeValue));\n this.showAsPoint = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('ShowAsPoint').nodeValue);\n if (node.attributes.getNamedItem('StationKeeping') != null) {\n this.stationKeeping = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('StationKeeping').nodeValue);\n }\n if (this.referenceFrameType === 1) {\n this.showOrbitPath = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('ShowOrbitPath').nodeValue);\n this.semiMajorAxis = parseFloat(node.attributes.getNamedItem('SemiMajorAxis').nodeValue);\n this.semiMajorAxisUnits = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('AltUnits', node.attributes.getNamedItem('SemiMajorAxisScale').nodeValue);\n this.eccentricity = parseFloat(node.attributes.getNamedItem('Eccentricity').nodeValue);\n this.inclination = parseFloat(node.attributes.getNamedItem('Inclination').nodeValue);\n this.argumentOfPeriapsis = parseFloat(node.attributes.getNamedItem('ArgumentOfPeriapsis').nodeValue);\n this.longitudeOfAscendingNode = parseFloat(node.attributes.getNamedItem('LongitudeOfAscendingNode').nodeValue);\n this.meanAnomolyAtEpoch = parseFloat(node.attributes.getNamedItem('MeanAnomolyAtEpoch').nodeValue);\n this.meanDailyMotion = parseFloat(node.attributes.getNamedItem('MeanDailyMotion').nodeValue);\n this.epoch = parseFloat(node.attributes.getNamedItem('Epoch').nodeValue);\n }\n },\n\n fromTLE: function (line1, line2, gravity) {\n this.epoch = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_5__.SpaceTimeController._twoLineDateToJulian(line1.substr(18, 14));\n this.eccentricity = parseFloat('0.' + line2.substr(26, 7));\n this.inclination = parseFloat(line2.substr(8, 8));\n this.longitudeOfAscendingNode = parseFloat(line2.substr(17, 8));\n this.argumentOfPeriapsis = parseFloat(line2.substr(34, 8));\n var revs = parseFloat(line2.substr(52, 11));\n this.meanAnomolyAtEpoch = parseFloat(line2.substr(43, 8));\n this.meanDailyMotion = revs * 360;\n var part = (86400 / revs) / (Math.PI * 2);\n this.semiMajorAxis = Math.pow((part * part) * gravity, 1 / 3);\n this.semiMajorAxisUnits = 1;\n },\n\n toTLE: function () {\n // Epoch need to convert to TLE time string.\n // Ecentricity remove \"0.\" from the begin and trim to 7 digits\n // Inclination decimal degrees 8 digits max\n // LOAN decimal degrees 8 digits\n // AOP\n // mean anomoly at epoch 8 digits\n // Mean motion (revs per day) Compute\n // Convert Semi-major-axis to meters from storage unit\n // Compute revs\n var line1 = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.StringBuilder();\n line1.append('1 99999U 00111AAA ');\n line1.append(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_5__.SpaceTimeController.julianToTwoLineDate(this.epoch));\n line1.append(' ');\n line1.append(this.semiMajorAxis.toExponential(4));\n line1.append(' 00000-0 ');\n line1.append(ReferenceFrame.toTLEExponential(this.meanDailyMotion, 5));\n line1.append(' 001');\n line1.append(ReferenceFrame.computeTLECheckSum(line1.toString()));\n line1.appendLine('');\n var line2 = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.StringBuilder();\n line2.append('2 99999 ');\n line2.append(ReferenceFrame.tleNumberString(this.inclination, 3, 4) + ' ');\n line2.append(ReferenceFrame.tleNumberString(this.longitudeOfAscendingNode, 3, 4) + ' ');\n line2.append((ReferenceFrame.tleNumberString(this.eccentricity, 1, 7) + ' ').substring(2));\n line2.append(ReferenceFrame.tleNumberString(this.argumentOfPeriapsis, 3, 4) + ' ');\n line2.append(ReferenceFrame.tleNumberString(this.meanAnomolyAtEpoch, 3, 4) + ' ');\n line2.append(ReferenceFrame.toTLEExponential(this.meanDailyMotion / 207732, 5));\n line2.append('00001');\n line2.append(ReferenceFrame.computeTLECheckSum(line2.toString()));\n line2.appendLine('');\n return line1.toString() + line2.toString();\n },\n\n get_elements: function () {\n this._elements.a = this.semiMajorAxis;\n this._elements.e = this.eccentricity;\n this._elements.i = this.inclination;\n this._elements.w = this.argumentOfPeriapsis;\n this._elements.omega = this.longitudeOfAscendingNode;\n this._elements.jdEquinox = this.epoch;\n if (!this.meanDailyMotion) {\n this._elements.n = _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_2__.ELL.meanMotionFromSemiMajorAxis(this._elements.a);\n } else {\n this._elements.n = this.meanDailyMotion;\n }\n this._elements.t = this.epoch - (this.meanAnomolyAtEpoch / this._elements.n);\n return this._elements;\n },\n\n set_elements: function (value) {\n this._elements = value;\n return value;\n },\n\n computeFrame: function (renderContext) {\n switch (this.referenceFrameType) {\n case 1:\n this._computeOrbital(renderContext);\n break;\n case 0:\n this._computeFixedSherical(renderContext);\n break;\n case 2:\n this._computeFrameTrajectory(renderContext);\n break;\n default:\n break;\n }\n },\n\n useRotatingParentFrame: function () {\n switch (this.referenceFrameType) {\n case 1:\n case 2:\n case 3:\n return false;\n default:\n return true;\n }\n },\n\n _computeFixedRectangular: function (renderContext) { },\n\n _computeFixedSherical: function (renderContext) {\n if (this.observingLocation) {\n this.lat = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_5__.SpaceTimeController.get_location().get_lat();\n this.lng = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_5__.SpaceTimeController.get_location().get_lng();\n this.altitude = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_5__.SpaceTimeController.get_altitude();\n }\n this.worldMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.get_identity();\n this.worldMatrix.translate(this.translation);\n var localScale = (1 / renderContext.get_nominalRadius()) * this.scale * this.meanRadius;\n this.worldMatrix.scale(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(localScale, localScale, localScale));\n this.worldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.rotationYawPitchRoll((this.heading / 180 * Math.PI), (this.pitch / 180 * Math.PI), (this.roll / 180 * Math.PI)));\n this.worldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationZ(-90 / 180 * Math.PI));\n if (!!this.rotationalPeriod) {\n var rotationCurrent = (((_space_time_controller_js__WEBPACK_IMPORTED_MODULE_5__.SpaceTimeController.get_jNow() - this.zeroRotationDate) / this.rotationalPeriod) * Math.PI * 2) % (Math.PI * 2);\n this.worldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX(-rotationCurrent));\n }\n this.worldMatrix.translate(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1 + (this.altitude / renderContext.get_nominalRadius()), 0, 0));\n this.worldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationZ(this.lat / 180 * Math.PI));\n this.worldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationY(-(this.lng + 180) / 180 * Math.PI));\n },\n\n _computeFrameTrajectory: function (renderContext) { },\n\n _computeOrbital: function (renderContext) {\n var ee = this.get_elements();\n var point = _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_2__.ELL.calculateRectangularJD(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_5__.SpaceTimeController.get_jNow(), ee);\n this.meanAnomoly = ee.meanAnnomolyOut;\n var pointInstantLater = _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_2__.ELL.calculateRectangular(ee, this.meanAnomoly + 0.001);\n var direction = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(point, pointInstantLater);\n var up = point.copy();\n up.normalize();\n direction.normalize();\n var dist = point.length();\n var scaleFactor = 1;\n switch (this.semiMajorAxisUnits) {\n case 1:\n scaleFactor = 1;\n break;\n case 2:\n scaleFactor = 1 / 3.2808399;\n break;\n case 3:\n scaleFactor = (1 / 3.2808399) / 12;\n break;\n case 4:\n scaleFactor = 1609.344;\n break;\n case 5:\n scaleFactor = 1000;\n break;\n case 6:\n scaleFactor = 149598000 * 1000;\n break;\n case 7:\n scaleFactor = 63239.6717 * 149598000 * 1000;\n break;\n case 8:\n scaleFactor = 206264.806 * 149598000 * 1000;\n break;\n case 9:\n scaleFactor = 206264.806 * 149598000 * 1000 * 1000000;\n break;\n case 10:\n scaleFactor = 1;\n break;\n default:\n break;\n }\n scaleFactor *= 1 / renderContext.get_nominalRadius();\n var look = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.lookAtLH(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 0, 0), direction, up);\n look.invert();\n this.worldMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.get_identity();\n this.worldMatrix.translate(this.translation);\n var localScale = (1 / renderContext.get_nominalRadius()) * this.scale * this.meanRadius;\n this.worldMatrix.scale(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(localScale, localScale, localScale));\n this.worldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.rotationYawPitchRoll((this.heading / 180 * Math.PI), (this.pitch / 180 * Math.PI), (this.roll / 180 * Math.PI)));\n if (!!this.rotationalPeriod) {\n var rotationCurrent = (((_space_time_controller_js__WEBPACK_IMPORTED_MODULE_5__.SpaceTimeController.get_jNow() - this.zeroRotationDate) / this.rotationalPeriod) * Math.PI * 2) % (Math.PI * 2);\n this.worldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d._rotationX(-rotationCurrent));\n }\n point = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.scale(point, scaleFactor);\n this.worldMatrix.translate(point);\n if (this.stationKeeping) {\n this.worldMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.multiplyMatrix(look, this.worldMatrix);\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ReferenceFrame\", [ReferenceFrame, ReferenceFrame$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/spreadsheet_layer.js\":\n/*!*****************************************!*\\\n !*** ./esm/layers/spreadsheet_layer.js ***!\n \\*****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CatalogSpreadSheetLayer: () => (/* binding */ CatalogSpreadSheetLayer),\n/* harmony export */ KmlCoordinate: () => (/* binding */ KmlCoordinate),\n/* harmony export */ KmlLineList: () => (/* binding */ KmlLineList),\n/* harmony export */ PushPin: () => (/* binding */ PushPin),\n/* harmony export */ SpreadSheetLayer: () => (/* binding */ SpreadSheetLayer)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _graphics_tessellator_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../graphics/tessellator.js */ \"./esm/graphics/tessellator.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _ui_tools_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../ui_tools.js */ \"./esm/ui_tools.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _color_map_container_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./color_map_container.js */ \"./esm/layers/color_map_container.js\");\n/* harmony import */ var _layer_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./layer.js */ \"./esm/layers/layer.js\");\n/* harmony import */ var _table_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./table.js */ \"./esm/layers/table.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A layer that renders tabular data.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.KmlCoordinate\n\nfunction KmlCoordinate() {\n this.lat = 0;\n this.lng = 0;\n this.alt = 0;\n}\n\nvar KmlCoordinate$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"KmlCoordinate\", [KmlCoordinate, KmlCoordinate$, null]);\n\n\n// wwtlib.KmlLineList\n\nfunction KmlLineList() {\n this.extrude = false;\n this.astronomical = false;\n this.meanRadius = 6371000;\n this.pointList = [];\n}\n\nvar KmlLineList$ = {\n parseWkt: function (geoText, option, alt, date) {\n var parts = _ui_tools_js__WEBPACK_IMPORTED_MODULE_13__.UiTools.split(geoText, '(,)');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(parts);\n while ($enum1.moveNext()) {\n var part = $enum1.current;\n var coordinates = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(part).split(' ');\n if (coordinates.length > 1) {\n var pnt = new KmlCoordinate();\n pnt.lng = parseFloat(coordinates[0]);\n if (this.astronomical) {\n pnt.lng -= 180;\n }\n pnt.lat = parseFloat(coordinates[1]);\n if (coordinates.length > 2 && !alt) {\n pnt.alt = parseFloat(coordinates[2]);\n }\n else {\n pnt.alt = alt;\n }\n pnt.date = date;\n this.pointList.push(pnt);\n }\n }\n },\n\n getCenterPoint: function () {\n var point = new KmlCoordinate();\n point.lat = 0;\n point.lng = 0;\n point.alt = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.pointList);\n while ($enum1.moveNext()) {\n var pnt = $enum1.current;\n point.lat += pnt.lat;\n point.lng += pnt.lng;\n point.alt += pnt.alt;\n }\n point.lat /= this.pointList.length;\n point.lng /= this.pointList.length;\n point.alt /= this.pointList.length;\n return point;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"KmlLineList\", [KmlLineList, KmlLineList$, null]);\n\n\n// wwtlib.PushPin\n\nfunction PushPin() { }\n\nPushPin._pinTextureCache = {};\nPushPin._pins = null;\n\nPushPin.triggerLoadSprite = function () {\n if (PushPin._pins == null) {\n PushPin._pins = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_8__.Texture.fromUrl(_url_helpers_js__WEBPACK_IMPORTED_MODULE_14__.URLHelpers.singleton.engineAssetUrl('pins.png'));\n }\n};\n\nPushPin.getPushPinTexture = function (pinId) {\n var texture = null;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(PushPin._pinTextureCache, pinId)) {\n return PushPin._pinTextureCache[pinId];\n }\n try {\n texture = _render_globals_js__WEBPACK_IMPORTED_MODULE_5__.tilePrepDevice.createTexture();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_5__.tilePrepDevice.bindTexture(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TEXTURE_2D, texture);\n var row = Math.floor(pinId / 16);\n var col = pinId % 16;\n var temp = document.createElement('canvas');\n temp.height = 32;\n temp.width = 32;\n var ctx = temp.getContext('2d');\n //Substitute the resized image\n ctx.drawImage(PushPin._pins.imageElement, (col * 32), (row * 32), 32, 32, 0, 0, 32, 32);\n var image = temp;\n _render_globals_js__WEBPACK_IMPORTED_MODULE_5__.tilePrepDevice.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TEXTURE_WRAP_S, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.CLAMP_TO_EDGE);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_5__.tilePrepDevice.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TEXTURE_WRAP_T, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.CLAMP_TO_EDGE);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_5__.tilePrepDevice.texImage2D(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TEXTURE_2D, 0, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.RGBA, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.RGBA, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.UNSIGNED_BYTE, image);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_5__.tilePrepDevice.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TEXTURE_MIN_FILTER, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.LINEAR_MIPMAP_NEAREST);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_5__.tilePrepDevice.generateMipmap(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TEXTURE_2D);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_5__.tilePrepDevice.bindTexture(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TEXTURE_2D, null);\n PushPin._pinTextureCache[pinId] = texture;\n }\n catch ($e1) { }\n return texture;\n};\n\nvar PushPin$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"PushPin\", [PushPin, PushPin$, null]);\n\n\n// wwtlib.SpreadSheetLayer\n\nfunction SpreadSheetLayer() {\n this._dataDirty$1 = false;\n this._lastNormalizeSizeColumnIndex$1 = -1;\n this._lastDynamicColorColumnIndex$1 = -1;\n this._table_backcompat$1 = null;\n this._barChartBitmask$1 = 0;\n this._barScaleFactor$1 = 20;\n this._meanRadius$1 = 6371000;\n this._table$1 = new _table_js__WEBPACK_IMPORTED_MODULE_17__.Table();\n this.isLongIndex = false;\n this.shapeVertexCount = 0;\n this.lines = false;\n this.latColumn = -1;\n this.fixedSize = 1;\n this.decay = 16;\n this.timeSeries = false;\n this._dynamicData$1 = false;\n this._autoUpdate$1 = false;\n this._dataSourceUrl$1 = '';\n this._beginRange$1 = new Date('1/1/2100');\n this._endRange$1 = new Date('01/01/1800');\n this.markerDomainValues = {};\n this.colorDomainValues = {};\n this._coordinatesType$1 = 0;\n this.lngColumn = -1;\n this.geometryColumn = -1;\n this._xAxisColumn$1 = -1;\n this._yAxisColumn$1 = -1;\n this._zAxisColumn$1 = -1;\n this._xAxisReverse$1 = false;\n this._yAxisReverse$1 = false;\n this._zAxisReverse$1 = false;\n this._altType$1 = 3;\n this._markerMix$1 = 0;\n this._raUnits$1 = 0;\n this.colorMap = 3;\n this.colorMapperName = 'Greys';\n\n // The following attributes control whether and how to map values from\n // the ColorMapColumn to colors. The overall option DynamicColor\n // determines whether colors should be determined on-the-fly from column\n // values. In this case, first, if NormalizeColorMap is true, the values\n // are normalized to the range [0:1] using:\n //\n // new_value = (value - NormalizeColorMapMin) / (NormalizeColorMapMax - NormalizeColorMapMin)\n //\n // Whether or not the values are normalized, they are then mapped to colors using\n // the color map with the name given by ColorMapName.\n\n // Note that we use a hard-coded UUID since we need it to always be the same across\n // all WWT sessions so that we can remove it when it isn't needed.\n\n this._dynamicColorColumnName$1 = '2efc32e3-b9d9-47ff-8036-8cc344c585bd';\n this.dynamicColor = false;\n this.normalizeColorMap = false;\n this.normalizeColorMapMin = 0;\n this.normalizeColorMapMax = 1;\n this._markerColumn$1 = -1;\n this.colorMapColumn = -1;\n this._plotType$1 = 0;\n this._markerIndex$1 = 0;\n this._showFarSide$1 = false;\n this._markerScale$1 = 1;\n this._altUnit$1 = 1;\n this._cartesianScale$1 = 1;\n this._cartesianCustomScale$1 = 1;\n this.altColumn = -1;\n this.startDateColumn = -1;\n this.endDateColumn = -1;\n this.sizeColumn = -1;\n\n // The following attributes control whether the point sizes should be normalized before\n // being used. When NormalizeSize is true, the point sizes are scaled using\n //\n // new_size = (size - NormalizeSizeMin) / (NormalizeSizeMax - NormalizeSizeMin)\n //\n // The NormalizeSizeClip attribute can be used to determine whether the sizes should\n // be clipped to the range [0:1]. At this time, normalization is only applied if\n // PointScaleTypes is Linear or Power.\n\n // Note that we use a hard-coded UUID since we need it to always be the same across\n // all WWT sessions so that we can remove it when it isn't needed.\n\n this._normalizeSizeColumnName$1 = 'dfe78b4c-f972-4796-b04f-68c5efd4ecb0';\n this.normalizeSize = false;\n this.normalizeSizeClip = false;\n this.normalizeSizeMin = 0;\n this.normalizeSizeMax = 1;\n this.nameColumn = 0;\n this._hyperlinkFormat$1 = '';\n this._hyperlinkColumn$1 = -1;\n this.scaleFactor = 1;\n this.pointScaleType = 1;\n this.positions = [];\n this.bufferIsFlat = false;\n this.baseDate = new Date(2010, 0, 1, 12, 0, 0);\n this.dirty = true;\n this.lastVersion = 0;\n _layer_js__WEBPACK_IMPORTED_MODULE_16__.Layer.call(this);\n}\n\nSpreadSheetLayer._circleTexture$1 = null;\n\nSpreadSheetLayer._getDatafromFeed$1 = function (url) {\n return '';\n};\n\nSpreadSheetLayer._executeQuery$1 = function (url) {\n return '';\n};\n\nSpreadSheetLayer.parseDate = function (date) {\n var dt = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n try {\n dt = new Date(date);\n }\n catch ($e1) {\n try {\n return SpreadSheetLayer.execlToDateTime(parseFloat(date));\n }\n catch ($e2) {\n }\n }\n return dt;\n};\n\nSpreadSheetLayer.execlToDateTime = function (excelDate) {\n if (excelDate > 59) {\n excelDate -= 1;\n }\n if (excelDate > 730000) {\n excelDate = 730000;\n }\n var es = new Date(1899, 12, 31);\n return new Date(es.getDate() + _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((excelDate * 24 * 60 * 60 * 1000)));\n};\n\nSpreadSheetLayer.get__circleTexture$1 = function () {\n if (SpreadSheetLayer._circleTexture$1 == null) {\n var url = _url_helpers_js__WEBPACK_IMPORTED_MODULE_14__.URLHelpers.singleton.engineAssetUrl('circle.png');\n SpreadSheetLayer._circleTexture$1 = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_8__.Texture.fromUrl(url);\n }\n return SpreadSheetLayer._circleTexture$1;\n};\n\nvar SpreadSheetLayer$ = {\n getTypeName: function () {\n return 'TerraViewer.SpreadSheetLayer';\n },\n\n get_header: function () {\n return this._table$1.header;\n },\n\n canCopyToClipboard: function () {\n return true;\n },\n\n copyToClipboard: function () { },\n\n dynamicUpdate: function () {\n var data = SpreadSheetLayer._getDatafromFeed$1(this.get_dataSourceUrl());\n if (data != null) {\n this.updateData(data, false, true, true);\n this.guessHeaderAssignments();\n return true;\n }\n return false;\n },\n\n updateData: function (data, purgeOld, purgeAll, hasHeader) {\n this.loadFromString(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(data, String), true, purgeOld, purgeAll, hasHeader);\n this.computeDateDomainRange(-1, -1);\n this._dataDirty$1 = true;\n this.dirty = true;\n return true;\n },\n\n loadData: function (tourDoc, filename) {\n var $this = this;\n\n this._table$1 = new _table_js__WEBPACK_IMPORTED_MODULE_17__.Table();\n var blob = tourDoc.getFileBlob(filename);\n this.getStringFromGzipBlob(blob, function (data) {\n $this._table$1.loadFromString(data, false, true, true);\n\n // The NormalizeSizeColumnName column is only present for backward-compatibility\n // and should be removed in this version of SpreadSheetLayer, otherwise we might\n // keep adding it several times if exporting to XML again.\n if ($this._table$1.header.indexOf($this._normalizeSizeColumnName$1) > -1) {\n $this._table$1.removeColumn($this._normalizeSizeColumnName$1);\n }\n $this.computeDateDomainRange(-1, -1);\n if ($this.get_dynamicData() && $this.get_autoUpdate()) {\n $this.dynamicUpdate();\n }\n $this._dataDirty$1 = true;\n $this.dirty = true;\n });\n },\n\n addFilesToCabinet: function (fc) {\n this._fileName$1 = fc.tempDirectory + _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0}\\\\{1}.txt', fc.get_packageID(), this.id.toString());\n var dir = this._fileName$1.substring(0, this._fileName$1.lastIndexOf('\\\\'));\n var data = '';\n\n // See PrepareBackCompatTable for an explanation of the\n // circumstances under which table_backcompat is used.\n if (this._table_backcompat$1 == null) {\n data = this._table$1.save();\n } else {\n data = this._table_backcompat$1.save();\n }\n var blob = new Blob([data]);\n fc.addFile(this._fileName$1, blob);\n _layer_js__WEBPACK_IMPORTED_MODULE_16__.Layer.prototype.addFilesToCabinet.call(this, fc);\n },\n _prepareBackCompatTable$1: function () {\n // In this this layer class we implement dynamic normalization of the\n // points based on one of the existing numerical columns. However, we\n // need to produce XML files that are backward-compatible with older\n // versions of WWT, so the approach we take is to add a column with\n // the computed sizes for versions of WWT that can't do the dynamic\n // scaling - while in newer versions we ignore this additional column\n // and use the dynamic scaling.\n\n // Take a shortcut to avoid copying the table if possible\n if ((this.sizeColumn === -1 || !this.get_normalizeSize()) && (this.colorMapColumn === -1 || !this.get_dynamicColor())) {\n this._lastNormalizeSizeColumnIndex$1 = -1;\n this._lastDynamicColorColumnIndex$1 = -1;\n return;\n }\n this._table_backcompat$1 = this._table$1.clone();\n if (this.sizeColumn > -1 && this.get_normalizeSize()) {\n var normalizedPointSize = [];\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._table_backcompat$1.rows);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n normalizedPointSize.push(this.normalizePointSize(parseFloat(row[this.sizeColumn])).toString());\n }\n this._table_backcompat$1.addColumn(this._normalizeSizeColumnName$1, normalizedPointSize);\n this._lastNormalizeSizeColumnIndex$1 = this._table_backcompat$1.header.length - 1;\n } else {\n this._lastNormalizeSizeColumnIndex$1 = -1;\n }\n if (this.colorMapColumn > -1 && this.get_dynamicColor()) {\n var pointColors = [];\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._table_backcompat$1.rows);\n while ($enum2.moveNext()) {\n var row = $enum2.current;\n pointColors.push(this.get_colorMapper().findClosestColor(this.normalizeColorMapValue(parseFloat(row[this.get_colorMapColumn()]))).toSimpleHex());\n }\n this._table_backcompat$1.addColumn(this._dynamicColorColumnName$1, pointColors);\n this._lastDynamicColorColumnIndex$1 = this._table_backcompat$1.header.length - 1;\n } else {\n this._lastDynamicColorColumnIndex$1 = -1;\n }\n },\n\n guessHeaderAssignments: function () {\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._table$1.header);\n while ($enum1.moveNext()) {\n var headerName = $enum1.current;\n this._guessHeaderAssignment$1(headerName, index++);\n }\n if (this._table$1.header.length > 0) {\n this.nameColumn = 0;\n }\n },\n\n guessHeaderAssignmentsFromVoTable: function (votable) {\n var decColumn = votable.getDecColumn();\n if (decColumn != null) {\n this.latColumn = decColumn.index;\n this.astronomical = true;\n }\n var raColumn = votable.getRAColumn();\n if (raColumn != null) {\n this.lngColumn = raColumn.index;\n this.astronomical = true;\n this.pointScaleType = 4;\n }\n var magColumn = votable.getMagColumn();\n if (magColumn != null) {\n this.sizeColumn = magColumn.index;\n }\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(votable.column);\n while ($enum1.moveNext()) {\n var column = $enum1.current;\n this._guessHeaderAssignment$1(column.name, index++);\n }\n if (this._table$1.header.length > 0) {\n this.nameColumn = 0;\n }\n },\n _guessHeaderAssignment$1: function (name, index) {\n name = name.toLowerCase();\n if (name.indexOf('lat') > -1 && this.latColumn === -1) {\n this.latColumn = index;\n }\n if ((name.indexOf('lon') > -1 || name.indexOf('lng') > -1) && this.lngColumn === -1) {\n this.lngColumn = index;\n }\n if (name.indexOf('dec') > -1 && this.latColumn === -1) {\n this.latColumn = index;\n this.astronomical = true;\n }\n if ((name.indexOf('ra') > -1 || name.indexOf('ascen') > -1) && this.lngColumn === -1) {\n this.lngColumn = index;\n this.astronomical = true;\n this.pointScaleType = 4;\n }\n if ((name.indexOf('mag') > -1 || name.indexOf('size') > -1) && this.sizeColumn === -1) {\n this.sizeColumn = index;\n }\n if ((name.indexOf('date') > -1 || name.indexOf('time') > -1 || name.indexOf('dt') > -1 || name.indexOf('tm') > -1)) {\n if (name.indexOf('end') > -1 && this.endDateColumn === -1) {\n this.endDateColumn = index;\n }\n else if (this.startDateColumn === -1) {\n this.startDateColumn = index;\n }\n }\n if ((name.indexOf('altitude') > -1 || name.indexOf('alt') > -1) && this.altColumn === -1) {\n this.altColumn = index;\n this.set_altType(1);\n this.set_altUnit(1);\n }\n if (name.indexOf('depth') > -1 && this.altColumn === -1) {\n this.altColumn = index;\n this.set_altType(0);\n this.set_altUnit(5);\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(name, 'x') && this.get_xAxisColumn() === -1) {\n this.set_xAxisColumn(index);\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(name, 'y') && this.get_yAxisColumn() === -1) {\n this.set_yAxisColumn(index);\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(name, 'z') && this.get_zAxisColumn() === -1) {\n this.set_zAxisColumn(index);\n }\n if (name.indexOf('color') > -1 && this.get_colorMapColumn() === -1) {\n this.set_colorMapColumn(index);\n }\n if ((name.indexOf('geometry') > -1 || name.indexOf('geography') > -1) && this.geometryColumn === -1) {\n this.geometryColumn = index;\n }\n },\n\n computeDateDomainRange: function (columnStart, columnEnd) {\n if (columnStart === -1) {\n columnStart = this.startDateColumn;\n }\n if (columnEnd === -1) {\n columnEnd = this.endDateColumn;\n }\n if (columnEnd === -1) {\n columnEnd = columnStart;\n }\n this.set_beginRange(new Date('12/31/2100'));\n this.set_endRange(new Date('12/31/1890'));\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._table$1.rows);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n try {\n if (columnStart > -1) {\n var sucsess = true;\n var dateTimeStart = new Date('12/31/2100');\n try {\n dateTimeStart = new Date(row[columnStart]);\n if (dateTimeStart < this.get_beginRange()) {\n this.set_beginRange(dateTimeStart);\n }\n }\n catch ($e2) {\n }\n try {\n var dateTimeEnd = new Date('12/31/1890');\n if (columnEnd > -1) {\n dateTimeEnd = new Date(row[columnEnd]);\n if (sucsess && dateTimeEnd > this.get_endRange()) {\n this.set_endRange(dateTimeEnd);\n }\n }\n }\n catch ($e3) {\n }\n }\n }\n catch ($e4) {\n }\n }\n },\n\n checkState: function () { },\n\n getMaxValue: function (column) {\n var max = 0;\n this._table$1.lock();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._table$1.rows);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n try {\n if (column > -1) {\n var sucsess = true;\n try {\n var val = parseFloat(row[column]);\n if (sucsess && val > max) {\n max = val;\n }\n }\n catch ($e2) {\n }\n }\n }\n catch ($e3) {\n }\n }\n this._table$1.unlock();\n return max;\n },\n\n getDomainValues: function (column) {\n var domainValues = [];\n this._table$1.lock();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._table$1.rows);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n try {\n if (column > -1) {\n if (!(domainValues.indexOf(row[column]) >= 0)) {\n domainValues.push(row[column]);\n }\n }\n }\n catch ($e2) {\n }\n }\n domainValues.sort();\n this._table$1.unlock();\n return domainValues;\n },\n\n get_barChartBitmask: function () {\n return this._barChartBitmask$1;\n },\n\n set_barChartBitmask: function (value) {\n this._barChartBitmask$1 = value;\n return value;\n },\n _isPointInFrustum$1: function (position, frustum) {\n var centerV4 = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector4d(position.x, position.y, position.z, 1);\n for (var i = 0; i < 6; i++) {\n if (frustum[i].dot(centerV4) < 0) {\n return false;\n }\n }\n return true;\n },\n\n getTableDataInView: function () {\n var data = '';\n var first = true;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.get_header());\n while ($enum1.moveNext()) {\n var col = $enum1.current;\n if (!first) {\n data += '\\t';\n }\n else {\n first = false;\n }\n data += col;\n }\n data += '\\r\\n';\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.get__table().rows);\n while ($enum2.moveNext()) {\n var row = $enum2.current;\n var ra = parseFloat(row[this.get_lngColumn()]);\n var dec = parseFloat(row[this.get_latColumn()]);\n var position = _coordinates_js__WEBPACK_IMPORTED_MODULE_11__.Coordinates.geoTo3dDouble(dec, ra);\n if (!this._isPointInFrustum$1(position, _render_globals_js__WEBPACK_IMPORTED_MODULE_5__.globalRenderContext.get_frustum())) {\n continue;\n }\n first = true;\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(row);\n while ($enum3.moveNext()) {\n var col = $enum3.current;\n if (!first) {\n data += '\\t';\n }\n else {\n first = false;\n }\n data += col;\n }\n data += '\\r\\n';\n }\n return data;\n },\n\n prepVertexBuffer: function (renderContext, opacity) {\n this._table$1.lock();\n if (this.lineList != null) {\n this.lineList.clear();\n }\n if (this.lineList2d != null) {\n this.lineList2d.clear();\n }\n if (this.triangleList != null) {\n this.triangleList.clear();\n }\n if (this.pointList != null) {\n this.pointList.clear();\n }\n if (this.triangleList2d != null) {\n this.triangleList2d.clear();\n }\n if (this.lineList == null) {\n this.lineList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.LineList();\n }\n if (this.pointList == null) {\n this.pointList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.PointList(renderContext);\n }\n this.lineList.timeSeries = this.timeSeries;\n if (this.lineList2d == null) {\n this.lineList2d = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.LineList();\n this.lineList2d.set_depthBuffered(false);\n }\n this.lineList.timeSeries = this.timeSeries;\n if (this.triangleList == null) {\n this.triangleList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.TriangleList();\n }\n if (this.triangleList2d == null) {\n this.triangleList2d = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.TriangleList();\n this.triangleList2d.depthBuffered = false;\n }\n this.positions.length = 0;\n var currentIndex = 0;\n var colorLocal = this.get_color();\n\n // for space 3d\n var ecliptic = _coordinates_js__WEBPACK_IMPORTED_MODULE_11__.Coordinates.meanObliquityOfEcliptic(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__.SpaceTimeController.get_jNow()) / 180 * Math.PI;\n var selectDomain = {};\n var mr = (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.layerManagerGetAllMaps)()[this.get_referenceFrame()].frame.meanRadius;\n if (!!mr) {\n this._meanRadius$1 = mr;\n }\n var position = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d();\n var pointSize = 0.0002;\n var pointColor = _color_js__WEBPACK_IMPORTED_MODULE_10__.Colors.get_white();\n var pointStartTime = 0;\n var pointEndTime = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._table$1.rows);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n try {\n if (this.geometryColumn > -1 || (!this.get_coordinatesType() && (this.lngColumn > -1 && this.latColumn > -1)) || ((this.get_coordinatesType() === 1) && (this.get_xAxisColumn() > -1 && this.get_yAxisColumn() > -1))) {\n var Xcoord = 0;\n var Ycoord = 0;\n var Zcoord = 0;\n var alt = 1;\n var altitude = 0;\n var distParces = 0;\n var factor = this.getScaleFactor(this.get_altUnit(), 1);\n if (this.altColumn === -1 || this.get_altType() === 3 || this.bufferIsFlat) {\n alt = 1;\n if ((this.astronomical & !this.bufferIsFlat) === 1) {\n alt = 63239.6717 * 100;\n }\n }\n else {\n if (!this.get_altType()) {\n factor = -factor;\n }\n alt = 0;\n try {\n alt = parseFloat(row[this.altColumn]);\n }\n catch ($e2) {\n }\n if (this.astronomical) {\n factor = factor / (1000 * 149598000);\n distParces = (alt * factor) / 206264.806;\n altitude = (factor * alt);\n alt = (factor * alt);\n }\n else if (this.get_altType() === 2) {\n altitude = (factor * alt);\n alt = (factor * alt / this._meanRadius$1);\n }\n else {\n altitude = (factor * alt);\n alt = 1 + (factor * alt / this._meanRadius$1);\n }\n }\n if (!this.get_coordinatesType() && this.lngColumn > -1 && this.latColumn > -1) {\n Xcoord = parseFloat(row[this.lngColumn]);\n Ycoord = parseFloat(row[this.latColumn]);\n if (this.astronomical) {\n if (!this.get_raUnits()) {\n Xcoord *= 15;\n }\n if (this.bufferIsFlat) {\n }\n }\n else {\n Xcoord += 180;\n }\n var pos = _coordinates_js__WEBPACK_IMPORTED_MODULE_11__.Coordinates.geoTo3dRad(Ycoord, Xcoord, alt);\n if (this.astronomical && !this.bufferIsFlat) {\n pos.rotateX(ecliptic);\n }\n position = pos;\n this.positions.push(position);\n }\n else if (this.get_coordinatesType() === 1) {\n var xyzScale = this.getScaleFactor(this.get_cartesianScale(), this.get_cartesianCustomScale());\n if (this.astronomical) {\n xyzScale /= (1000 * 149598000);\n }\n else {\n xyzScale /= this._meanRadius$1;\n }\n if (this.get_zAxisColumn() > -1) {\n Zcoord = parseFloat(row[this.get_zAxisColumn()]);\n }\n Xcoord = parseFloat(row[this.get_xAxisColumn()]);\n Ycoord = parseFloat(row[this.get_yAxisColumn()]);\n if (this.get_xAxisReverse()) {\n Xcoord = -Xcoord;\n }\n if (this.get_yAxisReverse()) {\n Ycoord = -Ycoord;\n }\n if (this.get_zAxisReverse()) {\n Zcoord = -Zcoord;\n }\n position = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create((Xcoord * xyzScale), (Zcoord * xyzScale), (Ycoord * xyzScale));\n this.positions.push(position);\n }\n switch (this.get_colorMap()) {\n case 0:\n pointColor = colorLocal;\n break;\n case 3:\n if (this.get_colorMapColumn() > -1) {\n if (this.get_dynamicColor()) {\n pointColor = this.get_colorMapper().findClosestColor(this.normalizeColorMapValue(parseFloat(row[this.get_colorMapColumn()])));\n }\n else {\n pointColor = this._parseColor$1(row[this.get_colorMapColumn()], colorLocal);\n }\n }\n else {\n pointColor = colorLocal;\n }\n break;\n default:\n break;\n }\n if (pointColor == null) {\n pointColor = _color_js__WEBPACK_IMPORTED_MODULE_10__.Colors.get_transparent();\n }\n if (this.sizeColumn > -1) {\n switch (this.pointScaleType) {\n case 0:\n pointSize = parseFloat(row[this.sizeColumn]);\n pointSize = this.normalizePointSize(pointSize);\n break;\n case 2:\n pointSize = parseFloat(row[this.sizeColumn]);\n pointSize = Math.log(pointSize);\n break;\n case 1:\n try {\n pointSize = parseFloat(row[this.sizeColumn]);\n pointSize = this.normalizePointSize(pointSize);\n pointSize = Math.pow(2, pointSize);\n }\n catch ($e3) {\n pointSize = 0;\n }\n break;\n case 4:\n var size = 0;\n try {\n size = parseFloat(row[this.sizeColumn]);\n if (!this.bufferIsFlat) {\n size = size - 5 * (_baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.logN(distParces, 10) - 1);\n pointSize = (120000000 / Math.pow(1.6, size));\n }\n else {\n pointSize = (40 / Math.pow(1.6, size));\n }\n }\n catch ($e4) {\n pointSize = 0;\n }\n break;\n case 3:\n pointSize = 1;\n break;\n default:\n break;\n }\n }\n else {\n pointSize = 0.2;\n }\n if (this.get_plotType() === 1) {\n pointSize = 1;\n }\n if ((this.astronomical & !this.bufferIsFlat) === 1) {\n }\n if (this.startDateColumn > -1) {\n var dateTime = new Date(row[this.startDateColumn]);\n pointStartTime = (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__.SpaceTimeController.utcToJulian(dateTime) - _space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__.SpaceTimeController.utcToJulian(this.baseDate));\n if (this.endDateColumn > -1) {\n dateTime = new Date(row[this.endDateColumn]);\n pointEndTime = (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__.SpaceTimeController.utcToJulian(dateTime) - _space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__.SpaceTimeController.utcToJulian(this.baseDate));\n }\n else {\n pointEndTime = pointStartTime;\n }\n }\n this.pointList.addPoint(position, pointColor, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.Dates(pointStartTime, pointEndTime), pointSize);\n if (this.geometryColumn > -1) {\n this._parseGeometry$1(row[this.geometryColumn], pointColor, pointColor, altitude, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__.Dates(pointStartTime, pointEndTime));\n }\n currentIndex++;\n }\n }\n catch ($e5) {\n }\n this.lines = false;\n }\n this._table$1.unlock();\n this._dataDirty$1 = false;\n this.dirty = false;\n return false;\n },\n _parseGeometry$1: function (gs, lineColor, polyColor, alt, date) {\n gs = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(gs).toLowerCase();\n var index = gs.indexOf('(');\n if (index < 0) {\n return;\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.endsWith(gs, ')')) {\n return;\n }\n var commandPart = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(gs.substring(0, index));\n var parens = gs.substr(index);\n var parts = commandPart.split(' ');\n var command = null;\n var mods = null;\n if (parts.length > 0) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(parts);\n while ($enum1.moveNext()) {\n var item = $enum1.current;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(command)) {\n command = item;\n }\n else if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(mods)) {\n mods = item;\n }\n }\n }\n switch (command) {\n case 'multipolygon':\n case 'polygon':\n this._parsePolygon$1(parens, mods, lineColor, polyColor, alt, date);\n break;\n case 'multilinestring':\n this._parseLineString$1(parens, mods, lineColor, alt, false, date);\n break;\n case 'linestring':\n this._parseLineString$1(parens, mods, lineColor, alt, true, date);\n break;\n case 'geometrycollection':\n parens = parens.substring(1, parens.length - 2);\n var shapes = _ui_tools_js__WEBPACK_IMPORTED_MODULE_13__.UiTools.splitString(parens, ',');\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(shapes);\n while ($enum2.moveNext()) {\n var shape = $enum2.current;\n this._parseGeometry$1(shape, lineColor, polyColor, alt, date);\n }\n break;\n default:\n break;\n }\n },\n _parsePolygon$1: function (parens, mods, lineColor, polyColor, alt, date) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(parens, '(') && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.endsWith(parens, ')')) {\n return;\n }\n\n // string the top level of parens\n parens = parens.substring(1, parens.length - 2);\n var shapes = _ui_tools_js__WEBPACK_IMPORTED_MODULE_13__.UiTools.splitString(parens, ',');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(shapes);\n while ($enum1.moveNext()) {\n var shape = $enum1.current;\n var lineList = new KmlLineList();\n lineList.astronomical = this.astronomical;\n lineList.meanRadius = this._meanRadius$1;\n lineList.parseWkt(shape, mods, alt, date);\n if (!alt) {\n this._addPolygonFlat$1(false, lineList, 1, polyColor, lineColor, true, true, date);\n }\n else {\n this._addPolygon$1(false, lineList, 1, polyColor, lineColor, true, true, date);\n }\n }\n },\n _parseLineString$1: function (parens, mods, lineColor, alt, single, date) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(parens, '(') && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.endsWith(parens, ')')) {\n return;\n }\n if (!single) {\n // string the top level of parens\n parens = parens.substring(1, parens.length - 2);\n }\n var shapes = _ui_tools_js__WEBPACK_IMPORTED_MODULE_13__.UiTools.splitString(parens, ',');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(shapes);\n while ($enum1.moveNext()) {\n var shape = $enum1.current;\n var lineList = new KmlLineList();\n lineList.astronomical = this.astronomical;\n lineList.meanRadius = this._meanRadius$1;\n lineList.parseWkt(shape, mods, alt, date);\n this._addPolygon$1(false, lineList, 1, _color_js__WEBPACK_IMPORTED_MODULE_10__.Colors.get_white(), lineColor, false, false, date);\n }\n },\n _splitShapes$1: function (shapes) {\n var shapeList = [];\n var nesting = 0;\n var current = 0;\n while (current < shapes.length) {\n if (shapes.substr(current, 1) === '(') {\n nesting++;\n }\n }\n return shapeList;\n },\n _addPolygon$1: function (sky, geo, lineWidth, polyColor, lineColor, extrude, fill, date) {\n //todo can we save this work for later?\n var vertexList = [];\n var vertexListGround = [];\n for (var i = 0; i < geo.pointList.length; i++) {\n vertexList.push(_coordinates_js__WEBPACK_IMPORTED_MODULE_11__.Coordinates.geoTo3dRad(geo.pointList[i].lat, geo.pointList[i].lng, 1 + (geo.pointList[i].alt / this._meanRadius$1)));\n vertexListGround.push(_coordinates_js__WEBPACK_IMPORTED_MODULE_11__.Coordinates.geoTo3dRad(geo.pointList[i].lat, geo.pointList[i].lng, 1));\n }\n for (var i = 0; i < (geo.pointList.length - 1); i++) {\n if (sky) {\n // todo reenable this\n }\n else {\n if (extrude) {\n this.triangleList.addQuad(vertexList[i], vertexList[i + 1], vertexListGround[i], vertexListGround[i + 1], polyColor, date);\n }\n if (lineWidth > 0) {\n if (extrude) {\n this.lineList.addLine(vertexList[i], vertexList[i + 1], lineColor, date);\n }\n else {\n this.lineList2d.addLine(vertexList[i], vertexList[i + 1], lineColor, date);\n }\n if (extrude) {\n this.lineList.addLine(vertexListGround[i], vertexListGround[i + 1], lineColor, date);\n this.lineList.addLine(vertexList[i], vertexListGround[i], lineColor, date);\n this.lineList.addLine(vertexList[i + 1], vertexListGround[i + 1], lineColor, date);\n }\n }\n }\n }\n if (fill) {\n var indexes = _graphics_tessellator_js__WEBPACK_IMPORTED_MODULE_9__.Tessellator.tesselateSimplePoly(vertexList);\n for (var i = 0; i < indexes.length; i += 3) {\n this.triangleList.addTriangle(vertexList[indexes[i]], vertexList[indexes[i + 1]], vertexList[indexes[i + 2]], polyColor, date);\n }\n }\n },\n _addPolygonFlat$1: function (sky, geo, lineWidth, polyColor, lineColor, extrude, fill, date) {\n var vertexList = [];\n for (var i = 0; i < geo.pointList.length; i++) {\n vertexList.push(_coordinates_js__WEBPACK_IMPORTED_MODULE_11__.Coordinates.geoTo3dRad(geo.pointList[i].lat, geo.pointList[i].lng, 1 + (geo.pointList[i].alt / this._meanRadius$1)));\n }\n for (var i = 0; i < (geo.pointList.length - 1); i++) {\n if (sky) {\n }\n else {\n if (lineWidth > 0) {\n this.lineList2d.addLine(vertexList[i], vertexList[i + 1], lineColor, date);\n }\n }\n }\n if (fill) {\n var indexes = _graphics_tessellator_js__WEBPACK_IMPORTED_MODULE_9__.Tessellator.tesselateSimplePoly(vertexList);\n for (var i = 0; i < indexes.length; i += 3) {\n this.triangleList2d.addSubdividedTriangles(vertexList[indexes[i]], vertexList[indexes[i + 1]], vertexList[indexes[i + 2]], polyColor, date, 2);\n }\n }\n },\n _parseColor$1: function (colorText, defaultColor) {\n return _color_js__WEBPACK_IMPORTED_MODULE_10__.Color.load(colorText);\n },\n\n getScaleFactor: function (AltUnit, custom) {\n var factor = 1;\n switch (AltUnit) {\n case 1:\n factor = 1;\n break;\n case 2:\n factor = 1 * 0.3048;\n break;\n case 3:\n factor = (1 / 12) * 0.3048;\n break;\n case 4:\n factor = 5280 * 0.3048;\n break;\n case 5:\n factor = 1000;\n break;\n case 6:\n factor = 1000 * 149598000;\n break;\n case 7:\n factor = 1000 * 149598000 * 63239.6717;\n break;\n case 8:\n factor = 1000 * 149598000 * 206264.806;\n break;\n case 9:\n factor = 1000 * 149598000 * 206264.806 * 1000000;\n break;\n case 10:\n factor = custom;\n break;\n default:\n break;\n }\n return factor;\n },\n\n get__table: function () {\n return this._table$1;\n },\n\n set__table: function (value) {\n this._table$1 = value;\n return value;\n },\n\n useHeadersFromVoTable: function (voTable) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(voTable.column);\n while ($enum1.moveNext()) {\n var column = $enum1.current;\n this.get_header().push(column.name);\n }\n this.guessHeaderAssignmentsFromVoTable(voTable);\n if (voTable.getRAColumn() != null && voTable.getRAColumn().unit.toLowerCase() === 'deg') {\n this.set_raUnits(1);\n }\n },\n\n loadFromString: function (data, isUpdate, purgeOld, purgeAll, hasHeader) {\n if (!isUpdate) {\n this._table$1 = new _table_js__WEBPACK_IMPORTED_MODULE_17__.Table();\n }\n this._table$1.lock();\n this._table$1.loadFromString(data, isUpdate, purgeAll, hasHeader);\n if (!isUpdate) {\n this.guessHeaderAssignments();\n if (this.astronomical && this.lngColumn > -1) {\n var max = this.getMaxValue(this.lngColumn);\n if (max > 24) {\n this.set_raUnits(1);\n }\n }\n }\n if (purgeOld) {\n this.purgeByTime();\n }\n this._table$1.unlock();\n },\n\n purgeByTime: function () {\n if (this.startDateColumn < 0) {\n return;\n }\n var columnToUse = this.startDateColumn;\n if (this.endDateColumn > -1) {\n columnToUse = this.endDateColumn;\n }\n var threasholdTime = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__.SpaceTimeController.get_now();\n var ts = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(this.decay) * 24 * 60 * 60 * 1000;\n threasholdTime = new Date(threasholdTime.getDate() - ts);\n var count = this._table$1.rows.length;\n for (var i = 0; i < count; i++) {\n try {\n var row = this._table$1.rows[i];\n var colDate = new Date(row[columnToUse]);\n if (colDate < threasholdTime) {\n this._table$1.rows.splice(i, 1);\n count--;\n i--;\n }\n }\n catch ($e1) {\n }\n }\n },\n\n cleanUp: function () {\n this.cleanUpBase();\n this._table$1.lock();\n _layer_js__WEBPACK_IMPORTED_MODULE_16__.Layer.prototype.cleanUp.call(this);\n this._table$1.unlock();\n this.dirty = true;\n },\n\n writeLayerProperties: function (xmlWriter) {\n xmlWriter._writeAttributeString('TimeSeries', this.get_timeSeries().toString());\n xmlWriter._writeAttributeString('BeginRange', _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.xmlDate(this.get_beginRange()));\n xmlWriter._writeAttributeString('EndRange', _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.xmlDate(this.get_endRange()));\n xmlWriter._writeAttributeString('Decay', this.get_decay().toString());\n xmlWriter._writeAttributeString('CoordinatesType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('CoordinatesTypes', this.get_coordinatesType()));\n xmlWriter._writeAttributeString('LatColumn', this.get_latColumn().toString());\n xmlWriter._writeAttributeString('LngColumn', this.get_lngColumn().toString());\n xmlWriter._writeAttributeString('GeometryColumn', this.get_geometryColumn().toString());\n xmlWriter._writeAttributeString('AltType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('AltTypes', this.get_altType()));\n xmlWriter._writeAttributeString('MarkerMix', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('MarkerMixes', this.get_markerMix()));\n xmlWriter._writeAttributeString('ColorMap', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('ColorMaps', this.get_colorMap()));\n xmlWriter._writeAttributeString('MarkerColumn', this.get_markerColumn().toString());\n xmlWriter._writeAttributeString('PlotType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('PlotTypes', this.get_plotType()));\n xmlWriter._writeAttributeString('MarkerIndex', this.get_markerIndex().toString());\n xmlWriter._writeAttributeString('MarkerScale', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('MarkerScales', this.get_markerScale()));\n xmlWriter._writeAttributeString('AltUnit', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('AltUnits', this.get_altUnit()));\n xmlWriter._writeAttributeString('AltColumn', this.get_altColumn().toString());\n xmlWriter._writeAttributeString('StartDateColumn', this.get_startDateColumn().toString());\n xmlWriter._writeAttributeString('EndDateColumn', this.get_endDateColumn().toString());\n\n // In this layer class we implement dynamic scaling and coloring of the points\n // based on one of the existing numerical columns. However, we need to produce\n // XML files that are backward-compatible with older versions of WWT. If\n // dynamic scaling/coloring is used, we therefore point sizeColumn and/or\n // colorMapColumn to the hard-coded sizes/colors, and then if we detect\n // normalization arguments when reading in the XML, we switch sizeColumn\n // and/or colorMapColumn to the original one.\n\n // Note that we need to call this here since WriteLayerProperties\n // gets called before AddFilesToCabinet.\n this._prepareBackCompatTable$1();\n if (this._lastNormalizeSizeColumnIndex$1 > -1) {\n xmlWriter._writeAttributeString('SizeColumn', this._lastNormalizeSizeColumnIndex$1);\n xmlWriter._writeAttributeString('NormalizeSizeColumn', this.sizeColumn.toString());\n } else {\n xmlWriter._writeAttributeString('SizeColumn', this.get_sizeColumn().toString());\n }\n xmlWriter._writeAttributeString('NormalizeSize', this.get_normalizeSize().toString());\n xmlWriter._writeAttributeString('NormalizeSizeClip', this.get_normalizeSizeClip().toString());\n xmlWriter._writeAttributeString('NormalizeSizeMin', this.get_normalizeSizeMin().toString());\n xmlWriter._writeAttributeString('NormalizeSizeMax', this.get_normalizeSizeMax().toString());\n if (this._lastDynamicColorColumnIndex$1 > -1) {\n xmlWriter._writeAttributeString('ColorMapColumn', this._lastDynamicColorColumnIndex$1);\n xmlWriter._writeAttributeString('DynamicColorColumn', this.get_colorMapColumn().toString());\n } else {\n xmlWriter._writeAttributeString('ColorMapColumn', this.get_colorMapColumn().toString());\n }\n xmlWriter._writeAttributeString('DynamicColor', this.get_dynamicColor().toString());\n xmlWriter._writeAttributeString('ColorMapperName', this.get_colorMapperName());\n xmlWriter._writeAttributeString('NormalizeColorMap', this.get_normalizeColorMap().toString());\n xmlWriter._writeAttributeString('NormalizeColorMapMin', this.get_normalizeColorMapMin().toString());\n xmlWriter._writeAttributeString('NormalizeColorMapMax', this.get_normalizeColorMapMax().toString());\n xmlWriter._writeAttributeString('HyperlinkFormat', this.get_hyperlinkFormat());\n xmlWriter._writeAttributeString('HyperlinkColumn', this.get_hyperlinkColumn().toString());\n xmlWriter._writeAttributeString('ScaleFactor', this.get_scaleFactor().toString());\n xmlWriter._writeAttributeString('PointScaleType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('PointScaleTypes', this.get_pointScaleType()));\n xmlWriter._writeAttributeString('ShowFarSide', this.get_showFarSide().toString());\n xmlWriter._writeAttributeString('RaUnits', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('RAUnits', this.get_raUnits()));\n xmlWriter._writeAttributeString('HoverTextColumn', this.get_nameColumn().toString());\n xmlWriter._writeAttributeString('XAxisColumn', this.get_xAxisColumn().toString());\n xmlWriter._writeAttributeString('XAxisReverse', this.get_xAxisReverse().toString());\n xmlWriter._writeAttributeString('YAxisColumn', this.get_yAxisColumn().toString());\n xmlWriter._writeAttributeString('YAxisReverse', this.get_yAxisReverse().toString());\n xmlWriter._writeAttributeString('ZAxisColumn', this.get_zAxisColumn().toString());\n xmlWriter._writeAttributeString('ZAxisReverse', this.get_zAxisReverse().toString());\n xmlWriter._writeAttributeString('CartesianScale', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('AltUnits', this.get_cartesianScale()));\n xmlWriter._writeAttributeString('CartesianCustomScale', this.get_cartesianCustomScale().toString());\n xmlWriter._writeAttributeString('DynamicData', this.get_dynamicData().toString());\n xmlWriter._writeAttributeString('AutoUpdate', this.get_autoUpdate().toString());\n xmlWriter._writeAttributeString('DataSourceUrl', this.get_dataSourceUrl());\n },\n\n get_dynamicData: function () {\n return this._dynamicData$1;\n },\n\n set_dynamicData: function (value) {\n this._dynamicData$1 = value;\n return value;\n },\n\n get_autoUpdate: function () {\n return this._autoUpdate$1;\n },\n\n set_autoUpdate: function (value) {\n this._autoUpdate$1 = value;\n return value;\n },\n\n get_dataSourceUrl: function () {\n return this._dataSourceUrl$1;\n },\n\n set_dataSourceUrl: function (value) {\n this._dataSourceUrl$1 = value;\n return value;\n },\n\n get_timeSeries: function () {\n return this.timeSeries;\n },\n\n set_timeSeries: function (value) {\n if (this.timeSeries !== value) {\n this.version++;\n this.timeSeries = value;\n }\n return value;\n },\n\n get_beginRange: function () {\n return this._beginRange$1;\n },\n\n set_beginRange: function (value) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.compareDates(this._beginRange$1, value)) {\n this.version++;\n this._beginRange$1 = value;\n }\n return value;\n },\n\n get_endRange: function () {\n return this._endRange$1;\n },\n\n set_endRange: function (value) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.compareDates(this._endRange$1, value)) {\n this.version++;\n this._endRange$1 = value;\n }\n return value;\n },\n\n initializeFromXml: function (node) {\n this.set_timeSeries(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('TimeSeries').nodeValue));\n this.set_beginRange(new Date(node.attributes.getNamedItem('BeginRange').nodeValue));\n this.set_endRange(new Date(node.attributes.getNamedItem('EndRange').nodeValue));\n this.set_decay(parseFloat(node.attributes.getNamedItem('Decay').nodeValue));\n this.set_coordinatesType(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('CoordinatesTypes', node.attributes.getNamedItem('CoordinatesType').nodeValue));\n if (this.get_coordinatesType() < 0) {\n this.set_coordinatesType(0);\n }\n this.set_latColumn(parseInt(node.attributes.getNamedItem('LatColumn').nodeValue));\n this.set_lngColumn(parseInt(node.attributes.getNamedItem('LngColumn').nodeValue));\n if (node.attributes.getNamedItem('GeometryColumn') != null) {\n this.set_geometryColumn(parseInt(node.attributes.getNamedItem('GeometryColumn').nodeValue));\n }\n this.set_altType(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('AltTypes', node.attributes.getNamedItem('AltType').nodeValue));\n this.set_markerMix(0);\n this.set_colorMap(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('ColorMaps', node.attributes.getNamedItem('ColorMap').nodeValue));\n this.set_markerColumn(parseInt(node.attributes.getNamedItem('MarkerColumn').nodeValue));\n this.set_colorMapColumn(parseInt(node.attributes.getNamedItem('ColorMapColumn').nodeValue));\n this.set_plotType(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('PlotTypes', node.attributes.getNamedItem('PlotType').nodeValue));\n this.set_markerIndex(parseInt(node.attributes.getNamedItem('MarkerIndex').nodeValue));\n this.set_markerScale(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('MarkerScales', node.attributes.getNamedItem('MarkerScale').nodeValue));\n this.set_altUnit(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('AltUnits', node.attributes.getNamedItem('AltUnit').nodeValue));\n this.set_altColumn(parseInt(node.attributes.getNamedItem('AltColumn').nodeValue));\n this.set_startDateColumn(parseInt(node.attributes.getNamedItem('StartDateColumn').nodeValue));\n this.set_endDateColumn(parseInt(node.attributes.getNamedItem('EndDateColumn').nodeValue));\n\n // In this layer class we implement dynamic scaling and coloring of the points\n // based on one of the existing numerical columns. However, we need to produce\n // XML files that are backward-compatible with older versions of WWT. Since we\n // can deal with size/color scaling here, we ignore SizeColumn and ColorMapColumn\n // and use NormalizeSizeColumn and DynamicColorColumn instead, if present.\n\n if (node.attributes.getNamedItem('NormalizeSizeColumn') != null) {\n this.set_sizeColumn(parseInt(node.attributes.getNamedItem('NormalizeSizeColumn').nodeValue));\n } else {\n this.set_sizeColumn(parseInt(node.attributes.getNamedItem('SizeColumn').nodeValue));\n }\n\n // Only recent files have normalization parameters\n\n if (node.attributes.getNamedItem('NormalizeSize') != null) {\n this.set_normalizeSize(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('NormalizeSize').nodeValue));\n this.set_normalizeSizeClip(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('NormalizeSizeClip').nodeValue));\n this.set_normalizeSizeMin(parseFloat(node.attributes.getNamedItem('NormalizeSizeMin').nodeValue));\n this.set_normalizeSizeMax(parseFloat(node.attributes.getNamedItem('NormalizeSizeMax').nodeValue));\n }\n if (node.attributes.getNamedItem('DynamicColorColumn') != null) {\n this.set_colorMapColumn(parseInt(node.attributes.getNamedItem('DynamicColorColumn').nodeValue));\n } else {\n this.set_colorMapColumn(parseInt(node.attributes.getNamedItem('ColorMapColumn').nodeValue));\n }\n\n // Only recent files have normalization parameters\n\n if (node.attributes.getNamedItem('DynamicColor') != null) {\n this.set_dynamicColor(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('DynamicColor').nodeValue));\n this.set_colorMapperName(node.attributes.getNamedItem('ColorMapperName').nodeValue);\n this.set_normalizeColorMap(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('NormalizeColorMap').nodeValue));\n this.set_normalizeColorMapMin(parseFloat(node.attributes.getNamedItem('NormalizeColorMapMin').nodeValue));\n this.set_normalizeColorMapMax(parseFloat(node.attributes.getNamedItem('NormalizeColorMapMax').nodeValue));\n }\n this.set_hyperlinkFormat(node.attributes.getNamedItem('HyperlinkFormat').nodeValue);\n this.set_hyperlinkColumn(parseInt(node.attributes.getNamedItem('HyperlinkColumn').nodeValue));\n this.set_scaleFactor(parseFloat(node.attributes.getNamedItem('ScaleFactor').nodeValue));\n this.set_pointScaleType(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('PointScaleTypes', node.attributes.getNamedItem('PointScaleType').nodeValue));\n if (node.attributes.getNamedItem('ShowFarSide') != null) {\n this.set_showFarSide(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('ShowFarSide').nodeValue));\n }\n if (node.attributes.getNamedItem('RaUnits') != null) {\n this.set_raUnits(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('RAUnits', node.attributes.getNamedItem('RaUnits').nodeValue));\n }\n if (node.attributes.getNamedItem('HoverTextColumn') != null) {\n this.set_nameColumn(parseInt(node.attributes.getNamedItem('HoverTextColumn').nodeValue));\n }\n if (node.attributes.getNamedItem('XAxisColumn') != null) {\n this.set_xAxisColumn(parseInt(node.attributes.getNamedItem('XAxisColumn').nodeValue));\n this.set_xAxisReverse(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('XAxisReverse').nodeValue));\n this.set_yAxisColumn(parseInt(node.attributes.getNamedItem('YAxisColumn').nodeValue));\n this.set_yAxisReverse(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('YAxisReverse').nodeValue));\n this.set_zAxisColumn(parseInt(node.attributes.getNamedItem('ZAxisColumn').nodeValue));\n this.set_zAxisReverse(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('ZAxisReverse').nodeValue));\n this.set_cartesianScale(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('AltUnits', node.attributes.getNamedItem('CartesianScale').nodeValue));\n this.set_cartesianCustomScale(parseFloat(node.attributes.getNamedItem('CartesianCustomScale').nodeValue));\n }\n if (node.attributes.getNamedItem('DynamicData') != null) {\n this.set_dynamicData(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('DynamicData').nodeValue));\n this.set_autoUpdate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('AutoUpdate').nodeValue));\n this.set_dataSourceUrl(node.attributes.getNamedItem('DataSourceUrl').nodeValue);\n }\n },\n\n get_decay: function () {\n return this.decay;\n },\n\n set_decay: function (value) {\n if (this.decay !== value) {\n this.version++;\n this.decay = value;\n }\n return value;\n },\n\n get_coordinatesType: function () {\n return this._coordinatesType$1;\n },\n\n set_coordinatesType: function (value) {\n if (this._coordinatesType$1 !== value) {\n this.version++;\n this._coordinatesType$1 = value;\n }\n return value;\n },\n\n get_latColumn: function () {\n return this.latColumn;\n },\n\n set_latColumn: function (value) {\n if (this.latColumn !== value) {\n this.version++;\n this.latColumn = value;\n }\n return value;\n },\n\n get_lngColumn: function () {\n return this.lngColumn;\n },\n\n set_lngColumn: function (value) {\n if (this.lngColumn !== value) {\n this.version++;\n this.lngColumn = value;\n }\n return value;\n },\n\n get_geometryColumn: function () {\n return this.geometryColumn;\n },\n\n set_geometryColumn: function (value) {\n if (this.geometryColumn !== value) {\n this.version++;\n this.geometryColumn = value;\n }\n return value;\n },\n\n get_xAxisColumn: function () {\n return this._xAxisColumn$1;\n },\n\n set_xAxisColumn: function (value) {\n if (this._xAxisColumn$1 !== value) {\n this.version++;\n this._xAxisColumn$1 = value;\n }\n return value;\n },\n\n get_yAxisColumn: function () {\n return this._yAxisColumn$1;\n },\n\n set_yAxisColumn: function (value) {\n if (this._yAxisColumn$1 !== value) {\n this.version++;\n this._yAxisColumn$1 = value;\n }\n return value;\n },\n\n get_zAxisColumn: function () {\n return this._zAxisColumn$1;\n },\n\n set_zAxisColumn: function (value) {\n if (this._zAxisColumn$1 !== value) {\n this.version++;\n this._zAxisColumn$1 = value;\n }\n return value;\n },\n\n get_xAxisReverse: function () {\n return this._xAxisReverse$1;\n },\n\n set_xAxisReverse: function (value) {\n if (this._xAxisReverse$1 !== value) {\n this.version++;\n this._xAxisReverse$1 = value;\n }\n return value;\n },\n\n get_yAxisReverse: function () {\n return this._yAxisReverse$1;\n },\n\n set_yAxisReverse: function (value) {\n if (this._yAxisReverse$1 !== value) {\n this.version++;\n this._yAxisReverse$1 = value;\n }\n return value;\n },\n\n get_zAxisReverse: function () {\n return this._zAxisReverse$1;\n },\n\n set_zAxisReverse: function (value) {\n if (this._zAxisReverse$1 !== value) {\n this.version++;\n this._zAxisReverse$1 = value;\n }\n return value;\n },\n\n get_altType: function () {\n return this._altType$1;\n },\n\n set_altType: function (value) {\n if (this._altType$1 !== value) {\n this.version++;\n this._altType$1 = value;\n }\n return value;\n },\n\n get_markerMix: function () {\n return this._markerMix$1;\n },\n\n set_markerMix: function (value) {\n if (this._markerMix$1 !== value) {\n this.version++;\n this._markerMix$1 = value;\n }\n return value;\n },\n\n get_raUnits: function () {\n return this._raUnits$1;\n },\n\n set_raUnits: function (value) {\n if (this._raUnits$1 !== value) {\n this.version++;\n this._raUnits$1 = value;\n }\n return value;\n },\n\n get_colorMap: function () {\n return this.colorMap;\n },\n\n set_colorMap: function (value) {\n if (this.colorMap !== value) {\n this.version++;\n this.colorMap = value;\n }\n return value;\n },\n\n get_colorMapperName: function () {\n return this.colorMapperName;\n },\n\n set_colorMapperName: function (value) {\n if (_color_map_container_js__WEBPACK_IMPORTED_MODULE_15__.ColorMapContainer.fromNamedColormap(value) == null) {\n throw new Error('Invalid colormap name');\n }\n this.version++;\n this.colorMapperName = value;\n return value;\n },\n\n get_colorMapper: function () {\n return _color_map_container_js__WEBPACK_IMPORTED_MODULE_15__.ColorMapContainer.fromNamedColormap(this.colorMapperName);\n },\n\n get_dynamicColor: function () {\n return this.dynamicColor;\n },\n\n set_dynamicColor: function (value) {\n this.version++;\n this.dynamicColor = value;\n return value;\n },\n\n get_normalizeColorMap: function () {\n return this.normalizeColorMap;\n },\n\n set_normalizeColorMap: function (value) {\n this.version++;\n this.normalizeColorMap = value;\n return value;\n },\n\n get_normalizeColorMapMin: function () {\n return this.normalizeColorMapMin;\n },\n\n set_normalizeColorMapMin: function (value) {\n this.version++;\n this.normalizeColorMapMin = value;\n return value;\n },\n\n get_normalizeColorMapMax: function () {\n return this.normalizeColorMapMax;\n },\n\n set_normalizeColorMapMax: function (value) {\n this.version++;\n this.normalizeColorMapMax = value;\n return value;\n },\n\n normalizeColorMapValue: function (value) {\n if (!this.get_normalizeColorMap()) {\n return value;\n }\n var new_value = (value - this.get_normalizeColorMapMin()) / (this.get_normalizeColorMapMax() - this.get_normalizeColorMapMin());\n if (new_value < 0) {\n new_value = 0;\n } else if (new_value > 1) {\n new_value = 1;\n }\n return new_value;\n },\n\n get_markerColumn: function () {\n return this._markerColumn$1;\n },\n\n set_markerColumn: function (value) {\n if (this._markerColumn$1 !== value) {\n this.version++;\n this._markerColumn$1 = value;\n }\n return value;\n },\n\n get_colorMapColumn: function () {\n return this.colorMapColumn;\n },\n\n set_colorMapColumn: function (value) {\n if (this.colorMapColumn !== value) {\n this.version++;\n this.colorMapColumn = value;\n }\n return value;\n },\n\n get_plotType: function () {\n return this._plotType$1;\n },\n\n set_plotType: function (value) {\n if (this._plotType$1 !== value) {\n this.version++;\n this._plotType$1 = value;\n }\n return value;\n },\n\n get_markerIndex: function () {\n return this._markerIndex$1;\n },\n\n set_markerIndex: function (value) {\n if (this._markerIndex$1 !== value) {\n this.version++;\n this._markerIndex$1 = value;\n }\n return value;\n },\n\n get_showFarSide: function () {\n return this._showFarSide$1;\n },\n\n set_showFarSide: function (value) {\n if (this._showFarSide$1 !== value) {\n this.version++;\n this._showFarSide$1 = value;\n }\n return value;\n },\n\n get_markerScale: function () {\n return this._markerScale$1;\n },\n\n set_markerScale: function (value) {\n if (this._markerScale$1 !== value) {\n this.version++;\n this._markerScale$1 = value;\n }\n return value;\n },\n\n get_altUnit: function () {\n return this._altUnit$1;\n },\n\n set_altUnit: function (value) {\n if (this._altUnit$1 !== value) {\n this.version++;\n this._altUnit$1 = value;\n }\n return value;\n },\n\n get_cartesianScale: function () {\n return this._cartesianScale$1;\n },\n\n set_cartesianScale: function (value) {\n if (this._cartesianScale$1 !== value) {\n this.version++;\n this._cartesianScale$1 = value;\n }\n return value;\n },\n\n get_cartesianCustomScale: function () {\n return this._cartesianCustomScale$1;\n },\n\n set_cartesianCustomScale: function (value) {\n if (this._cartesianCustomScale$1 !== value) {\n this.version++;\n this._cartesianCustomScale$1 = value;\n }\n return value;\n },\n\n get_altColumn: function () {\n return this.altColumn;\n },\n\n set_altColumn: function (value) {\n if (this.altColumn !== value) {\n this.version++;\n this.altColumn = value;\n }\n return value;\n },\n\n get_startDateColumn: function () {\n return this.startDateColumn;\n },\n\n set_startDateColumn: function (value) {\n if (this.startDateColumn !== value) {\n this.version++;\n this.startDateColumn = value;\n }\n return value;\n },\n\n get_endDateColumn: function () {\n return this.endDateColumn;\n },\n\n set_endDateColumn: function (value) {\n if (this.endDateColumn !== value) {\n this.version++;\n this.endDateColumn = value;\n }\n return value;\n },\n\n get_sizeColumn: function () {\n return this.sizeColumn;\n },\n\n set_sizeColumn: function (value) {\n if (this.sizeColumn !== value) {\n this.version++;\n this.sizeColumn = value;\n }\n return value;\n },\n\n get_normalizeSize: function () {\n return this.normalizeSize;\n },\n\n set_normalizeSize: function (value) {\n if (this.normalizeSize !== value) {\n this.version++;\n this.normalizeSize = value;\n }\n return value;\n },\n\n get_normalizeSizeClip: function () {\n return this.normalizeSizeClip;\n },\n\n set_normalizeSizeClip: function (value) {\n if (this.normalizeSizeClip !== value) {\n this.version++;\n this.normalizeSizeClip = value;\n }\n return value;\n },\n\n get_normalizeSizeMin: function () {\n return this.normalizeSizeMin;\n },\n\n set_normalizeSizeMin: function (value) {\n if (this.normalizeSizeMin !== value) {\n this.version++;\n this.normalizeSizeMin = value;\n }\n return value;\n },\n\n get_normalizeSizeMax: function () {\n return this.normalizeSizeMax;\n },\n\n set_normalizeSizeMax: function (value) {\n if (this.normalizeSizeMax !== value) {\n this.version++;\n this.normalizeSizeMax = value;\n }\n return value;\n },\n\n normalizePointSize: function (value) {\n if (!this.get_normalizeSize()) {\n return value;\n }\n var new_value = (value - this.get_normalizeSizeMin()) / (this.get_normalizeSizeMax() - this.get_normalizeSizeMin());\n if (this.get_normalizeSizeClip()) {\n if (new_value < 0) {\n new_value = 0;\n }\n else if (new_value > 1) {\n new_value = 1;\n }\n }\n return new_value;\n },\n\n get_nameColumn: function () {\n return this.nameColumn;\n },\n\n set_nameColumn: function (value) {\n if (this.nameColumn !== value) {\n this.version++;\n this.nameColumn = value;\n }\n return value;\n },\n\n get_hyperlinkFormat: function () {\n return this._hyperlinkFormat$1;\n },\n\n set_hyperlinkFormat: function (value) {\n if (this._hyperlinkFormat$1 !== value) {\n this.version++;\n this._hyperlinkFormat$1 = value;\n }\n return value;\n },\n\n get_hyperlinkColumn: function () {\n return this._hyperlinkColumn$1;\n },\n\n set_hyperlinkColumn: function (value) {\n if (this._hyperlinkColumn$1 !== value) {\n this.version++;\n this._hyperlinkColumn$1 = value;\n }\n return value;\n },\n\n get_scaleFactor: function () {\n return this.scaleFactor;\n },\n\n set_scaleFactor: function (value) {\n if (this.scaleFactor !== value) {\n this.version++;\n this.scaleFactor = value;\n }\n return value;\n },\n\n get_pointScaleType: function () {\n return this.pointScaleType;\n },\n\n set_pointScaleType: function (value) {\n if (this.pointScaleType !== value) {\n this.version++;\n this.pointScaleType = value;\n }\n return value;\n },\n\n draw: function (renderContext, opacity, flat) {\n var device = renderContext;\n if (this.version !== this.lastVersion) {\n this.cleanUp();\n }\n this.lastVersion = this.version;\n if (this.bufferIsFlat !== flat) {\n this.cleanUp();\n this.bufferIsFlat = flat;\n }\n if (this.dirty) {\n this.prepVertexBuffer(device, opacity);\n }\n var jNow = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__.SpaceTimeController.get_jNow() - _space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__.SpaceTimeController.utcToJulian(this.baseDate);\n var adjustedScale = this.scaleFactor * 3;\n if (flat && this.astronomical && (this._markerScale$1 === 1)) {\n adjustedScale = (this.scaleFactor / (renderContext.viewCamera.zoom / 360));\n }\n if (this.triangleList2d != null) {\n this.triangleList2d.decay = this.decay;\n this.triangleList2d.sky = this.get_astronomical();\n this.triangleList2d.timeSeries = this.timeSeries;\n this.triangleList2d.jNow = jNow;\n this.triangleList2d.draw(renderContext, opacity * this.get_opacity(), 1);\n }\n if (this.triangleList != null) {\n this.triangleList.decay = this.decay;\n this.triangleList.sky = this.get_astronomical();\n this.triangleList.timeSeries = this.timeSeries;\n this.triangleList.jNow = jNow;\n this.triangleList.draw(renderContext, opacity * this.get_opacity(), 1);\n }\n if (this.pointList != null) {\n this.pointList.depthBuffered = false;\n this.pointList.showFarSide = this.get_showFarSide();\n this.pointList.decay = (this.timeSeries) ? this.decay : 0;\n this.pointList.sky = this.get_astronomical();\n this.pointList.timeSeries = this.timeSeries;\n this.pointList.jNow = jNow;\n this.pointList.scale = (this._markerScale$1 === 1) ? adjustedScale : -adjustedScale;\n switch (this._plotType$1) {\n case 0:\n this.pointList.draw(renderContext, opacity * this.get_opacity(), false);\n break;\n case 2:\n this.pointList.drawTextured(renderContext, SpreadSheetLayer.get__circleTexture$1().texture2d, opacity * this.get_opacity());\n break;\n case 1:\n this.pointList.drawTextured(renderContext, PushPin.getPushPinTexture(19), opacity * this.get_opacity());\n break;\n case 3:\n this.pointList.drawTextured(renderContext, PushPin.getPushPinTexture(35), opacity * this.get_opacity());\n break;\n case 5:\n case 4:\n this.pointList.drawTextured(renderContext, PushPin.getPushPinTexture(this._markerIndex$1), opacity * this.get_opacity());\n break;\n default:\n break;\n }\n }\n if (this.lineList != null) {\n this.lineList.sky = this.get_astronomical();\n this.lineList.decay = this.decay;\n this.lineList.timeSeries = this.timeSeries;\n this.lineList.jNow = jNow;\n this.lineList.drawLines(renderContext, opacity * this.get_opacity());\n }\n if (this.lineList2d != null) {\n this.lineList2d.sky = this.get_astronomical();\n this.lineList2d.decay = this.decay;\n this.lineList2d.timeSeries = this.timeSeries;\n this.lineList2d.showFarSide = this.get_showFarSide();\n this.lineList2d.jNow = jNow;\n this.lineList2d.drawLines(renderContext, opacity * this.get_opacity());\n }\n return true;\n },\n\n cleanUpBase: function () {\n if (this.lineList != null) {\n this.lineList.clear();\n }\n if (this.lineList2d != null) {\n this.lineList2d.clear();\n }\n if (this.triangleList2d != null) {\n this.triangleList2d.clear();\n }\n if (this.pointList != null) {\n this.pointList.clear();\n }\n if (this.triangleList != null) {\n this.triangleList.clear();\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"SpreadSheetLayer\", [SpreadSheetLayer, SpreadSheetLayer$, _layer_js__WEBPACK_IMPORTED_MODULE_16__.Layer]);\n\n\n// wwtlib.CatalogSpreadSheetLayer\n\nfunction CatalogSpreadSheetLayer() {\n this._addedTiles$2 = {};\n SpreadSheetLayer.call(this);\n}\n\nvar CatalogSpreadSheetLayer$ = {\n addTileRows: function (tileKey, catalogRows) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._addedTiles$2, tileKey)) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(catalogRows);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n this.get__table().rows.push(row);\n }\n this.dirty = true;\n this._addedTiles$2[tileKey] = true;\n }\n },\n\n removeTileRows: function (tileKey, catalogRows) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._addedTiles$2, tileKey)) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(catalogRows);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(this.get__table().rows, row);\n }\n this.dirty = true;\n delete this._addedTiles$2[tileKey];\n }\n },\n\n cleanUp: function () {\n SpreadSheetLayer.prototype.cleanUp.call(this);\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(this._addedTiles$2);\n this.get__table().rows.length = 0;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"CatalogSpreadSheetLayer\", [CatalogSpreadSheetLayer, CatalogSpreadSheetLayer$, SpreadSheetLayer]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/table.js\":\n/*!*****************************!*\\\n !*** ./esm/layers/table.js ***!\n \\*****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Table: () => (/* binding */ Table)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n/* harmony import */ var _ui_tools_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui_tools.js */ \"./esm/ui_tools.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Tabular data.\n\n\n\n\n\n\n\n// wwtlib.Table\n\nfunction Table() {\n this.guid = new _util_js__WEBPACK_IMPORTED_MODULE_2__.Guid();\n this.header = [];\n this.rows = [];\n this.delimiter = '\\t';\n this.locked = false;\n}\n\nvar Table$ = {\n lock: function () {\n this.locked = true;\n },\n\n unlock: function () {\n this.locked = false;\n },\n\n save: function () {\n var data = '';\n var first = true;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.header);\n while ($enum1.moveNext()) {\n var col = $enum1.current;\n if (!first) {\n data += '\\t';\n }\n else {\n first = false;\n }\n data += col;\n }\n data += '\\r\\n';\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.rows);\n while ($enum2.moveNext()) {\n var row = $enum2.current;\n first = true;\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(row);\n while ($enum3.moveNext()) {\n var col = $enum3.current;\n if (!first) {\n data += '\\t';\n }\n else {\n first = false;\n }\n data += col;\n }\n data += '\\r\\n';\n }\n return data;\n },\n\n loadFromString: function (data, isUpdate, purge, hasHeader) {\n var count = 0;\n var lines = data.split('\\r\\n');\n if (!isUpdate || hasHeader) {\n if (lines.length > 0) {\n var headerLine = lines[0];\n count++;\n if (headerLine.indexOf('\\t') === -1 && headerLine.indexOf(',') > -1) {\n this.delimiter = ',';\n }\n if (!isUpdate) {\n this.rows.length = 0;\n }\n this.header = _ui_tools_js__WEBPACK_IMPORTED_MODULE_3__.UiTools.splitString(headerLine, this.delimiter);\n }\n else {\n this.header = [];\n }\n }\n var temp = [];\n if (!purge) {\n temp = this.rows;\n }\n while (count < lines.length) {\n var line = lines[count];\n var rowData = _ui_tools_js__WEBPACK_IMPORTED_MODULE_3__.UiTools.splitString(line, this.delimiter);\n if (rowData.length < 1) {\n break;\n }\n temp.push(rowData);\n count++;\n }\n if (purge) {\n this.rows = temp;\n }\n },\n\n clone: function () {\n var cloned_table = new Table();\n for (var i = 0; i < this.header.length; i++) {\n cloned_table.header.push(this.header[i]);\n }\n for (var j = 0; j < this.rows.length; j++) {\n cloned_table.rows.push([]);\n for (var i = 0; i < this.rows[j].length; i++) {\n cloned_table.rows[j].push(this.rows[j][i]);\n }\n }\n return cloned_table;\n },\n\n addColumn: function (name, data) {\n this.header.push(name);\n for (var i = 0; i < data.length; i++) {\n this.rows[i].push(data[i]);\n }\n },\n\n removeColumn: function (name) {\n var remove_index = this.header.indexOf(name);\n if (remove_index > -1) {\n this.header.splice(remove_index, 1);\n for (var i = 0; i < this.rows.length; i++) {\n this.rows[i].splice(remove_index, 1);\n }\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Table\", [Table, Table$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/time_series_layer.js\":\n/*!*****************************************!*\\\n !*** ./esm/layers/time_series_layer.js ***!\n \\*****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AltTypes: () => (/* binding */ AltTypes),\n/* harmony export */ ColorMaps: () => (/* binding */ ColorMaps),\n/* harmony export */ CoordinatesTypes: () => (/* binding */ CoordinatesTypes),\n/* harmony export */ MarkerMixes: () => (/* binding */ MarkerMixes),\n/* harmony export */ MarkerScales: () => (/* binding */ MarkerScales),\n/* harmony export */ PlotTypes: () => (/* binding */ PlotTypes),\n/* harmony export */ RAUnits: () => (/* binding */ RAUnits),\n/* harmony export */ TimeSeriesLayer: () => (/* binding */ TimeSeriesLayer)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _layer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./layer.js */ \"./esm/layers/layer.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A layer for rendering time-series data.\n//\n// This layer is essentially unimplemented in the WWT WebGL engine. See\n// \"spreadsheetlayer\" and \"votablelayer\" for functionality that is actually\n// available.\n\n\n\n\n\n\n\n// wwtlib.CoordinatesTypes\n\nvar CoordinatesTypes = {\n spherical: 0,\n rectangular: 1,\n orbital: 2\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"CoordinatesTypes\", CoordinatesTypes);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"CoordinatesTypes\", CoordinatesTypes);\n\n\n// wwtlib.AltTypes\n\nvar AltTypes = {\n depth: 0,\n altitude: 1,\n distance: 2,\n seaLevel: 3,\n terrain: 4\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"AltTypes\", AltTypes);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"AltTypes\", AltTypes);\n\n\n// wwtlib.MarkerMixes\n\nvar MarkerMixes = {\n same_For_All: 0\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"MarkerMixes\", MarkerMixes);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"MarkerMixes\", MarkerMixes);\n\n\n// wwtlib.ColorMaps\n\nvar ColorMaps = {\n same_For_All: 0,\n group_by_Values: 2,\n per_Column_Literal: 3\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ColorMaps\", ColorMaps);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"ColorMaps\", ColorMaps);\n\n\n// wwtlib.PlotTypes\n\nvar PlotTypes = {\n gaussian: 0,\n point: 1,\n circle: 2,\n square: 3,\n pushPin: 4,\n custom: 5\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"PlotTypes\", PlotTypes);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"PlotTypes\", PlotTypes);\n\n\n// wwtlib.MarkerScales\n\nvar MarkerScales = {\n screen: 0,\n world: 1\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"MarkerScales\", MarkerScales);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"MarkerScales\", MarkerScales);\n\n\n// wwtlib.RAUnits\n\nvar RAUnits = {\n hours: 0,\n degrees: 1\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"RAUnits\", RAUnits);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"RAUnits\", RAUnits);\n\n\n// wwtlib.TimeSeriesLayer\n\nfunction TimeSeriesLayer() {\n this.isLongIndex = false;\n this.shapeVertexCount = 0;\n this.lines = false;\n this.latColumn = -1;\n this.fixedSize = 1;\n this.decay = 16;\n this.timeSeries = false;\n this._dynamicData$1 = false;\n this._autoUpdate$1 = false;\n this._dataSourceUrl$1 = '';\n this._beginRange$1 = new Date('1/1/2100');\n this._endRange$1 = new Date('01/01/1800');\n this.markerDomainValues = {};\n this.colorDomainValues = {};\n this._coordinatesType$1 = 0;\n this.lngColumn = -1;\n this.geometryColumn = -1;\n this._xAxisColumn$1 = -1;\n this._yAxisColumn$1 = -1;\n this._zAxisColumn$1 = -1;\n this._xAxisReverse$1 = false;\n this._yAxisReverse$1 = false;\n this._zAxisReverse$1 = false;\n this._altType$1 = 3;\n this._markerMix$1 = 0;\n this._raUnits$1 = 0;\n this._colorMap$1 = 3;\n this._markerColumn$1 = -1;\n this._colorMapColumn$1 = -1;\n this._plotType$1 = 0;\n this._markerIndex$1 = 0;\n this._showFarSide$1 = false;\n this._markerScale$1 = 1;\n this._altUnit$1 = 1;\n this._cartesianScale$1 = 1;\n this._cartesianCustomScale$1 = 1;\n this.altColumn = -1;\n this.startDateColumn = -1;\n this.endDateColumn = -1;\n this.sizeColumn = -1;\n this.nameColumn = 0;\n this._hyperlinkFormat$1 = '';\n this._hyperlinkColumn$1 = -1;\n this.scaleFactor = 1;\n this.pointScaleType = 1;\n this.positions = [];\n this.bufferIsFlat = false;\n this.baseDate = new Date(2010, 0, 1, 12, 0, 0);\n this.dirty = true;\n this.lastVersion = 0;\n _layer_js__WEBPACK_IMPORTED_MODULE_3__.Layer.call(this);\n}\n\nTimeSeriesLayer._circleTexture$1 = null;\n\nTimeSeriesLayer.get__circleTexture$1 = function () {\n return TimeSeriesLayer._circleTexture$1;\n};\n\nvar TimeSeriesLayer$ = {\n get_dynamicData: function () {\n return this._dynamicData$1;\n },\n\n set_dynamicData: function (value) {\n this._dynamicData$1 = value;\n return value;\n },\n\n get_autoUpdate: function () {\n return this._autoUpdate$1;\n },\n\n set_autoUpdate: function (value) {\n this._autoUpdate$1 = value;\n return value;\n },\n\n get_dataSourceUrl: function () {\n return this._dataSourceUrl$1;\n },\n\n set_dataSourceUrl: function (value) {\n this._dataSourceUrl$1 = value;\n return value;\n },\n\n get_timeSeries: function () {\n return this.timeSeries;\n },\n\n set_timeSeries: function (value) {\n if (this.timeSeries !== value) {\n this.version++;\n this.timeSeries = value;\n }\n return value;\n },\n\n get_header: function () {\n return null;\n },\n\n get_beginRange: function () {\n return this._beginRange$1;\n },\n\n set_beginRange: function (value) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.compareDates(this._beginRange$1, value)) {\n this.version++;\n this._beginRange$1 = value;\n }\n return value;\n },\n\n get_endRange: function () {\n return this._endRange$1;\n },\n\n set_endRange: function (value) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.compareDates(this._endRange$1, value)) {\n this.version++;\n this._endRange$1 = value;\n }\n return value;\n },\n\n initializeFromXml: function (node) {\n this.set_timeSeries(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('TimeSeries').nodeValue));\n this.set_beginRange(new Date(node.attributes.getNamedItem('BeginRange').nodeValue));\n this.set_endRange(new Date(node.attributes.getNamedItem('EndRange').nodeValue));\n this.set_decay(parseFloat(node.attributes.getNamedItem('Decay').nodeValue));\n this.set_coordinatesType(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('CoordinatesTypes', node.attributes.getNamedItem('CoordinatesType').nodeValue));\n if (this.get_coordinatesType() < 0) {\n this.set_coordinatesType(0);\n }\n this.set_latColumn(parseInt(node.attributes.getNamedItem('LatColumn').nodeValue));\n this.set_lngColumn(parseInt(node.attributes.getNamedItem('LngColumn').nodeValue));\n if (node.attributes.getNamedItem('GeometryColumn') != null) {\n this.set_geometryColumn(parseInt(node.attributes.getNamedItem('GeometryColumn').nodeValue));\n }\n switch (node.attributes.getNamedItem('AltType').nodeValue) {\n case 'Depth':\n this.set_altType(0);\n break;\n case 'Altitude':\n this.set_altType(1);\n break;\n case 'Distance':\n this.set_altType(2);\n break;\n case 'SeaLevel':\n this.set_altType(3);\n break;\n case 'Terrain':\n this.set_altType(4);\n break;\n default:\n break;\n }\n this.set_markerMix(0);\n switch (node.attributes.getNamedItem('ColorMap').nodeValue) {\n case 'Same_For_All':\n this.set__colorMap(0);\n break;\n case 'Group_by_Values':\n this.set__colorMap(2);\n break;\n case 'Per_Column_Literal':\n this.set__colorMap(3);\n break;\n default:\n break;\n }\n this.set_markerColumn(parseInt(node.attributes.getNamedItem('MarkerColumn').nodeValue));\n this.set_colorMapColumn(parseInt(node.attributes.getNamedItem('ColorMapColumn').nodeValue));\n switch (node.attributes.getNamedItem('PlotType').nodeValue) {\n case 'Gaussian':\n this.set_plotType(0);\n break;\n case 'Point':\n this.set_plotType(1);\n break;\n case 'Circle':\n this.set_plotType(2);\n break;\n case 'PushPin':\n this.set_plotType(4);\n break;\n default:\n break;\n }\n this.set_markerIndex(parseInt(node.attributes.getNamedItem('MarkerIndex').nodeValue));\n switch (node.attributes.getNamedItem('MarkerScale').nodeValue) {\n case 'Screen':\n this.set_markerScale(0);\n break;\n case 'World':\n this.set_markerScale(1);\n break;\n default:\n break;\n }\n switch (node.attributes.getNamedItem('AltUnit').nodeValue) {\n case 'Meters':\n this.set_altUnit(1);\n break;\n case 'Feet':\n this.set_altUnit(2);\n break;\n case 'Inches':\n this.set_altUnit(3);\n break;\n case 'Miles':\n this.set_altUnit(4);\n break;\n case 'Kilometers':\n this.set_altUnit(5);\n break;\n case 'AstronomicalUnits':\n this.set_altUnit(6);\n break;\n case 'LightYears':\n this.set_altUnit(7);\n break;\n case 'Parsecs':\n this.set_altUnit(8);\n break;\n case 'MegaParsecs':\n this.set_altUnit(9);\n break;\n case 'Custom':\n this.set_altUnit(10);\n break;\n default:\n break;\n }\n this.set_altColumn(parseInt(node.attributes.getNamedItem('AltColumn').nodeValue));\n this.set_startDateColumn(parseInt(node.attributes.getNamedItem('StartDateColumn').nodeValue));\n this.set_endDateColumn(parseInt(node.attributes.getNamedItem('EndDateColumn').nodeValue));\n this.set_sizeColumn(parseInt(node.attributes.getNamedItem('SizeColumn').nodeValue));\n this.set_hyperlinkFormat(node.attributes.getNamedItem('HyperlinkFormat').nodeValue);\n this.set_hyperlinkColumn(parseInt(node.attributes.getNamedItem('HyperlinkColumn').nodeValue));\n this.set_scaleFactor(parseFloat(node.attributes.getNamedItem('ScaleFactor').nodeValue));\n switch (node.attributes.getNamedItem('PointScaleType').nodeValue) {\n case 'Linear':\n this.set_pointScaleType(0);\n break;\n case 'Power':\n this.set_pointScaleType(1);\n break;\n case 'Log':\n this.set_pointScaleType(2);\n break;\n case 'Constant':\n this.set_pointScaleType(3);\n break;\n case 'StellarMagnitude':\n this.set_pointScaleType(4);\n break;\n default:\n break;\n }\n if (node.attributes.getNamedItem('ShowFarSide') != null) {\n this.set_showFarSide(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('ShowFarSide').nodeValue));\n }\n if (node.attributes.getNamedItem('RaUnits') != null) {\n switch (node.attributes.getNamedItem('RaUnits').nodeValue) {\n case 'Hours':\n this.set_raUnits(0);\n break;\n case 'Degrees':\n this.set_raUnits(1);\n break;\n }\n }\n if (node.attributes.getNamedItem('HoverTextColumn') != null) {\n this.set_nameColumn(parseInt(node.attributes.getNamedItem('HoverTextColumn').nodeValue));\n }\n if (node.attributes.getNamedItem('XAxisColumn') != null) {\n this.set_xAxisColumn(parseInt(node.attributes.getNamedItem('XAxisColumn').nodeValue));\n this.set_xAxisReverse(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('XAxisReverse').nodeValue));\n this.set_yAxisColumn(parseInt(node.attributes.getNamedItem('YAxisColumn').nodeValue));\n this.set_yAxisReverse(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('YAxisReverse').nodeValue));\n this.set_zAxisColumn(parseInt(node.attributes.getNamedItem('ZAxisColumn').nodeValue));\n this.set_zAxisReverse(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('ZAxisReverse').nodeValue));\n switch (node.attributes.getNamedItem('CartesianScale').nodeValue) {\n case 'Meters':\n this.set_cartesianScale(1);\n break;\n case 'Feet':\n this.set_cartesianScale(2);\n break;\n case 'Inches':\n this.set_cartesianScale(3);\n break;\n case 'Miles':\n this.set_cartesianScale(4);\n break;\n case 'Kilometers':\n this.set_cartesianScale(5);\n break;\n case 'AstronomicalUnits':\n this.set_cartesianScale(6);\n break;\n case 'LightYears':\n this.set_cartesianScale(7);\n break;\n case 'Parsecs':\n this.set_cartesianScale(8);\n break;\n case 'MegaParsecs':\n this.set_cartesianScale(9);\n break;\n case 'Custom':\n this.set_cartesianScale(10);\n break;\n default:\n break;\n }\n this.set_cartesianCustomScale(parseFloat(node.attributes.getNamedItem('CartesianCustomScale').nodeValue));\n }\n if (node.attributes.getNamedItem('DynamicData') != null) {\n this.set_dynamicData(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('DynamicData').nodeValue));\n this.set_autoUpdate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('AutoUpdate').nodeValue));\n this.set_dataSourceUrl(node.attributes.getNamedItem('DataSourceUrl').nodeValue);\n }\n },\n\n computeDateDomainRange: function (columnStart, columnEnd) { },\n\n getDomainValues: function (column) {\n return [];\n },\n\n get_decay: function () {\n return this.decay;\n },\n\n set_decay: function (value) {\n if (this.decay !== value) {\n this.version++;\n this.decay = value;\n }\n return value;\n },\n\n get_coordinatesType: function () {\n return this._coordinatesType$1;\n },\n\n set_coordinatesType: function (value) {\n if (this._coordinatesType$1 !== value) {\n this.version++;\n this._coordinatesType$1 = value;\n }\n return value;\n },\n\n get_latColumn: function () {\n return this.latColumn;\n },\n\n set_latColumn: function (value) {\n if (this.latColumn !== value) {\n this.version++;\n this.latColumn = value;\n }\n return value;\n },\n\n get_lngColumn: function () {\n return this.lngColumn;\n },\n\n set_lngColumn: function (value) {\n if (this.lngColumn !== value) {\n this.version++;\n this.lngColumn = value;\n }\n return value;\n },\n\n get_geometryColumn: function () {\n return this.geometryColumn;\n },\n\n set_geometryColumn: function (value) {\n if (this.geometryColumn !== value) {\n this.version++;\n this.geometryColumn = value;\n }\n return value;\n },\n\n get_xAxisColumn: function () {\n return this._xAxisColumn$1;\n },\n\n set_xAxisColumn: function (value) {\n if (this._xAxisColumn$1 !== value) {\n this.version++;\n this._xAxisColumn$1 = value;\n }\n return value;\n },\n\n get_yAxisColumn: function () {\n return this._yAxisColumn$1;\n },\n\n set_yAxisColumn: function (value) {\n if (this._yAxisColumn$1 !== value) {\n this.version++;\n this._yAxisColumn$1 = value;\n }\n return value;\n },\n\n get_zAxisColumn: function () {\n return this._zAxisColumn$1;\n },\n\n set_zAxisColumn: function (value) {\n if (this._zAxisColumn$1 !== value) {\n this.version++;\n this._zAxisColumn$1 = value;\n }\n return value;\n },\n\n get_xAxisReverse: function () {\n return this._xAxisReverse$1;\n },\n\n set_xAxisReverse: function (value) {\n if (this._xAxisReverse$1 !== value) {\n this.version++;\n this._xAxisReverse$1 = value;\n }\n return value;\n },\n\n get_yAxisReverse: function () {\n return this._yAxisReverse$1;\n },\n\n set_yAxisReverse: function (value) {\n if (this._yAxisReverse$1 !== value) {\n this.version++;\n this._yAxisReverse$1 = value;\n }\n return value;\n },\n\n get_zAxisReverse: function () {\n return this._zAxisReverse$1;\n },\n\n set_zAxisReverse: function (value) {\n if (this._zAxisReverse$1 !== value) {\n this.version++;\n this._zAxisReverse$1 = value;\n }\n return value;\n },\n\n get_altType: function () {\n return this._altType$1;\n },\n\n set_altType: function (value) {\n if (this._altType$1 !== value) {\n this.version++;\n this._altType$1 = value;\n }\n return value;\n },\n\n get_markerMix: function () {\n return this._markerMix$1;\n },\n\n set_markerMix: function (value) {\n if (this._markerMix$1 !== value) {\n this.version++;\n this._markerMix$1 = value;\n }\n return value;\n },\n\n get_raUnits: function () {\n return this._raUnits$1;\n },\n\n set_raUnits: function (value) {\n if (this._raUnits$1 !== value) {\n this.version++;\n this._raUnits$1 = value;\n }\n return value;\n },\n\n get__colorMap: function () {\n return this._colorMap$1;\n },\n\n set__colorMap: function (value) {\n if (this._colorMap$1 !== value) {\n this.version++;\n this._colorMap$1 = value;\n }\n return value;\n },\n\n get_markerColumn: function () {\n return this._markerColumn$1;\n },\n\n set_markerColumn: function (value) {\n if (this._markerColumn$1 !== value) {\n this.version++;\n this._markerColumn$1 = value;\n }\n return value;\n },\n\n get_colorMapColumn: function () {\n return this._colorMapColumn$1;\n },\n\n set_colorMapColumn: function (value) {\n if (this._colorMapColumn$1 !== value) {\n this.version++;\n this._colorMapColumn$1 = value;\n }\n return value;\n },\n\n get_plotType: function () {\n return this._plotType$1;\n },\n\n set_plotType: function (value) {\n if (this._plotType$1 !== value) {\n this.version++;\n this._plotType$1 = value;\n }\n return value;\n },\n\n get_markerIndex: function () {\n return this._markerIndex$1;\n },\n\n set_markerIndex: function (value) {\n if (this._markerIndex$1 !== value) {\n this.version++;\n this._markerIndex$1 = value;\n }\n return value;\n },\n\n get_showFarSide: function () {\n return this._showFarSide$1;\n },\n\n set_showFarSide: function (value) {\n if (this._showFarSide$1 !== value) {\n this.version++;\n this._showFarSide$1 = value;\n }\n return value;\n },\n\n get_markerScale: function () {\n return this._markerScale$1;\n },\n\n set_markerScale: function (value) {\n if (this._markerScale$1 !== value) {\n this.version++;\n this._markerScale$1 = value;\n }\n return value;\n },\n\n get_altUnit: function () {\n return this._altUnit$1;\n },\n\n set_altUnit: function (value) {\n if (this._altUnit$1 !== value) {\n this.version++;\n this._altUnit$1 = value;\n }\n return value;\n },\n\n get_cartesianScale: function () {\n return this._cartesianScale$1;\n },\n\n set_cartesianScale: function (value) {\n if (this._cartesianScale$1 !== value) {\n this.version++;\n this._cartesianScale$1 = value;\n }\n return value;\n },\n\n get_cartesianCustomScale: function () {\n return this._cartesianCustomScale$1;\n },\n\n set_cartesianCustomScale: function (value) {\n if (this._cartesianCustomScale$1 !== value) {\n this.version++;\n this._cartesianCustomScale$1 = value;\n }\n return value;\n },\n\n get_altColumn: function () {\n return this.altColumn;\n },\n\n set_altColumn: function (value) {\n if (this.altColumn !== value) {\n this.version++;\n this.altColumn = value;\n }\n return value;\n },\n\n get_startDateColumn: function () {\n return this.startDateColumn;\n },\n\n set_startDateColumn: function (value) {\n if (this.startDateColumn !== value) {\n this.version++;\n this.startDateColumn = value;\n }\n return value;\n },\n\n get_endDateColumn: function () {\n return this.endDateColumn;\n },\n\n set_endDateColumn: function (value) {\n if (this.endDateColumn !== value) {\n this.version++;\n this.endDateColumn = value;\n }\n return value;\n },\n\n get_sizeColumn: function () {\n return this.sizeColumn;\n },\n\n set_sizeColumn: function (value) {\n if (this.sizeColumn !== value) {\n this.version++;\n this.sizeColumn = value;\n }\n return value;\n },\n\n get_nameColumn: function () {\n return this.nameColumn;\n },\n\n set_nameColumn: function (value) {\n if (this.nameColumn !== value) {\n this.version++;\n this.nameColumn = value;\n }\n return value;\n },\n\n get_hyperlinkFormat: function () {\n return this._hyperlinkFormat$1;\n },\n\n set_hyperlinkFormat: function (value) {\n if (this._hyperlinkFormat$1 !== value) {\n this.version++;\n this._hyperlinkFormat$1 = value;\n }\n return value;\n },\n\n get_hyperlinkColumn: function () {\n return this._hyperlinkColumn$1;\n },\n\n set_hyperlinkColumn: function (value) {\n if (this._hyperlinkColumn$1 !== value) {\n this.version++;\n this._hyperlinkColumn$1 = value;\n }\n return value;\n },\n\n get_scaleFactor: function () {\n return this.scaleFactor;\n },\n\n set_scaleFactor: function (value) {\n if (this.scaleFactor !== value) {\n this.version++;\n this.scaleFactor = value;\n }\n return value;\n },\n\n get_pointScaleType: function () {\n return this.pointScaleType;\n },\n\n set_pointScaleType: function (value) {\n if (this.pointScaleType !== value) {\n this.version++;\n this.pointScaleType = value;\n }\n return value;\n },\n\n prepVertexBuffer: function (renderContext, opacity) {\n return true;\n },\n\n draw: function (renderContext, opacity, flat) {\n var device = renderContext;\n if (this.version !== this.lastVersion) {\n this.cleanUp();\n }\n if (this.bufferIsFlat !== flat) {\n this.cleanUp();\n this.bufferIsFlat = flat;\n }\n if (this.dirty) {\n this.prepVertexBuffer(device, opacity);\n }\n var jNow = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_2__.SpaceTimeController.get_jNow() - _space_time_controller_js__WEBPACK_IMPORTED_MODULE_2__.SpaceTimeController.utcToJulian(this.baseDate);\n var adjustedScale = this.scaleFactor;\n if (flat && this.astronomical && (this._markerScale$1 === 1)) {\n adjustedScale = (this.scaleFactor / (renderContext.viewCamera.zoom / 360));\n }\n if (this.triangleList2d != null) {\n this.triangleList2d.decay = this.decay;\n this.triangleList2d.sky = this.get_astronomical();\n this.triangleList2d.timeSeries = this.timeSeries;\n this.triangleList2d.jNow = jNow;\n this.triangleList2d.draw(renderContext, opacity * this.get_opacity(), 1);\n }\n if (this.triangleList != null) {\n this.triangleList.decay = this.decay;\n this.triangleList.sky = this.get_astronomical();\n this.triangleList.timeSeries = this.timeSeries;\n this.triangleList.jNow = jNow;\n this.triangleList.draw(renderContext, opacity * this.get_opacity(), 1);\n }\n if (this.pointList != null) {\n this.pointList.depthBuffered = false;\n this.pointList.decay = this.decay;\n this.pointList.sky = this.get_astronomical();\n this.pointList.timeSeries = this.timeSeries;\n this.pointList.jNow = jNow;\n this.pointList.scale = (this._markerScale$1 === 1) ? adjustedScale : -adjustedScale;\n this.pointList.draw(renderContext, opacity * this.get_opacity(), false);\n }\n if (this.lineList != null) {\n this.lineList.sky = this.get_astronomical();\n this.lineList.decay = this.decay;\n this.lineList.timeSeries = this.timeSeries;\n this.lineList.jNow = jNow;\n this.lineList.drawLines(renderContext, opacity * this.get_opacity());\n }\n if (this.lineList2d != null) {\n this.lineList2d.sky = this.get_astronomical();\n this.lineList2d.decay = this.decay;\n this.lineList2d.timeSeries = this.timeSeries;\n this.lineList2d.showFarSide = this.get_showFarSide();\n this.lineList2d.jNow = jNow;\n this.lineList2d.drawLines(renderContext, opacity * this.get_opacity());\n }\n return true;\n },\n\n initFromXml: function (node) {\n _layer_js__WEBPACK_IMPORTED_MODULE_3__.Layer.prototype.initFromXml.call(this, node);\n },\n\n cleanUp: function () {\n if (this.lineList != null) {\n this.lineList.clear();\n }\n if (this.lineList2d != null) {\n this.lineList2d.clear();\n }\n if (this.triangleList2d != null) {\n this.triangleList2d.clear();\n }\n if (this.pointList != null) {\n this.pointList.clear();\n }\n if (this.triangleList != null) {\n this.triangleList.clear();\n }\n },\n\n dynamicUpdate: function () {\n return false;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TimeSeriesLayer\", [TimeSeriesLayer, TimeSeriesLayer$, _layer_js__WEBPACK_IMPORTED_MODULE_3__.Layer]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/vo_table.js\":\n/*!********************************!*\\\n !*** ./esm/layers/vo_table.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Primitives: () => (/* binding */ Primitives),\n/* harmony export */ VoColumn: () => (/* binding */ VoColumn),\n/* harmony export */ VoRow: () => (/* binding */ VoRow),\n/* harmony export */ VoTable: () => (/* binding */ VoTable)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../web_file.js */ \"./esm/web_file.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The Virtual Observatory table (VOTable) format.\n\n\n\n\n\n\n\n\n// wwtlib.Primitives\n\nvar Primitives = {\n voBoolean: 1,\n voBit: 2,\n voUnsignedByte: 3,\n voShort: 4,\n voInt: 5,\n voLong: 6,\n voChar: 7,\n voUnicodeChar: 8,\n voFloat: 9,\n voDouble: 10,\n voFloatComplex: 11,\n voDoubleComplex: 12,\n voUndefined: 13\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Primitives\", Primitives);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"Primitives\", Primitives);\n\n\n// wwtlib.VoTable\n\nfunction VoTable() {\n this.columns = {};\n this.column = [];\n this.rows = [];\n this.loadFilename = '';\n this.sampId = '';\n this.selectedRow = null;\n this.error = false;\n this.errorText = '';\n}\n\nVoTable.loadFromUrl = function (url, complete) {\n var temp = new VoTable();\n temp._onComplete = complete;\n temp._webFile = new _web_file_js__WEBPACK_IMPORTED_MODULE_4__.WebFile(_url_helpers_js__WEBPACK_IMPORTED_MODULE_3__.URLHelpers.singleton.rewrite(url, 1));\n temp._webFile.onStateChange = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_loadData', temp);\n temp._webFile.send();\n return temp;\n};\n\nVoTable.loadFromString = function (data) {\n var xParser = new DOMParser();\n var doc = xParser.parseFromString(data, 'text/xml');\n var table = new VoTable();\n table.loadFromXML(doc);\n return table;\n};\n\nvar VoTable$ = {\n _loadData: function () {\n if (this._webFile.get_state() === 2) {\n alert(this._webFile.get_message());\n } else if (this._webFile.get_state() === 1) {\n this.loadFromXML(this._webFile.getXml());\n if (this._onComplete != null) {\n this._onComplete();\n }\n }\n },\n\n loadFromXML: function (xml) {\n var voTable = _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.selectSingleNode(xml, 'VOTABLE');\n if (voTable == null) {\n return;\n }\n var index = 0;\n try {\n var table = _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.selectSingleNode(_baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.selectSingleNode(voTable, 'RESOURCE'), 'TABLE');\n if (table != null) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(table.childNodes);\n while ($enum1.moveNext()) {\n var node = $enum1.current;\n if (node.nodeName === 'FIELD') {\n var col = new VoColumn(node, index++);\n this.columns[col.name] = col;\n this.column.push(col);\n }\n }\n }\n }\n catch ($e2) {\n this.error = true;\n this.errorText = _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.selectSingleNode(voTable, 'DESCRIPTION').text;\n }\n try {\n var tableData = _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.selectSingleNode(_baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.selectSingleNode(_baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.selectSingleNode(_baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.selectSingleNode(voTable, 'RESOURCE'), 'TABLE'), 'DATA'), 'TABLEDATA');\n if (tableData != null) {\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(tableData.childNodes);\n while ($enum3.moveNext()) {\n var node = $enum3.current;\n if (node.nodeName === 'TR') {\n var row = new VoRow(this);\n row.columnData = new Array(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyCount(this.columns));\n index = 0;\n var $enum4 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(node.childNodes);\n while ($enum4.moveNext()) {\n var child = $enum4.current;\n if (child.nodeName === 'TD') {\n row.columnData[index++] = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(_baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.getInnerText(child));\n }\n }\n this.rows.push(row);\n }\n }\n }\n }\n catch ($e5) {\n }\n },\n\n save: function (filename) {\n return true;\n },\n\n getColumnByUcd: function (ucd) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.columns));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var col = this.columns[key];\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(col.ucd, '_', '.').toLocaleLowerCase().indexOf(ucd.toLocaleLowerCase()) > -1) {\n return col;\n }\n }\n return null;\n },\n\n getRAColumn: function () {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.columns));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var col = this.columns[key];\n if (col.ucd.toLocaleLowerCase().indexOf('pos.eq.ra') > -1 || col.ucd.toLocaleLowerCase().indexOf('pos_eq_ra') > -1) {\n return col;\n }\n }\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.columns));\n while ($enum2.moveNext()) {\n var key = $enum2.current;\n var col = this.columns[key];\n if (col.name.toLocaleLowerCase().indexOf('ra') > -1) {\n return col;\n }\n }\n return null;\n },\n\n getDecColumn: function () {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.columns));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var col = this.columns[key];\n if (col.ucd.toLowerCase().indexOf('pos.eq.dec') > -1 || col.ucd.toLowerCase().indexOf('pos_eq_dec') > -1) {\n return col;\n }\n }\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.columns));\n while ($enum2.moveNext()) {\n var key = $enum2.current;\n var col = this.columns[key];\n if (col.name.toLowerCase().indexOf('dec') > -1) {\n return col;\n }\n }\n return null;\n },\n\n getMagColumn: function () {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.columns));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var col = this.columns[key];\n if (col.ucd.toLowerCase().indexOf('phot.mag') > -1 || col.ucd.toLowerCase().indexOf('phot_mag') > -1) {\n return col;\n }\n }\n return null;\n },\n\n getDistanceColumn: function () {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.columns));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var col = this.columns[key];\n if (col.ucd.toLowerCase().indexOf('pos.distance') > -1 || col.ucd.toLowerCase().indexOf('pos_distance') > -1) {\n return col;\n }\n }\n return null;\n },\n\n toString: function () {\n var sb = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.StringBuilder();\n var first = true;\n\n // Copy header\n\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.columns));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var col = this.columns[key];\n if (first) {\n first = false;\n }\n else {\n sb.append('\\t');\n }\n sb.append(col.name);\n }\n sb.appendLine('');\n\n // copy rows\n\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.rows);\n while ($enum2.moveNext()) {\n var row = $enum2.current;\n first = true;\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(row.columnData);\n while ($enum3.moveNext()) {\n var col = $enum3.current;\n if (first) {\n first = false;\n }\n else {\n sb.append('\\t');\n }\n sb.append(col.toString());\n }\n sb.appendLine('');\n }\n return sb.toString();\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"VoTable\", [VoTable, VoTable$, null]);\n\n\n// wwtlib.VoRow\n\nfunction VoRow(owner) {\n this.selected = false;\n this.owner = owner;\n}\n\nvar VoRow$ = {\n getColumnData: function (key) {\n if (this.owner.columns[key] != null) {\n return this.columnData[this.owner.columns[key].index];\n }\n return null;\n },\n\n get_item: function (index) {\n if (index < 0 || index >= this.columnData.length) {\n return null;\n }\n return this.columnData[index];\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"VoRow\", [VoRow, VoRow$, null]);\n\n\n// wwtlib.VoColumn\n\nfunction VoColumn(node, index) {\n this.id = '';\n this.type = 0;\n this.precision = 0;\n this.dimentions = 0;\n this.sizes = null;\n this.ucd = '';\n this.unit = '';\n this.name = '';\n this.index = 0;\n this.index = index;\n if (node.attributes.getNamedItem('datatype') != null) {\n this.type = VoColumn.getType(node.attributes.getNamedItem('datatype').nodeValue);\n }\n if (node.attributes.getNamedItem('ucd') != null) {\n this.ucd = node.attributes.getNamedItem('ucd').nodeValue;\n }\n if (node.attributes.getNamedItem('precision') != null) {\n try {\n this.precision = parseInt(node.attributes.getNamedItem('precision').nodeValue);\n }\n catch ($e1) {\n }\n }\n if (node.attributes.getNamedItem('ID') != null) {\n this.id = node.attributes.getNamedItem('ID').nodeValue;\n }\n if (node.attributes.getNamedItem('name') != null) {\n this.name = node.attributes.getNamedItem('name').nodeValue;\n }\n else {\n this.name = this.id;\n }\n if (node.attributes.getNamedItem('unit') != null) {\n this.unit = node.attributes.getNamedItem('unit').nodeValue;\n }\n if (node.attributes.getNamedItem('arraysize') != null) {\n var split = node.attributes.getNamedItem('arraysize').nodeValue.split('x');\n this.dimentions = split.length;\n this.sizes = new Array(split.length);\n var indexer = 0;\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(split);\n while ($enum2.moveNext()) {\n var dim = $enum2.current;\n if (!(dim.indexOf('*') > -1)) {\n this.sizes[indexer++] = parseInt(dim);\n }\n else {\n var len = 9999;\n var lenString = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(dim, '*', '');\n if (lenString.length > 0) {\n len = parseInt(lenString);\n }\n this.sizes[indexer++] = len;\n }\n }\n }\n}\n\nVoColumn.getType = function (type) {\n var Type = 13;\n switch (type) {\n case 'boolean':\n Type = 1;\n break;\n case 'bit':\n Type = 2;\n break;\n case 'unsignedByte':\n Type = 3;\n break;\n case 'short':\n Type = 4;\n break;\n case 'int':\n Type = 5;\n break;\n case 'long':\n Type = 6;\n break;\n case 'char':\n Type = 7;\n break;\n case 'unicodeChar':\n Type = 8;\n break;\n case 'float':\n Type = 9;\n break;\n case 'double':\n Type = 10;\n break;\n case 'floatComplex':\n Type = 11;\n break;\n case 'doubleComplex':\n Type = 12;\n break;\n default:\n Type = 13;\n break;\n }\n return Type;\n};\n\nvar VoColumn$ = {\n toString: function () {\n return this.name;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"VoColumn\", [VoColumn, VoColumn$, null]);\n\n\n\n/***/ }),\n\n/***/ \"./esm/layers/vo_table_layer.js\":\n/*!**************************************!*\\\n !*** ./esm/layers/vo_table_layer.js ***!\n \\**************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VoTableLayer: () => (/* binding */ VoTableLayer)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _place_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../place.js */ \"./esm/place.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _layer_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./layer.js */ \"./esm/layers/layer.js\");\n/* harmony import */ var _vo_table_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./vo_table.js */ \"./esm/layers/vo_table.js\");\n/* harmony import */ var _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./spreadsheet_layer.js */ \"./esm/layers/spreadsheet_layer.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A layer that renders a VO data table.\n//\n// This has massive redundancy with SpreadSheetLayer, which I think was\n// necessitated by limitations in ScriptSharp. It would be nice to streamline\n// things.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.VoTableLayer\n\nfunction VoTableLayer() {\n this.isLongIndex = false;\n this.shapeVertexCount = 0;\n this.lines = false;\n this.latColumn = -1;\n this.fixedSize = 1;\n this.decay = 0;\n this.timeSeries = false;\n this._dynamicData$1 = false;\n this._autoUpdate$1 = false;\n this._dataSourceUrl$1 = '';\n this._beginRange$1 = new Date('1/1/2100');\n this._endRange$1 = new Date('01/01/1800');\n this.markerDomainValues = {};\n this.colorDomainValues = {};\n this._coordinatesType$1 = 0;\n this.lngColumn = -1;\n this.geometryColumn = -1;\n this._xAxisColumn$1 = -1;\n this._yAxisColumn$1 = -1;\n this._zAxisColumn$1 = -1;\n this._xAxisReverse$1 = false;\n this._yAxisReverse$1 = false;\n this._zAxisReverse$1 = false;\n this._altType$1 = 3;\n this._markerMix$1 = 0;\n this._raUnits$1 = 0;\n this._colorMap$1 = 3;\n this._markerColumn$1 = -1;\n this._colorMapColumn$1 = -1;\n this._plotType$1 = 0;\n this._markerIndex$1 = 0;\n this._showFarSide$1 = false;\n this._markerScale$1 = 1;\n this._altUnit$1 = 1;\n this._cartesianScale$1 = 1;\n this._cartesianCustomScale$1 = 1;\n this.altColumn = -1;\n this.startDateColumn = -1;\n this.endDateColumn = -1;\n this.sizeColumn = -1;\n this.nameColumn = 0;\n this._hyperlinkFormat$1 = '';\n this._hyperlinkColumn$1 = -1;\n this.scaleFactor = 1;\n this.pointScaleType = 1;\n this.positions = [];\n this.bufferIsFlat = false;\n this.baseDate = new Date(2010, 0, 1, 12, 0, 0);\n this.dirty = true;\n this._filename$1 = '';\n _layer_js__WEBPACK_IMPORTED_MODULE_10__.Layer.call(this);\n this._table$1 = null;\n this._filename$1 = '';\n this.set_plotType(2);\n}\n\nVoTableLayer._circleTexture$1 = null;\n\nVoTableLayer.get__circleTexture$1 = function () {\n if (VoTableLayer._circleTexture$1 == null) {\n var url = _url_helpers_js__WEBPACK_IMPORTED_MODULE_9__.URLHelpers.singleton.engineAssetUrl('circle.png');\n VoTableLayer._circleTexture$1 = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_4__.Texture.fromUrl(url);\n }\n return VoTableLayer._circleTexture$1;\n};\n\nVoTableLayer.create = function (table, plotType) {\n var layer = new VoTableLayer();\n layer._table$1 = table;\n layer._filename$1 = table.loadFilename;\n layer.set_lngColumn(table.getRAColumn().index);\n layer.set_latColumn(table.getDecColumn().index);\n layer.sizeColumn = table.getColumnByUcd('phot.mag').index;\n layer.set_plotType(plotType);\n return layer;\n};\n\nvar VoTableLayer$ = {\n get_dynamicData: function () {\n return this._dynamicData$1;\n },\n\n set_dynamicData: function (value) {\n this._dynamicData$1 = value;\n return value;\n },\n\n get_autoUpdate: function () {\n return this._autoUpdate$1;\n },\n\n set_autoUpdate: function (value) {\n this._autoUpdate$1 = value;\n return value;\n },\n\n get_dataSourceUrl: function () {\n return this._dataSourceUrl$1;\n },\n\n set_dataSourceUrl: function (value) {\n this._dataSourceUrl$1 = value;\n return value;\n },\n\n get_timeSeries: function () {\n return this.timeSeries;\n },\n\n set_timeSeries: function (value) {\n if (this.timeSeries !== value) {\n this.version++;\n this.timeSeries = value;\n }\n return value;\n },\n\n get_beginRange: function () {\n return this._beginRange$1;\n },\n\n set_beginRange: function (value) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.compareDates(this._beginRange$1, value)) {\n this.version++;\n this._beginRange$1 = value;\n }\n return value;\n },\n\n get_endRange: function () {\n return this._endRange$1;\n },\n\n set_endRange: function (value) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.compareDates(this._endRange$1, value)) {\n this.version++;\n this._endRange$1 = value;\n }\n return value;\n },\n\n initializeFromXml: function (node) {\n this.set_timeSeries(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('TimeSeries').nodeValue));\n this.set_beginRange(new Date(node.attributes.getNamedItem('BeginRange').nodeValue));\n this.set_endRange(new Date(node.attributes.getNamedItem('EndRange').nodeValue));\n this.set_decay(parseFloat(node.attributes.getNamedItem('Decay').nodeValue));\n this.set_coordinatesType(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('CoordinatesTypes', node.attributes.getNamedItem('CoordinatesType').nodeValue));\n if (this.get_coordinatesType() < 0) {\n this.set_coordinatesType(0);\n }\n this.set_latColumn(parseInt(node.attributes.getNamedItem('LatColumn').nodeValue));\n this.set_lngColumn(parseInt(node.attributes.getNamedItem('LngColumn').nodeValue));\n if (node.attributes.getNamedItem('GeometryColumn') != null) {\n this.set_geometryColumn(parseInt(node.attributes.getNamedItem('GeometryColumn').nodeValue));\n }\n switch (node.attributes.getNamedItem('AltType').nodeValue) {\n case 'Depth':\n this.set_altType(0);\n break;\n case 'Altitude':\n this.set_altType(1);\n break;\n case 'Distance':\n this.set_altType(2);\n break;\n case 'SeaLevel':\n this.set_altType(3);\n break;\n case 'Terrain':\n this.set_altType(4);\n break;\n default:\n break;\n }\n this.set_markerMix(0);\n switch (node.attributes.getNamedItem('ColorMap').nodeValue) {\n case 'Same_For_All':\n this.set__colorMap(0);\n break;\n case 'Group_by_Values':\n this.set__colorMap(2);\n break;\n case 'Per_Column_Literal':\n this.set__colorMap(3);\n break;\n default:\n break;\n }\n this.set_markerColumn(parseInt(node.attributes.getNamedItem('MarkerColumn').nodeValue));\n this.set_colorMapColumn(parseInt(node.attributes.getNamedItem('ColorMapColumn').nodeValue));\n switch (node.attributes.getNamedItem('PlotType').nodeValue) {\n case 'Gaussian':\n this.set_plotType(0);\n break;\n case 'Point':\n this.set_plotType(1);\n break;\n case 'Circle':\n this.set_plotType(2);\n break;\n case 'PushPin':\n this.set_plotType(4);\n break;\n default:\n break;\n }\n this.set_markerIndex(parseInt(node.attributes.getNamedItem('MarkerIndex').nodeValue));\n switch (node.attributes.getNamedItem('MarkerScale').nodeValue) {\n case 'Screen':\n this.set_markerScale(0);\n break;\n case 'World':\n this.set_markerScale(1);\n break;\n default:\n break;\n }\n switch (node.attributes.getNamedItem('AltUnit').nodeValue) {\n case 'Meters':\n this.set_altUnit(1);\n break;\n case 'Feet':\n this.set_altUnit(2);\n break;\n case 'Inches':\n this.set_altUnit(3);\n break;\n case 'Miles':\n this.set_altUnit(4);\n break;\n case 'Kilometers':\n this.set_altUnit(5);\n break;\n case 'AstronomicalUnits':\n this.set_altUnit(6);\n break;\n case 'LightYears':\n this.set_altUnit(7);\n break;\n case 'Parsecs':\n this.set_altUnit(8);\n break;\n case 'MegaParsecs':\n this.set_altUnit(9);\n break;\n case 'Custom':\n this.set_altUnit(10);\n break;\n default:\n break;\n }\n this.set_altColumn(parseInt(node.attributes.getNamedItem('AltColumn').nodeValue));\n this.set_startDateColumn(parseInt(node.attributes.getNamedItem('StartDateColumn').nodeValue));\n this.set_endDateColumn(parseInt(node.attributes.getNamedItem('EndDateColumn').nodeValue));\n this.set_sizeColumn(parseInt(node.attributes.getNamedItem('SizeColumn').nodeValue));\n this.set_hyperlinkFormat(node.attributes.getNamedItem('HyperlinkFormat').nodeValue);\n this.set_hyperlinkColumn(parseInt(node.attributes.getNamedItem('HyperlinkColumn').nodeValue));\n this.set_scaleFactor(parseFloat(node.attributes.getNamedItem('ScaleFactor').nodeValue));\n switch (node.attributes.getNamedItem('PointScaleType').nodeValue) {\n case 'Linear':\n this.set_pointScaleType(0);\n break;\n case 'Power':\n this.set_pointScaleType(1);\n break;\n case 'Log':\n this.set_pointScaleType(2);\n break;\n case 'Constant':\n this.set_pointScaleType(3);\n break;\n case 'StellarMagnitude':\n this.set_pointScaleType(4);\n break;\n default:\n break;\n }\n if (node.attributes.getNamedItem('ShowFarSide') != null) {\n this.set_showFarSide(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('ShowFarSide').nodeValue));\n }\n if (node.attributes.getNamedItem('RaUnits') != null) {\n switch (node.attributes.getNamedItem('RaUnits').nodeValue) {\n case 'Hours':\n this.set_raUnits(0);\n break;\n case 'Degrees':\n this.set_raUnits(1);\n break;\n }\n }\n if (node.attributes.getNamedItem('HoverTextColumn') != null) {\n this.set_nameColumn(parseInt(node.attributes.getNamedItem('HoverTextColumn').nodeValue));\n }\n if (node.attributes.getNamedItem('XAxisColumn') != null) {\n this.set_xAxisColumn(parseInt(node.attributes.getNamedItem('XAxisColumn').nodeValue));\n this.set_xAxisReverse(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('XAxisReverse').nodeValue));\n this.set_yAxisColumn(parseInt(node.attributes.getNamedItem('YAxisColumn').nodeValue));\n this.set_yAxisReverse(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('YAxisReverse').nodeValue));\n this.set_zAxisColumn(parseInt(node.attributes.getNamedItem('ZAxisColumn').nodeValue));\n this.set_zAxisReverse(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('ZAxisReverse').nodeValue));\n switch (node.attributes.getNamedItem('CartesianScale').nodeValue) {\n case 'Meters':\n this.set_cartesianScale(1);\n break;\n case 'Feet':\n this.set_cartesianScale(2);\n break;\n case 'Inches':\n this.set_cartesianScale(3);\n break;\n case 'Miles':\n this.set_cartesianScale(4);\n break;\n case 'Kilometers':\n this.set_cartesianScale(5);\n break;\n case 'AstronomicalUnits':\n this.set_cartesianScale(6);\n break;\n case 'LightYears':\n this.set_cartesianScale(7);\n break;\n case 'Parsecs':\n this.set_cartesianScale(8);\n break;\n case 'MegaParsecs':\n this.set_cartesianScale(9);\n break;\n case 'Custom':\n this.set_cartesianScale(10);\n break;\n default:\n break;\n }\n this.set_cartesianCustomScale(parseFloat(node.attributes.getNamedItem('CartesianCustomScale').nodeValue));\n }\n if (node.attributes.getNamedItem('DynamicData') != null) {\n this.set_dynamicData(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('DynamicData').nodeValue));\n this.set_autoUpdate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('AutoUpdate').nodeValue));\n this.set_dataSourceUrl(node.attributes.getNamedItem('DataSourceUrl').nodeValue);\n }\n },\n\n get_decay: function () {\n return this.decay;\n },\n\n set_decay: function (value) {\n if (this.decay !== value) {\n this.version++;\n this.decay = value;\n }\n return value;\n },\n\n get_coordinatesType: function () {\n return this._coordinatesType$1;\n },\n\n set_coordinatesType: function (value) {\n if (this._coordinatesType$1 !== value) {\n this.version++;\n this._coordinatesType$1 = value;\n }\n return value;\n },\n\n get_latColumn: function () {\n return this.latColumn;\n },\n\n set_latColumn: function (value) {\n if (this.latColumn !== value) {\n this.version++;\n this.latColumn = value;\n }\n return value;\n },\n\n get_lngColumn: function () {\n return this.lngColumn;\n },\n\n set_lngColumn: function (value) {\n if (this.lngColumn !== value) {\n this.version++;\n this.lngColumn = value;\n }\n return value;\n },\n\n get_geometryColumn: function () {\n return this.geometryColumn;\n },\n\n set_geometryColumn: function (value) {\n if (this.geometryColumn !== value) {\n this.version++;\n this.geometryColumn = value;\n }\n return value;\n },\n\n get_xAxisColumn: function () {\n return this._xAxisColumn$1;\n },\n\n set_xAxisColumn: function (value) {\n if (this._xAxisColumn$1 !== value) {\n this.version++;\n this._xAxisColumn$1 = value;\n }\n return value;\n },\n\n get_yAxisColumn: function () {\n return this._yAxisColumn$1;\n },\n\n set_yAxisColumn: function (value) {\n if (this._yAxisColumn$1 !== value) {\n this.version++;\n this._yAxisColumn$1 = value;\n }\n return value;\n },\n\n get_zAxisColumn: function () {\n return this._zAxisColumn$1;\n },\n\n set_zAxisColumn: function (value) {\n if (this._zAxisColumn$1 !== value) {\n this.version++;\n this._zAxisColumn$1 = value;\n }\n return value;\n },\n\n get_xAxisReverse: function () {\n return this._xAxisReverse$1;\n },\n\n set_xAxisReverse: function (value) {\n if (this._xAxisReverse$1 !== value) {\n this.version++;\n this._xAxisReverse$1 = value;\n }\n return value;\n },\n\n get_yAxisReverse: function () {\n return this._yAxisReverse$1;\n },\n\n set_yAxisReverse: function (value) {\n if (this._yAxisReverse$1 !== value) {\n this.version++;\n this._yAxisReverse$1 = value;\n }\n return value;\n },\n\n get_zAxisReverse: function () {\n return this._zAxisReverse$1;\n },\n\n set_zAxisReverse: function (value) {\n if (this._zAxisReverse$1 !== value) {\n this.version++;\n this._zAxisReverse$1 = value;\n }\n return value;\n },\n\n get_altType: function () {\n return this._altType$1;\n },\n\n set_altType: function (value) {\n if (this._altType$1 !== value) {\n this.version++;\n this._altType$1 = value;\n }\n return value;\n },\n\n get_markerMix: function () {\n return this._markerMix$1;\n },\n\n set_markerMix: function (value) {\n if (this._markerMix$1 !== value) {\n this.version++;\n this._markerMix$1 = value;\n }\n return value;\n },\n\n get_raUnits: function () {\n return this._raUnits$1;\n },\n\n set_raUnits: function (value) {\n if (this._raUnits$1 !== value) {\n this.version++;\n this._raUnits$1 = value;\n }\n return value;\n },\n\n get__colorMap: function () {\n return this._colorMap$1;\n },\n\n set__colorMap: function (value) {\n if (this._colorMap$1 !== value) {\n this.version++;\n this._colorMap$1 = value;\n }\n return value;\n },\n\n get_markerColumn: function () {\n return this._markerColumn$1;\n },\n\n set_markerColumn: function (value) {\n if (this._markerColumn$1 !== value) {\n this.version++;\n this._markerColumn$1 = value;\n }\n return value;\n },\n\n get_colorMapColumn: function () {\n return this._colorMapColumn$1;\n },\n\n set_colorMapColumn: function (value) {\n if (this._colorMapColumn$1 !== value) {\n this.version++;\n this._colorMapColumn$1 = value;\n }\n return value;\n },\n\n get_plotType: function () {\n return this._plotType$1;\n },\n\n set_plotType: function (value) {\n if (this._plotType$1 !== value) {\n this.version++;\n this._plotType$1 = value;\n }\n return value;\n },\n\n get_markerIndex: function () {\n return this._markerIndex$1;\n },\n\n set_markerIndex: function (value) {\n if (this._markerIndex$1 !== value) {\n this.version++;\n this._markerIndex$1 = value;\n }\n return value;\n },\n\n get_showFarSide: function () {\n return this._showFarSide$1;\n },\n\n set_showFarSide: function (value) {\n if (this._showFarSide$1 !== value) {\n this.version++;\n this._showFarSide$1 = value;\n }\n return value;\n },\n\n get_markerScale: function () {\n return this._markerScale$1;\n },\n\n set_markerScale: function (value) {\n if (this._markerScale$1 !== value) {\n this.version++;\n this._markerScale$1 = value;\n }\n return value;\n },\n\n get_altUnit: function () {\n return this._altUnit$1;\n },\n\n set_altUnit: function (value) {\n if (this._altUnit$1 !== value) {\n this.version++;\n this._altUnit$1 = value;\n }\n return value;\n },\n\n get_cartesianScale: function () {\n return this._cartesianScale$1;\n },\n\n set_cartesianScale: function (value) {\n if (this._cartesianScale$1 !== value) {\n this.version++;\n this._cartesianScale$1 = value;\n }\n return value;\n },\n\n get_cartesianCustomScale: function () {\n return this._cartesianCustomScale$1;\n },\n\n set_cartesianCustomScale: function (value) {\n if (this._cartesianCustomScale$1 !== value) {\n this.version++;\n this._cartesianCustomScale$1 = value;\n }\n return value;\n },\n\n get_altColumn: function () {\n return this.altColumn;\n },\n\n set_altColumn: function (value) {\n if (this.altColumn !== value) {\n this.version++;\n this.altColumn = value;\n }\n return value;\n },\n\n get_startDateColumn: function () {\n return this.startDateColumn;\n },\n\n set_startDateColumn: function (value) {\n if (this.startDateColumn !== value) {\n this.version++;\n this.startDateColumn = value;\n }\n return value;\n },\n\n get_endDateColumn: function () {\n return this.endDateColumn;\n },\n\n set_endDateColumn: function (value) {\n if (this.endDateColumn !== value) {\n this.version++;\n this.endDateColumn = value;\n }\n return value;\n },\n\n get_sizeColumn: function () {\n return this.sizeColumn;\n },\n\n set_sizeColumn: function (value) {\n if (this.sizeColumn !== value) {\n this.version++;\n this.sizeColumn = value;\n }\n return value;\n },\n\n get_nameColumn: function () {\n return this.nameColumn;\n },\n\n set_nameColumn: function (value) {\n if (this.nameColumn !== value) {\n this.version++;\n this.nameColumn = value;\n }\n return value;\n },\n\n get_hyperlinkFormat: function () {\n return this._hyperlinkFormat$1;\n },\n\n set_hyperlinkFormat: function (value) {\n if (this._hyperlinkFormat$1 !== value) {\n this.version++;\n this._hyperlinkFormat$1 = value;\n }\n return value;\n },\n\n get_hyperlinkColumn: function () {\n return this._hyperlinkColumn$1;\n },\n\n set_hyperlinkColumn: function (value) {\n if (this._hyperlinkColumn$1 !== value) {\n this.version++;\n this._hyperlinkColumn$1 = value;\n }\n return value;\n },\n\n get_scaleFactor: function () {\n return this.scaleFactor;\n },\n\n set_scaleFactor: function (value) {\n if (this.scaleFactor !== value) {\n this.version++;\n this.scaleFactor = value;\n }\n return value;\n },\n\n get_pointScaleType: function () {\n return this.pointScaleType;\n },\n\n set_pointScaleType: function (value) {\n if (this.pointScaleType !== value) {\n this.version++;\n this.pointScaleType = value;\n }\n return value;\n },\n\n draw: function (renderContext, opacity, flat) {\n var device = renderContext;\n if (this.bufferIsFlat !== flat) {\n this.cleanUp();\n this.bufferIsFlat = flat;\n }\n if (this.dirty) {\n this.prepVertexBuffer(renderContext, opacity);\n this.dirty = false;\n }\n var jNow = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_8__.SpaceTimeController.get_jNow() - _space_time_controller_js__WEBPACK_IMPORTED_MODULE_8__.SpaceTimeController.utcToJulian(this.baseDate);\n var adjustedScale = this.scaleFactor;\n if (flat && this.astronomical && (this._markerScale$1 === 1)) {\n adjustedScale = (this.scaleFactor / (renderContext.viewCamera.zoom / 360));\n }\n if (this.triangleList2d != null) {\n this.triangleList2d.decay = this.decay;\n this.triangleList2d.sky = this.get_astronomical();\n this.triangleList2d.timeSeries = this.timeSeries;\n this.triangleList2d.jNow = jNow;\n this.triangleList2d.draw(renderContext, opacity * this.get_opacity(), 1);\n }\n if (this.triangleList != null) {\n this.triangleList.decay = this.decay;\n this.triangleList.sky = this.get_astronomical();\n this.triangleList.timeSeries = this.timeSeries;\n this.triangleList.jNow = jNow;\n this.triangleList.draw(renderContext, opacity * this.get_opacity(), 1);\n }\n if (this.pointList != null) {\n this.pointList.depthBuffered = false;\n this.pointList.showFarSide = this.get_showFarSide();\n this.pointList.decay = (this.timeSeries) ? this.decay : 0;\n this.pointList.sky = this.get_astronomical();\n this.pointList.timeSeries = this.timeSeries;\n this.pointList.jNow = jNow;\n this.pointList.scale = (this._markerScale$1 === 1) ? adjustedScale : -adjustedScale;\n switch (this._plotType$1) {\n case 0:\n this.pointList.draw(renderContext, opacity * this.get_opacity(), false);\n break;\n case 2:\n this.pointList.drawTextured(renderContext, VoTableLayer.get__circleTexture$1().texture2d, opacity * this.get_opacity());\n break;\n case 1:\n this.pointList.drawTextured(renderContext, _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_12__.PushPin.getPushPinTexture(19), opacity * this.get_opacity());\n break;\n case 3:\n this.pointList.drawTextured(renderContext, _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_12__.PushPin.getPushPinTexture(35), opacity * this.get_opacity());\n break;\n case 5:\n case 4:\n this.pointList.drawTextured(renderContext, _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_12__.PushPin.getPushPinTexture(this._markerIndex$1), opacity * this.get_opacity());\n break;\n default:\n break;\n }\n }\n if (this.lineList != null) {\n this.lineList.sky = this.get_astronomical();\n this.lineList.decay = this.decay;\n this.lineList.timeSeries = this.timeSeries;\n this.lineList.jNow = jNow;\n this.lineList.drawLines(renderContext, opacity * this.get_opacity());\n }\n if (this.lineList2d != null) {\n this.lineList2d.sky = this.get_astronomical();\n this.lineList2d.decay = this.decay;\n this.lineList2d.timeSeries = this.timeSeries;\n this.lineList2d.showFarSide = this.get_showFarSide();\n this.lineList2d.jNow = jNow;\n this.lineList2d.drawLines(renderContext, opacity * this.get_opacity());\n }\n return true;\n },\n\n initFromXml: function (node) {\n _layer_js__WEBPACK_IMPORTED_MODULE_10__.Layer.prototype.initFromXml.call(this, node);\n },\n\n cleanUp: function () {\n this.dirty = true;\n if (this.lineList != null) {\n this.lineList.clear();\n }\n if (this.lineList2d != null) {\n this.lineList2d.clear();\n }\n if (this.triangleList2d != null) {\n this.triangleList2d.clear();\n }\n if (this.pointList != null) {\n this.pointList.clear();\n }\n if (this.triangleList != null) {\n this.triangleList.clear();\n }\n },\n\n dynamicUpdate: function () {\n return false;\n },\n\n addFilesToCabinet: function (fc) {\n var fName = this._filename$1;\n var fileName = fc.tempDirectory + _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0}\\\\{1}.txt', fc.get_packageID(), this.id.toString());\n var path = fName.substring(0, fName.lastIndexOf('\\\\') + 1);\n var path2 = fileName.substring(0, fileName.lastIndexOf('\\\\') + 1);\n },\n\n loadData: function (tourDoc, filename) {\n var $this = this;\n\n var blob = tourDoc.getFileBlob(filename);\n var doc = new FileReader();\n doc.onloadend = function (ee) {\n var data = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(doc.result, String);\n $this._table$1 = _vo_table_js__WEBPACK_IMPORTED_MODULE_11__.VoTable.loadFromString(data);\n $this.set_lngColumn($this._table$1.getRAColumn().index);\n $this.set_latColumn($this._table$1.getDecColumn().index);\n };\n doc.readAsText(blob);\n },\n\n canCopyToClipboard: function () {\n return true;\n },\n\n copyToClipboard: function () { },\n\n findClosest: function (target, distance, defaultPlace, astronomical) {\n var searchPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.geoTo3dDouble(target.get_lat(), target.get_lng());\n var dist;\n if (defaultPlace != null) {\n var testPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.raDecTo3dAu(defaultPlace.get_RA(), -defaultPlace.get_dec(), -1);\n dist = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(searchPoint, testPoint);\n distance = dist.length();\n }\n var closestItem = -1;\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.positions);\n while ($enum1.moveNext()) {\n var point = $enum1.current;\n dist = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(searchPoint, point);\n if (dist.length() < distance) {\n distance = dist.length();\n closestItem = index;\n }\n index++;\n }\n if (closestItem === -1) {\n return defaultPlace;\n }\n var pnt = _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.cartesianToSpherical2(this.positions[closestItem]);\n var name = this._table$1.rows[closestItem].columnData[this.nameColumn].toString();\n if (this.nameColumn === this.startDateColumn || this.nameColumn === this.endDateColumn) {\n name = _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_12__.SpreadSheetLayer.parseDate(name).toString();\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(name)) {\n name = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('RA={0}, Dec={1}', _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.formatHMS(pnt.get_RA()), _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.formatDMS(pnt.get_dec()));\n }\n var place = _place_js__WEBPACK_IMPORTED_MODULE_7__.Place.create(name, pnt.get_lat(), pnt.get_RA(), 268435456, '', 2, -1);\n var rowData = {};\n for (var i = 0; i < _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyCount(this._table$1.columns); i++) {\n var colValue = this._table$1.rows[closestItem].get_item(i).toString();\n if (i === this.startDateColumn || i === this.endDateColumn) {\n colValue = _spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_12__.SpreadSheetLayer.parseDate(colValue).toString();\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(rowData, this._table$1.column[i].name) && !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._table$1.column[i].name)) {\n rowData[this._table$1.column[i].name] = colValue;\n }\n else {\n rowData['Column' + i.toString()] = colValue;\n }\n }\n place.set_tag(rowData);\n return place;\n },\n\n prepVertexBuffer: function (renderContext, opacity) {\n var col = this._table$1.getColumnByUcd('meta.id');\n if (col == null) {\n col = this._table$1.column[0];\n }\n var siapSet = this.isSiapResultSet();\n if (this.pointList == null) {\n this.pointList = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.PointList(renderContext);\n }\n if (this.lineList2d == null) {\n this.lineList2d = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.LineList();\n }\n this.lineList2d.clear();\n var stcsCol = this._table$1.getColumnByUcd('phys.area;obs.field');\n if (stcsCol == null && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._table$1.columns, 'regionSTCS')) {\n stcsCol = this._table$1.columns['regionSTCS'];\n }\n if (!this.get_plotType()) {\n this.set_markerScale(1);\n } else {\n this.set_markerScale(0);\n }\n var vertList = [];\n var indexList = [];\n var lastItem = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.TimeSeriesPointVertex();\n this.positions.length = 0;\n var currentIndex = 0;\n var color = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.fromArgb(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((opacity * this.get_color().a)), this.get_color().r, this.get_color().g, this.get_color().b);\n this.pointScaleType = 4;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._table$1.rows);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n try {\n if (this.lngColumn > -1 && this.latColumn > -1) {\n var ra = parseFloat(row.get_item(this.get_lngColumn()).toString());\n var dec = parseFloat(row.get_item(this.get_latColumn()).toString());\n var position = _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.geoTo3dDouble(dec, ra);\n lastItem.position = position;\n this.positions.push(lastItem.position);\n lastItem.set_color(color);\n if (this.sizeColumn > -1) {\n try {\n if (!this.get_markerScale()) {\n lastItem.pointSize = 20;\n }\n else {\n switch (this.pointScaleType) {\n case 0:\n lastItem.pointSize = parseFloat(row.get_item(this.sizeColumn).toString());\n break;\n case 2:\n lastItem.pointSize = Math.log(parseFloat(row.get_item(this.sizeColumn).toString()));\n break;\n case 1:\n lastItem.pointSize = Math.pow(2, parseFloat(row.get_item(this.sizeColumn).toString()));\n break;\n case 4:\n var size = parseFloat(row.get_item(this.sizeColumn).toString());\n lastItem.pointSize = (40 / Math.pow(1.6, size)) * 10;\n break;\n case 3:\n lastItem.pointSize = 1;\n break;\n default:\n break;\n }\n }\n }\n catch ($e2) {\n lastItem.pointSize = 0.01;\n }\n }\n else {\n if (!this.get_markerScale()) {\n lastItem.pointSize = 20;\n }\n else {\n lastItem.pointSize = Math.pow(2, 1) * 100;\n }\n }\n if (this.startDateColumn > -1) {\n var dateTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.date(row.get_item(this.startDateColumn).toString());\n lastItem.tu = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_8__.SpaceTimeController.utcToJulian(dateTime);\n lastItem.tv = 0;\n }\n vertList.push(lastItem);\n this.pointList.addPoint(lastItem.position, lastItem.color, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.Dates(lastItem.tu, lastItem.tv), lastItem.pointSize);\n currentIndex++;\n }\n if (siapSet && stcsCol != null) {\n this._addSiapStcRow$1(stcsCol.name, row, row === this._table$1.selectedRow);\n }\n }\n catch ($e3) {\n }\n this.lines = false;\n }\n if (siapSet && stcsCol != null) {\n this._addSiapStcRow$1(stcsCol.name, this._table$1.selectedRow, true);\n }\n return true;\n },\n _addSiapStcRow$1: function (stcsColName, row, selected) {\n var stcs = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(row.getColumnData(stcsColName).toString(), ' ', ' ');\n var col = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.fromArgb(120, 255, 255, 255);\n if (selected) {\n col = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_yellow();\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(stcs, 'Polygon J2000')) {\n var parts = stcs.split(' ');\n var len = parts.length;\n var index = 0;\n while (index < len) {\n if (parts[index] === 'Polygon') {\n index += 2;\n var lastPoint = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var firstPoint = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var start = true;\n for (var i = index; i < len; i += 2) {\n if (parts[i] === 'Polygon') {\n start = true;\n break;\n }\n else {\n var Xcoord = _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.parseRA(parts[i], true) * 15 + 180;\n var Ycoord = _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.parseDec(parts[i + 1]);\n var pnt = _coordinates_js__WEBPACK_IMPORTED_MODULE_6__.Coordinates.geoTo3dDouble(Ycoord, Xcoord);\n if (!start) {\n this.lineList2d.addLine(lastPoint, pnt, col, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.Dates(0, 0));\n }\n else {\n firstPoint = pnt;\n start = false;\n }\n lastPoint = pnt;\n }\n index += 2;\n }\n if (len > 4) {\n this.lineList2d.addLine(firstPoint, lastPoint, col, new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.Dates(0, 0));\n }\n }\n }\n }\n },\n\n isSiapResultSet: function () {\n return this._table$1.getColumnByUcd('vox:image.title') != null && this._table$1.getColumnByUcd('VOX:Image.AccessReference') != null;\n },\n\n get_header: function () {\n var header = new Array(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyCount(this._table$1.columns));\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._table$1.column);\n while ($enum1.moveNext()) {\n var col = $enum1.current;\n header[index++] = col.name;\n }\n return header;\n },\n\n get_table: function () {\n return this._table$1;\n },\n\n set_table: function (value) {\n this._table$1 = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"VoTableLayer\", [VoTableLayer, VoTableLayer$, _layer_js__WEBPACK_IMPORTED_MODULE_10__.Layer]);\n\n\n/***/ }),\n\n/***/ \"./esm/layers/wcs_image.js\":\n/*!*********************************!*\\\n !*** ./esm/layers/wcs_image.js ***!\n \\*********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WcsImage: () => (/* binding */ WcsImage)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Information about an image with a World Coordinate System registration.\n\n\n\n\n// wwtlib.WcsImage\n\nfunction WcsImage() {\n this.copyright = '';\n this.creditsUrl = '';\n this._validWcs = false;\n this.keywords = [];\n this.description = '';\n this.scaleX = 0;\n this.scaleY = 0;\n this.centerX = 0;\n this.centerY = 0;\n this.rotation = 0;\n this.referenceX = 0;\n this.referenceY = 0;\n this.sizeX = 0;\n this.sizeY = 0;\n this.cd1_1 = 0;\n this.cd1_2 = 0;\n this.cd2_1 = 0;\n this.cd2_2 = 0;\n this.hasRotation = false;\n this.hasSize = false;\n this.hasScale = false;\n this.hasLocation = false;\n this.hasPixel = false;\n this.filename = '';\n this._colorCombine = false;\n}\n\nvar WcsImage$ = {\n get_copyright: function () {\n return this.copyright;\n },\n\n set_copyright: function (value) {\n this.copyright = value;\n return value;\n },\n\n get_creditsUrl: function () {\n return this.creditsUrl;\n },\n\n set_creditsUrl: function (value) {\n this.creditsUrl = value;\n return value;\n },\n\n get_validWcs: function () {\n return this._validWcs;\n },\n\n set_validWcs: function (value) {\n this._validWcs = value;\n return value;\n },\n\n get_keywords: function () {\n if (!this.keywords.length) {\n this.keywords.push('Image File');\n }\n return this.keywords;\n },\n\n set_keywords: function (value) {\n this.keywords = value;\n return value;\n },\n\n get_description: function () {\n return this.description;\n },\n\n set_description: function (value) {\n this.description = value;\n return value;\n },\n\n get_scaleX: function () {\n return this.scaleX;\n },\n\n set_scaleX: function (value) {\n this.scaleX = value;\n return value;\n },\n\n get_scaleY: function () {\n return this.scaleY;\n },\n\n set_scaleY: function (value) {\n this.scaleY = value;\n return value;\n },\n\n get_centerX: function () {\n return this.centerX;\n },\n\n set_centerX: function (value) {\n this.centerX = value;\n return value;\n },\n\n get_viewCenterX: function () {\n return this.centerX + (this.get_sizeX() / 2 - this.get_referenceX()) * this.get_scaleX();\n },\n\n get_centerY: function () {\n return this.centerY;\n },\n\n set_centerY: function (value) {\n this.centerY = value;\n return value;\n },\n\n get_viewCenterY: function () {\n return this.centerY + (this.get_sizeY() / 2 - this.get_referenceY()) * this.get_scaleY();\n },\n\n get_rotation: function () {\n return this.rotation;\n },\n\n set_rotation: function (value) {\n this.rotation = value;\n return value;\n },\n\n get_referenceX: function () {\n return this.referenceX;\n },\n\n set_referenceX: function (value) {\n this.referenceX = value;\n return value;\n },\n\n get_referenceY: function () {\n return this.referenceY;\n },\n\n set_referenceY: function (value) {\n this.referenceY = value;\n return value;\n },\n\n get_sizeX: function () {\n return this.sizeX;\n },\n\n set_sizeX: function (value) {\n this.sizeX = value;\n return value;\n },\n\n get_sizeY: function () {\n return this.sizeY;\n },\n\n set_sizeY: function (value) {\n this.sizeY = value;\n return value;\n },\n\n get_cd1_1: function () {\n return this.cd1_1;\n },\n\n set_cd1_1: function (value) {\n this.cd1_1 = value;\n return value;\n },\n\n get_cd1_2: function () {\n return this.cd1_2;\n },\n\n set_cd1_2: function (value) {\n this.cd1_2 = value;\n return value;\n },\n\n get_cd2_1: function () {\n return this.cd2_1;\n },\n\n set_cd2_1: function (value) {\n this.cd2_1 = value;\n return value;\n },\n\n get_cd2_2: function () {\n return this.cd2_2;\n },\n\n set_cd2_2: function (value) {\n this.cd2_2 = value;\n return value;\n },\n\n adjustScale: function (width, height) {\n //adjusts the actual height vs the reported height.\n if (width !== this.sizeX) {\n this.scaleX *= (this.sizeX / width);\n this.referenceX /= (this.sizeX / width);\n this.sizeX = width;\n }\n if (height !== this.sizeY) {\n this.scaleY *= (this.sizeY / height);\n this.referenceY /= (this.sizeY / height);\n this.sizeY = height;\n }\n },\n\n calculateScaleFromCD: function () {\n this.scaleX = (Math.sqrt(this.cd1_1 * this.cd1_1 + this.cd2_1 * this.cd2_1) * (this.cd1_1 * this.cd2_2 - this.cd1_2 * this.cd2_1) < 0) ? -1 : 1;\n this.scaleY = Math.sqrt(this.cd1_2 * this.cd1_2 + this.cd2_2 * this.cd2_2);\n },\n\n calculateRotationFromCD: function () {\n var sign = ((this.cd1_1 * this.cd2_2 - this.cd1_2 * this.cd2_1) < 0) ? -1 : 1;\n var rot2 = Math.atan2((-sign * this.cd1_2), this.cd2_2);\n this.rotation = rot2 / Math.PI * 180;\n },\n\n get_filename: function () {\n return this.filename;\n },\n\n set_filename: function (value) {\n this.filename = value;\n return value;\n },\n\n get_colorCombine: function () {\n return this._colorCombine;\n },\n\n set_colorCombine: function (value) {\n this._colorCombine = value;\n return value;\n },\n\n getBitmap: function () {\n return null;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"WcsImage\", [WcsImage, WcsImage$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/mercator_tile.js\":\n/*!******************************!*\\\n !*** ./esm/mercator_tile.js ***!\n \\******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MercatorTile: () => (/* binding */ MercatorTile)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _render_triangle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./render_triangle.js */ \"./esm/render_triangle.js\");\n/* harmony import */ var _tile_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./tile.js */ \"./esm/tile.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A tile in a pyramid that uses a Mercator projection.\n\n\n\n\n\n\n\n\n\n\n// wwtlib.MercatorTile\n\nfunction MercatorTile() {\n this._tileDegrees$1 = 0;\n this._latMin$1 = 0;\n this._latMax$1 = 0;\n this._lngMin$1 = 0;\n this._lngMax$1 = 0;\n this._subDivisionLevel$1 = 32;\n _tile_js__WEBPACK_IMPORTED_MODULE_6__.Tile.call(this);\n}\n\nMercatorTile.create = function (level, X, Y, dataset, parent) {\n var temp = new MercatorTile();\n temp.parent = parent;\n temp.level = level;\n temp.tileX = X;\n temp.tileY = Y;\n temp.dataset = dataset;\n temp.computeBoundingSphere();\n return temp;\n};\n\nMercatorTile.getCentrePointOffsetAsTileRatio = function (lat, lon, zoom) {\n var metersX = MercatorTile.absoluteLonToMetersAtZoom(lon, zoom);\n var relativeXIntoCell = (metersX / 256) - Math.floor(metersX / 256);\n var metersY = MercatorTile.absoluteLatToMetersAtZoom(lat, zoom);\n var relativeYIntoCell = (metersY / 256) - Math.floor(metersY / 256);\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(relativeXIntoCell, relativeYIntoCell);\n};\n\nMercatorTile.relativeMetersToLatAtZoom = function (Y, zoom) {\n var metersPerPixel = MercatorTile.metersPerPixel2(zoom);\n var metersY = Y * metersPerPixel;\n return MercatorTile._radToDeg$1(Math.PI / 2 - 2 * Math.atan(Math.exp(0 - metersY / 6378137)));\n};\n\nMercatorTile.relativeMetersToLonAtZoom = function (X, zoom) {\n var metersPerPixel = MercatorTile.metersPerPixel2(zoom);\n var metersX = X * metersPerPixel;\n return MercatorTile._radToDeg$1(metersX / 6378137);\n};\n\nMercatorTile.absoluteLatToMetersAtZoom = function (latitude, zoom) {\n var sinLat = Math.sin(MercatorTile._degToRad$1(latitude));\n var metersY = 6378137 / 2 * Math.log((1 + sinLat) / (1 - sinLat));\n var metersPerPixel = MercatorTile.metersPerPixel2(zoom);\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((Math.round(20037508 - metersY) / metersPerPixel));\n};\n\nMercatorTile.absoluteMetersToLatAtZoom = function (Y, zoom) {\n var metersPerPixel = MercatorTile.metersPerPixel2(zoom);\n var metersY = 20037508 - Y * metersPerPixel;\n return MercatorTile._radToDeg$1(Math.PI / 2 - 2 * Math.atan(Math.exp(0 - metersY / 6378137)));\n};\n\nMercatorTile.absoluteLonToMetersAtZoom = function (longitude, zoom) {\n var metersX = 6378137 * MercatorTile._degToRad$1(longitude);\n var metersPerPixel = MercatorTile.metersPerPixel2(zoom);\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((metersX + 20037508) / metersPerPixel));\n};\n\nMercatorTile.absoluteMetersToLonAtZoom = function (X, zoom) {\n var metersPerPixel = MercatorTile.metersPerPixel2(zoom);\n var metersX = X * metersPerPixel - 20037508;\n return MercatorTile._radToDeg$1(metersX / 6378137);\n};\n\nMercatorTile.absoluteLonToMetersAtZoomTile = function (longitude, zoom, tileX) {\n var metersX = 6378137 * MercatorTile._degToRad$1(longitude);\n var metersPerPixel = MercatorTile.metersPerPixel2(zoom);\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((metersX + 20037508) / metersPerPixel));\n};\n\nMercatorTile.absoluteLatToMetersAtZoomTile = function (latitude, zoom, tileX) {\n var sinLat = Math.sin(MercatorTile._degToRad$1(latitude));\n var metersY = 6378137 / 2 * Math.log((1 + sinLat) / (1 - sinLat));\n var metersPerPixel = MercatorTile.metersPerPixel2(zoom);\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((Math.round(20037508 - metersY) / metersPerPixel));\n};\n\nMercatorTile.absoluteMetersToLonAtZoomByTileY = function (X, zoom, tileY) {\n var metersPerPixel = MercatorTile.metersPerPixel2(zoom);\n var metersX = X * metersPerPixel - 20037508;\n return MercatorTile._radToDeg$1(metersX / 6378137);\n};\n\nMercatorTile._degToRad$1 = function (deg) {\n return (deg * Math.PI / 180);\n};\n\nMercatorTile.metersPerPixel2 = function (zoom) {\n return (156543 / (1 << zoom));\n};\n\nMercatorTile._radToDeg$1 = function (rad) {\n return (rad * 180 / Math.PI);\n};\n\nvar MercatorTile$ = {\n computeBoundingSphere: function () {\n this._tileDegrees$1 = 360 / Math.pow(2, this.level);\n this._latMin$1 = MercatorTile.absoluteMetersToLatAtZoom(this.tileY * 256, this.level);\n this._latMax$1 = MercatorTile.absoluteMetersToLatAtZoom((this.tileY + 1) * 256, this.level);\n this._lngMin$1 = ((this.tileX * this._tileDegrees$1) - 180);\n this._lngMax$1 = ((((this.tileX + 1)) * this._tileDegrees$1) - 180);\n var latCenter = (this._latMin$1 + this._latMax$1) / 2;\n var lngCenter = (this._lngMin$1 + this._lngMax$1) / 2;\n this.sphereCenter = this.geoTo3d(latCenter, lngCenter, false);\n this.topLeft = this.geoTo3d(this._latMin$1, this._lngMin$1, false);\n this.bottomRight = this.geoTo3d(this._latMax$1, this._lngMax$1, false);\n this.topRight = this.geoTo3d(this._latMin$1, this._lngMax$1, false);\n this.bottomLeft = this.geoTo3d(this._latMax$1, this._lngMin$1, false);\n if (!this.tileY) {\n this.topLeft = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 1, 0);\n this.topRight = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 1, 0);\n }\n if (this.tileY === Math.pow(2, this.level) - 1) {\n this.bottomRight = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, -1, 0);\n this.bottomLeft = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, -1, 0);\n }\n var distVect = this.topLeft;\n distVect.subtract(this.sphereCenter);\n this.sphereRadius = distVect.length();\n distVect = this.bottomRight;\n distVect.subtract(this.sphereCenter);\n var len = distVect.length();\n if (this.sphereRadius < len) {\n this.sphereRadius = len;\n }\n this._tileDegrees$1 = Math.abs(this._latMax$1 - this._latMin$1);\n },\n\n isPointInTile: function (lat, lng) {\n if (!this.demReady || this.demData == null || lat < Math.min(this._latMin$1, this._latMax$1) || lat > Math.max(this._latMax$1, this._latMin$1) || lng < Math.min(this._lngMin$1, this._lngMax$1) || lng > Math.max(this._lngMin$1, this._lngMax$1)) {\n return false;\n }\n return true;\n },\n\n getSurfacePointAltitude: function (lat, lng, meters) {\n if (this.level < _tile_js__WEBPACK_IMPORTED_MODULE_6__.Tile.lastDeepestLevel) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.children);\n while ($enum1.moveNext()) {\n var child = $enum1.current;\n if (child != null) {\n if (child.isPointInTile(lat, lng)) {\n var retVal = child.getSurfacePointAltitude(lat, lng, meters);\n if (!!retVal) {\n return retVal;\n }\n else {\n break;\n }\n }\n }\n }\n }\n var alt = this._getAltitudeAtLatLng$1(lat, lng, (meters) ? 1 : this.get__demScaleFactor());\n return alt;\n },\n\n _getAltitudeAtLatLng$1: function (lat, lng, scaleFactor) {\n var height = Math.abs(this._latMax$1 - this._latMin$1);\n var width = Math.abs(this._lngMax$1 - this._lngMin$1);\n var yy = ((lat - Math.min(this._latMax$1, this._latMin$1)) / height * 32);\n var xx = ((lng - Math.min(this._lngMax$1, this._lngMin$1)) / width * 32);\n var indexY = Math.min(31, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(yy));\n var indexX = Math.min(31, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(xx));\n var ha = xx - indexX;\n var va = yy - indexY;\n var ul = this.demData[indexY * 33 + indexX];\n var ur = this.demData[indexY * 33 + (indexX + 1)];\n var ll = this.demData[(indexY + 1) * 33 + indexX];\n var lr = this.demData[(indexY + 1) * 33 + (indexX + 1)];\n var top = ul * (1 - ha) + ha * ur;\n var bottom = ll * (1 - ha) + ha * lr;\n var val = top * (1 - va) + va * bottom;\n return val / scaleFactor;\n },\n\n createGeometry: function (renderContext) {\n _tile_js__WEBPACK_IMPORTED_MODULE_6__.Tile.prototype.createGeometry.call(this, renderContext);\n if (this.geometryCreated) {\n return true;\n }\n this.geometryCreated = true;\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple == 256) {\n if (!this.dataset.get_dataSetType() || this.dataset.get_dataSetType() === 1) {\n this._subDivisionLevel$1 = Math.max(2, (6 - this.level) * 2);\n }\n }\n for (var i = 0; i < 4; i++) {\n this._renderTriangleLists[i] = [];\n }\n var lat, lng;\n var index = 0;\n var tileDegrees = 360 / Math.pow(2, this.level);\n this._latMin$1 = MercatorTile.absoluteMetersToLatAtZoom(this.tileY * 256, this.level);\n this._latMax$1 = MercatorTile.absoluteMetersToLatAtZoom((this.tileY + 1) * 256, this.level);\n this._lngMin$1 = ((this.tileX * tileDegrees) - 180);\n this._lngMax$1 = ((((this.tileX + 1)) * tileDegrees) - 180);\n var latCenter = MercatorTile.absoluteMetersToLatAtZoom(((this.tileY * 2) + 1) * 256, this.level + 1);\n this.topLeft = this.geoTo3d(this._latMin$1, this._lngMin$1, false);\n this.bottomRight = this.geoTo3d(this._latMax$1, this._lngMax$1, false);\n this.topRight = this.geoTo3d(this._latMin$1, this._lngMax$1, false);\n this.bottomLeft = this.geoTo3d(this._latMax$1, this._lngMin$1, false);\n var verts = new Array((this._subDivisionLevel$1 + 1) * (this._subDivisionLevel$1 + 1));\n tileDegrees = this._lngMax$1 - this._lngMin$1;\n var dGrid = (tileDegrees / this._subDivisionLevel$1);\n var x1, y1;\n var textureStep = 1 / this._subDivisionLevel$1;\n var latDegrees = this._latMax$1 - latCenter;\n for (y1 = 0; y1 < this._subDivisionLevel$1 / 2; y1++) {\n if (y1 !== this._subDivisionLevel$1 / 2) {\n lat = this._latMax$1 - (2 * textureStep * latDegrees * y1);\n }\n else {\n lat = latCenter;\n }\n for (x1 = 0; x1 <= this._subDivisionLevel$1; x1++) {\n if (x1 !== this._subDivisionLevel$1) {\n lng = this._lngMin$1 + (textureStep * tileDegrees * x1);\n }\n else {\n lng = this._lngMax$1;\n }\n index = y1 * (this._subDivisionLevel$1 + 1) + x1;\n verts[index] = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture();\n verts[index].position = this.geoTo3dWithAlt(lat, lng, false, true);\n verts[index].tu = (x1 * textureStep) * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n verts[index].tv = ((MercatorTile.absoluteLatToMetersAtZoom(lat, this.level) - (this.tileY * 256)) / 256) * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.demIndex++;\n }\n }\n latDegrees = this._latMin$1 - latCenter;\n for (y1 = this._subDivisionLevel$1 / 2; y1 <= this._subDivisionLevel$1; y1++) {\n if (y1 !== this._subDivisionLevel$1) {\n lat = latCenter + (2 * textureStep * latDegrees * (y1 - (this._subDivisionLevel$1 / 2)));\n }\n else {\n lat = this._latMin$1;\n }\n for (x1 = 0; x1 <= this._subDivisionLevel$1; x1++) {\n if (x1 !== this._subDivisionLevel$1) {\n lng = this._lngMin$1 + (textureStep * tileDegrees * x1);\n }\n else {\n lng = this._lngMax$1;\n }\n index = y1 * (this._subDivisionLevel$1 + 1) + x1;\n verts[index] = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture();\n verts[index].position = this.geoTo3dWithAlt(lat, lng, false, true);\n verts[index].tu = (x1 * textureStep) * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n verts[index].tv = ((MercatorTile.absoluteLatToMetersAtZoom(lat, this.level) - (this.tileY * 256)) / 256) * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.demIndex++;\n }\n }\n if (!this.tileY) {\n // Send the tops to the pole to fill in the Bing Hole\n y1 = this._subDivisionLevel$1;\n for (x1 = 0; x1 <= this._subDivisionLevel$1; x1++) {\n index = y1 * (this._subDivisionLevel$1 + 1) + x1;\n verts[index].position = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, 1, 0);\n }\n }\n if (this.tileY === Math.pow(2, this.level) - 1) {\n // Send the tops to the pole to fill in the Bing Hole\n y1 = 0;\n for (x1 = 0; x1 <= this._subDivisionLevel$1; x1++) {\n index = y1 * (this._subDivisionLevel$1 + 1) + x1;\n verts[index].position = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(0, -1, 0);\n }\n }\n this.triangleCount = this._subDivisionLevel$1 * this._subDivisionLevel$1 * 2;\n var quarterDivisions = this._subDivisionLevel$1 / 2;\n var part = 0;\n if (renderContext.gl == null) {\n for (var y2 = 0; y2 < 2; y2++) {\n for (var x2 = 0; x2 < 2; x2++) {\n index = 0;\n for (y1 = (quarterDivisions * y2); y1 < (quarterDivisions * (y2 + 1)); y1++) {\n for (x1 = (quarterDivisions * x2); x1 < (quarterDivisions * (x2 + 1)); x1++) {\n var p1;\n var p2;\n var p3;\n\n // First triangle in quad\n p1 = verts[(y1 * (this._subDivisionLevel$1 + 1) + x1)];\n p2 = verts[((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1)];\n p3 = verts[(y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1))];\n var tri = _render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(p1, p2, p3, this.texture, this.level);\n this._renderTriangleLists[part].push(tri);\n\n // Second triangle in quad\n p1 = verts[(y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1))];\n p2 = verts[((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1)];\n p3 = verts[((y1 + 1) * (this._subDivisionLevel$1 + 1) + (x1 + 1))];\n tri = _render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(p1, p2, p3, this.texture, this.level);\n this._renderTriangleLists[part].push(tri);\n }\n }\n part++;\n }\n }\n } else {\n this._vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, this._vertexBuffer);\n var f32array = new Float32Array(verts.length * 5);\n var buffer = f32array;\n index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(verts);\n while ($enum1.moveNext()) {\n var pt = $enum1.current;\n index = this.addVertex(buffer, index, pt);\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, f32array, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n for (var y2 = 0; y2 < 2; y2++) {\n for (var x2 = 0; x2 < 2; x2++) {\n var ui16array = new Uint16Array(this.triangleCount * 3);\n var indexArray = ui16array;\n index = 0;\n for (y1 = (quarterDivisions * y2); y1 < (quarterDivisions * (y2 + 1)); y1++) {\n for (x1 = (quarterDivisions * x2); x1 < (quarterDivisions * (x2 + 1)); x1++) {\n // First triangle in quad\n indexArray[index++] = (y1 * (this._subDivisionLevel$1 + 1) + x1);\n indexArray[index++] = ((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1);\n indexArray[index++] = (y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1));\n\n // Second triangle in quad\n indexArray[index++] = (y1 * (this._subDivisionLevel$1 + 1) + (x1 + 1));\n indexArray[index++] = ((y1 + 1) * (this._subDivisionLevel$1 + 1) + x1);\n indexArray[index++] = ((y1 + 1) * (this._subDivisionLevel$1 + 1) + (x1 + 1));\n }\n }\n this._indexBuffers[part] = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, this._indexBuffers[part]);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, ui16array, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n part++;\n }\n }\n }\n return true;\n },\n\n _getDemSample$1: function (x, y) {\n return this.demData[(32 - y) * 33 + x];\n },\n\n createDemFromParent: function () {\n var parent = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(this.parent, MercatorTile);\n if (parent == null || parent.demData == null) {\n return false;\n }\n var offsetX = (((this.tileX % 2) === 1) ? 16 : 0);\n var offsetY = (((this.tileY % 2) === 1) ? 16 : 0);\n this.demData = new Array(this.demSize);\n\n // Interpolate across\n for (var y = 0; y < 33; y += 2) {\n var copy = true;\n for (var x = 0; x < 33; x++) {\n if (copy) {\n this.demData[(32 - y) * 33 + x] = parent._getDemSample$1((x / 2) + offsetX, (y / 2) + offsetY);\n }\n else {\n this.demData[(32 - y) * 33 + x] = ((parent._getDemSample$1((x / 2) + offsetX, (y / 2) + offsetY) + parent._getDemSample$1(((x / 2) + offsetX) + 1, (y / 2) + offsetY)) / 2);\n }\n copy = !copy;\n }\n }\n\n // Interpolate down\n for (var y = 1; y < 33; y += 2) {\n for (var x = 0; x < 33; x++) {\n this.demData[(32 - y) * 33 + x] = ((this._getDemSample$1(x, y - 1) + this._getDemSample$1(x, y + 1)) / 2);\n }\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.demData);\n while ($enum1.moveNext()) {\n var sample = $enum1.current;\n this.demAverage += sample;\n }\n this.demAverage /= this.demData.length;\n this.demReady = true;\n return true;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"MercatorTile\", [MercatorTile, MercatorTile$, _tile_js__WEBPACK_IMPORTED_MODULE_6__.Tile]);\n\n\n/***/ }),\n\n/***/ \"./esm/minor_planets.js\":\n/*!******************************!*\\\n !*** ./esm/minor_planets.js ***!\n \\******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MinorPlanets: () => (/* binding */ MinorPlanets)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./astrocalc/elliptical.js */ \"./esm/astrocalc/elliptical.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./graphics/gl_buffers.js */ \"./esm/graphics/gl_buffers.js\");\n/* harmony import */ var _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./graphics/shaders.js */ \"./esm/graphics/shaders.js\");\n/* harmony import */ var _blend_state_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./blend_state.js */ \"./esm/blend_state.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _kepler_vertex_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./kepler_vertex.js */ \"./esm/kepler_vertex.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utilities/binary_reader.js */ \"./esm/utilities/binary_reader.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./web_file.js */ \"./esm/web_file.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Rendering the minor planet database\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.MinorPlanets\n\nfunction MinorPlanets() { }\n\nMinorPlanets.mpcList = [];\nMinorPlanets._initBegun = false;\nMinorPlanets._mpcBlendStates = new Array(7);\nMinorPlanets.starTexture = null;\nMinorPlanets._mpcVertexBuffer = null;\nMinorPlanets._mpcCount = 0;\n\nMinorPlanets.getMpcFile = function (url) {\n MinorPlanets._webMpcFile = new _web_file_js__WEBPACK_IMPORTED_MODULE_15__.WebFile(url);\n MinorPlanets._webMpcFile.responseType = 'blob';\n MinorPlanets._webMpcFile.onStateChange = MinorPlanets.starFileStateChange;\n MinorPlanets._webMpcFile.send();\n};\n\nMinorPlanets.starFileStateChange = function () {\n if (MinorPlanets._webMpcFile.get_state() === 2) {\n alert(MinorPlanets._webMpcFile.get_message());\n }\n else if (MinorPlanets._webMpcFile.get_state() === 1) {\n var mainBlob = MinorPlanets._webMpcFile.getBlob();\n var chunck = new FileReader();\n chunck.onloadend = function (e) {\n MinorPlanets._readFromBin(new _utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_14__.BinaryReader(new Uint8Array(chunck.result)));\n MinorPlanets.initMPCVertexBuffer();\n };\n chunck.readAsArrayBuffer(mainBlob);\n }\n};\n\nMinorPlanets._readFromBin = function (br) {\n MinorPlanets.mpcList = [];\n var len = br.get_length();\n var ee;\n try {\n while (br.get_position() < len) {\n ee = _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_3__.EOE._create(br);\n MinorPlanets.mpcList.push(ee);\n }\n }\n catch ($e1) { }\n br.close();\n};\n\nMinorPlanets.drawMPC3D = function (renderContext, opacity, centerPoint) {\n var zoom = renderContext.viewCamera.zoom;\n var distAlpha = ((Math.log(Math.max(1, zoom)) / Math.log(4)) - 15.5) * 90;\n var alpha = Math.min(255, Math.max(0, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(distAlpha)));\n if (alpha > 254) {\n return;\n }\n if (MinorPlanets._mpcVertexBuffer == null) {\n if (MinorPlanets.starTexture == null) {\n MinorPlanets.starTexture = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_4__.Texture.fromUrl(_url_helpers_js__WEBPACK_IMPORTED_MODULE_13__.URLHelpers.singleton.engineAssetUrl('StarProfileAlpha.png'));\n }\n for (var i = 0; i < 7; i++) {\n MinorPlanets._mpcBlendStates[i] = _blend_state_js__WEBPACK_IMPORTED_MODULE_8__.BlendState.create(false, 1000);\n }\n if (!MinorPlanets._initBegun) {\n MinorPlanets._startInit();\n MinorPlanets._initBegun = true;\n }\n return;\n }\n var offset = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.translation(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.negate(centerPoint));\n var world = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(renderContext.get_world(), offset);\n var matrixWV = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(world, renderContext.get_view());\n var cam = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d._transformCoordinate(renderContext.cameraPosition, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.invertMatrix(renderContext.get_world()));\n if (MinorPlanets._mpcVertexBuffer != null) {\n for (var i = 0; i < 7; i++) {\n MinorPlanets._mpcBlendStates[i].set_targetState(true);\n if (MinorPlanets._mpcBlendStates[i].get_state()) {\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.KeplerPointSpriteShader.use(renderContext, matrixWV, MinorPlanets._mpcVertexBuffer[i].vertexBuffer, MinorPlanets.starTexture.texture2d, _color_js__WEBPACK_IMPORTED_MODULE_9__.Colors.get_white(), opacity * MinorPlanets._mpcBlendStates[i].get_opacity(), false, (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__.SpaceTimeController.get_jNow() - _kepler_vertex_js__WEBPACK_IMPORTED_MODULE_11__.KeplerVertex.baseDate), 0, renderContext.cameraPosition, 200, 0.1);\n renderContext.gl.drawArrays(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.POINTS, 0, MinorPlanets._mpcVertexBuffer[i].count);\n }\n }\n }\n};\n\nMinorPlanets._startInit = function () {\n if (!_data_globals_js__WEBPACK_IMPORTED_MODULE_10__.freestandingMode) {\n MinorPlanets.getMpcFile(_url_helpers_js__WEBPACK_IMPORTED_MODULE_13__.URLHelpers.singleton.coreStaticUrl('wwtweb/catalog.aspx?Q=mpcbin'));\n }\n};\n\nMinorPlanets.initMPCVertexBuffer = function () {\n try {\n if (MinorPlanets._mpcVertexBuffer == null) {\n var mpcVertexBufferTemp = new Array(7);\n MinorPlanets._mpcCount = MinorPlanets.mpcList.length;\n var lists = new Array(7);\n for (var i = 0; i < 7; i++) {\n lists[i] = [];\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(MinorPlanets.mpcList);\n while ($enum1.moveNext()) {\n var ee = $enum1.current;\n var listID = 0;\n if (ee.a < 2.5) {\n listID = 0;\n }\n else if (ee.a < 2.83) {\n listID = 1;\n }\n else if (ee.a < 2.96) {\n listID = 2;\n }\n else if (ee.a < 3.3) {\n listID = 3;\n }\n else if (ee.a < 5) {\n listID = 4;\n }\n else if (ee.a < 10) {\n listID = 5;\n }\n else {\n listID = 6;\n }\n var vert = new _kepler_vertex_js__WEBPACK_IMPORTED_MODULE_11__.KeplerVertex();\n vert.fill(ee);\n lists[listID].push(vert);\n }\n for (var i = 0; i < 7; i++) {\n mpcVertexBufferTemp[i] = _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__.KeplerVertexBuffer.create(lists[i]);\n mpcVertexBufferTemp[i].unlock();\n }\n MinorPlanets._mpcVertexBuffer = mpcVertexBufferTemp;\n }\n }\n finally { }\n};\n\nvar MinorPlanets$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"MinorPlanets\", [MinorPlanets, MinorPlanets$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/place.js\":\n/*!**********************!*\\\n !*** ./esm/place.js ***!\n \\**********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Classification: () => (/* binding */ Classification),\n/* harmony export */ Place: () => (/* binding */ Place)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _camera_parameters_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./camera_parameters.js */ \"./esm/camera_parameters.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _ui_tools_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ui_tools.js */ \"./esm/ui_tools.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./imageset.js */ \"./esm/imageset.js\");\n/* harmony import */ var _planets_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./planets.js */ \"./esm/planets.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A place to look at, potentially with associated imagesets.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.Classification\n//\n// This was defined in `IPlace.cs`, which we've folded into `interfaces.js`.\n\nvar Classification = {\n star: 1,\n supernova: 2,\n blackHole: 4,\n neutronStar: 8,\n doubleStar: 16,\n multipleStars: 32,\n asterism: 64,\n constellation: 128,\n openCluster: 256,\n globularCluster: 512,\n nebulousCluster: 1024,\n nebula: 2048,\n emissionNebula: 4096,\n planetaryNebula: 8192,\n reflectionNebula: 16384,\n darkNebula: 32768,\n giantMolecularCloud: 65536,\n supernovaRemnant: 131072,\n interstellarDust: 262144,\n quasar: 524288,\n galaxy: 1048576,\n spiralGalaxy: 2097152,\n irregularGalaxy: 4194304,\n ellipticalGalaxy: 8388608,\n knot: 16777216,\n plateDefect: 33554432,\n clusterOfGalaxies: 67108864,\n otherNGC: 134217728,\n unidentified: 268435456,\n solarSystem: 536870912,\n unfiltered: 1073741823,\n stellar: 63,\n stellarGroupings: 2032,\n nebulae: 523264,\n galactic: 133693440,\n other: 436207616\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Classification\", Classification);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"Classification\", Classification);\n\n\n// wwtlib.Place\n\nfunction Place() {\n this._camParams = _camera_parameters_js__WEBPACK_IMPORTED_MODULE_5__.CameraParameters.create(0, 0, -1, 0, 0, 100);\n this._location3d = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, 0);\n this.htmlDescription = '';\n this._constellation = '';\n this._classification = 1048576;\n this._type = 2;\n this._magnitude = 0;\n this._distnace = 0;\n this.angularSize = 60; // Angular size in arcseconds\n this.annotation = '';\n this._thumbNail = null;\n this._studyImageset = null;\n this._backgroundImageSet = null;\n this._searchDistance = 0;\n this._elevation = 50;\n}\n\nPlace.create = function (name, lat, lng, classification, constellation, type, zoomFactor) {\n var temp = new Place();\n temp.set_zoomLevel(zoomFactor);\n temp._constellation = constellation;\n temp._name = name;\n if (type === 2 || type === 4) {\n temp._camParams.set_RA(lng);\n }\n else {\n temp.set_lng(lng);\n }\n temp.set_lat(lat);\n temp.set_classification(classification);\n temp.set_type(type);\n return temp;\n};\n\nPlace.createCameraParams = function (name, camParams, classification, constellation, type, target) {\n var temp = new Place();\n temp._constellation = constellation;\n temp._name = name;\n temp.set_classification(classification);\n temp._camParams = camParams;\n temp.set_type(type);\n temp.set_target(target);\n return temp;\n};\n\nPlace._fromXml = function (place) {\n var newPlace = new Place();\n newPlace._name = place.attributes.getNamedItem('Name').nodeValue;\n if (place.attributes.getNamedItem('MSRComponentId') != null && place.attributes.getNamedItem('Permission') != null && place.attributes.getNamedItem('Url') != null) {\n //communities item\n newPlace.set_url(place.attributes.getNamedItem('Url').nodeValue);\n newPlace.set_thumbnailUrl(place.attributes.getNamedItem('Thumbnail').nodeValue);\n return newPlace;\n }\n if (place.attributes.getNamedItem('DataSetType') != null) {\n newPlace._type = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('ImageSetType', place.attributes.getNamedItem('DataSetType').nodeValue);\n }\n if (newPlace.get_type() === 2) {\n newPlace._camParams.set_RA(parseFloat(place.attributes.getNamedItem('RA').nodeValue));\n newPlace._camParams.set_dec(parseFloat(place.attributes.getNamedItem('Dec').nodeValue));\n }\n else {\n newPlace.set_lat(parseFloat(place.attributes.getNamedItem('Lat').nodeValue));\n newPlace.set_lng(parseFloat(place.attributes.getNamedItem('Lng').nodeValue));\n }\n if (place.attributes.getNamedItem('Constellation') != null) {\n newPlace._constellation = place.attributes.getNamedItem('Constellation').nodeValue;\n }\n if (place.attributes.getNamedItem('Classification') != null) {\n newPlace._classification = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('Classification', place.attributes.getNamedItem('Classification').nodeValue);\n }\n if (place.attributes.getNamedItem('Magnitude') != null) {\n newPlace._magnitude = parseFloat(place.attributes.getNamedItem('Magnitude').nodeValue);\n }\n if (place.attributes.getNamedItem('AngularSize') != null) {\n newPlace.angularSize = parseFloat(place.attributes.getNamedItem('AngularSize').nodeValue);\n }\n if (place.attributes.getNamedItem('ZoomLevel') != null) {\n newPlace.set_zoomLevel(parseFloat(place.attributes.getNamedItem('ZoomLevel').nodeValue));\n }\n if (place.attributes.getNamedItem('Rotation') != null) {\n newPlace._camParams.rotation = parseFloat(place.attributes.getNamedItem('Rotation').nodeValue);\n }\n if (place.attributes.getNamedItem('Annotation') != null) {\n newPlace.annotation = place.attributes.getNamedItem('Annotation').nodeValue;\n }\n if (place.attributes.getNamedItem('Angle') != null) {\n newPlace._camParams.angle = parseFloat(place.attributes.getNamedItem('Angle').nodeValue);\n }\n if (place.attributes.getNamedItem('Opacity') != null) {\n newPlace._camParams.opacity = parseFloat(place.attributes.getNamedItem('Opacity').nodeValue);\n }\n else {\n newPlace._camParams.opacity = 100;\n }\n newPlace.set_target(65536);\n if (place.attributes.getNamedItem('Target') != null) {\n newPlace.set_target(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('SolarSystemObjects', place.attributes.getNamedItem('Target').nodeValue));\n }\n if (place.attributes.getNamedItem('ViewTarget') != null) {\n newPlace._camParams.viewTarget = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.parse(place.attributes.getNamedItem('ViewTarget').nodeValue);\n }\n if (place.attributes.getNamedItem('TargetReferenceFrame') != null) {\n newPlace._camParams.targetReferenceFrame = place.attributes.getNamedItem('TargetReferenceFrame').nodeValue;\n }\n var descriptionNode = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(place, 'Description');\n if (descriptionNode != null) {\n newPlace.htmlDescription = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.getInnerText(descriptionNode);\n }\n var backgroundImageSet = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(place, 'BackgroundImageSet');\n if (backgroundImageSet != null) {\n var imageSet = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(backgroundImageSet, 'ImageSet');\n newPlace._backgroundImageSet = _imageset_js__WEBPACK_IMPORTED_MODULE_10__.Imageset.fromXMLNode(imageSet);\n }\n var study = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(place, 'ForegroundImageSet');\n if (study != null) {\n var imageSet = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(study, 'ImageSet');\n newPlace._studyImageset = _imageset_js__WEBPACK_IMPORTED_MODULE_10__.Imageset.fromXMLNode(imageSet);\n }\n study = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(place, 'ImageSet');\n if (study != null) {\n newPlace._studyImageset = _imageset_js__WEBPACK_IMPORTED_MODULE_10__.Imageset.fromXMLNode(study);\n }\n return newPlace;\n};\n\nPlace._properCaps = function (name) {\n var list = name.split(' ');\n var ProperName = '';\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(list);\n while ($enum1.moveNext()) {\n var part = $enum1.current;\n ProperName = ProperName + part.substr(0, 1).toUpperCase() + ((part.length > 1) ? part.substr(1).toLowerCase() : '') + ' ';\n }\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(ProperName);\n};\n\nvar Place$ = {\n get_tag: function () {\n return this._tag;\n },\n\n set_tag: function (value) {\n this._tag = value;\n return value;\n },\n\n get_url: function () {\n return this._url;\n },\n\n set_url: function (value) {\n this._url = value;\n return value;\n },\n\n get_thumbnail: function () {\n return this._thumbnail;\n },\n\n set_thumbnail: function (value) {\n this._thumbnail = value;\n return value;\n },\n\n get_name: function () {\n return this.get_names()[0];\n },\n\n get_names: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._name)) {\n return ''.split(';');\n }\n return this._name.split(';');\n },\n\n set_names: function (value) {\n this._name = _ui_tools_js__WEBPACK_IMPORTED_MODULE_7__.UiTools.getNamesStringFromArray(value);\n return value;\n },\n\n get_camParams: function () {\n if (this.get_classification() === 536870912 && this._camParams.target !== 20) {\n var raDec = _planets_js__WEBPACK_IMPORTED_MODULE_11__.Planets.getPlanetLocation(this.get_name());\n this._camParams.set_RA(raDec.RA);\n this._camParams.set_dec(raDec.dec);\n this._distnace = raDec.distance;\n }\n return this._camParams;\n },\n\n set_camParams: function (value) {\n this._camParams = value;\n return value;\n },\n\n updatePlanetLocation: function (jNow) {\n this._camParams.viewTarget = _planets_js__WEBPACK_IMPORTED_MODULE_11__.Planets.getPlanet3dLocationJD(this.get_target(), jNow);\n if (this.get_target() !== 65536 && this.get_target() !== 20) {\n this._camParams.viewTarget = _planets_js__WEBPACK_IMPORTED_MODULE_11__.Planets.getPlanetTargetPoint(this.get_target(), this.get_lat(), this.get_lng(), jNow);\n }\n },\n\n get_location3d: function () {\n if (this.get_classification() === 536870912 || (!this._location3d.x && !this._location3d.y && !this._location3d.z)) {\n this._location3d = _coordinates_js__WEBPACK_IMPORTED_MODULE_9__.Coordinates.raDecTo3d(this.get_RA(), this.get_dec());\n }\n return this._location3d;\n },\n\n get_lat: function () {\n return this.get_camParams().lat;\n },\n\n set_lat: function (value) {\n this._camParams.lat = value;\n return value;\n },\n\n get_lng: function () {\n return this.get_camParams().lng;\n },\n\n set_lng: function (value) {\n this._camParams.lng = value;\n return value;\n },\n\n get_opacity: function () {\n return this.get_camParams().opacity;\n },\n\n set_opacity: function (value) {\n this._camParams.opacity = value;\n return value;\n },\n\n get_constellation: function () {\n return this._constellation;\n },\n\n set_constellation: function (value) {\n this._constellation = value;\n return value;\n },\n\n get_classification: function () {\n return this._classification;\n },\n\n set_classification: function (value) {\n this._classification = value;\n return value;\n },\n\n get_type: function () {\n return this._type;\n },\n\n set_type: function (value) {\n this._type = value;\n return value;\n },\n\n get_magnitude: function () {\n return this._magnitude;\n },\n\n set_magnitude: function (value) {\n this._magnitude = value;\n return value;\n },\n\n get_distance: function () {\n return this._distnace;\n },\n\n set_distance: function (value) {\n this._distnace = value;\n return value;\n },\n\n get_zoomLevel: function () {\n return this.get_camParams().zoom;\n },\n\n set_zoomLevel: function (value) {\n this._camParams.zoom = value;\n return value;\n },\n\n get_annotation: function () {\n return this.annotation;\n },\n\n set_annotation: function (value) {\n this.annotation = value;\n return value;\n },\n\n get_studyImageset: function () {\n return this._studyImageset;\n },\n\n set_studyImageset: function (value) {\n this._studyImageset = value;\n return value;\n },\n\n get_backgroundImageset: function () {\n return this._backgroundImageSet;\n },\n\n set_backgroundImageset: function (value) {\n if (value != null) {\n this.set_type(value.get_dataSetType());\n }\n this._backgroundImageSet = value;\n return value;\n },\n\n get_searchDistance: function () {\n return this._searchDistance;\n },\n\n set_searchDistance: function (value) {\n this._searchDistance = value;\n return value;\n },\n\n get_elevation: function () {\n return this._elevation;\n },\n\n set_elevation: function (value) {\n this._elevation = value;\n return value;\n },\n\n get_thumbnailUrl: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._thumbnailField)) {\n if (this._studyImageset != null && !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._studyImageset.get_thumbnailUrl())) {\n return this._studyImageset.get_thumbnailUrl();\n }\n if (this._backgroundImageSet != null && !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._backgroundImageSet.get_thumbnailUrl())) {\n return this._backgroundImageSet.get_thumbnailUrl();\n }\n var name = this.get_name();\n if (name.indexOf(';') > -1) {\n name = name.substr(0, name.indexOf(';'));\n }\n if (this.get_classification() === 1 || _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.freestandingMode) {\n return _url_helpers_js__WEBPACK_IMPORTED_MODULE_8__.URLHelpers.singleton.engineAssetUrl('thumb_star.jpg');\n }\n return _url_helpers_js__WEBPACK_IMPORTED_MODULE_8__.URLHelpers.singleton.coreStaticUrl('wwtweb/thumbnail.aspx?name=' + name.toLowerCase());\n }\n return this._thumbnailField;\n },\n\n set_thumbnailUrl: function (value) {\n this._thumbnailField = value;\n return value;\n },\n\n get_RA: function () {\n return this.get_camParams().get_RA();\n },\n\n set_RA: function (value) {\n this._camParams.set_RA(value);\n return value;\n },\n\n get_dec: function () {\n return this.get_camParams().get_dec();\n },\n\n set_dec: function (value) {\n this._camParams.set_dec(value);\n return value;\n },\n\n toString: function () {\n return this._name;\n },\n\n _saveToXml: function (xmlWriter, elementName) {\n xmlWriter._writeStartElement(elementName);\n xmlWriter._writeAttributeString('Name', this._name);\n xmlWriter._writeAttributeString('DataSetType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('ImageSetType', this._type));\n if (this.get_type() === 2) {\n xmlWriter._writeAttributeString('RA', this._camParams.get_RA().toString());\n xmlWriter._writeAttributeString('Dec', this._camParams.get_dec().toString());\n } else {\n xmlWriter._writeAttributeString('Lat', this.get_lat().toString());\n xmlWriter._writeAttributeString('Lng', this.get_lng().toString());\n }\n xmlWriter._writeAttributeString('Constellation', this._constellation);\n xmlWriter._writeAttributeString('Classification', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('Classification', this._classification));\n xmlWriter._writeAttributeString('Magnitude', this._magnitude.toString());\n xmlWriter._writeAttributeString('Distance', this._distnace.toString());\n xmlWriter._writeAttributeString('AngularSize', this.angularSize.toString());\n xmlWriter._writeAttributeString('ZoomLevel', this.get_zoomLevel().toString());\n xmlWriter._writeAttributeString('Rotation', this._camParams.rotation.toString());\n xmlWriter._writeAttributeString('Angle', this._camParams.angle.toString());\n xmlWriter._writeAttributeString('Opacity', this._camParams.opacity.toString());\n xmlWriter._writeAttributeString('Target', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('SolarSystemObjects', this.get_target()));\n xmlWriter._writeAttributeString('ViewTarget', this._camParams.viewTarget.toString());\n xmlWriter._writeAttributeString('TargetReferenceFrame', this._camParams.targetReferenceFrame);\n xmlWriter._writeStartElement('Description');\n xmlWriter._writeCData(this.htmlDescription);\n xmlWriter._writeEndElement();\n if (this._backgroundImageSet != null) {\n xmlWriter._writeStartElement('BackgroundImageSet');\n _imageset_js__WEBPACK_IMPORTED_MODULE_10__.Imageset.saveToXml(xmlWriter, this._backgroundImageSet, '');\n xmlWriter._writeEndElement();\n }\n if (this._studyImageset != null) {\n _imageset_js__WEBPACK_IMPORTED_MODULE_10__.Imageset.saveToXml(xmlWriter, this._studyImageset, '');\n }\n xmlWriter._writeEndElement();\n },\n\n get_bounds: function () {\n return this._bounds;\n },\n\n set_bounds: function (value) {\n this._bounds = value;\n return value;\n },\n\n get_isImage: function () {\n return this._studyImageset != null || this._backgroundImageSet != null;\n },\n\n get_isTour: function () {\n return false;\n },\n\n get_isFolder: function () {\n return false;\n },\n\n get_children: function () {\n return [];\n },\n\n get_readOnly: function () {\n return true;\n },\n\n get_target: function () {\n return this._camParams.target;\n },\n\n set_target: function (value) {\n this._camParams.target = value;\n return value;\n },\n\n get_isCloudCommunityItem: function () {\n return false;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Place\", [Place, Place$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_6__.IThumbnail, _interfaces_js__WEBPACK_IMPORTED_MODULE_6__.IPlace]);\n\n(0,_data_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_createPlace)(Place.create);\n\n\n/***/ }),\n\n/***/ \"./esm/planets.js\":\n/*!************************!*\\\n !*** ./esm/planets.js ***!\n \\************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BodyAngles: () => (/* binding */ BodyAngles),\n/* harmony export */ KeplerianElements: () => (/* binding */ KeplerianElements),\n/* harmony export */ Planets: () => (/* binding */ Planets)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _astrocalc_earth_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./astrocalc/earth.js */ \"./esm/astrocalc/earth.js\");\n/* harmony import */ var _astrocalc_mercury_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./astrocalc/mercury.js */ \"./esm/astrocalc/mercury.js\");\n/* harmony import */ var _astrocalc_venus_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./astrocalc/venus.js */ \"./esm/astrocalc/venus.js\");\n/* harmony import */ var _astrocalc_mars_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./astrocalc/mars.js */ \"./esm/astrocalc/mars.js\");\n/* harmony import */ var _astrocalc_jupiter_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./astrocalc/jupiter.js */ \"./esm/astrocalc/jupiter.js\");\n/* harmony import */ var _astrocalc_saturn_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./astrocalc/saturn.js */ \"./esm/astrocalc/saturn.js\");\n/* harmony import */ var _astrocalc_uranus_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./astrocalc/uranus.js */ \"./esm/astrocalc/uranus.js\");\n/* harmony import */ var _astrocalc_neptune_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./astrocalc/neptune.js */ \"./esm/astrocalc/neptune.js\");\n/* harmony import */ var _astrocalc_pluto_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./astrocalc/pluto.js */ \"./esm/astrocalc/pluto.js\");\n/* harmony import */ var _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./astrocalc/galilean_moons.js */ \"./esm/astrocalc/galilean_moons.js\");\n/* harmony import */ var _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./astrocalc/moon.js */ \"./esm/astrocalc/moon.js\");\n/* harmony import */ var _astrocalc_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./astrocalc.js */ \"./esm/astrocalc.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./graphics/sprite2d.js */ \"./esm/graphics/sprite2d.js\");\n/* harmony import */ var _baseplanets_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./baseplanets.js */ \"./esm/baseplanets.js\");\n/* harmony import */ var _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./camera_parameters.js */ \"./esm/camera_parameters.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The main planet-related code.\n//\n// This does not include the 3D planet-rendering code, which has been separated\n// into `planets_3d.js`.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.KeplerianElements\n//\n// Keplerian elements defined here use eccentric anomaly instead of mean anomaly\n// and have all orbital plane angles converted to a rotation matrix.\nfunction KeplerianElements() {\n this.a = 0;\n this.e = 0;\n this.ea = 0;\n}\n\nvar KeplerianElements$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"KeplerianElements\", [KeplerianElements, KeplerianElements$, null]);\n\n\n// wwtlib.BodyAngles\n\nfunction BodyAngles(poleRa, poleDec, primeMeridian, rotationRate) {\n this.poleDec = 0;\n this.poleRa = 0;\n this.primeMeridian = 0;\n this.rotationRate = 0;\n this.poleDec = poleDec;\n this.poleRa = poleRa;\n this.primeMeridian = primeMeridian;\n this.rotationRate = rotationRate;\n}\n\nvar BodyAngles$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"BodyAngles\", [BodyAngles, BodyAngles$, null]);\n\n\n// wwtlib.Planets\n\nfunction Planets() { }\n\nPlanets.RC = (Math.PI / 180);\nPlanets._jNow = 0;\n\n// Values taken from version 10 of the SPICE planetary constants file, updated\n// October 21, 2011: ftp://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/pck00010.tpc\n//\n// Precession rates for rotation angles are currently not stored.\n//\n// All angles are in degrees.\nPlanets._planetAngles = [\n new BodyAngles(286.13, 63.87, 84.176, 14.1844),\n new BodyAngles(281.0097, 61.4143, 329.548, 6.1385025),\n new BodyAngles(272.76, 67.16, 160.2, -1.4813688),\n new BodyAngles(317.68143, 52.8865, 176.63, 350.89198226),\n new BodyAngles(268.056595, 64.495303, 284.95, 870.536),\n new BodyAngles(40.589, 83.537, 38.9, 810.7939024),\n new BodyAngles(257.311, -15.175, 203.81, 501.1600928),\n new BodyAngles(299.36, 43.46, 253.18, 536.3128492),\n new BodyAngles(132.993, -6.163, 302.695, 56.3625225),\n new BodyAngles(269.9949, 66.5392, 38.3213, 13.17635815),\n new BodyAngles(268.05, 64.5, 200.39, 203.4889538),\n new BodyAngles(268.08, 64.51, 36.022, 101.3747235),\n new BodyAngles(268.2, 64.57, 44.064, 50.3176081),\n new BodyAngles(268.72, 64.83, 259.51, 21.5710715),\n new BodyAngles(0, 0, 0, 0),\n new BodyAngles(0, 0, 0, 0),\n new BodyAngles(0, 0, 0, 0),\n new BodyAngles(0, 0, 0, 0),\n new BodyAngles(0, 0, 0, 0),\n new BodyAngles(0, 90, 190.147, 360.9856235)\n];\nPlanets._lastPlanetCenterID = -2;\nPlanets._orbitalSampleRate = 256;\nPlanets._obliquity = 23.5 * Planets.RC;\nPlanets._drawOrder = {};\nPlanets.earthMatrix = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d();\nPlanets.earthMatrixInv = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d();\nPlanets._lastUpdate = new Date();\nPlanets._planetSprite = new _graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_16__.Sprite2d();\nPlanets._planetPoints = null;\nPlanets._planet3dLocations = null;\n\n// This function is equivalent to `Texture.from_url` and not specific to the\n// Planets infrastructure at all. It should go away. But at the moment, we\n// preserve it so as not to break API.\nPlanets.loadPlanetTexture = function (url) {\n var texture = new _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture();\n texture.load(url);\n return texture;\n};\n\nPlanets.getPlanet3dLocation = function (target) {\n try {\n if (target < 21) {\n return Planets._planet3dLocations[target].copy();\n }\n }\n catch ($e1) { }\n return _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, 0);\n};\n\nPlanets.getPlanet3dSufaceAltitude = function (target) {\n try {\n if (target < 21) {\n return Planets.getAdjustedPlanetRadius(target);\n }\n }\n catch ($e1) { }\n return 0;\n};\n\nPlanets.getPlanetTargetPoint = function (target, lat, lng, jNow) {\n var temp;\n if (!jNow) {\n temp = Planets.getPlanet3dLocation(target);\n }\n else {\n temp = Planets.getPlanet3dLocationJD(target, jNow);\n }\n temp.add(_coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3dAu((lng / 15) + 6, lat, Planets.getPlanet3dSufaceAltitude(target)));\n return temp;\n};\n\nPlanets.getPlanet3dLocationJD = function (target, jNow) {\n try {\n var result = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var centerRaDec = _astrocalc_js__WEBPACK_IMPORTED_MODULE_14__.AstroCalc.getPlanet(jNow, 0, 0, 0, -6378149);\n var center = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3dAu(centerRaDec.RA, centerRaDec.dec, centerRaDec.distance);\n if (target === _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth) {\n result = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-center.x, -center.y, -center.z);\n } else {\n var planet = _astrocalc_js__WEBPACK_IMPORTED_MODULE_14__.AstroCalc.getPlanet(jNow, target, 0, 0, -6378149);\n result = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3dAu(planet.RA, planet.dec, planet.distance);\n result.subtract(center);\n }\n result.rotateX(_coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.meanObliquityOfEcliptic(jNow) * Planets.RC);\n if (_settings_js__WEBPACK_IMPORTED_MODULE_21__.Settings.get_active().get_solarSystemScale() !== 1) {\n switch (target) {\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.moon:\n var parent = Planets.getPlanet3dLocationJD(_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth, jNow);\n result.subtract(parent);\n result.multiply(_settings_js__WEBPACK_IMPORTED_MODULE_21__.Settings.get_active().get_solarSystemScale() / 2);\n result.add(parent);\n break;\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.io:\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.europa:\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.ganymede:\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.callisto:\n var parent = Planets.getPlanet3dLocationJD(_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.jupiter, jNow);\n result.subtract(parent);\n result.multiply(_settings_js__WEBPACK_IMPORTED_MODULE_21__.Settings.get_active().get_solarSystemScale());\n result.add(parent);\n break;\n default:\n break;\n }\n }\n return result;\n }\n catch ($e1) {\n return _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, 0);\n }\n};\n\nPlanets.getPlanetLocation = function (name) {\n var id = Planets.getPlanetIDFromName(name);\n if (Planets._planetLocations != null) {\n return Planets._planetLocations[id];\n }\n else {\n return _astrocalc_js__WEBPACK_IMPORTED_MODULE_14__.AstroCalc.getPlanet(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_jNow(), id, _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_location().get_lat(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_location().get_lng(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_altitude());\n }\n};\n\nPlanets.getPlanetLocationJD = function (name, jNow) {\n var id = Planets.getPlanetIDFromName(name);\n return _astrocalc_js__WEBPACK_IMPORTED_MODULE_14__.AstroCalc.getPlanet(jNow, id, _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_location().get_lat(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_location().get_lng(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_altitude());\n};\n\nPlanets.getPlanetIDFromName = function (planetName) {\n switch (planetName) {\n case 'Sun':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.sun;\n case 'Mercury':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.mercury;\n case 'Venus':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.venus;\n case 'Mars':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.mars;\n case 'Jupiter':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.jupiter;\n case 'Saturn':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.saturn;\n case 'Uranus':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.uranus;\n case 'Neptune':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.neptune;\n case 'Pluto':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.pluto;\n case 'Moon':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.moon;\n case 'Io':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.io;\n case 'Europa':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.europa;\n case 'Ganymede':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.ganymede;\n case 'Callisto':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.callisto;\n case 'Earth':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth;\n case 'IoShadow':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.ioShadow;\n case 'EuropaShadow':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.europaShadow;\n case 'GanymedeShadow':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.ganymedeShadow;\n case 'CallistoShadow':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.callistoShadow;\n case 'SunEclipsed':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.sunEclipsed;\n case 'Custom':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.custom;\n case 'Undefined':\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.undefined;\n default:\n return -1;\n }\n};\n\nPlanets.getNameFrom3dId = function (id) {\n switch (id) {\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.sun:\n return 'Sun';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.mercury:\n return 'Mercury';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.venus:\n return 'Venus';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.mars:\n return 'Mars';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.jupiter:\n return 'Jupiter';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.saturn:\n return 'Saturn';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.uranus:\n return 'Uranus';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.neptune:\n return 'Neptune';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.pluto:\n return 'Pluto';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.moon:\n return 'Moon';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.io:\n return 'Io';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.europa:\n return 'Europa';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.ganymede:\n return 'Ganymede';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.callisto:\n return 'Callisto';\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth:\n return 'Earth';\n default:\n return '';\n }\n};\n\nPlanets.updatePlanetLocations = function (threeDee) {\n Planets._jNow = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_jNow();\n if (threeDee) {\n Planets.updateOrbits(0);\n }\n if (Planets._planetDiameters == null) {\n Planets._planetDiameters = new Array(20);\n Planets._planetDiameters[0] = 0.009291568;\n Planets._planetDiameters[1] = 3.25794793734425E-05;\n Planets._planetDiameters[2] = 8.08669220531394E-05;\n Planets._planetDiameters[3] = 4.53785605596396E-05;\n Planets._planetDiameters[4] = 0.000954501;\n Planets._planetDiameters[5] = 0.000802173;\n Planets._planetDiameters[6] = 0.000339564;\n Planets._planetDiameters[7] = 0.000324825;\n Planets._planetDiameters[8] = 1.52007379777805E-05;\n Planets._planetDiameters[9] = 2.32084653538149E-05;\n Planets._planetDiameters[10] = 2.43519298386342E-05;\n Planets._planetDiameters[11] = 2.08692629580609E-05;\n Planets._planetDiameters[12] = 3.51742670356556E-05;\n Planets._planetDiameters[13] = 3.22263666626559E-05;\n Planets._planetDiameters[14] = 2.43519298386342E-05;\n Planets._planetDiameters[15] = 2.08692629580609E-05;\n Planets._planetDiameters[16] = 3.51742670356556E-05;\n Planets._planetDiameters[17] = 3.22263666626559E-05;\n Planets._planetDiameters[18] = 0.009291568 * 2;\n Planets._planetDiameters[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth] = 8.55626412117809E-05;\n }\n if (Planets.planetColors == null) {\n var lightYellow = _color_js__WEBPACK_IMPORTED_MODULE_19__.Color.fromArgb(255, 255, 255, 221);\n var orangeRed = _color_js__WEBPACK_IMPORTED_MODULE_19__.Color.fromArgb(255, 255, 68, 0);\n Planets.planetColors = new Array(20);\n Planets.planetColors[0] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_yellow();\n Planets.planetColors[1] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets.planetColors[2] = lightYellow;\n Planets.planetColors[3] = orangeRed;\n Planets.planetColors[4] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Color.fromArgb(255, 255, 165, 0);\n Planets.planetColors[5] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Color.fromArgb(255, 184, 134, 11);\n Planets.planetColors[6] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Color.fromArgb(255, 173, 216, 230);\n Planets.planetColors[7] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_blue();\n Planets.planetColors[8] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets.planetColors[9] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets.planetColors[10] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets.planetColors[11] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets.planetColors[12] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets.planetColors[13] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets.planetColors[14] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_black();\n Planets.planetColors[15] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_black();\n Planets.planetColors[16] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_black();\n Planets.planetColors[17] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_black();\n Planets.planetColors[18] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets.planetColors[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth] = _color_js__WEBPACK_IMPORTED_MODULE_19__.Color.fromArgb(255, 173, 216, 230);\n }\n if (Planets._planetTilts == null) {\n Planets._planetTilts = new Array(20);\n Planets._planetTilts[0] = 0;\n Planets._planetTilts[1] = 0.01;\n Planets._planetTilts[2] = 177.4;\n Planets._planetTilts[3] = 25.19;\n Planets._planetTilts[4] = 3.13;\n Planets._planetTilts[5] = 26.73;\n Planets._planetTilts[6] = 97.77;\n Planets._planetTilts[7] = 28.32;\n Planets._planetTilts[8] = 119.61;\n Planets._planetTilts[9] = 23.439;\n Planets._planetTilts[10] = 2.21;\n Planets._planetTilts[11] = 0;\n Planets._planetTilts[12] = -0.33;\n Planets._planetTilts[13] = 0;\n Planets._planetTilts[14] = 0;\n Planets._planetTilts[15] = 0;\n Planets._planetTilts[16] = 0;\n Planets._planetTilts[17] = 0;\n Planets._planetTilts[18] = 0;\n Planets._planetTilts[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth] = 23.5;\n }\n Planets._planetTilts[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth] = Planets._obliquity / Planets.RC;\n if (Planets.planetRotationPeriod == null) {\n Planets.planetRotationPeriod = new Array(20);\n Planets.planetRotationPeriod[0] = 25.37995;\n Planets.planetRotationPeriod[1] = 58.6462;\n Planets.planetRotationPeriod[2] = -243.0187;\n Planets.planetRotationPeriod[3] = 1.02595675;\n Planets.planetRotationPeriod[4] = 0.41007;\n Planets.planetRotationPeriod[5] = 0.426;\n Planets.planetRotationPeriod[6] = -0.71833;\n Planets.planetRotationPeriod[7] = 0.67125;\n Planets.planetRotationPeriod[8] = -6.38718;\n Planets.planetRotationPeriod[9] = 27.3;\n Planets.planetRotationPeriod[10] = 1.769137786;\n Planets.planetRotationPeriod[11] = 3.551;\n Planets.planetRotationPeriod[12] = 7.155;\n Planets.planetRotationPeriod[13] = 16.69;\n Planets.planetRotationPeriod[14] = 0;\n Planets.planetRotationPeriod[15] = 0;\n Planets.planetRotationPeriod[16] = 0;\n Planets.planetRotationPeriod[17] = 0;\n Planets.planetRotationPeriod[18] = 0;\n Planets.planetRotationPeriod[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth] = 0.99726968;\n }\n if (Planets._planetScales == null) {\n Planets._planetScales = new Array(20);\n }\n if (Planets._planet3dLocations == null) {\n Planets._planet3dLocations = new Array(20);\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_21__.Settings.get_active().get_actualPlanetScale()) {\n Planets._planetScales[0] = 0.5;\n Planets._planetScales[1] = 0.25;\n Planets._planetScales[2] = 0.25;\n Planets._planetScales[3] = 0.25;\n Planets._planetScales[4] = 0.25;\n Planets._planetScales[5] = 0.5;\n Planets._planetScales[6] = 0.25;\n Planets._planetScales[7] = 0.25;\n Planets._planetScales[8] = 0.25;\n Planets._planetScales[9] = 0.25;\n Planets._planetScales[10] = 0.25;\n Planets._planetScales[11] = 0.25;\n Planets._planetScales[12] = 0.25;\n Planets._planetScales[13] = 0.25;\n Planets._planetScales[14] = 0.25;\n Planets._planetScales[15] = 0.25;\n Planets._planetScales[16] = 0.25;\n Planets._planetScales[17] = 0.25;\n Planets._planetScales[18] = 0.5;\n Planets._planetScales[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth] = 0.25;\n }\n else {\n for (var i = 0; i < 20; i++) {\n if (i < 10) {\n Planets._planetScales[i] = 0.25;\n }\n else {\n Planets._planetScales[i] = 0.1;\n }\n }\n\n // Make Sun and Saturn bigger\n Planets._planetScales[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.sun] = 0.5;\n Planets._planetScales[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.saturn] = 0.5;\n Planets._planetScales[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.sunEclipsed] = 0.5;\n }\n Planets._planetDrawOrder = {};\n Planets._planetLocations = new Array(20);\n var center = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var planetCenter = 0;\n if (planetCenter > -1) {\n var centerRaDec = _astrocalc_js__WEBPACK_IMPORTED_MODULE_14__.AstroCalc.getPlanet(Planets._jNow, planetCenter, (threeDee) ? 0 : _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_location().get_lat(), (threeDee) ? 0 : _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_location().get_lng(), (threeDee) ? -6378149 : _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_altitude());\n center = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3dAu(centerRaDec.RA, centerRaDec.dec, centerRaDec.distance);\n }\n Planets._planet3dLocations[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth] = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-center.x, -center.y, -center.z);\n Planets._planet3dLocations[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth].rotateX(Planets._obliquity);\n for (var i = 0; i < 18; i++) {\n Planets._planetLocations[i] = _astrocalc_js__WEBPACK_IMPORTED_MODULE_14__.AstroCalc.getPlanet(Planets._jNow, i, (threeDee) ? 0 : _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_location().get_lat(), (threeDee) ? 0 : _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_location().get_lng(), (threeDee) ? -6378149 : _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_altitude());\n Planets._planet3dLocations[i] = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3dAu(Planets._planetLocations[i].RA, Planets._planetLocations[i].dec, Planets._planetLocations[i].distance);\n Planets._planet3dLocations[i].subtract(center);\n Planets._planet3dLocations[i].rotateX(Planets._obliquity);\n if (_settings_js__WEBPACK_IMPORTED_MODULE_21__.Settings.get_active().get_actualPlanetScale()) {\n Planets._planetScales[i] = (2 * Math.atan(0.5 * (Planets._planetDiameters[i] / Planets._planetLocations[i].distance))) / Math.PI * 180;\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_21__.Settings.get_active().get_solarSystemScale() !== 1) {\n var id = i;\n switch (id) {\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.moon:\n var parent = Planets._planet3dLocations[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth];\n Planets._planet3dLocations[i].subtract(parent);\n Planets._planet3dLocations[i].multiply(_settings_js__WEBPACK_IMPORTED_MODULE_21__.Settings.get_active().get_solarSystemScale() / 2);\n Planets._planet3dLocations[i].add(parent);\n break;\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.io:\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.europa:\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.ganymede:\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.callisto:\n var parent = Planets._planet3dLocations[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.jupiter];\n Planets._planet3dLocations[i].subtract(parent);\n Planets._planet3dLocations[i].multiply(_settings_js__WEBPACK_IMPORTED_MODULE_21__.Settings.get_active().get_solarSystemScale());\n Planets._planet3dLocations[i].add(parent);\n break;\n default:\n break;\n }\n }\n var finalDistance = -Planets._planetLocations[i].distance;\n while (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(Planets._planetDrawOrder, finalDistance)) {\n finalDistance += 1E-10;\n }\n Planets._planetDrawOrder[finalDistance] = i;\n }\n Planets._planetLocations[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.sunEclipsed] = Planets._planetLocations[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.sun];\n Planets._planetScales[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.sun] *= 2;\n Planets._planetScales[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.sunEclipsed] = Planets._planetScales[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.sun];\n Planets._planetScales[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.saturn] = Planets._planetScales[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.saturn] * 2;\n Planets._lastUpdate = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_now();\n};\n\nPlanets.planetsReady = function () { };\n\nPlanets.updateOrbits = function (planetCenter) {\n try {\n Planets._obliquity = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.meanObliquityOfEcliptic(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_jNow()) * Planets.RC;\n if (planetCenter !== Planets._lastPlanetCenterID) {\n Planets._orbits = null;\n }\n Planets._lastPlanetCenterID = planetCenter;\n if (Planets._orbits == null) {\n if (planetCenter < 0) {\n Planets._eclipticTilt = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n }\n else {\n Planets._eclipticTilt = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n Planets._eclipticTilt = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(Planets._obliquity);\n }\n if (Planets.planetOrbitalYears == null) {\n Planets.planetOrbitalYears = new Array(20);\n Planets.planetOrbitalYears[0] = 1;\n Planets.planetOrbitalYears[1] = 0.241;\n Planets.planetOrbitalYears[2] = 0.615;\n Planets.planetOrbitalYears[3] = 1.881;\n Planets.planetOrbitalYears[4] = 11.87;\n Planets.planetOrbitalYears[5] = 29.45;\n Planets.planetOrbitalYears[6] = 84.07;\n Planets.planetOrbitalYears[7] = 164.9;\n Planets.planetOrbitalYears[8] = 248.1;\n Planets.planetOrbitalYears[9] = 27.3 / 365.25;\n Planets.planetOrbitalYears[10] = 16.6890184 / 365.25;\n Planets.planetOrbitalYears[11] = 3.551181 / 365.25;\n Planets.planetOrbitalYears[12] = 7.15455296 / 365.25;\n Planets.planetOrbitalYears[13] = 16.6890184 / 365.25;\n Planets.planetOrbitalYears[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth] = 1;\n }\n if (!Planets.readOrbits()) {\n Planets._orbits = new Array(20);\n for (var i = 1; i < 20; i++) {\n Planets._orbits[i] = new Array(Planets._orbitalSampleRate);\n if (i < 9 || i === _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth) {\n for (var j = 0; j < Planets._orbitalSampleRate; j++) {\n var centerId = planetCenter;\n var now = Planets._jNow + ((Planets.planetOrbitalYears[i] * 365.25 / Planets._orbitalSampleRate) * (j - (Planets._orbitalSampleRate / 2)));\n var center = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n if (i === _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.moone) {\n centerId = -1;\n }\n else if (i > 9 && i < 14) {\n centerId = 4;\n }\n if (centerId > -1) {\n var centerRaDec = _astrocalc_js__WEBPACK_IMPORTED_MODULE_14__.AstroCalc.getPlanet(now, centerId, 0, 0, -6378149);\n center = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3dAu(centerRaDec.RA, centerRaDec.dec, centerRaDec.distance);\n }\n if (i !== _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth) {\n var planetRaDec = _astrocalc_js__WEBPACK_IMPORTED_MODULE_14__.AstroCalc.getPlanet(now, i, 0, 0, -6378149);\n Planets._orbits[i][j] = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3dAu(planetRaDec.RA, planetRaDec.dec, planetRaDec.distance);\n Planets._orbits[i][j].subtract(center);\n }\n else {\n Planets._orbits[i][j] = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-center.x, -center.y, -center.z);\n }\n Planets._orbits[i][j].rotateX(Planets._obliquity);\n }\n Planets._orbits[i][Planets._orbitalSampleRate - 1] = Planets._orbits[i][0];\n }\n }\n Planets.dumpOrbitsFile();\n }\n }\n }\n finally { }\n};\n\nPlanets.readOrbits = function () {\n // This function ought to fetch wwtweb/catalog.aspx?Q=orbitsbin and set\n // `orbits`, see Windows client code.\n return false;\n};\n\nPlanets.dumpOrbitsFile = function () { };\n\nPlanets.drawPlanets = function (renderContext, opacity) {\n if (Planets._planetTextures == null) {\n Planets._loadPlanetTextures();\n }\n\n // Get Moon Phase\n\n var elong = Planets._geocentricElongation(Planets._planetLocations[9].RA, Planets._planetLocations[9].dec, Planets._planetLocations[0].RA, Planets._planetLocations[0].dec);\n var raDif = Planets._planetLocations[9].RA - Planets._planetLocations[0].RA;\n if (Planets._planetLocations[9].RA < Planets._planetLocations[0].RA) {\n raDif += 24;\n }\n var phaseAngle = Planets._phaseAngle(elong, Planets._planetLocations[9].distance, Planets._planetLocations[0].distance);\n var limbAngle = Planets._positionAngle(Planets._planetLocations[9].RA, Planets._planetLocations[9].dec, Planets._planetLocations[0].RA, Planets._planetLocations[0].dec);\n if (raDif < 12) {\n phaseAngle += 180;\n }\n\n // Check for solar eclipse\n\n var dista = (Math.abs(Planets._planetLocations[9].RA - Planets._planetLocations[0].RA) * 15) * Math.cos(_coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.degreesToRadians(Planets._planetLocations[0].dec));\n var distb = Math.abs(Planets._planetLocations[9].dec - Planets._planetLocations[0].dec);\n var sunMoonDist = Math.sqrt(dista * dista + distb * distb);\n var eclipse = false;\n var coronaOpacity = 0;\n var moonEffect = (Planets._planetScales[9] / 2 - sunMoonDist);\n var darkLimb = Math.min(32, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((sunMoonDist * 32)));\n if (moonEffect > (Planets._planetScales[0] / 4)) {\n eclipse = true;\n coronaOpacity = Math.min(1, (moonEffect - (Planets._planetScales[0] / 2)) / 0.001);\n Planets._drawPlanet(renderContext, 18, coronaOpacity);\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(Planets._planetDrawOrder));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var planetId = Planets._planetDrawOrder[key];\n Planets._drawPlanet(renderContext, planetId, 1);\n }\n return true;\n};\n\nPlanets._loadPlanetTextures = function () {\n // Note: these PNG files are fairly large and are loaded at\n // startup of the web client, adding nontrivially to the needed\n // network traffic. JPGs are a lot smaller, but unfortunately the\n // transparency support is important here since we don't want\n // black boxes surrounding all of our planets when they're viewed\n // in the sky.\n\n var baseUrl = _url_helpers_js__WEBPACK_IMPORTED_MODULE_23__.URLHelpers.singleton.engineAssetUrl('');\n\n Planets._planetTextures = new Array(20);\n Planets._planetTextures[0] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'sun.png');\n Planets._planetTextures[1] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'mercury.png');\n Planets._planetTextures[2] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'venus.png');\n Planets._planetTextures[3] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'mars.png');\n Planets._planetTextures[4] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'jupiter.png');\n Planets._planetTextures[5] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'saturn.png');\n Planets._planetTextures[6] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'uranus.png');\n Planets._planetTextures[7] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'neptune.png');\n Planets._planetTextures[8] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'pluto.png');\n Planets._planetTextures[9] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'moon.png');\n Planets._planetTextures[10] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'io.png');\n Planets._planetTextures[11] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'europa.png');\n Planets._planetTextures[12] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'ganymede.png');\n Planets._planetTextures[13] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'callisto.png');\n Planets._planetTextures[14] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'moonshadow.png');\n Planets._planetTextures[15] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'moonshadow.png');\n Planets._planetTextures[16] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'moonshadow.png');\n Planets._planetTextures[17] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'moonshadow.png');\n Planets._planetTextures[18] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'sunCorona.png');\n Planets._planetTextures[_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth] = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__.Texture.fromUrl(baseUrl + 'earth.png');\n};\n\n// Compute the rotation of a planet at the J2000 epoch.\n//\n// The rotation at some instant in can be computed by multiplying the\n// the returned matrix by Y(W * t)\nPlanets.getPlanetOrientationAtEpoch = function (planetID) {\n var m = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n\n // Rotational elements for the planets are in the form used by the\n // IAU Working Group on Cartographic Coordinates and Rotational Elements:\n //\n // a : Right ascension of north pole\n // d : Declination of north pole\n // W0 : Prime meridian angle at epoch J2000.0\n //\n // The canonical Euler angle sequence is: Z(a - 90) * X(90 - d) * Z(W0)\n //\n // The following transformations are required to convert it to a rotation for WWT:\n // * WWT uses a coordinate system with +Y = ecliptic north, +X = equinox of J2000\n // This system is rotated 90 degrees about the X axis from the standard ecliptic\n // system based on the Earth Mean Equinox of J2000 (EMEJ2000)\n // * WWT uses row vectors instead of column vectors, so the order of transformations\n // is reversed\n // * WWT has planet maps with longitude 0 at the edge rather than the middle. This\n // requires an extra 180 degrees to be added to W0\n var obliquityOfEcliptic = 23.4392794;\n\n if (planetID === _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth) {\n // Different calculation for Earth, since the meridian offset\n // is already included in the Mean Sidereal Time function.\n //\n // equatorial to ecliptic transformation\n m._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(obliquityOfEcliptic * Planets.RC));\n } else {\n // 90 degree rotation from WWT coord sys\n m._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(-90 * Planets.RC));\n\n m._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationZ((180 + Planets._planetAngles[planetID].primeMeridian) * Planets.RC));\n m._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX((90 - Planets._planetAngles[planetID].poleDec) * Planets.RC));\n m._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationZ((Planets._planetAngles[planetID].poleRa - 90) * Planets.RC));\n m._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(obliquityOfEcliptic * Planets.RC)); // equatorial to ecliptic transformation\n\n // 90 degree rotation back to WWT coord sys\n m._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(90 * Planets.RC));\n }\n return m;\n};\n\nPlanets.setupPlanetMatrix = function (renderContext, planetID, centerPoint, makeFrustum) {\n var matNonRotating = renderContext.get_world().clone();\n Planets._setupMatrixForPlanetGeometry(renderContext, planetID, centerPoint, makeFrustum);\n\n if (planetID === _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.sun) {\n // Don't apply the Sun's orientation to its non-rotating frame; this means that\n // the Sun's reference frame will be the ecliptic frame.\n var radius = Planets.getAdjustedPlanetRadius(planetID);\n matNonRotating.scale(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(radius, radius, radius));\n var translation = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(Planets._planet3dLocations[planetID], centerPoint);\n matNonRotating._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.translation(translation));\n renderContext.set_worldBaseNonRotating(matNonRotating);\n }\n};\n\nPlanets._setupMatrixForPlanetGeometry = function (renderContext, planetID, centerPoint, makeFrustum) {\n var radius = Planets.getAdjustedPlanetRadius(planetID);\n var rotationCurrent = 0;\n if (planetID === _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth) {\n rotationCurrent = Math.PI + _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.mstFromUTC2(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__.SpaceTimeController.get_now(), 0) / 180 * Math.PI;\n }\n else {\n rotationCurrent = Math.PI + (((Planets._jNow - 2451545) / Planets.planetRotationPeriod[planetID]) * Math.PI * 2) % (Math.PI * 2);\n }\n if (planetID === 9) {\n rotationCurrent -= Math.PI / 2;\n }\n var matLocal = renderContext.get_world().clone();\n var matNonRotating = renderContext.get_world().clone();\n var translation = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(Planets._planet3dLocations[planetID], centerPoint);\n var orientationAtEpoch = Planets.getPlanetOrientationAtEpoch(planetID);\n matLocal.scale(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(radius, radius, radius));\n matLocal._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY(-rotationCurrent));\n matLocal._multiply(orientationAtEpoch);\n if (planetID === renderContext.viewCamera.target) {\n Planets.earthMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n Planets.earthMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY(-rotationCurrent));\n Planets.earthMatrix._multiply(orientationAtEpoch);\n Planets.earthMatrixInv = Planets.earthMatrix.clone();\n Planets.earthMatrixInv.invert();\n }\n matLocal._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.translation(translation));\n renderContext.set_world(matLocal);\n renderContext.set_worldBase(renderContext.get_world().clone());\n renderContext.set_nominalRadius(Planets.getPlanetRadiusInMeters(planetID));\n if (makeFrustum) {\n renderContext.makeFrustum();\n }\n matNonRotating.scale(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(radius, radius, radius));\n matNonRotating._multiply(orientationAtEpoch);\n matNonRotating._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.translation(translation));\n renderContext.set_worldBaseNonRotating(matNonRotating);\n return rotationCurrent;\n};\n\n// Get the position of a Solar System object using a 'direct' calculation that\n// avoids including an aberration correction.\n//\n// The returned position is in ecliptic coordinate system with the origin at the center\n// of the parent body (i.e. the Sun for planets, a planet for moons). The position of moons\n// is _not_ modified by the SolarSystemScale, making it possible to use function to\n// a calculate valid Keplerian elements.\nPlanets.getPlanetPositionDirect = function (id, jd) {\n var L = 0;\n var B = 0;\n var R = 0;\n switch (id) {\n case 1:\n L = _astrocalc_mercury_js__WEBPACK_IMPORTED_MODULE_4__.CAAMercury.eclipticLongitude(jd);\n B = _astrocalc_mercury_js__WEBPACK_IMPORTED_MODULE_4__.CAAMercury.eclipticLatitude(jd);\n R = _astrocalc_mercury_js__WEBPACK_IMPORTED_MODULE_4__.CAAMercury.radiusVector(jd);\n break;\n case 2:\n L = _astrocalc_venus_js__WEBPACK_IMPORTED_MODULE_5__.CAAVenus.eclipticLongitude(jd);\n B = _astrocalc_venus_js__WEBPACK_IMPORTED_MODULE_5__.CAAVenus.eclipticLatitude(jd);\n R = _astrocalc_venus_js__WEBPACK_IMPORTED_MODULE_5__.CAAVenus.radiusVector(jd);\n break;\n case _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth:\n L = _astrocalc_earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.eclipticLongitude(jd);\n B = _astrocalc_earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.eclipticLatitude(jd);\n R = _astrocalc_earth_js__WEBPACK_IMPORTED_MODULE_3__.CAAEarth.radiusVector(jd);\n break;\n case 3:\n L = _astrocalc_mars_js__WEBPACK_IMPORTED_MODULE_6__.CAAMars.eclipticLongitude(jd);\n B = _astrocalc_mars_js__WEBPACK_IMPORTED_MODULE_6__.CAAMars.eclipticLatitude(jd);\n R = _astrocalc_mars_js__WEBPACK_IMPORTED_MODULE_6__.CAAMars.radiusVector(jd);\n break;\n case 4:\n L = _astrocalc_jupiter_js__WEBPACK_IMPORTED_MODULE_7__.CAAJupiter.eclipticLongitude(jd);\n B = _astrocalc_jupiter_js__WEBPACK_IMPORTED_MODULE_7__.CAAJupiter.eclipticLatitude(jd);\n R = _astrocalc_jupiter_js__WEBPACK_IMPORTED_MODULE_7__.CAAJupiter.radiusVector(jd);\n break;\n case 5:\n L = _astrocalc_saturn_js__WEBPACK_IMPORTED_MODULE_8__.CAASaturn.eclipticLongitude(jd);\n B = _astrocalc_saturn_js__WEBPACK_IMPORTED_MODULE_8__.CAASaturn.eclipticLatitude(jd);\n R = _astrocalc_saturn_js__WEBPACK_IMPORTED_MODULE_8__.CAASaturn.radiusVector(jd);\n break;\n case 6:\n L = _astrocalc_uranus_js__WEBPACK_IMPORTED_MODULE_9__.CAAUranus.eclipticLongitude(jd);\n B = _astrocalc_uranus_js__WEBPACK_IMPORTED_MODULE_9__.CAAUranus.eclipticLatitude(jd);\n R = _astrocalc_uranus_js__WEBPACK_IMPORTED_MODULE_9__.CAAUranus.radiusVector(jd);\n break;\n case 7:\n L = _astrocalc_neptune_js__WEBPACK_IMPORTED_MODULE_10__.CAANeptune.eclipticLongitude(jd);\n B = _astrocalc_neptune_js__WEBPACK_IMPORTED_MODULE_10__.CAANeptune.eclipticLatitude(jd);\n R = _astrocalc_neptune_js__WEBPACK_IMPORTED_MODULE_10__.CAANeptune.radiusVector(jd);\n break;\n case 8:\n L = _astrocalc_pluto_js__WEBPACK_IMPORTED_MODULE_11__.CAAPluto.eclipticLongitude(jd);\n B = _astrocalc_pluto_js__WEBPACK_IMPORTED_MODULE_11__.CAAPluto.eclipticLatitude(jd);\n R = _astrocalc_pluto_js__WEBPACK_IMPORTED_MODULE_11__.CAAPluto.radiusVector(jd);\n break;\n case 9:\n L = _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_13__.CAAMoon.eclipticLongitude(jd);\n B = _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_13__.CAAMoon.eclipticLatitude(jd);\n R = _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_13__.CAAMoon.radiusVector(jd) / 149598000;\n break;\n case 10:\n var galileanInfo = _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_12__.GM.calculate(jd);\n var position = galileanInfo.satellite1.eclipticRectangularCoordinates;\n return _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(position.x, position.z, position.y);\n case 11:\n var galileanInfo = _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_12__.GM.calculate(jd);\n var position = galileanInfo.satellite2.eclipticRectangularCoordinates;\n return _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(position.x, position.z, position.y);\n case 12:\n var galileanInfo = _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_12__.GM.calculate(jd);\n var position = galileanInfo.satellite3.eclipticRectangularCoordinates;\n return _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(position.x, position.z, position.y);\n case 13:\n var galileanInfo = _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_12__.GM.calculate(jd);\n var position = galileanInfo.satellite4.eclipticRectangularCoordinates;\n return _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(position.x, position.z, position.y);\n }\n\n // Enabling this code transforms planet positions from the mean ecliptic/equinox of\n // date to the J2000 ecliptic. It is necessary because the VSOP87D series used\n // for planet positions is in the mean-of-date frame. The transformation is currently\n // disabled in order to better match planet positions calculated elsewhere in the code.\n //CAA2DCoordinate prec = CAAPrecession.PrecessEcliptic(L, B, jd, 2451545.0);\n //L = prec.X;\n //B = prec.Y;\n\n L = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.degreesToRadians(L);\n B = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.degreesToRadians(B);\n var eclPos = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(Math.cos(L) * Math.cos(B) * R, Math.sin(L) * Math.cos(B) * R, Math.sin(B) * R);\n\n\n // Transform from the ecliptic of date to the J2000 ecliptic; this transformation should be deleted\n // once the precession is turned on.\n var eclipticOfDateRotation = (_coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.meanObliquityOfEcliptic(jd) - _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.meanObliquityOfEcliptic(2451545)) * Planets.RC;\n eclPos.rotateX(eclipticOfDateRotation);\n return _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(eclPos.x, eclPos.z, eclPos.y);\n};\n\nPlanets._stateVectorToKeplerian = function (position, velocity, mu) {\n // Work in units of km and seconds\n var r = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.scale(position, 149598000);\n var v = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.scale(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.scale(velocity, 1 / 86400), 149598000);\n var rmag = r.length();\n var vmag = v.length();\n var sma = 1 / (2 / rmag - vmag * vmag / mu);\n\n // h is the orbital angular momentum vector\n var h = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.cross(r, v);\n\n // ecc is the eccentricity vector, which points from the\n // planet at periapsis to the center point.\n var ecc = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.scale(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.cross(v, h), 1 / mu), _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.scale(r, 1 / rmag));\n var e = ecc.length();\n\n h.normalize();\n ecc.normalize();\n\n // h, s, and ecc are orthogonal vectors that define a coordinate\n // system. h is normal to the orbital plane.\n var s = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.cross(h, ecc);\n\n // Calculate the sine and cosine of the true anomaly\n r.normalize();\n var cosNu = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(ecc, r);\n var sinNu = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(s, r);\n\n // Compute the eccentric anomaly\n var E = Math.atan2(Math.sqrt(1 - e * e) * sinNu, e + cosNu);\n var elements = new KeplerianElements();\n\n // Create a rotation matrix given the three orthogonal vectors:\n // ecc - eccentricity vector\n // s - in the orbital plane, perpendicular to ecc\n // h - angular momentum vector, normal to orbital plane\n elements.orientation = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.create(ecc.x, ecc.y, ecc.z, 0, s.x, s.y, s.z, 0, h.x, h.y, h.z, 0, 0, 0, 0, 1);\n elements.a = sma;\n elements.e = e;\n elements.ea = E;\n return elements;\n};\n\nPlanets.getAdjustedPlanetRadius = function (planetID) {\n if (planetID > Planets._planetDiameters.length - 1) {\n planetID = _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth;\n }\n var diameter = Planets._planetDiameters[planetID];\n var radius = (diameter / 2);\n if (!!planetID) {\n radius = radius * (1 + (3 * (_settings_js__WEBPACK_IMPORTED_MODULE_21__.Settings.get_active().get_solarSystemScale() - 1)));\n }\n else {\n radius = radius * (1 + (0.3 * (_settings_js__WEBPACK_IMPORTED_MODULE_21__.Settings.get_active().get_solarSystemScale() - 1)));\n }\n return radius;\n};\n\nPlanets.getPlanetRadiusInMeters = function (planetID) {\n if (planetID > Planets._planetDiameters.length - 1) {\n planetID = _camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__.SolarSystemObjects.earth;\n }\n var diameter = Planets._planetDiameters[planetID];\n return (diameter / 2) * 149598000 * 1000;\n};\n\nPlanets._drawPlanet = function (renderContext, planetID, opacity) {\n var planetPosition = Planets._planetLocations[planetID];\n if (((planetID < 14) && Planets._planetScales[planetID] < (renderContext.viewCamera.zoom / 6) / 400)) {\n if (planetID < 10 || ((planetID < 14) && Planets._planetScales[planetID] > (renderContext.viewCamera.zoom / 6) / 6400)) {\n var point = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3d(planetPosition.RA, planetPosition.dec);\n _baseplanets_js__WEBPACK_IMPORTED_MODULE_17__.BasePlanets.drawPointPlanet(renderContext, point, 3, Planets.planetColors[planetID], false);\n }\n return;\n }\n var brush = null;\n if (planetID < 10 || planetID === 18) {\n brush = Planets._planetTextures[planetID];\n }\n else if (planetID < 14) {\n if (Planets._planetLocations[planetID].eclipsed) {\n brush = Planets._planetTextures[15];\n } else {\n if (_settings_js__WEBPACK_IMPORTED_MODULE_21__.Settings.get_active().get_showMoonsAsPointSource()) {\n brush = Planets._planetTextures[14];\n }\n else {\n brush = Planets._planetTextures[planetID];\n }\n }\n }\n else {\n if (!Planets._planetLocations[planetID].shadow) {\n return;\n }\n\n //Shadows of moons\n brush = Planets._planetTextures[15];\n }\n if (renderContext.gl != null) {\n if (Planets._planetPoints == null) {\n Planets._planetPoints = new Array(4);\n for (var i = 0; i < 4; i++) {\n Planets._planetPoints[i] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n }\n }\n var radius = (Planets._planetScales[planetID] / 2);\n var raRadius = (radius / Math.cos(planetPosition.dec / 180 * Math.PI));\n Planets._planetPoints[0].position = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3dAu((planetPosition.RA - (raRadius / 15)), planetPosition.dec + radius, 1);\n Planets._planetPoints[0].tu = 0;\n Planets._planetPoints[0].tv = 1;\n Planets._planetPoints[0].color = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets._planetPoints[1].position = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3dAu((planetPosition.RA - (raRadius / 15)), planetPosition.dec - radius, 1);\n Planets._planetPoints[1].tu = 0;\n Planets._planetPoints[1].tv = 0;\n Planets._planetPoints[1].color = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets._planetPoints[2].position = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3dAu((planetPosition.RA + (raRadius / 15)), planetPosition.dec + radius, 1);\n Planets._planetPoints[2].tu = 1;\n Planets._planetPoints[2].tv = 1;\n Planets._planetPoints[2].color = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets._planetPoints[3].position = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3dAu((planetPosition.RA + (raRadius / 15)), planetPosition.dec - radius, 1);\n Planets._planetPoints[3].tu = 1;\n Planets._planetPoints[3].tv = 0;\n Planets._planetPoints[3].color = _color_js__WEBPACK_IMPORTED_MODULE_19__.Colors.get_white();\n Planets._planetSprite.draw(renderContext, Planets._planetPoints, 4, brush, true, 1);\n }\n else {\n var center = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.raDecTo3d(planetPosition.RA, planetPosition.dec);\n var rad = Planets._planetScales[planetID] / (renderContext.get_fovScale() / 3600) / 2;\n var screenSpacePnt = renderContext.WVP.transform(center);\n if (screenSpacePnt.z < 0) {\n return;\n }\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(renderContext.get_viewPoint(), center) < 0.55) {\n return;\n }\n var ctx = renderContext.device;\n ctx.save();\n ctx.globalAlpha = opacity;\n ctx.beginPath();\n ctx.arc(screenSpacePnt.x, screenSpacePnt.y, rad, 0, Math.PI * 2, true);\n ctx.lineWidth = 0;\n ctx.closePath();\n ctx.clip();\n ctx.drawImage(brush.imageElement, screenSpacePnt.x - rad, screenSpacePnt.y - rad, rad * 2, rad * 2);\n ctx.globalAlpha = 1;\n ctx.restore();\n }\n};\n\nPlanets._drawPlanetPhase = function (renderContext, planetID, phase, angle, dark) { };\n\nPlanets._geocentricElongation = function (ObjectAlpha, ObjectDelta, SunAlpha, SunDelta) {\n //Convert the RA's to radians\n ObjectAlpha = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.degreesToRadians(ObjectAlpha * 15);\n SunAlpha = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.degreesToRadians(SunAlpha * 15);\n\n //Convert the declinations to radians\n ObjectDelta = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.degreesToRadians(ObjectDelta);\n SunDelta = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.degreesToRadians(SunDelta);\n return _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.radiansToDegrees(Math.acos(Math.sin(SunDelta) * Math.sin(ObjectDelta) + Math.cos(SunDelta) * Math.cos(ObjectDelta) * Math.cos(SunAlpha - ObjectAlpha)));\n};\n\nPlanets._phaseAngle = function (GeocentricElongation, EarthObjectDistance, EarthSunDistance) {\n //Convert from degrees to radians\n GeocentricElongation = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.degreesToRadians(GeocentricElongation);\n\n return _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.mapTo0To360Range(_coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.radiansToDegrees(Math.atan2(EarthSunDistance * Math.sin(GeocentricElongation), EarthObjectDistance - EarthSunDistance * Math.cos(GeocentricElongation))));\n};\n\nPlanets._positionAngle = function (Alpha0, Delta0, Alpha, Delta) {\n Alpha0 = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.hoursToRadians(Alpha0);\n Alpha = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.hoursToRadians(Alpha);\n Delta0 = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.degreesToRadians(Delta0);\n Delta = _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.degreesToRadians(Delta);\n return _coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.mapTo0To360Range(_coordinates_js__WEBPACK_IMPORTED_MODULE_20__.Coordinates.radiansToDegrees(Math.atan2(Math.cos(Delta0) * Math.sin(Alpha0 - Alpha), Math.sin(Delta0) * Math.cos(Delta) - Math.cos(Delta0) * Math.sin(Delta) * Math.cos(Alpha0 - Alpha))));\n};\n\nvar Planets$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Planets\", [Planets, Planets$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/planets_3d.js\":\n/*!***************************!*\\\n !*** ./esm/planets_3d.js ***!\n \\***************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Planets3d: () => (/* binding */ Planets3d)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./graphics/gl_buffers.js */ \"./esm/graphics/gl_buffers.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./graphics/shaders.js */ \"./esm/graphics/shaders.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _baseplanets_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./baseplanets.js */ \"./esm/baseplanets.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _planets_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./planets.js */ \"./esm/planets.js\");\n/* harmony import */ var _render_triangle_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./render_triangle.js */ \"./esm/render_triangle.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _triangle_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./triangle.js */ \"./esm/triangle.js\");\n/* harmony import */ var _ui_tools_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./ui_tools.js */ \"./esm/ui_tools.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _layers_orbit_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./layers/orbit.js */ \"./esm/layers/orbit.js\");\n/* harmony import */ var _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./layers/layer_manager.js */ \"./esm/layers/layer_manager.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The 3D planet-related code.\n//\n// This does not include the 3D planet-rendering code, which has been separated\n// into `planets_3d.js`.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// 3D planet code. This used to live in `Planets.cs` with the 2D planet.\n\nfunction Planets3d() { }\n\nPlanets3d._ringsTriangleLists = new Array(2);\nPlanets3d._ringImage = null;\nPlanets3d._triangleCountRings = 192 + 1 * 2;\nPlanets3d._ringsVertexBuffer = null;\n\nPlanets3d.getImageSetNameNameFrom3dId = function (id) {\n switch (id) {\n case 0:\n return 'Sun';\n case 1:\n return 'Mercury';\n case 2:\n return 'Venus';\n case 3:\n return 'Visible Imagery';\n case 4:\n return 'Jupiter';\n case 5:\n return 'Saturn';\n case 6:\n return 'Uranus';\n case 7:\n return 'Neptune';\n case 8:\n return 'Pluto';\n case 9:\n return 'Moon';\n case 10:\n return 'Io (Jupiter)';\n case 11:\n return 'Europa (Jupiter)';\n case 12:\n return 'Ganymede (Jupiter)';\n case 13:\n return 'Callisto (Jupiter)';\n case 19:\n return 'Bing Maps Aerial';\n default:\n return '';\n }\n};\n\nPlanets3d.initPlanetResources = function (renderContext) { };\n\nPlanets3d.drawPlanets3D = function (renderContext, opacity, centerPoint) {\n Planets3d.initPlanetResources(renderContext);\n var distss = _ui_tools_js__WEBPACK_IMPORTED_MODULE_16__.UiTools.solarSystemToMeters(renderContext.get_solarSystemCameraDistance());\n var moonFade = Math.min(1, Math.max(_baseutil_js__WEBPACK_IMPORTED_MODULE_8__.Util.log10(distss) - 7.3, 0));\n var fade = Math.min(1, Math.max(_baseutil_js__WEBPACK_IMPORTED_MODULE_8__.Util.log10(distss) - 8.6, 0));\n if (_settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_solarSystemOrbits() && fade > 0) {\n for (var ii = 1; ii < 10; ii++) {\n var id = ii;\n if (ii === 9) {\n id = 19;\n }\n var angle = Math.atan2(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[id].z, _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[id].x);\n Planets3d._drawSingleOrbit(renderContext, _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.planetColors[id], id, centerPoint, angle, _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[id], fade);\n }\n var mid = 9;\n Planets3d._drawSingleOrbit(renderContext, _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.planetColors[mid], mid, centerPoint, 0, _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[mid], fade);\n }\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._drawOrder);\n var camera = renderContext.cameraPosition.copy();\n for (var planetId = 0; planetId < 14; planetId++) {\n // If we're using realistic lighting and this is an eclipsed\n // moon, don't draw it at all. This is slightly suboptimal\n // since, if you're looking at the moon, you'll suddenly be able\n // to see the stars through it. In principle we should do\n // something like keep on drawing it, but as an all-black\n // sphere.\n if (!(_settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_solarSystemLighting() && _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planetLocations[planetId].eclipsed)) {\n var distVector = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(camera, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[planetId], centerPoint));\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._drawOrder, distVector.length())) {\n _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._drawOrder[distVector.length()] = planetId;\n }\n }\n }\n var distVectorEarth = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(camera, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[19], centerPoint));\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._drawOrder, distVectorEarth.length())) {\n _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._drawOrder[distVectorEarth.length()] = 19;\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._drawOrder));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var planetId = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._drawOrder[key];\n Planets3d._drawPlanet3d(renderContext, planetId, centerPoint);\n }\n return true;\n};\n\nPlanets3d._drawSingleOrbit = function (renderContext, eclipticColor, id, centerPoint, startAngle, planetNow, opacity) {\n // mu is the standard gravitational parameter GM, where G\n // is the gravitational constant and M is the mass of the\n // central body.\n const muSun = 1.327124400188e11; // km^3/s^2\n const muEarth = 3.9860044189e5;\n const muMoon = 4.9027779e3;\n const muJupiter = 1.26686534e8;\n\n if (opacity < 0.01) {\n return;\n }\n if (renderContext.gl == null) {\n var count = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._orbitalSampleRate;\n var planetDropped = false;\n var viewPoint = renderContext.get_viewPoint();\n var ctx = renderContext.device;\n ctx.save();\n ctx.strokeStyle = eclipticColor.toString();\n ctx.lineWidth = 2;\n ctx.globalAlpha = 1;\n var point = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var pointTest = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var lastPoint = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var firstPoint = true;\n var translate = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.translation(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.negate(centerPoint));\n var mat = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(translate, renderContext.WVP);\n var matWV = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(translate, renderContext.WV);\n for (var i = 0; i < count; i++) {\n var pnt = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._orbits[id][i];\n var angle = (Math.atan2(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._orbits[id][i].z, _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._orbits[id][i].x) + Math.PI * 2 - startAngle) % (Math.PI * 2);\n var alpha = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((angle / (Math.PI * 2) * 255));\n var alphaD = alpha / 255;\n if (alpha < 2 && !planetDropped) {\n pnt = planetNow;\n alphaD = 1;\n }\n pointTest = matWV.transform(pnt);\n point = mat.transform(pnt);\n if (pointTest.z > 0) {\n if (firstPoint) {\n firstPoint = false;\n }\n else {\n ctx.beginPath();\n ctx.globalAlpha = alphaD * opacity;\n ctx.moveTo(lastPoint.x, lastPoint.y);\n ctx.lineTo(point.x, point.y);\n ctx.stroke();\n }\n }\n lastPoint = point;\n }\n ctx.restore();\n }\n else {\n if (id !== 9) {\n var count = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._orbitalSampleRate;\n var planetDropped = false;\n var viewPoint = renderContext.get_viewPoint();\n var point = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var pointTest = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var lastPoint = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var lastColor = new _color_js__WEBPACK_IMPORTED_MODULE_11__.Color();\n var firstPoint = true;\n var list = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_5__.OrbitLineList();\n for (var i = 0; i < count; i++) {\n var pnt = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._orbits[id][i].copy();\n var angle = (Math.atan2(pnt.z, pnt.x) + Math.PI * 2 - startAngle) % (Math.PI * 2);\n var alpha = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((angle / (Math.PI * 2) * 255));\n var alphaD = alpha / 255;\n var color = _color_js__WEBPACK_IMPORTED_MODULE_11__.Color.fromArgb(alpha, eclipticColor.r, eclipticColor.g, eclipticColor.b);\n if (alpha < 2 && !planetDropped && !firstPoint) {\n pnt = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(planetNow, centerPoint);\n alphaD = 1;\n alpha = 255;\n color.a = 255;\n lastColor.a = 255;\n list.addLine(lastPoint, pnt.copy(), lastColor._clone(), color._clone());\n lastColor.a = 0;\n color.a = 0;\n pnt = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._orbits[id][i].copy();\n planetDropped = true;\n }\n pnt = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(pnt, centerPoint);\n if (firstPoint) {\n firstPoint = false;\n }\n else {\n list.addLine(lastPoint, pnt, lastColor, color);\n }\n lastPoint = pnt;\n lastColor = color._clone();\n }\n list.drawLines(renderContext, 1, _color_js__WEBPACK_IMPORTED_MODULE_11__.Colors.get_white());\n list.clear();\n } else {\n var mu = 0;\n switch (id) {\n case 9:\n mu = muEarth + muMoon;\n break;\n case 10:\n case 11:\n case 12:\n case 13:\n mu = muJupiter;\n break;\n default:\n mu = muSun;\n break;\n }\n var deltaT = 1 / 1440 * 0.1;\n var r0 = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.getPlanetPositionDirect(id, _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._jNow);\n var r1 = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.getPlanetPositionDirect(id, _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._jNow - deltaT);\n var v = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.scale(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(r0, r1), 1 / deltaT);\n var elements = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._stateVectorToKeplerian(r0, v, mu);\n Planets3d._drawSingleOrbitElements(renderContext, eclipticColor, id, centerPoint, startAngle, planetNow, elements);\n }\n }\n};\n\nPlanets3d._drawSingleOrbitElements = function (renderContext, eclipticColor, id, centerPoint, xstartAngle, planetNow, el) {\n var scaleFactor;\n switch (id) {\n case 9:\n if (_settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_solarSystemScale() > 1) {\n scaleFactor = _settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_solarSystemScale() / 2;\n }\n else {\n scaleFactor = 1;\n }\n break;\n case 10:\n case 11:\n case 12:\n case 13:\n scaleFactor = _settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_solarSystemScale();\n break;\n default:\n scaleFactor = 1;\n break;\n }\n var translation = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.negate(centerPoint);\n if (id === 9) {\n translation.add(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[19]);\n }\n else if (id === 10 || id === 11 || id === 12 || id === 13) {\n translation.add(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[4]);\n }\n var currentPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(planetNow, centerPoint);\n var worldMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(el.orientation, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.translation(translation)), renderContext.get_world());\n _layers_orbit_js__WEBPACK_IMPORTED_MODULE_18__.EllipseRenderer.drawEllipseWithPosition(renderContext, el.a / 149598000 * scaleFactor, el.e, el.ea, eclipticColor, worldMatrix, currentPosition);\n};\n\nPlanets3d.isPlanetInFrustum = function (renderContext, rad) {\n var frustum = renderContext.get_frustum();\n var center = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, 0);\n var centerV4 = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector4d(0, 0, 0, 1);\n for (var i = 0; i < 6; i++) {\n if (frustum[i].dot(centerV4) + rad < 0) {\n return false;\n }\n }\n return true;\n};\n\nPlanets3d._drawPlanet3d = function (renderContext, planetID, centerPoint) {\n if (planetID === 0) {\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.TileShader.minLightingBrightness = 1;\n }\n else {\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.TileShader.minLightingBrightness = 0.025;\n if (planetID === 19) {\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.TileShader.atmosphereColor = _color_js__WEBPACK_IMPORTED_MODULE_11__.Color.fromArgb(255, 65, 157, 217);\n } else {\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.TileShader.atmosphereColor = _color_js__WEBPACK_IMPORTED_MODULE_11__.Color.fromArgb(0, 0, 0, 0);\n }\n }\n var matOld = renderContext.get_world();\n var matOldBase = renderContext.get_worldBase();\n var matOldNonRotating = renderContext.get_worldBaseNonRotating();\n var radius = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.getAdjustedPlanetRadius(planetID);\n _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.setupPlanetMatrix(renderContext, planetID, centerPoint, true);\n var planetWidth = 1;\n if (planetID === 5) {\n planetWidth = 3;\n }\n if (Planets3d.isPlanetInFrustum(renderContext, planetWidth)) {\n // Save all matrices modified by SetupMatrix...\n var matOld2 = renderContext.get_world();\n var matOldBase2 = renderContext.get_worldBase();\n var matOldNonRotating2 = renderContext.get_worldBaseNonRotating();\n var sun = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[0].copy();\n var planet = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[planetID].copy();\n sun = matOld.transform(sun);\n planet = matOld.transform(planet);\n renderContext.set_world(matOld);\n renderContext.set_worldBase(matOldBase);\n renderContext.set_worldBaseNonRotating(matOldNonRotating);\n _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._setupMatrixForPlanetGeometry(renderContext, planetID, centerPoint, true);\n var sunPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(sun, planet);\n sunPosition.normalize();\n renderContext.set_sunPosition(sunPosition);\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.TileShader.sunPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[0], planet);\n var loc = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planet3dLocations[planetID], centerPoint);\n loc.subtract(renderContext.cameraPosition);\n var dist = loc.length();\n var sizeIndexParam = (2 * Math.atan(0.5 * (radius / dist))) / Math.PI * 180;\n var sizeIndex = 0;\n if (sizeIndexParam > 10.5) {\n sizeIndex = 0;\n } else if (sizeIndexParam > 3.9) {\n sizeIndex = 1;\n } else if (sizeIndexParam > 0.72) {\n sizeIndex = 2;\n } else if (sizeIndexParam > 0.05) {\n sizeIndex = 3;\n } else {\n sizeIndex = 4;\n }\n if (planetID === 19 && sizeIndex < 2) {\n var width = _settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_solarSystemScale() * 1E-05;\n }\n if (sizeIndex < 4) {\n var oldLighting = renderContext.lighting;\n if (planetID === 5) {\n if (renderContext.gl == null) {\n renderContext.lighting = false;\n // DRAW BACK HALF OF RINGS\n Planets3d.drawSaturnsRings(renderContext, false, dist);\n renderContext.lighting = oldLighting;\n }\n }\n if (!planetID) {\n renderContext.lighting = false;\n }\n Planets3d._drawSphere(renderContext, planetID);\n if (planetID === 5) {\n if (renderContext.gl == null) {\n renderContext.lighting = false;\n // DRAW FRONT HALF OF RINGS\n Planets3d.drawSaturnsRings(renderContext, true, dist);\n }\n else {\n renderContext.lighting = false;\n Planets3d._drawRings(renderContext);\n renderContext.lighting = oldLighting;\n }\n }\n renderContext.lighting = oldLighting;\n } else {\n if (!planetID) {\n _baseplanets_js__WEBPACK_IMPORTED_MODULE_9__.BasePlanets.drawPointPlanet(renderContext, new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d(), (10 * _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planetDiameters[planetID]), _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.planetColors[planetID], true);\n }\n else if (planetID < 9 || planetID === 19) {\n var size = (800 * _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planetDiameters[planetID]);\n _baseplanets_js__WEBPACK_IMPORTED_MODULE_9__.BasePlanets.drawPointPlanet(renderContext, new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d(), Math.max(0.05, Math.min(0.1, size)), _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.planetColors[planetID], true);\n }\n else if (sizeIndexParam > 0.002) {\n var size = (800 * _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._planetDiameters[planetID]);\n _baseplanets_js__WEBPACK_IMPORTED_MODULE_9__.BasePlanets.drawPointPlanet(renderContext, new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d(), Math.max(0.05, Math.min(0.1, size)), _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.planetColors[planetID], true);\n }\n }\n }\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_19__.LayerManager._draw(renderContext, 1, false, _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.getNameFrom3dId(planetID), true, false);\n renderContext.set_world(matOld);\n renderContext.set_worldBase(matOldBase);\n renderContext.set_worldBaseNonRotating(matOldNonRotating);\n};\n\nPlanets3d.drawSaturnsRings = function (renderContext, front, distance) {\n if (Planets3d._ringsTriangleLists[0] == null) {\n Planets3d._ringImage = document.createElement('img');\n var xdomimg = Planets3d._ringImage;\n xdomimg.crossOrigin = 'anonymous';\n Planets3d._ringImage.src = _url_helpers_js__WEBPACK_IMPORTED_MODULE_17__.URLHelpers.singleton.engineAssetUrl('saturnringsshadow.png');\n Planets3d._ringsTriangleLists[0] = [];\n Planets3d._ringsTriangleLists[1] = [];\n var ringSize = 2.25;\n var TopLeft = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-ringSize, 0, -ringSize);\n var TopRight = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(ringSize, 0, -ringSize);\n var BottomLeft = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-ringSize, 0, ringSize);\n var BottomRight = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(ringSize, 0, ringSize);\n var center = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, 0);\n var leftCenter = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-ringSize, 0, 0);\n var topCenter = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, -ringSize);\n var bottomCenter = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, ringSize);\n var rightCenter = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(ringSize, 0, 0);\n var level = 6;\n var vertexList;\n vertexList = [];\n var Width = 1024;\n var Height = 1024;\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionTexture.createPosSize(TopLeft, 0, 0, Width, Height));\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionTexture.createPosSize(TopRight, 1, 0, Width, Height));\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionTexture.createPosSize(BottomLeft, 0, 1, Width, Height));\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionTexture.createPosSize(BottomRight, 1, 1, Width, Height));\n var childTriangleList = [];\n childTriangleList.push(_triangle_js__WEBPACK_IMPORTED_MODULE_15__.Triangle.create(0, 2, 1));\n childTriangleList.push(_triangle_js__WEBPACK_IMPORTED_MODULE_15__.Triangle.create(2, 3, 1));\n var count = 5;\n while (count-- > 1) {\n var newList = [];\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(childTriangleList);\n while ($enum1.moveNext()) {\n var tri = $enum1.current;\n tri.subDivideNoNormalize(newList, vertexList);\n }\n childTriangleList = newList;\n }\n var miter = 0.6 / (Width / 256);\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(childTriangleList);\n while ($enum2.moveNext()) {\n var tri = $enum2.current;\n var p1 = vertexList[tri.a];\n var p2 = vertexList[tri.b];\n var p3 = vertexList[tri.c];\n Planets3d._ringsTriangleLists[0].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_13__.RenderTriangle.createWithMiter(p1, p2, p3, Planets3d._ringImage, level, miter));\n }\n }\n if (renderContext.gl == null) {\n var cam = renderContext.cameraPosition;\n var test = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var worldLocal = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY(Math.atan2(renderContext.get_sunPosition().x, renderContext.get_sunPosition().z)), renderContext.get_worldBaseNonRotating());\n var wv = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(worldLocal, renderContext.get_view());\n var wvp = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(wv, renderContext.get_projection());\n var Width = renderContext.width;\n var Height = renderContext.height;\n wvp.scale(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(Width / 2, -Height / 2, 1));\n wvp.translate(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(Width / 2, Height / 2, 0));\n var td = 0;\n for (var i = 0; i < 2; i++) {\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(Planets3d._ringsTriangleLists[0]);\n while ($enum3.moveNext()) {\n var tri = $enum3.current;\n test = wv.transform(tri.a.position);\n td = test.length();\n var draw = td > distance;\n if (front) {\n draw = !draw;\n }\n if (draw) {\n tri.opacity = 1;\n tri.draw(renderContext.device, wvp);\n }\n }\n _render_triangle_js__WEBPACK_IMPORTED_MODULE_13__.RenderTriangle.cullInside = !_render_triangle_js__WEBPACK_IMPORTED_MODULE_13__.RenderTriangle.cullInside;\n }\n }\n else { }\n};\n\n// Various input layouts used in 3D solar system mode\n// TODO Replace with an input layout cache\n\nPlanets3d._drawRings = function (renderContext) {\n Planets3d._initRings();\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.TileShader.use(renderContext, Planets3d._ringsVertexBuffer.vertexBuffer, null, _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._ringsTexture.texture2d, 1, false, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.zero);\n renderContext.gl.drawArrays(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__.WEBGL.TRIANGLE_STRIP, 0, Planets3d._triangleCountRings);\n};\n\nPlanets3d._initRings = function () {\n if (Planets3d._ringsVertexBuffer != null) {\n return;\n }\n _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets._ringsTexture = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_6__.Texture.fromUrl(_url_helpers_js__WEBPACK_IMPORTED_MODULE_17__.URLHelpers.singleton.engineAssetUrl('saturnringsstrip.png'));\n var inner = 1.113;\n var outer = 2.25;\n Planets3d._ringsVertexBuffer = new _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_4__.PositionTextureVertexBuffer(((192 + 1) * 2));\n Planets3d._triangleCountRings = (192 + 1) * 2;\n var verts = Planets3d._ringsVertexBuffer.lock();\n var radStep = Math.PI * 2 / 192;\n var index = 0;\n for (var x = 0; x <= 192; x += 2) {\n var rads1 = x * radStep;\n var rads2 = (x + 1) * radStep;\n verts[index] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionTexture();\n verts[index].position = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create((Math.cos(rads1) * inner), 0, (Math.sin(rads1) * inner));\n verts[index].tu = 1;\n verts[index].tv = 0;\n index++;\n verts[index] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionTexture();\n verts[index].position = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create((Math.cos(rads1) * outer), 0, (Math.sin(rads1) * outer));\n verts[index].tu = 0;\n verts[index].tv = 0;\n index++;\n verts[index] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionTexture();\n verts[index].position = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create((Math.cos(rads2) * inner), 0, (Math.sin(rads2) * inner));\n verts[index].tu = 1;\n verts[index].tv = 1;\n index++;\n verts[index] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionTexture();\n verts[index].position = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create((Math.cos(rads2) * outer), 0, (Math.sin(rads2) * outer));\n verts[index].tu = 0;\n verts[index].tv = 1;\n index++;\n }\n Planets3d._ringsVertexBuffer.unlock();\n};\n\nPlanets3d._drawSphere = function (renderContext, planetID) {\n var planetName = Planets3d.getImageSetNameNameFrom3dId(planetID);\n var planet = _data_globals_js__WEBPACK_IMPORTED_MODULE_10__.globalWWTControl.getImagesetByName(planetName);\n if (planet == null) {\n planet = _data_globals_js__WEBPACK_IMPORTED_MODULE_10__.globalWWTControl.getImagesetByName('Bing Maps Aerial');\n }\n if (planet != null) {\n renderContext.drawImageSet(planet, 100);\n if (planetID === 19) {\n }\n return;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Planets3d\", [Planets3d, {}, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/plot_tile.js\":\n/*!**************************!*\\\n !*** ./esm/plot_tile.js ***!\n \\**************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PlotTile: () => (/* binding */ PlotTile)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _baseplanets_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./baseplanets.js */ \"./esm/baseplanets.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _star_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./star.js */ \"./esm/star.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./web_file.js */ \"./esm/web_file.js\");\n/* harmony import */ var _tile_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./tile.js */ \"./esm/tile.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A tile that plots tabular data.\n//\n// This tile class is not implemented for the WebGL rendering backend!\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.PlotTile\n\nfunction PlotTile() {\n this._topDown$1 = true;\n this.backslash = false;\n this._vertexList$1 = null;\n this._childTriangleList$1 = null;\n this._stars$1 = [];\n this._subDivisionLevel$1 = 4;\n this._subDivided$1 = false;\n _tile_js__WEBPACK_IMPORTED_MODULE_9__.Tile.call(this);\n}\n\nPlotTile.create = function (level, xc, yc, dataset, parent) {\n var temp = new PlotTile();\n temp.parent = parent;\n temp.level = level;\n temp.tileX = xc;\n temp.tileY = yc;\n temp.dataset = dataset;\n temp._topDown$1 = !dataset.get_bottomsUp();\n if (temp.tileX !== xc) {\n alert('bad');\n }\n if (!!dataset.get_meanRadius()) {\n temp.set__demScaleFactor(dataset.get_meanRadius());\n }\n else {\n if (!dataset.get_dataSetType()) {\n temp.set__demScaleFactor(6371000);\n } else {\n temp.set__demScaleFactor(3396010);\n }\n }\n temp.computeBoundingSphere();\n return temp;\n};\n\nvar PlotTile$ = {\n computeBoundingSphere: function () {\n this._initializeGrids$1();\n this.topLeft = this.bounds[0 + 3 * 0].position.copy();\n this.bottomRight = this.bounds[2 + 3 * 2].position.copy();\n this.topRight = this.bounds[2 + 3 * 0].position.copy();\n this.bottomLeft = this.bounds[0 + 3 * 2].position.copy();\n this.calcSphere();\n },\n\n renderPart: function (renderContext, part, opacity, combine) {\n if (renderContext.gl != null) {\n //todo draw in WebGL\n } else {\n if (!part) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._stars$1);\n while ($enum1.moveNext()) {\n var star = $enum1.current;\n var radDec = 25 / Math.pow(1.6, star.magnitude);\n _baseplanets_js__WEBPACK_IMPORTED_MODULE_4__.BasePlanets.drawPointPlanet(renderContext, star.position, radDec, star.col, false);\n }\n }\n }\n },\n\n requestImage: function () {\n if (!this.downloading && !this.readyToRender) {\n this.downloading = true;\n this._webFile$1 = new _web_file_js__WEBPACK_IMPORTED_MODULE_8__.WebFile(_url_helpers_js__WEBPACK_IMPORTED_MODULE_7__.URLHelpers.singleton.rewrite(this.get_URL(), 0));\n this._webFile$1.onStateChange = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('fileStateChange', this);\n this._webFile$1.send();\n }\n },\n\n fileStateChange: function () {\n if (this._webFile$1.get_state() === 2) {\n this.downloading = false;\n this.readyToRender = false;\n this.errored = true;\n this.requestPending = false;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheRemoveFromQueue)(this.get_key(), true);\n } else if (this._webFile$1.get_state() === 1) {\n this.texReady = true;\n this.downloading = false;\n this.errored = false;\n this.readyToRender = this.texReady && (this.demReady || !this.demTile);\n this.requestPending = false;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheRemoveFromQueue)(this.get_key(), true);\n this._loadData$1(this._webFile$1.getText());\n }\n },\n\n _loadData$1: function (data) {\n var rows = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(data, '\\r\\n', '\\n').split('\\n');\n var firstRow = true;\n var type = 0;\n var star = null;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(rows);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n if (firstRow) {\n firstRow = false;\n continue;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(row).length > 5) {\n star = new _star_js__WEBPACK_IMPORTED_MODULE_6__.Star(row);\n star.position = _coordinates_js__WEBPACK_IMPORTED_MODULE_5__.Coordinates.raDecTo3dAu(star.RA, star.dec, 1);\n this._stars$1.push(star);\n }\n }\n },\n\n isPointInTile: function (lat, lng) {\n if (!this.level) {\n return true;\n }\n if (this.level === 1) {\n if ((lng >= 0 && lng <= 90) && (!this.tileX && this.tileY === 1)) {\n return true;\n }\n if ((lng > 90 && lng <= 180) && (this.tileX === 1 && this.tileY === 1)) {\n return true;\n }\n if ((lng < 0 && lng >= -90) && (!this.tileX && !this.tileY)) {\n return true;\n }\n if ((lng < -90 && lng >= -180) && (this.tileX === 1 && !this.tileY)) {\n return true;\n }\n return false;\n }\n if (!this.demReady || this.demData == null) {\n return false;\n }\n var testPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_5__.Coordinates.geoTo3dDouble(-lat, lng);\n var top = this._isLeftOfHalfSpace$1(this.topLeft.copy(), this.topRight.copy(), testPoint);\n var right = this._isLeftOfHalfSpace$1(this.topRight.copy(), this.bottomRight.copy(), testPoint);\n var bottom = this._isLeftOfHalfSpace$1(this.bottomRight.copy(), this.bottomLeft.copy(), testPoint);\n var left = this._isLeftOfHalfSpace$1(this.bottomLeft.copy(), this.topLeft.copy(), testPoint);\n if (top && right && bottom && left) {\n return true;\n }\n return false;\n },\n\n _isLeftOfHalfSpace$1: function (pntA, pntB, pntTest) {\n pntA.normalize();\n pntB.normalize();\n var cross = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.cross(pntA, pntB);\n var dot = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.dot(cross, pntTest);\n return dot < 0;\n },\n\n _initializeGrids$1: function () {\n this._vertexList$1 = [];\n this._childTriangleList$1 = new Array(4);\n this._childTriangleList$1[0] = [];\n this._childTriangleList$1[1] = [];\n this._childTriangleList$1[2] = [];\n this._childTriangleList$1[3] = [];\n this.bounds = new Array(9);\n if (this.level > 0) {\n if (this.parent == null) {\n this.parent = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheGetTile)(this.level - 1, this.tileX / 2, this.tileY / 2, this.dataset, null);\n }\n var parent = this.parent;\n var xIndex = this.tileX % 2;\n var yIndex = this.tileY % 2;\n if (this.level > 1) {\n this.backslash = parent.backslash;\n }\n else {\n this.backslash = (xIndex === 1 ^ yIndex === 1) === 1;\n }\n this.bounds[0 + 3 * 0] = parent.bounds[xIndex + 3 * yIndex].copy();\n this.bounds[1 + 3 * 0] = this._midpoint$1(parent.bounds[xIndex + 3 * yIndex], parent.bounds[xIndex + 1 + 3 * yIndex]);\n this.bounds[2 + 3 * 0] = parent.bounds[xIndex + 1 + 3 * yIndex].copy();\n this.bounds[0 + 3 * 1] = this._midpoint$1(parent.bounds[xIndex + 3 * yIndex], parent.bounds[xIndex + 3 * (yIndex + 1)]);\n if (this.backslash) {\n this.bounds[1 + 3 * 1] = this._midpoint$1(parent.bounds[xIndex + 3 * yIndex], parent.bounds[xIndex + 1 + 3 * (yIndex + 1)]);\n }\n else {\n this.bounds[1 + 3 * 1] = this._midpoint$1(parent.bounds[xIndex + 1 + 3 * yIndex], parent.bounds[xIndex + 3 * (yIndex + 1)]);\n }\n this.bounds[2 + 3 * 1] = this._midpoint$1(parent.bounds[xIndex + 1 + 3 * yIndex], parent.bounds[xIndex + 1 + 3 * (yIndex + 1)]);\n this.bounds[0 + 3 * 2] = parent.bounds[xIndex + 3 * (yIndex + 1)].copy();\n this.bounds[1 + 3 * 2] = this._midpoint$1(parent.bounds[xIndex + 3 * (yIndex + 1)], parent.bounds[xIndex + 1 + 3 * (yIndex + 1)]);\n this.bounds[2 + 3 * 2] = parent.bounds[xIndex + 1 + 3 * (yIndex + 1)].copy();\n this.bounds[0 + 3 * 0].tu = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[0 + 3 * 0].tv = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 0].tu = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 0].tv = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 0].tu = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 0].tv = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[0 + 3 * 1].tu = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[0 + 3 * 1].tv = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 1].tu = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 1].tv = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 1].tu = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 1].tv = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[0 + 3 * 2].tu = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[0 + 3 * 2].tv = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 2].tu = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 2].tv = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 2].tu = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 2].tv = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n } else {\n this.bounds[0 + 3 * 0] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, -1, 0, 0, 0);\n this.bounds[1 + 3 * 0] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, 0, 1, 0.5, 0);\n this.bounds[2 + 3 * 0] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, -1, 0, 1, 0);\n this.bounds[0 + 3 * 1] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(-1, 0, 0, 0, 0.5);\n this.bounds[1 + 3 * 1] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, 1, 0, 0.5, 0.5);\n this.bounds[2 + 3 * 1] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(1, 0, 0, 1, 0.5);\n this.bounds[0 + 3 * 2] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, -1, 0, 0, 1);\n this.bounds[1 + 3 * 2] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, 0, -1, 0.5, 1);\n this.bounds[2 + 3 * 2] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, -1, 0, 1, 1);\n }\n },\n\n _midpoint$1: function (positionNormalTextured, positionNormalTextured_2) {\n var a1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.lerp(positionNormalTextured.position, positionNormalTextured_2.position, 0.5);\n var a1uv = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.lerp(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(positionNormalTextured.tu, positionNormalTextured.tv), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(positionNormalTextured_2.tu, positionNormalTextured_2.tv), 0.5);\n a1.normalize();\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(a1, a1uv.x, a1uv.y);\n },\n\n createGeometry: function (renderContext) {\n if (this.geometryCreated) {\n return true;\n }\n this.geometryCreated = true;\n _tile_js__WEBPACK_IMPORTED_MODULE_9__.Tile.prototype.createGeometry.call(this, renderContext);\n return true;\n },\n\n cleanUp: function (removeFromParent) {\n _tile_js__WEBPACK_IMPORTED_MODULE_9__.Tile.prototype.cleanUp.call(this, removeFromParent);\n if (this._vertexList$1 != null) {\n this._vertexList$1 = null;\n }\n if (this._childTriangleList$1 != null) {\n this._childTriangleList$1 = null;\n }\n this._subDivided$1 = false;\n this.demArray = null;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"PlotTile\", [PlotTile, PlotTile$, _tile_js__WEBPACK_IMPORTED_MODULE_9__.Tile]);\n\n\n/***/ }),\n\n/***/ \"./esm/pointing.js\":\n/*!*************************!*\\\n !*** ./esm/pointing.js ***!\n \\*************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Pointing: () => (/* binding */ Pointing)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _healpix_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./healpix_utils.js */ \"./esm/healpix_utils.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A lat/lon datatype. This is unused in the engine, but preserved for API\n// compatibility.\n\n\n\n\n\n\n// wwtlib.Pointing\n\nfunction Pointing() {\n // Colatitude in radians (0 is North Pole; Pi is South Pole)\n this.theta = 0;\n\n // Longitude in radians\n this.phi = 0;\n}\n\nPointing.create = function (theta, phi) {\n var temp = new Pointing();\n temp.theta = theta;\n temp.phi = phi;\n return temp;\n};\n\nvar Pointing$ = {\n normalizeTheta: function () {\n this.theta = _healpix_utils_js__WEBPACK_IMPORTED_MODULE_2__.HealpixUtils.fmodulo(this.theta, 2 * Math.PI);\n if (this.theta > Math.PI) {\n this.phi += Math.PI;\n this.theta = 2 * Math.PI - this.theta;\n }\n },\n\n normalize: function () {\n this.normalizeTheta();\n this.phi = _healpix_utils_js__WEBPACK_IMPORTED_MODULE_2__.HealpixUtils.fmodulo(this.phi, 2 * Math.PI);\n },\n\n toString: function () {\n var s = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.StringBuilder();\n s.append('ptg(');\n s.append(this.theta);\n s.append(',');\n s.append(this.phi);\n s.append(')');\n return s.toString();\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Pointing\", [Pointing, Pointing$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/render_context.js\":\n/*!*******************************!*\\\n !*** ./esm/render_context.js ***!\n \\*******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InViewReturnMessage: () => (/* binding */ InViewReturnMessage),\n/* harmony export */ RenderContext: () => (/* binding */ RenderContext)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./graphics/shaders.js */ \"./esm/graphics/shaders.js\");\n/* harmony import */ var _camera_parameters_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./camera_parameters.js */ \"./esm/camera_parameters.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./imageset.js */ \"./esm/imageset.js\");\n/* harmony import */ var _planets_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./planets.js */ \"./esm/planets.js\");\n/* harmony import */ var _render_triangle_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./render_triangle.js */ \"./esm/render_triangle.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./layers/spreadsheet_layer.js */ \"./esm/layers/spreadsheet_layer.js\");\n/* harmony import */ var _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./layers/layer_manager.js */ \"./esm/layers/layer_manager.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The main engine renderer implementation.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.InViewReturnMessage\n\nfunction InViewReturnMessage() {\n this.aborted = false;\n}\n\nvar InViewReturnMessage$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"InViewReturnMessage\", [InViewReturnMessage, InViewReturnMessage$, null]);\n\n\n// wwtlib.RenderContext\n\nfunction RenderContext() {\n this.height = 0;\n this.width = 0;\n this.lighting = false;\n this._viewPoint = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this.space = false;\n this._fovAngle = 0;\n this._fovScale = 0;\n this._nominalRadius = 6378137;\n this._mainTexture = null;\n this.viewMover = null;\n this.viewCamera = new _camera_parameters_js__WEBPACK_IMPORTED_MODULE_8__.CameraParameters();\n this.targetCamera = new _camera_parameters_js__WEBPACK_IMPORTED_MODULE_8__.CameraParameters();\n this.alt = 0;\n this.az = 0;\n this.targetAlt = 0;\n this.targetAz = 0;\n this._backgroundImageset = null;\n this._foregroundImageset = null;\n this._activeCatalogHipsImagesets = [];\n this._targetHeight = 1;\n this.targetAltitude = 0;\n this._galactic = true;\n this._galacticMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.create(-0.4838350155, -0.0548755604, -0.8734370902, 0, 0.7469822445, 0.4941094279, -0.44482963, 0, 0.4559837762, -0.867666149, -0.1980763734, 0, 0, 0, 0, 1);\n this._firstTimeInit = false;\n this._useSolarSystemTilt = true;\n this.customTrackingParams = new _camera_parameters_js__WEBPACK_IMPORTED_MODULE_8__.CameraParameters();\n this._cameraOffset = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this._fovLocal = (Math.PI / 4);\n this.perspectiveFov = Math.PI / 4;\n this.nearPlane = 0;\n this._frustumDirty = true;\n this._frustum = new Array(6);\n this._ambientLightColor = _color_js__WEBPACK_IMPORTED_MODULE_9__.Colors.get_black();\n this._hemiLightColor = _color_js__WEBPACK_IMPORTED_MODULE_9__.Colors.get_black();\n this._hemiLightUp = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this._sunlightColor = _color_js__WEBPACK_IMPORTED_MODULE_9__.Colors.get_white();\n this._sunPosition = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this._reflectedLightColor = _color_js__WEBPACK_IMPORTED_MODULE_9__.Colors.get_black();\n this._reflectedLightPosition = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this._occludingPlanetRadius = 0;\n this._occludingPlanetPosition = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this._lightingStateDirty = true;\n this._twoSidedLighting = false;\n this.cameraPosition = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this._skyColor = 'Blue';\n for (var i = 0; i < 6; i++) {\n this._frustum[i] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PlaneD(0, 0, 0, 0);\n }\n}\n\nRenderContext.back = 0;\n\nRenderContext.create = function (device) {\n var temp = new RenderContext();\n temp.device = device;\n temp.viewCamera.zoom = 700;\n temp.viewCamera.target = 65536;\n return temp;\n};\n\nRenderContext.getTilesYForLevel = function (layer, level) {\n var maxY = 1;\n switch (layer.get_projection()) {\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.mercator:\n maxY = Math.pow(2, level);\n break;\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.equirectangular:\n maxY = (Math.pow(2, level) * (180 / layer.get_baseTileDegrees()));\n break;\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.tangent:\n maxY = Math.pow(2, level);\n break;\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.spherical:\n maxY = 1;\n break;\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.healpix:\n maxY = 4 * Math.pow(2, level);\n break;\n default:\n maxY = Math.pow(2, level);\n break;\n }\n if (maxY === Number.POSITIVE_INFINITY) {\n maxY = 1;\n }\n return maxY;\n};\n\nRenderContext.getTilesXForLevel = function (layer, level) {\n var maxX = 1;\n switch (layer.get_projection()) {\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.plotted:\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.toast:\n maxX = Math.pow(2, level);\n break;\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.mercator:\n maxX = Math.pow(2, level) * _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((layer.get_baseTileDegrees() / 360));\n break;\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.equirectangular:\n maxX = Math.pow(2, level) * _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((360 / layer.get_baseTileDegrees()));\n break;\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.tangent:\n if (layer.get_widthFactor() === 1) {\n maxX = Math.pow(2, level) * 2;\n }\n else {\n maxX = Math.pow(2, level);\n }\n break;\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.skyImage:\n maxX = 1;\n break;\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.spherical:\n maxX = 1;\n break;\n case _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ProjectionType.healpix:\n maxX = Math.pow(2, level) * 3;\n break;\n default:\n maxX = Math.pow(2, level) * 2;\n break;\n }\n return maxX;\n};\n\nvar RenderContext$ = {\n save: function () {\n if (this.gl != null) {\n } else {\n this.device.save();\n }\n },\n\n restore: function () {\n if (this.gl != null) {\n } else {\n this.device.restore();\n }\n },\n\n clear: function () {\n if (this.gl != null) {\n this.gl.viewport(0, 0, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(this.width), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(this.height));\n this.gl.clear(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.COLOR_BUFFER_BIT | _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.DEPTH_BUFFER_BIT);\n } else {\n this.device.save();\n this.device.fillStyle = 'black';\n this.device.fillRect(0, 0, this.width, this.height);\n this.device.restore();\n }\n },\n\n get_viewPoint: function () {\n return this._viewPoint;\n },\n\n get_RA: function () {\n return ((((180 - (this.viewCamera.lng - 180)) / 15) % 24) + 48) % 24;\n },\n\n rAtoViewLng: function (ra) {\n return 180 - (ra / 24 * 360) - 180;\n },\n\n get_dec: function () {\n return this.viewCamera.lat;\n },\n\n get_fovAngle: function () {\n return this._fovAngle;\n },\n\n get_fovScale: function () {\n return this._fovScale;\n },\n\n set_fovScale: function (value) {\n this._fovScale = value;\n return value;\n },\n\n get_view: function () {\n return this._view;\n },\n\n set_view: function (value) {\n this._view = value;\n this._frustumDirty = true;\n return value;\n },\n\n get_viewBase: function () {\n return this._viewBase;\n },\n\n set_viewBase: function (value) {\n this._viewBase = value;\n return value;\n },\n\n get_projection: function () {\n return this._projection;\n },\n\n set_projection: function (value) {\n this._projection = value;\n this._frustumDirty = true;\n return value;\n },\n\n get_world: function () {\n return this._world;\n },\n\n set_world: function (value) {\n this._world = value;\n this._frustumDirty = true;\n return value;\n },\n\n _getScreenTexture: function () {\n //todo add code to capture screen\n var tex = null;\n return tex;\n },\n\n get_worldBase: function () {\n return this._worldBase;\n },\n\n set_worldBase: function (value) {\n this._worldBase = value;\n return value;\n },\n\n get_worldBaseNonRotating: function () {\n return this._worldBaseNonRotating;\n },\n\n set_worldBaseNonRotating: function (value) {\n this._worldBaseNonRotating = value;\n return value;\n },\n\n get_nominalRadius: function () {\n return this._nominalRadius;\n },\n\n set_nominalRadius: function (value) {\n this._nominalRadius = value;\n return value;\n },\n\n get_mainTexture: function () {\n return this._mainTexture;\n },\n\n set_mainTexture: function (value) {\n if (value != null) {\n this._mainTexture = value;\n this.gl.bindTexture(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__.WEBGL.TEXTURE_2D, this._mainTexture.texture2d);\n }\n return value;\n },\n\n onTarget: function (place) {\n return ((Math.abs(this.viewCamera.lat - this.targetCamera.lat) < 1E-12 && Math.abs(this.viewCamera.lng - this.targetCamera.lng) < 1E-12 && Math.abs(this.viewCamera.zoom - this.targetCamera.zoom) < 1E-12) && this.viewMover == null);\n },\n\n setTexture: function (texture) { },\n\n get_backgroundImageset: function () {\n return this._backgroundImageset;\n },\n\n set_backgroundImageset: function (value) {\n var viewModeChanged = this._backgroundImageset != null && value != null && (this._backgroundImageset.get_dataSetType() !== value.get_dataSetType());\n this._backgroundImageset = value;\n\n if (viewModeChanged) {\n //Prevent potential artifacts when going from 3D to Sky/Pan\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalWWTControl._freezeView();\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalWWTControl.clampZooms(this);\n }\n return value;\n },\n\n get_foregroundImageset: function () {\n return this._foregroundImageset;\n },\n\n set_foregroundImageset: function (value) {\n this._foregroundImageset = value;\n return value;\n },\n\n get_catalogHipsImagesets: function () {\n return this._activeCatalogHipsImagesets;\n },\n\n getCatalogHipsDataInView: function (imageset, limit, onComplete) {\n var $this = this;\n\n var layer = new _layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_16__.CatalogSpreadSheetLayer();\n var onHeaderInfoLoad = function () {\n layer.useHeadersFromVoTable(imageset.get_hipsProperties().get_catalogColumnInfo());\n $this._tryGetAllDataInView(imageset, limit, layer, onComplete, 0);\n };\n if (imageset.get_hipsProperties() == null) {\n imageset.set_hipsProperties((0,_data_globals_js__WEBPACK_IMPORTED_MODULE_3__.makeNewHipsProperties)(imageset));\n imageset.get_hipsProperties().setDownloadCompleteListener(onHeaderInfoLoad);\n } else if (imageset.get_hipsProperties() != null && imageset.get_hipsProperties().get_downloadComplete()) {\n onHeaderInfoLoad();\n } else {\n imageset.get_hipsProperties().setDownloadCompleteListener(onHeaderInfoLoad);\n }\n },\n\n _tryGetAllDataInView: function (imageset, limit, catalogSpreadSheetLayer, onComplete, i) {\n var $this = this;\n\n var maxX = RenderContext.getTilesXForLevel(imageset, imageset.get_baseLevel());\n var maxY = RenderContext.getTilesYForLevel(imageset, imageset.get_baseLevel());\n var anyTileStillDownloading = false;\n for (var x = 0; x < maxX; x++) {\n for (var y = 0; y < maxY; y++) {\n var tile = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_4__.tileCacheGetTile)(imageset.get_baseLevel(), x, y, imageset, null);\n if (tile != null) {\n var tileAndChildrenReady = (tile).getDataInView(this, limit, catalogSpreadSheetLayer);\n anyTileStillDownloading = anyTileStillDownloading || !tileAndChildrenReady;\n }\n else {\n anyTileStillDownloading = true;\n }\n }\n }\n if (anyTileStillDownloading) {\n var count = catalogSpreadSheetLayer.get__table().rows.length;\n if ((count > 10000 || i > 100 * 60 * 5) && limit) {\n console.log('Too Many results - Aborting');\n console.log(count);\n var returnMessage = new InViewReturnMessage();\n returnMessage.aborted = true;\n returnMessage.table = catalogSpreadSheetLayer.getTableDataInView();\n onComplete(returnMessage);\n catalogSpreadSheetLayer.cleanUp();\n }\n else {\n setTimeout(function () {\n $this._tryGetAllDataInView(imageset, limit, catalogSpreadSheetLayer, onComplete, i);\n }, 10);\n if (!(i % 200)) {\n console.log('Waiting for more tiles to load');\n console.log(count);\n }\n i++;\n }\n } else {\n var count = catalogSpreadSheetLayer.get__table().rows.length;\n console.log('Done!');\n console.log(count);\n var returnMessage = new InViewReturnMessage();\n returnMessage.aborted = false;\n returnMessage.table = catalogSpreadSheetLayer.getTableDataInView();\n onComplete(returnMessage);\n catalogSpreadSheetLayer.cleanUp();\n }\n },\n\n addCatalogHips: function (imageset, onLoad) {\n if (!(this._activeCatalogHipsImagesets.indexOf(imageset) >= 0)) {\n this._activeCatalogHipsImagesets.push(imageset);\n }\n if (imageset.get_hipsProperties() == null) {\n imageset.set_hipsProperties((0,_data_globals_js__WEBPACK_IMPORTED_MODULE_3__.makeNewHipsProperties)(imageset));\n imageset.get_hipsProperties().setDownloadCompleteListener(onLoad);\n } else if (imageset.get_hipsProperties() != null && imageset.get_hipsProperties().get_downloadComplete()) {\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_17__.LayerManager.addSpreadsheetLayer(imageset.get_hipsProperties().get_catalogSpreadSheetLayer(), 'Sky');\n if (onLoad != null) {\n onLoad();\n }\n }\n },\n\n removeCatalogHips: function (imageset) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(this._activeCatalogHipsImagesets, imageset);\n if (imageset.get_hipsProperties() != null) {\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_17__.LayerManager.deleteLayerByID(imageset.get_hipsProperties().get_catalogSpreadSheetLayer().id, true, true);\n }\n },\n\n getCatalogHipsByName: function (name) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._activeCatalogHipsImagesets);\n while ($enum1.moveNext()) {\n var imageset = $enum1.current;\n if (imageset.get_name() === name) {\n return imageset;\n }\n }\n return null;\n },\n\n getAltitudeForLatLongForPlanet: function (planetID, viewLat, viewLong) {\n var layer = _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalWWTControl.getImagesetByName(_planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.getNameFrom3dId(planetID));\n if (layer == null) {\n return 0;\n }\n var maxX = RenderContext.getTilesXForLevel(layer, layer.get_baseLevel());\n var maxY = RenderContext.getTilesYForLevel(layer, layer.get_baseLevel());\n for (var x = 0; x < maxX; x++) {\n for (var y = 0; y < maxY; y++) {\n var tile = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_4__.tileCacheGetTile)(layer.get_baseLevel(), x, y, layer, null);\n if (tile != null) {\n if (tile.isPointInTile(viewLat, viewLong)) {\n return tile.getSurfacePointAltitude(viewLat, viewLong, true);\n }\n }\n }\n }\n return 0;\n },\n\n getEarthAltitude: function (ViewLat, ViewLong, meters) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalWWTControl.get_solarSystemMode()) {\n var pnt = _coordinates_js__WEBPACK_IMPORTED_MODULE_10__.Coordinates.geoTo3dDouble(ViewLat, ViewLong + 90);\n var EarthMat = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.earthMatrixInv;\n pnt = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d._transformCoordinate(pnt, EarthMat);\n pnt.normalize();\n var point = _coordinates_js__WEBPACK_IMPORTED_MODULE_10__.Coordinates.cartesianToLatLng(pnt);\n return this.getAltitudeForLatLongForPlanet(this.viewCamera.target, point.y, point.x);\n } else if (this.get_backgroundImageset().get_dataSetType() != _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ImageSetType.earth) {\n return (meters) ? this.getMetersAltitudeForLatLong(ViewLat, ViewLong) : this.getScaledAltitudeForLatLong(ViewLat, ViewLong);\n } else {\n return 0;\n }\n },\n\n drawImageSet: function (imageset, opacity) {\n var maxX = RenderContext.getTilesXForLevel(imageset, imageset.get_baseLevel());\n var maxY = RenderContext.getTilesYForLevel(imageset, imageset.get_baseLevel());\n for (var x = 0; x < maxX; x++) {\n for (var y = 0; y < maxY; y++) {\n var tile = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_4__.tileCacheGetTile)(imageset.get_baseLevel(), x, y, imageset, null);\n if (tile != null) {\n tile.draw3D(this, opacity);\n }\n }\n }\n },\n\n _getTileAtLatLong: function (viewLat, viewLong) {\n var layer = this.get_backgroundImageset();\n if (layer == null) {\n return null;\n }\n var maxX = RenderContext.getTilesXForLevel(layer, layer.get_baseLevel());\n var maxY = RenderContext.getTilesYForLevel(layer, layer.get_baseLevel());\n for (var x = 0; x < maxX; x++) {\n for (var y = 0; y < maxY; y++) {\n var tile = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_4__.tileCacheGetTile)(layer.get_baseLevel(), x, y, layer, null);\n if (tile != null) {\n if (tile.isPointInTile(viewLat, viewLong)) {\n return tile;\n }\n }\n }\n }\n return null;\n },\n\n getScaledAltitudeForLatLong: function (viewLat, viewLong) {\n var tile = this._getTileAtLatLong(viewLat, viewLong);\n if (tile != null) {\n return tile.getSurfacePointAltitude(viewLat, viewLong, false);\n }\n return 0;\n },\n\n getMetersAltitudeForLatLong: function (viewLat, viewLong) {\n var tile = this._getTileAtLatLong(viewLat, viewLong);\n if (tile != null) {\n return tile.getSurfacePointAltitude(viewLat, viewLong, true);\n }\n return 0;\n },\n\n _setupMatricesLand3d: function () {\n this.lighting = false;\n this.space = false;\n _render_triangle_js__WEBPACK_IMPORTED_MODULE_13__.RenderTriangle.cullInside = false;\n\n // For our world matrix, we will just rotate the Earth and Clouds about the y-axis.\n var WorldMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY(((this.viewCamera.lng - 90) / 180 * Math.PI));\n WorldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(((-this.viewCamera.lat) / 180 * Math.PI)));\n this.set_world(WorldMatrix);\n this.set_worldBase(WorldMatrix.clone());\n this._viewPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_10__.Coordinates.geoTo3d(this.viewCamera.lat, this.viewCamera.lng);\n var distance = 0;\n if (this._backgroundImageset.get_isMandelbrot()) {\n distance = (4 * (this.viewCamera.zoom / 180)) + 1E-41;\n } else {\n distance = (4 * (this.viewCamera.zoom / 180)) + 1E-06;\n }\n this._fovAngle = (this.viewCamera.zoom / 343.774) / Math.PI * 180;\n this._fovScale = (this._fovAngle / this.height) * 3600;\n if (this.gl != null) {\n this.targetAltitude = this.getScaledAltitudeForLatLong(this.viewCamera.lat, this.viewCamera.lng);\n var heightNow = 1 + this.targetAltitude;\n this.targetAltitude *= this.get_nominalRadius();\n if (this._targetHeight < heightNow) {\n this._targetHeight = (((this._targetHeight * 2) + heightNow) / 3);\n }\n else {\n this._targetHeight = (((this._targetHeight * 9) + heightNow) / 10);\n }\n } else {\n this.targetAltitude = 0;\n this._targetHeight = 1;\n }\n var rotLocal = this.viewCamera.rotation;\n this.cameraPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create((Math.sin(rotLocal) * Math.sin(this.viewCamera.angle) * distance), (Math.cos(rotLocal) * Math.sin(this.viewCamera.angle) * distance), (-this._targetHeight - (Math.cos(this.viewCamera.angle) * distance)));\n var cameraTarget = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, -this._targetHeight);\n var camHeight = this.cameraPosition.length();\n var lookUp = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(Math.sin(rotLocal) * Math.cos(this.viewCamera.angle), Math.cos(rotLocal) * Math.cos(this.viewCamera.angle), Math.sin(this.viewCamera.angle));\n this.set_view(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.lookAtLH(this.cameraPosition, cameraTarget, lookUp));\n this.set_viewBase(this.get_view());\n var back = Math.sqrt((distance + 1) * (distance + 1) - 1);\n back = Math.max(0.5, back);\n var m_nearPlane = distance * 0.05;\n m_nearPlane = distance * 0.05;\n this.set_projection(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.perspectiveFovLH((Math.PI / 4), this.width / this.height, m_nearPlane, back));\n this._setMatrixes();\n this.makeFrustum();\n },\n\n setupMatricesSpace3d: function (canvasWidth, canvasHeight) {\n this.lighting = false;\n if (!this._firstTimeInit) {\n this._galacticMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n this._galacticMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY(-(270 - (17.7603329867975 * 15)) / 180 * Math.PI));\n this._galacticMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(-(-28.9361739586894) / 180 * Math.PI));\n this._galacticMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationZ(((31.422052860102) - 90) / 180 * Math.PI));\n this._firstTimeInit = true;\n }\n this.space = true;\n _render_triangle_js__WEBPACK_IMPORTED_MODULE_13__.RenderTriangle.cullInside = true;\n var WorldMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n if (_settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_galacticMode()) {\n WorldMatrix._multiply(this._galacticMatrix);\n WorldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY(this.az / 180 * Math.PI));\n WorldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(-this.alt / 180 * Math.PI));\n var gPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_10__.Coordinates.galactictoJ2000(this.az, this.alt);\n this._viewPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_10__.Coordinates.raDecTo3dAu(gPoint[0] / 15, gPoint[1], 1);\n this.targetCamera.lng = this.rAtoViewLng(gPoint[0] / 15);\n this.targetCamera.lat = gPoint[1];\n this.viewCamera.lat = this.targetCamera.lat;\n this.viewCamera.lng = this.targetCamera.lng;\n } else {\n WorldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY(-(this.viewCamera.lng - 90) / 180 * Math.PI));\n WorldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(-this.viewCamera.lat / 180 * Math.PI));\n this._viewPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_10__.Coordinates.raDecTo3dAu(this.get_RA(), this.get_dec(), 1);\n }\n var camLocal = this.viewCamera.rotation;\n this._fovAngle = (this.viewCamera.zoom / 343.774) / Math.PI * 180;\n this._fovScale = (this._fovAngle / canvasHeight) * 3600;\n\n // altaz\n if (_settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_localHorizonMode() && this._backgroundImageset.get_dataSetType() == _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ImageSetType.sky) {\n var zenithAltAz = new _coordinates_js__WEBPACK_IMPORTED_MODULE_10__.Coordinates(0, 0);\n zenithAltAz.set_az(0);\n zenithAltAz.set_alt(0);\n var zenith = _coordinates_js__WEBPACK_IMPORTED_MODULE_10__.Coordinates.horizonToEquitorial(zenithAltAz, _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_location(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_now());\n var raPart = -((zenith.get_RA() - 6) / 24 * (Math.PI * 2));\n var decPart = -(zenith.get_dec() / 360 * (Math.PI * 2));\n var raText = _coordinates_js__WEBPACK_IMPORTED_MODULE_10__.Coordinates.formatDMS(zenith.get_RA());\n WorldMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY(-raPart - Math.PI);\n WorldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(decPart));\n if (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_location().get_lat() < 0) {\n WorldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY((this.az / 180 * Math.PI)));\n WorldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX((this.alt / 180 * Math.PI)));\n camLocal += Math.PI;\n }\n else {\n WorldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY(((-this.az) / 180 * Math.PI)));\n WorldMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(((-this.alt) / 180 * Math.PI)));\n }\n var currentRaDec = _coordinates_js__WEBPACK_IMPORTED_MODULE_10__.Coordinates.horizonToEquitorial(_coordinates_js__WEBPACK_IMPORTED_MODULE_10__.Coordinates.fromLatLng(this.alt, this.az), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_location(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__.SpaceTimeController.get_now());\n this.viewCamera.lat = this.targetCamera.lat = currentRaDec.get_dec();\n this.viewCamera.lng = this.targetCamera.lng = this.rAtoViewLng(currentRaDec.get_RA());\n }\n this.set_world(WorldMatrix);\n this.set_worldBase(WorldMatrix.clone());\n var localZoomFactor = this.viewCamera.zoom;\n var FovAngle = (localZoomFactor / 343.774) / Math.PI * 180;\n this.cameraPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, 0);\n\n // This is for distance Calculation. For space everything is the same distance, so camera target is key.\n this.set_view(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.lookAtLH(this.cameraPosition, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, -1), _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(Math.sin(camLocal), Math.cos(camLocal), 0)));\n this.set_viewBase(this.get_view().clone());\n var m_nearPlane = 0.1;\n this.nearPlane = 0.1;\n this.set_projection(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.perspectiveFovLH(localZoomFactor / 343.774, canvasWidth / canvasHeight, 0.1, -2));\n this._setMatrixes();\n this.makeFrustum();\n },\n\n get_solarSystemTrack: function () {\n return this.viewCamera.target;\n },\n\n set_solarSystemTrack: function (value) {\n this.viewCamera.target = value;\n return value;\n },\n\n get_solarSystemCameraDistance: function () {\n return (4 * (this.viewCamera.zoom / 9)) + 1E-06;\n },\n\n get_sandboxMode: function () {\n if (this._backgroundImageset == null) {\n return false;\n }\n return this._backgroundImageset.get_dataSetType() === _imageset_js__WEBPACK_IMPORTED_MODULE_11__.ImageSetType.sandbox;\n },\n\n get_trackingFrame: function () {\n return this.viewCamera.targetReferenceFrame;\n },\n\n set_trackingFrame: function (value) {\n this.viewCamera.targetReferenceFrame = value;\n return value;\n },\n\n get_fovLocal: function () {\n return this._fovLocal;\n },\n\n set_fovLocal: function (value) {\n this._fovLocal = value;\n return value;\n },\n\n setupMatricesOverlays: function () {\n this.set_world(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity());\n var lookAtAdjust = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n var lookFrom = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, 0);\n var lookAt = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, 1);\n var lookUp = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 1, 0);\n var view;\n view = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.lookAtLH(lookFrom, lookAt, lookUp);\n view._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._scaling(1, -1, 1));\n this.set_view(view);\n var back = 10000;\n this.nearPlane = 0.1;\n this.set_projection(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.perspectiveFovLH(this._fovLocal, this.width / this.height, this.nearPlane, back));\n },\n\n setupMatricesSolarSystem: function (forStars) {\n this.lighting = _settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_solarSystemLighting();\n this.space = false;\n if (this.get_solarSystemTrack() !== 20 && this.get_solarSystemTrack() !== 65536) {\n this.viewCamera.viewTarget = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.getPlanetTargetPoint(this.get_solarSystemTrack(), this.viewCamera.lat, this.viewCamera.lng, 0);\n }\n _render_triangle_js__WEBPACK_IMPORTED_MODULE_13__.RenderTriangle.cullInside = false;\n var cameraDistance = this.get_solarSystemCameraDistance();\n var trackingMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n cameraDistance -= 1E-06;\n var activeTrackingFrame = false;\n if (this.get_solarSystemTrack() === 20 && !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this.get_trackingFrame())) {\n activeTrackingFrame = true;\n var target = _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_17__.LayerManager._getFrameTarget(this, this.get_trackingFrame());\n this.viewCamera.viewTarget = target.target;\n trackingMatrix = target.matrix;\n } else if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this.get_trackingFrame())) {\n this.set_trackingFrame('');\n }\n var center = this.viewCamera.viewTarget;\n var localZoom = this.viewCamera.zoom * 20;\n var lookAt = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n var viewAdjust = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n viewAdjust._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(((-this.viewCamera.lat) / 180 * Math.PI)));\n viewAdjust._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY(((-this.viewCamera.lng) / 180 * Math.PI)));\n var lookAtAdjust = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n var dome = false;\n var lookUp;\n if (this._useSolarSystemTilt && !this.get_sandboxMode()) {\n var angle = this.viewCamera.angle;\n if (cameraDistance > 0.0008) {\n angle = 0;\n }\n else if (cameraDistance > 1E-05) {\n var val = Math.min(1.903089987, _baseutil_js__WEBPACK_IMPORTED_MODULE_5__.Util.log10(cameraDistance) + 5) / 1.903089987;\n angle = angle * Math.max(0, 1 - val);\n }\n this.cameraPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create((Math.sin(-this.viewCamera.rotation) * Math.sin(angle) * cameraDistance), (Math.cos(-this.viewCamera.rotation) * Math.sin(angle) * cameraDistance), (Math.cos(angle) * cameraDistance));\n lookUp = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(Math.sin(-this.viewCamera.rotation), Math.cos(-this.viewCamera.rotation), 1E-05);\n } else {\n this.cameraPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, cameraDistance);\n lookUp = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(Math.sin(-this.viewCamera.rotation), Math.cos(-this.viewCamera.rotation), 0.0001);\n }\n this.cameraPosition = viewAdjust.transform(this.cameraPosition);\n this._cameraOffset = this.cameraPosition.copy();\n var tmp = trackingMatrix.clone();\n tmp.invert();\n this._cameraOffset = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d._transformCoordinate(this._cameraOffset, tmp);\n lookUp = viewAdjust.transform(lookUp);\n this.set_world(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity());\n this.set_worldBase(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity());\n this.set_worldBaseNonRotating(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity());\n this.set_view(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(trackingMatrix, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.lookAtLH(this.cameraPosition, lookAt, lookUp)), lookAtAdjust));\n this.set_viewBase(this.get_view().clone());\n var temp = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(lookAt, this.cameraPosition);\n temp.normalize();\n temp = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d._transformCoordinate(temp, trackingMatrix);\n temp.normalize();\n this._viewPoint = temp;\n var radius = _planets_js__WEBPACK_IMPORTED_MODULE_12__.Planets.getAdjustedPlanetRadius(this.get_solarSystemTrack());\n if (cameraDistance < radius * 2 && !forStars) {\n this.nearPlane = cameraDistance * 0.03;\n this.nearPlane = Math.max(this.nearPlane, 1E-11);\n RenderContext.back = 1900;\n } else {\n if (forStars) {\n RenderContext.back = 900056;\n RenderContext.back = (cameraDistance > 900056) ? cameraDistance * 3 : 900056;\n this.nearPlane = 3E-05;\n }\n else {\n RenderContext.back = (cameraDistance > 1900) ? cameraDistance + 200 : 1900;\n if (_settings_js__WEBPACK_IMPORTED_MODULE_14__.Settings.get_active().get_solarSystemScale() < 13) {\n this.nearPlane = Math.min(cameraDistance * 0.03, 0.01);\n }\n else {\n this.nearPlane = 0.001;\n }\n }\n }\n this.set_projection(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.perspectiveFovLH(this._fovLocal, this.width / this.height, this.nearPlane, RenderContext.back));\n this.perspectiveFov = this._fovLocal;\n this._fovAngle = (this.viewCamera.zoom / 343.774) / Math.PI * 180;\n this._fovScale = (this._fovAngle / this.height) * 3600;\n this._setMatrixes();\n this.makeFrustum();\n },\n\n _setMatrixes: function () { },\n\n get_frustum: function () {\n return this._frustum;\n },\n\n get_ambientLightColor: function () {\n return this._ambientLightColor;\n },\n\n set_ambientLightColor: function (value) {\n this._ambientLightColor = value;\n this._lightingStateDirty = true;\n return value;\n },\n\n get_hemisphereLightColor: function () {\n return this._hemiLightColor;\n },\n\n set_hemisphereLightColor: function (value) {\n this._hemiLightColor = value;\n this._lightingStateDirty = true;\n return value;\n },\n\n get_hemisphereLightUp: function () {\n return this._hemiLightUp;\n },\n\n set_hemisphereLightUp: function (value) {\n this._hemiLightUp = value;\n this._lightingStateDirty = true;\n return value;\n },\n\n get_sunlightColor: function () {\n return this._sunlightColor;\n },\n\n set_sunlightColor: function (value) {\n this._sunlightColor = value;\n this._lightingStateDirty = true;\n return value;\n },\n\n get_sunPosition: function () {\n return this._sunPosition;\n },\n\n set_sunPosition: function (value) {\n this._sunPosition = value;\n this._lightingStateDirty = true;\n return value;\n },\n\n get_reflectedLightColor: function () {\n return this._reflectedLightColor;\n },\n\n set_reflectedLightColor: function (value) {\n if (this._reflectedLightColor !== value) {\n this._reflectedLightColor = value;\n this._lightingStateDirty = true;\n }\n return value;\n },\n\n get_reflectedLightPosition: function () {\n return this._reflectedLightPosition;\n },\n\n set_reflectedLightPosition: function (value) {\n this._reflectedLightPosition = value;\n this._lightingStateDirty = true;\n return value;\n },\n\n // Radius of a planet casting a shadow; zero when there's no shadow\n get_occludingPlanetRadius: function () {\n return this._occludingPlanetRadius;\n },\n\n set_occludingPlanetRadius: function (value) {\n this._occludingPlanetRadius = value;\n return value;\n },\n\n get_occludingPlanetPosition: function () {\n return this._occludingPlanetPosition;\n },\n\n set_occludingPlanetPosition: function (value) {\n this._occludingPlanetPosition = value;\n return value;\n },\n\n get_twoSidedLighting: function () {\n return this._twoSidedLighting;\n },\n\n set_twoSidedLighting: function (value) {\n if (value !== this._twoSidedLighting) {\n this._twoSidedLighting = value;\n this._lightingStateDirty = true;\n }\n return value;\n },\n\n makeFrustum: function () {\n this.WV = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(this.get_world(), this.get_view());\n var viewProjection = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(this.WV, this.get_projection());\n this.WVP = viewProjection.clone();\n var inverseWorld = this.get_world().clone();\n inverseWorld.invert();\n\n // Left plane\n this._frustum[0].a = viewProjection.get_m14() + viewProjection.get_m11();\n this._frustum[0].b = viewProjection.get_m24() + viewProjection.get_m21();\n this._frustum[0].c = viewProjection.get_m34() + viewProjection.get_m31();\n this._frustum[0].d = viewProjection.get_m44() + viewProjection.get_m41();\n\n // Right plane\n this._frustum[1].a = viewProjection.get_m14() - viewProjection.get_m11();\n this._frustum[1].b = viewProjection.get_m24() - viewProjection.get_m21();\n this._frustum[1].c = viewProjection.get_m34() - viewProjection.get_m31();\n this._frustum[1].d = viewProjection.get_m44() - viewProjection.get_m41();\n\n // Top plane\n this._frustum[2].a = viewProjection.get_m14() - viewProjection.get_m12();\n this._frustum[2].b = viewProjection.get_m24() - viewProjection.get_m22();\n this._frustum[2].c = viewProjection.get_m34() - viewProjection.get_m32();\n this._frustum[2].d = viewProjection.get_m44() - viewProjection.get_m42();\n\n // Bottom plane\n this._frustum[3].a = viewProjection.get_m14() + viewProjection.get_m12();\n this._frustum[3].b = viewProjection.get_m24() + viewProjection.get_m22();\n this._frustum[3].c = viewProjection.get_m34() + viewProjection.get_m32();\n this._frustum[3].d = viewProjection.get_m44() + viewProjection.get_m42();\n\n // Near plane\n this._frustum[4].a = viewProjection.get_m13();\n this._frustum[4].b = viewProjection.get_m23();\n this._frustum[4].c = viewProjection.get_m33();\n this._frustum[4].d = viewProjection.get_m43();\n\n // Far plane\n this._frustum[5].a = viewProjection.get_m14() - viewProjection.get_m13();\n this._frustum[5].b = viewProjection.get_m24() - viewProjection.get_m23();\n this._frustum[5].c = viewProjection.get_m34() - viewProjection.get_m33();\n this._frustum[5].d = viewProjection.get_m44() - viewProjection.get_m43();\n\n // Normalize planes\n for (var i = 0; i < 6; i++) {\n this._frustum[i].normalize();\n }\n this._frustumDirty = false;\n this.WVP.scale(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(this.width / 2, -this.height / 2, 1));\n this.WVP.translate(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(this.width / 2, this.height / 2, 0));\n this._setMatrixes();\n },\n\n _initGL: function () {\n if (this.gl == null) {\n return;\n }\n var uints_for_indices = this.gl.getExtension('OES_element_index_uint');\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_4__.set_tileUvMultiple)(1);\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_4__.set_tileDemEnabled)(true);\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.TileShader.init(this);\n },\n\n freezeView: function () {\n this.targetAlt = this.alt;\n this.targetAz = this.az;\n this.targetCamera = this.viewCamera.copy();\n },\n\n _setVertexBuffer: function (vertexBuffer) { },\n\n _setIndexBuffer: function (indexBuffer) { },\n\n // Set up a shader for the specified material properties and the\n // current lighting environment.\n setMaterial: function (material, diffuseTex, specularTex, normalMap, opacity) {\n this.set_mainTexture(diffuseTex);\n },\n\n preDraw: function () { }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"RenderContext\", [RenderContext, RenderContext$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/render_globals.js\":\n/*!*******************************!*\\\n !*** ./esm/render_globals.js ***!\n \\*******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ globalRenderContext: () => (/* binding */ globalRenderContext),\n/* harmony export */ inc_tileCacheAccessID: () => (/* binding */ inc_tileCacheAccessID),\n/* harmony export */ set_globalRenderContext: () => (/* binding */ set_globalRenderContext),\n/* harmony export */ set_tileCacheAddTileToQueue: () => (/* binding */ set_tileCacheAddTileToQueue),\n/* harmony export */ set_tileCacheGetCachedTile: () => (/* binding */ set_tileCacheGetCachedTile),\n/* harmony export */ set_tileCacheGetTile: () => (/* binding */ set_tileCacheGetTile),\n/* harmony export */ set_tileCacheRemoveFromQueue: () => (/* binding */ set_tileCacheRemoveFromQueue),\n/* harmony export */ set_tileDemEnabled: () => (/* binding */ set_tileDemEnabled),\n/* harmony export */ set_tilePrepDevice: () => (/* binding */ set_tilePrepDevice),\n/* harmony export */ set_tileUvMultiple: () => (/* binding */ set_tileUvMultiple),\n/* harmony export */ set_useGl: () => (/* binding */ set_useGl),\n/* harmony export */ set_useGlVersion2: () => (/* binding */ set_useGlVersion2),\n/* harmony export */ tileCacheAddTileToQueue: () => (/* binding */ tileCacheAddTileToQueue),\n/* harmony export */ tileCacheGetCachedTile: () => (/* binding */ tileCacheGetCachedTile),\n/* harmony export */ tileCacheGetTile: () => (/* binding */ tileCacheGetTile),\n/* harmony export */ tileCacheRemoveFromQueue: () => (/* binding */ tileCacheRemoveFromQueue),\n/* harmony export */ tileDemEnabled: () => (/* binding */ tileDemEnabled),\n/* harmony export */ tilePrepDevice: () => (/* binding */ tilePrepDevice),\n/* harmony export */ tileUvMultiple: () => (/* binding */ tileUvMultiple),\n/* harmony export */ useGl: () => (/* binding */ useGl),\n/* harmony export */ useGlVersion2: () => (/* binding */ useGlVersion2)\n/* harmony export */ });\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Various global variables associated with the rendering engine.\n//\n// In the original C# code these were generally static values associated with\n// various classes, but since we want to avoid circular dependencies in our\n// module structure, we gather some of those values in modules that contain\n// minimal amounts of code (like this one) so that they can go early in the\n// dependency graph.\n\n// This used to be Tile.prepDevice. It's the global WebGL rendering context.\nvar tilePrepDevice = null;\n\nfunction set_tilePrepDevice(value) {\n tilePrepDevice = value;\n}\n\n// This used to be Tile.uvMultiple. It's some GL rendering state variable.\nvar tileUvMultiple = 256;\n\nfunction set_tileUvMultiple(value) {\n tileUvMultiple = value;\n}\n\n// This used to be Tile.demEnabled. It controls whether DEM rendering is\n// enabled, hopefully?\nvar tileDemEnabled = false;\n\nfunction set_tileDemEnabled(value) {\n tileDemEnabled = !!value;\n}\n\n// This used to be `RenderContext.useGl`. It sets whether we're using WebGL.\n//\n// Older versions of the engine used to support HTML Canvas rendering, but that\n// mode is now deprecated. Uses where `useGl` is false may break at any time.\nvar useGl = false;\n\nfunction set_useGl(value) {\n useGl = !!value;\n}\n\n// This used to be `RenderContext.useGlVersion2`. It sets whether we're\n// using WebGL >= 2.\nvar useGlVersion2 = false;\n\nfunction set_useGlVersion2(value) {\n useGlVersion2 = !!value;\n}\n\n// This used to be `TileCache.addTileToQueue()`. It's a function that\n// adds a tile to the fetch queue.\nvar tileCacheAddTileToQueue = null;\n\nfunction set_tileCacheAddTileToQueue(value) {\n tileCacheAddTileToQueue = value;\n}\n\n// This used to be `TileCache.removeFromQueue()`. It's a function that\n// removes a tile from the fetch queue.\nvar tileCacheRemoveFromQueue = null;\n\nfunction set_tileCacheRemoveFromQueue(value) {\n tileCacheRemoveFromQueue = value;\n}\n\n// This used to be `TileCache.accessID`.\nvar tileCacheAccessID = 0;\n\nfunction inc_tileCacheAccessID() {\n return tileCacheAccessID++;\n}\n\n// This used to be `TileCache.getTile()`. It gets a tile from the cache, unconditionally.\nvar tileCacheGetTile = null;\n\nfunction set_tileCacheGetTile(value) {\n tileCacheGetTile = value;\n}\n\n// This used to be `TileCache.getCachedTile()`. It gets a tile from the cache.\nvar tileCacheGetCachedTile = null;\n\nfunction set_tileCacheGetCachedTile(value) {\n tileCacheGetCachedTile = value;\n}\n\n// This is another way to access `WWTControl.singleton.renderContext`. It's the\n// global singleton RenderContext instance.\nvar globalRenderContext = null;\n\nfunction set_globalRenderContext(value) {\n globalRenderContext = value;\n}\n\n\n/***/ }),\n\n/***/ \"./esm/render_triangle.js\":\n/*!********************************!*\\\n !*** ./esm/render_triangle.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RenderTriangle: () => (/* binding */ RenderTriangle)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A triangle that is part of a tile pyramid render.\n\n\n\n\n\n// wwtlib.RenderTriangle\n\nfunction RenderTriangle() {\n this.a = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.PositionTexture();\n this.b = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.PositionTexture();\n this.c = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.PositionTexture();\n this.normal = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d();\n this.opacity = 1;\n this.expansionInPixels = 0.6;\n this.tileLevel = 0;\n this._ta = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d();\n this._tb = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d();\n this._tc = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d();\n this._expandedS0 = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d();\n this._expandedS1 = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d();\n this._expandedS2 = new _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d();\n this.lighting = 1;\n}\n\nRenderTriangle.width = 1024;\nRenderTriangle.height = 768;\nRenderTriangle._contractionInPixels = -0.5;\nRenderTriangle.trianglesRendered = 0;\nRenderTriangle.trianglesCulled = 0;\nRenderTriangle.renderingOn = true;\nRenderTriangle._factor = 1;\nRenderTriangle.cullInside = true;\nRenderTriangle._hw = 0;\nRenderTriangle._qw = 0;\nRenderTriangle._hh = 0;\nRenderTriangle._qh = 0;\n\nRenderTriangle.create = function (a, b, c, img, level) {\n var temp = new RenderTriangle();\n temp.a = a.copy();\n temp.b = b.copy();\n temp.c = c.copy();\n temp._texture = img;\n temp.tileLevel = level;\n temp.makeNormal();\n return temp;\n};\n\nRenderTriangle.createWithMiter = function (a, b, c, img, level, expansion) {\n var temp = new RenderTriangle();\n temp.expansionInPixels = expansion;\n temp.a = a.copy();\n temp.b = b.copy();\n temp.c = c.copy();\n temp._texture = img;\n temp.tileLevel = level;\n temp.makeNormal();\n return temp;\n};\n\nRenderTriangle._getMiterPoint = function (p1, p2, p3, edgeOffset) {\n var edge1 = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.subtract(p2, p1);\n var edge2 = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.subtract(p3, p1);\n edge1.normalize();\n edge2.normalize();\n var dir = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(edge1.x + edge2.x, edge1.y + edge2.y);\n dir.normalize();\n var delta = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(edge1.x - edge2.x, edge1.y - edge2.y);\n var sineHalfAngle = delta.get_length() / 2;\n var net = Math.min(2, edgeOffset / sineHalfAngle);\n dir.extend(net);\n return _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(p1.x - dir.x, p1.y - dir.y);\n};\n\nRenderTriangle._miterPoint = function (p1x, p1y, p2x, p2y, p3x, p3y, ExpansionInPixels) {\n var e1x = p2x - p1x;\n var e1y = p2y - p1y;\n var e2x = p3x - p1x;\n var e2y = p3y - p1y;\n var length = Math.sqrt(e1x * e1x + e1y * e1y);\n if (!!length) {\n e1x /= length;\n e1y /= length;\n }\n length = Math.sqrt(e2x * e2x + e2y * e2y);\n if (!!length) {\n e2x /= length;\n e2y /= length;\n }\n var dx = e1x + e2x;\n var dy = e1y + e2y;\n length = Math.sqrt(dx * dx + dy * dy);\n if (!!length) {\n dx /= length;\n dy /= length;\n }\n var deltax = e1x - e2x;\n var deltay = e1y - e2y;\n length = Math.sqrt(deltax * deltax + deltay * deltay);\n var sineHalfAngle = length / 2;\n var net = Math.min(2, ExpansionInPixels / sineHalfAngle);\n dx *= net;\n dy *= net;\n return _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(p1x - dx, p1y - dy);\n};\n\nRenderTriangle._miterPointOut = function (pntOut, p1x, p1y, p2x, p2y, p3x, p3y, ExpansionInPixels) {\n var e1x = p2x - p1x;\n var e1y = p2y - p1y;\n var e2x = p3x - p1x;\n var e2y = p3y - p1y;\n var length = Math.sqrt(e1x * e1x + e1y * e1y);\n if (!!length) {\n e1x /= length;\n e1y /= length;\n }\n length = Math.sqrt(e2x * e2x + e2y * e2y);\n if (!!length) {\n e2x /= length;\n e2y /= length;\n }\n var dx = e1x + e2x;\n var dy = e1y + e2y;\n length = Math.sqrt(dx * dx + dy * dy);\n if (!!length) {\n dx /= length;\n dy /= length;\n }\n var deltax = e1x - e2x;\n var deltay = e1y - e2y;\n length = Math.sqrt(deltax * deltax + deltay * deltay);\n var sineHalfAngle = length / 2;\n var net = Math.min(2, ExpansionInPixels / sineHalfAngle);\n dx *= net;\n dy *= net;\n pntOut.x = p1x - dx;\n pntOut.y = p1y - dy;\n};\n\nvar RenderTriangle$ = {\n makeNormal: function () {\n var a = this.a.position.copy();\n var b = this.b.position.copy();\n var c = this.c.position.copy();\n a.normalize();\n b.normalize();\n c.normalize();\n var x = a.x + b.x + c.x;\n var y = a.y + b.y + c.y;\n var z = a.z + b.z + c.z;\n this.normal = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.create(x / 3, y / 3, z / 3);\n this.normal.normalize();\n },\n\n _checkBackface: function () {\n var ab = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.subtractVectors(this._ta, this._tb);\n var ac = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.subtractVectors(this._ta, this._tc);\n var cp = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.cross(ab, ac);\n cp.normalize();\n return cp.z >= 0;\n },\n\n draw: function (ctx, wvp) {\n if (ctx == null) {\n return;\n }\n wvp._transformTo(this.a.position, this._ta);\n wvp._transformTo(this.b.position, this._tb);\n wvp._transformTo(this.c.position, this._tc);\n if (this._checkBackface() === RenderTriangle.cullInside) {\n RenderTriangle.trianglesCulled++;\n return;\n }\n this._drawTriangle(ctx, this._texture, this._ta.x, this._ta.y, this._tb.x, this._tb.y, this._tc.x, this._tc.y, this.a.tu, this.a.tv, this.b.tu, this.b.tv, this.c.tu, this.c.tv);\n },\n\n _drawTriangle: function (ctx, im, x0, y0, x1, y1, x2, y2, sx0, sy0, sx1, sy1, sx2, sy2) {\n if (!this.intersects(0, RenderTriangle.width, 0, RenderTriangle.height, x0, y0, x1, y1, x2, y2)) {\n return false;\n }\n RenderTriangle._miterPointOut(this._expandedS0, x0, y0, x1, y1, x2, y2, this.expansionInPixels);\n RenderTriangle._miterPointOut(this._expandedS1, x1, y1, x0, y0, x2, y2, this.expansionInPixels);\n RenderTriangle._miterPointOut(this._expandedS2, x2, y2, x1, y1, x0, y0, this.expansionInPixels);\n x0 = this._expandedS0.x;\n y0 = this._expandedS0.y;\n x1 = this._expandedS1.x;\n y1 = this._expandedS1.y;\n x2 = this._expandedS2.x;\n y2 = this._expandedS2.y;\n ctx.save();\n if (RenderTriangle.renderingOn) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.closePath();\n ctx.clip();\n }\n var denom = sx0 * (sy2 - sy1) - sx1 * sy2 + sx2 * sy1 + (sx1 - sx2) * sy0;\n //if (denom == 0)\n //{\n // ctx.Restore();\n // return false;\n //}\n\n var m11 = -(sy0 * (x2 - x1) - sy1 * x2 + sy2 * x1 + (sy1 - sy2) * x0) / denom;\n var m12 = (sy1 * y2 + sy0 * (y1 - y2) - sy2 * y1 + (sy2 - sy1) * y0) / denom;\n var m21 = (sx0 * (x2 - x1) - sx1 * x2 + sx2 * x1 + (sx1 - sx2) * x0) / denom;\n var m22 = -(sx1 * y2 + sx0 * (y1 - y2) - sx2 * y1 + (sx2 - sx1) * y0) / denom;\n var dx = (sx0 * (sy2 * x1 - sy1 * x2) + sy0 * (sx1 * x2 - sx2 * x1) + (sx2 * sy1 - sx1 * sy2) * x0) / denom;\n var dy = (sx0 * (sy2 * y1 - sy1 * y2) + sy0 * (sx1 * y2 - sx2 * y1) + (sx2 * sy1 - sx1 * sy2) * y0) / denom;\n ctx.transform(m11, m12, m21, m22, dx, dy);\n if (RenderTriangle.renderingOn) {\n ctx.globalAlpha = this.opacity;\n if (this.lighting < 1) {\n ctx.globalAlpha = 1;\n ctx.fillStyle = 'Black';\n ctx.fillRect(0, 0, RenderTriangle.width, RenderTriangle.height);\n ctx.globalAlpha = this.lighting * this.opacity;\n }\n ctx.drawImage(im, 0, 0);\n }\n ctx.restore();\n return true;\n },\n\n intersects: function (l, r, t, b, x0, y0, x1, y1, x2, y2) {\n if (x0 > l && x0 < r && y0 > t && y0 < b) {\n return true;\n }\n if (x1 > l && x1 < r && y1 > t && y1 < b) {\n return true;\n }\n if (x2 > l && x2 < r && y2 > t && y2 < b) {\n return true;\n }\n var h4 = RenderTriangle.height * 4;\n if (this.tileLevel < 4 && ((Math.abs(x0 - x1) > h4) || (Math.abs(y0 - y1) > h4) || (Math.abs(x2 - x1) > h4) || (Math.abs(y2 - y1) > h4) || (Math.abs(x0 - x2) > h4) || (Math.abs(y0 - y2) > h4))) {\n return false;\n }\n return this.lineRectangleIntersect(l, r, t, b, x0, y0, x1, y1) || this.lineRectangleIntersect(l, r, t, b, x1, y1, x2, y2) || this.lineRectangleIntersect(l, r, t, b, x2, y2, x0, y0);\n },\n\n lineRectangleIntersect: function (l, r, t, b, x0, y0, x1, y1) {\n var top_intersection;\n var bottom_intersection;\n var toptrianglepoint;\n var bottomtrianglepoint;\n var m;\n var c;\n\n // Calculate m and c for the equation for the line (y = mx+c)\n m = (y1 - y0) / (x1 - x0);\n c = y0 - (m * x0);\n\n // if the line is going up from right to left then the top intersect point is on the left\n if (m > 0) {\n top_intersection = (m * l + c);\n bottom_intersection = (m * r + c);\n } else {\n // otherwise it's on the right\n top_intersection = (m * r + c);\n bottom_intersection = (m * l + c);\n }\n\n // work out the top and bottom extents for the triangle\n if (y0 < y1) {\n toptrianglepoint = y0;\n bottomtrianglepoint = y1;\n } else {\n toptrianglepoint = y1;\n bottomtrianglepoint = y0;\n }\n\n // and calculate the overlap between those two bounds\n var topoverlap;\n var botoverlap;\n topoverlap = (top_intersection > toptrianglepoint) ? top_intersection : toptrianglepoint;\n botoverlap = (bottom_intersection < bottomtrianglepoint) ? bottom_intersection : bottomtrianglepoint;\n\n // (topoverlapb)) :\n // If the bottom overlap is higher than the top of the rectangle or the top overlap is\n // lower than the bottom of the rectangle we don't have intersection. So return the negative\n // of that. Much faster than checking each of the points is within the bounds of the rectangle.\n return (topoverlap < botoverlap) && (!((botoverlap < t) || (topoverlap > b)));\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"RenderTriangle\", [RenderTriangle, RenderTriangle$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/script_interface.js\":\n/*!*********************************!*\\\n !*** ./esm/script_interface.js ***!\n \\*********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnnotationClickEventArgs: () => (/* binding */ AnnotationClickEventArgs),\n/* harmony export */ ArrivedEventArgs: () => (/* binding */ ArrivedEventArgs),\n/* harmony export */ CollectionLoadedEventArgs: () => (/* binding */ CollectionLoadedEventArgs),\n/* harmony export */ ScriptInterface: () => (/* binding */ ScriptInterface),\n/* harmony export */ SlideChangedEventArgs: () => (/* binding */ SlideChangedEventArgs)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _annotation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./annotation.js */ \"./esm/annotation.js\");\n/* harmony import */ var _layers_fits_image_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./layers/fits_image.js */ \"./esm/layers/fits_image.js\");\n/* harmony import */ var _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./layers/fits_image_js.js */ \"./esm/layers/fits_image_js.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./imageset.js */ \"./esm/imageset.js\");\n/* harmony import */ var _layers_imageset_layer_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./layers/imageset_layer.js */ \"./esm/layers/imageset_layer.js\");\n/* harmony import */ var _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./layers/layer_manager.js */ \"./esm/layers/layer_manager.js\");\n/* harmony import */ var _folder_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./folder.js */ \"./esm/folder.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The quasi-legacy ScriptInterface control interface.\n//\n// I believe that this new class was created in the very early days of the WWT\n// web control and was used as the interface point with the browser. In the\n// modern WebGL engine, there's not need to put all this functionality in this\n// separate module. But, as always, to preserve API compatibility, we maintain\n// all of the interfaces that were added here.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.SlideChangedEventArgs\n\nfunction SlideChangedEventArgs(caption) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs.call(this);\n this.set_caption(caption);\n}\n\nvar SlideChangedEventArgs$ = {\n get_caption: function () {\n return this._caption$2;\n },\n\n set_caption: function (value) {\n this._caption$2 = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"SlideChangedEventArgs\", [SlideChangedEventArgs, SlideChangedEventArgs$, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs]);\n\n\n// wwtlib.ArrivedEventArgs\n\nfunction ArrivedEventArgs(ra, dec, zoom) {\n this._ra$2 = 0;\n this._dec$2 = 0;\n this._zoom$2 = 0;\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs.call(this);\n this.set_RA(ra * 15);\n this.set_dec(dec);\n this.set_zoom(zoom / 6);\n}\n\nvar ArrivedEventArgs$ = {\n get_RA: function () {\n return this._ra$2;\n },\n\n set_RA: function (value) {\n this._ra$2 = value;\n return value;\n },\n\n get_dec: function () {\n return this._dec$2;\n },\n\n set_dec: function (value) {\n this._dec$2 = value;\n return value;\n },\n\n get_zoom: function () {\n return this._zoom$2;\n },\n\n set_zoom: function (value) {\n this._zoom$2 = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ArrivedEventArgs\", [ArrivedEventArgs, ArrivedEventArgs$, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs]);\n\n\n// wwtlib.AnnotationClickEventArgs\n\nfunction AnnotationClickEventArgs(ra, dec, id) {\n this._ra$2 = 0;\n this._dec$2 = 0;\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs.call(this);\n this.set_RA(ra * 15);\n this.set_dec(dec);\n this.set_id(id);\n}\n\nvar AnnotationClickEventArgs$ = {\n get_RA: function () {\n return this._ra$2;\n },\n\n set_RA: function (value) {\n this._ra$2 = value;\n return value;\n },\n\n get_dec: function () {\n return this._dec$2;\n },\n\n set_dec: function (value) {\n this._dec$2 = value;\n return value;\n },\n\n get_id: function () {\n return this._id$2;\n },\n\n set_id: function (value) {\n this._id$2 = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"AnnotationClickEventArgs\", [AnnotationClickEventArgs, AnnotationClickEventArgs$, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs]);\n\n\n// wwtlib.CollectionLoadedEventArgs\n\nfunction CollectionLoadedEventArgs(url) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs.call(this);\n this._url$2 = url;\n}\n\nvar CollectionLoadedEventArgs$ = {\n get_url: function () {\n return this._url$2;\n },\n\n set_url: function (value) {\n this._url$2 = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"CollectionLoadedEventArgs\", [CollectionLoadedEventArgs, CollectionLoadedEventArgs$, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs]);\n\n\n// wwtlib.ScriptInterface\n\nfunction ScriptInterface() {\n this._missedReady = false;\n this.hideTourFeedback = false;\n this._smoothAnimation = false;\n this._showCaptions = true;\n}\n\nScriptInterface._containsFitsLikeExtentsion = function (url) {\n var lowerCaseUrl = url.toLowerCase();\n return (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.endsWith(lowerCaseUrl, 'fits') || _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.endsWith(lowerCaseUrl, 'ftz') || _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.endsWith(lowerCaseUrl, 'fit') || _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.endsWith(lowerCaseUrl, 'fts'));\n};\n\nScriptInterface._addImageSet = function (name, gotoTarget, loaded, imageset) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.whitespace(name)) {\n name = _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_10__.LayerManager.getNextImageSetName();\n }\n var imagesetLayer = _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_10__.LayerManager.addImageSetLayerCallback(imageset, name, loaded);\n if (gotoTarget) {\n var zoom = imageset._guessZoomSetting(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.zoom);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.gotoRADecZoom(imageset.get_viewCenterX() / 15, imageset.get_viewCenterY(), zoom, false, null);\n }\n return imagesetLayer;\n};\n\nScriptInterface._addFitsLayer = function (url, name, gotoTarget, loaded) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.whitespace(name)) {\n name = _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_10__.LayerManager.getNextFitsName();\n }\n var imagesetLayer = new _layers_imageset_layer_js__WEBPACK_IMPORTED_MODULE_9__.ImageSetLayer();\n var imageset = new _imageset_js__WEBPACK_IMPORTED_MODULE_8__.Imageset();\n var wcsLoaded = function (wcsImage) {\n if ((wcsImage).errored) {\n return;\n }\n var width = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(wcsImage.get_sizeX());\n var height = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(wcsImage.get_sizeY());\n imageset.setInitialParameters(wcsImage.get_description(), wcsImage.get_filename(), 2, 3, 5, _util_js__WEBPACK_IMPORTED_MODULE_2__.Util.getHashCode(wcsImage.get_filename()), 0, 0, wcsImage.get_scaleY(), '.fits', wcsImage.get_scaleX() > 0, '', wcsImage.get_centerX(), wcsImage.get_centerY(), wcsImage.get_rotation(), false, '', false, false, 1, wcsImage.get_referenceX(), wcsImage.get_referenceY(), wcsImage.get_copyright(), wcsImage.get_creditsUrl(), '', '', 0, '');\n imageset.set_wcsImage(wcsImage);\n imagesetLayer.set_imageSet(imageset);\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_10__.LayerManager.addFitsImageSetLayer(imagesetLayer, name);\n if (gotoTarget) {\n var zoom = imageset._guessZoomSetting(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.zoom);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.gotoRADecZoom(wcsImage.get_viewCenterX() / 15, wcsImage.get_viewCenterY(), zoom, false, null);\n }\n if (loaded != null) {\n loaded(imagesetLayer);\n }\n };\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.whitespace(name)) {\n name = _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_10__.LayerManager.getNextFitsName();\n }\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGlVersion2) {\n new _layers_fits_image_js__WEBPACK_IMPORTED_MODULE_6__.FitsImage(imageset, url, null, wcsLoaded);\n }\n else {\n new _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_7__.FitsImageJs(imageset, url, null, wcsLoaded);\n }\n return imagesetLayer;\n};\n\nvar ScriptInterface$ = {\n add_ready: function (value) {\n this.__ready = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__ready, value);\n },\n\n remove_ready: function (value) {\n this.__ready = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__ready, value);\n },\n\n _fireReady: function () {\n if (this.__ready != null) {\n this.__ready(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n } else {\n this._missedReady = true;\n }\n },\n\n add_collectionLoaded: function (value) {\n this.__collectionLoaded = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__collectionLoaded, value);\n },\n\n remove_collectionLoaded: function (value) {\n this.__collectionLoaded = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__collectionLoaded, value);\n },\n\n _fireCollectionLoaded: function (url) {\n if (this.__collectionLoaded != null) {\n this.__collectionLoaded(this, new CollectionLoadedEventArgs(url));\n }\n },\n\n add_colorPickerDisplay: function (value) {\n this.__colorPickerDisplay = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__colorPickerDisplay, value);\n },\n\n remove_colorPickerDisplay: function (value) {\n this.__colorPickerDisplay = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__colorPickerDisplay, value);\n },\n\n add_voTableDisplay: function (value) {\n this.__voTableDisplay = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__voTableDisplay, value);\n },\n\n remove_voTableDisplay: function (value) {\n this.__voTableDisplay = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__voTableDisplay, value);\n },\n\n add_refreshLayerManager: function (value) {\n this.__refreshLayerManager = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__refreshLayerManager, value);\n },\n\n remove_refreshLayerManager: function (value) {\n this.__refreshLayerManager = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__refreshLayerManager, value);\n },\n\n add_arrived: function (value) {\n this.__arrived = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__arrived, value);\n },\n\n remove_arrived: function (value) {\n this.__arrived = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__arrived, value);\n },\n\n add_clicked: function (value) {\n this.__clicked = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__clicked, value);\n },\n\n remove_clicked: function (value) {\n this.__clicked = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__clicked, value);\n },\n\n add_annotationClicked: function (value) {\n this.__annotationClicked = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__annotationClicked, value);\n },\n\n remove_annotationClicked: function (value) {\n this.__annotationClicked = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__annotationClicked, value);\n },\n\n add_imageryLoaded: function (value) {\n this.__imageryLoaded = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__imageryLoaded, value);\n },\n\n remove_imageryLoaded: function (value) {\n this.__imageryLoaded = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__imageryLoaded, value);\n },\n\n add_tourReady: function (value) {\n this.__tourReady = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__tourReady, value);\n },\n\n remove_tourReady: function (value) {\n this.__tourReady = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__tourReady, value);\n },\n\n add_tourError: function (value) {\n this.__tourError = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__tourError, value);\n },\n\n remove_tourError: function (value) {\n this.__tourError = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__tourError, value);\n },\n\n add_tourPaused: function (value) {\n this.__tourPaused = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__tourPaused, value);\n },\n\n remove_tourPaused: function (value) {\n this.__tourPaused = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__tourPaused, value);\n },\n\n add_tourResumed: function (value) {\n this.__tourResumed = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__tourResumed, value);\n },\n\n remove_tourResumed: function (value) {\n this.__tourResumed = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__tourResumed, value);\n },\n\n add_tourEnded: function (value) {\n this.__tourEnded = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__tourEnded, value);\n },\n\n remove_tourEnded: function (value) {\n this.__tourEnded = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__tourEnded, value);\n },\n\n add_slideChanged: function (value) {\n this.__slideChanged = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__slideChanged, value);\n },\n\n remove_slideChanged: function (value) {\n this.__slideChanged = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__slideChanged, value);\n },\n\n //UI will set this to a function that takes 2 string properties (prop,val)\n //(\"title\", \"left\", or \"right\" for the labels, \"pos\" for the slider pos)\n //Pass a 0-1 float to set the slider position (stringify it if you need to for strong typing)\n\n add_timeScrubberHook: function (value) {\n this.__timeScrubberHook = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__timeScrubberHook, value);\n },\n\n remove_timeScrubberHook: function (value) {\n this.__timeScrubberHook = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__timeScrubberHook, value);\n },\n\n setTimeScrubberPosition: function (posLeft) {\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_10__.LayerManager.setTimeSliderValue(posLeft);\n },\n\n setTimeSlider: function (name, value) {\n this.__timeScrubberHook(name, value);\n },\n\n showColorPicker: function (pickerInstance, e) {\n if (this.__colorPickerDisplay != null) {\n this.__colorPickerDisplay(pickerInstance, e);\n }\n },\n\n displayVoTableLayer: function (layer) {\n if (this.__voTableDisplay != null) {\n this.__voTableDisplay(layer, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n },\n\n refreshLayerManagerNow: function () {\n if (this.__refreshLayerManager != null) {\n this.__refreshLayerManager(null, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n },\n\n _fireTourReady: function () {\n if (this.__tourReady != null) {\n this.__tourReady(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n },\n\n _fireTourError: function (ex) {\n if (this.__tourError != null) {\n this.__tourError(ex, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n },\n\n _fireTourPaused: function () {\n if (this.__tourPaused != null) {\n this.__tourPaused(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n },\n\n _fireTourResume: function () {\n if (this.__tourResumed != null) {\n this.__tourResumed(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n },\n\n _fireTourEnded: function () {\n if (this.__tourEnded != null) {\n this.__tourEnded(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n },\n\n _fireImageryLoaded: function () {\n if (this.__imageryLoaded != null) {\n this.__imageryLoaded(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n },\n\n _fireClick: function (ra, dec) {\n if (this.__clicked != null) {\n this.__clicked(this, new ArrivedEventArgs(ra, dec, _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.zoom));\n }\n },\n\n _fireArrived: function (ra, dec, zoom) {\n if (this.__arrived != null) {\n this.__arrived(this, new ArrivedEventArgs(ra, dec, zoom));\n }\n },\n\n _fireAnnotationclicked: function (RA, Dec, id) {\n try {\n if (this.__annotationClicked != null) {\n this.__annotationClicked(this, new AnnotationClickEventArgs(RA, Dec, id));\n }\n }\n catch ($e1) {\n }\n },\n\n _fireSlideChanged: function (caption) {\n try {\n if (this.__slideChanged != null) {\n this.__slideChanged(this, new SlideChangedEventArgs(caption));\n }\n }\n catch ($e1) {\n }\n },\n\n endInit: function () {\n if (this._missedReady) {\n this._fireReady();\n }\n },\n\n gotoRaDecZoom: function (ra, dec, zoom, instant, roll) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.gotoRADecZoom(ra / 15, dec, zoom * 6, instant, roll);\n }\n },\n\n setBackgroundImageByName: function (name) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.setBackgroundImageByName(name);\n }\n },\n\n // Call this to add a VOTable to layers\n addVoTableLayer: function (table) {\n return _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_10__.LayerManager.addVoTableLayer(table, 'Vo Table');\n },\n\n getLayers: function () {\n return _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_10__.LayerManager.get_layerList();\n },\n\n setForegroundImageByName: function (name) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.setForegroundImageByName(name);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.opacity = 100;\n }\n },\n\n setForegroundOpacity: function (opacity) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.opacity = opacity;\n }\n },\n\n addCatalogHipsByName: function (name) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.addCatalogHipsByName(name);\n }\n },\n\n addCatalogHipsByNameWithCallback: function (name, onLoad) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.addCatalogHipsByNameWithCallback(name, onLoad);\n }\n },\n\n removeCatalogHipsByName: function (name) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.removeCatalogHipsByName(name);\n }\n },\n\n getCatalogHipsDataInView: function (name, limit, onComplete) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.getCatalogHipsDataInView(name, limit, onComplete);\n }\n },\n\n setCutsForFits: function (imagesetName, min, max) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.setCutsForFits(imagesetName, min, max);\n }\n },\n\n setColorMapForFits: function (imagesetName, colorMapName) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.setColorMapForFits(imagesetName, colorMapName);\n }\n },\n\n setScaleTypeForFits: function (imagesetName, scaleType) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.setScaleTypeForFits(imagesetName, scaleType);\n }\n },\n\n hideUI: function (hide) { },\n\n loadTour: function (url) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.playTour(url);\n }\n },\n\n loadFits: function (url) {\n return this.loadFitsLayer(url, '', true, null);\n },\n\n loadFitsLayer: function (url, name, gotoTarget, loaded) {\n return this.addImageSetLayer(url, 'fits', name, gotoTarget, loaded);\n },\n\n addImageSetLayer: function (url, mode, name, gotoTarget, loaded) {\n if (mode != null && mode.toLowerCase() === 'fits') {\n return ScriptInterface._addFitsLayer(url, name, gotoTarget, loaded);\n } else if (mode != null && mode.toLowerCase() === 'preloaded') {\n var imageset = _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.getImageSetByUrl(url);\n if (imageset != null) {\n return ScriptInterface._addImageSet(name, gotoTarget, loaded, imageset);\n }\n } else {\n var imageset = _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.getImageSetByUrl(url);\n if (imageset != null) {\n return ScriptInterface._addImageSet(name, gotoTarget, loaded, imageset);\n }\n else if (ScriptInterface._containsFitsLikeExtentsion(url)) {\n return ScriptInterface._addFitsLayer(url, name, gotoTarget, loaded);\n }\n }\n return null;\n },\n\n setImageSetLayerOrder: function (id, order) {\n var layer = _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_10__.LayerManager.get_layerList()[id];\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(layer, _layers_imageset_layer_js__WEBPACK_IMPORTED_MODULE_9__.ImageSetLayer) && order >= 0) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove((0,_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.layerManagerGetAllMaps)()[layer.get_referenceFrame()].layers, layer);\n\n //In case of order > Layers.length, the layer is properly put at the end of the list\n (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.layerManagerGetAllMaps)()[layer.get_referenceFrame()].layers.splice(order, 0, layer);\n }\n },\n\n isUsingWebGl2: function () {\n return _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGlVersion2;\n },\n\n get_hideTourFeedback: function () {\n return this.hideTourFeedback;\n },\n\n set_hideTourFeedback: function (value) {\n this.hideTourFeedback = value;\n return value;\n },\n\n playTour: function () {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.playCurrentTour();\n }\n },\n\n stopTour: function () {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.stopCurrentTour();\n }\n },\n\n loadImageCollection: function (url, loadChildFolders) {\n var $this = this;\n\n this._imageUrl = url;\n (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.loadWtmlFile)(url, function () {\n $this._fireCollectionLoaded(url);\n }, loadChildFolders);\n },\n\n _imageFileLoaded: function () {\n this._fireCollectionLoaded(this._imageUrl);\n },\n\n zoom: function (factor) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl.zoom(factor);\n }\n return;\n },\n\n getRA: function () {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n return _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_RA();\n }\n return 0;\n },\n\n getDec: function () {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n return _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_dec();\n }\n return 0;\n },\n\n createFolder: function () {\n var folder = new _folder_js__WEBPACK_IMPORTED_MODULE_11__.Folder();\n return folder;\n },\n\n createPolygon: function (fill) {\n var p = new _annotation_js__WEBPACK_IMPORTED_MODULE_5__.Poly();\n p.set_fill(fill);\n return p;\n },\n\n createPolyLine: function (fill) {\n return new _annotation_js__WEBPACK_IMPORTED_MODULE_5__.PolyLine();\n },\n\n createCircle: function (fill) {\n var c = new _annotation_js__WEBPACK_IMPORTED_MODULE_5__.Circle();\n c.set_fill(fill);\n return c;\n },\n\n addAnnotation: function (annotation) {\n if (annotation != null && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(annotation, _annotation_js__WEBPACK_IMPORTED_MODULE_5__.Annotation)) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl._addAnnotation(annotation);\n }\n }\n },\n\n removeAnnotation: function (annotation) {\n if (annotation != null) {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl._removeAnnotation(annotation);\n }\n }\n },\n\n clearAnnotations: function () {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl._clearAnnotations();\n }\n },\n\n get_smoothAnimation: function () {\n return this._smoothAnimation;\n },\n\n set_smoothAnimation: function (value) {\n this._smoothAnimation = value;\n return value;\n },\n\n get_showCaptions: function () {\n return this._showCaptions;\n },\n\n set_showCaptions: function (value) {\n this._showCaptions = value;\n return value;\n },\n\n loadVOTable: function (url, useCurrentView) { },\n\n get_fov: function () {\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.globalWWTControl != null) {\n return _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.zoom / 6;\n }\n return 60;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ScriptInterface\", [ScriptInterface, ScriptInterface$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/settings.js\":\n/*!*************************!*\\\n !*** ./esm/settings.js ***!\n \\*************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SettingParameter: () => (/* binding */ SettingParameter),\n/* harmony export */ Settings: () => (/* binding */ Settings),\n/* harmony export */ StockSkyOverlayTypes: () => (/* binding */ StockSkyOverlayTypes)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _constellation_filter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constellation_filter.js */ \"./esm/constellation_filter.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interfaces.js */ \"./esm/interfaces.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Planet-related code that can come lower in the dependency graph.\n\n\n\n\n\n\n\n// wwtlib.StockSkyOverlayTypes\n//\n// This was defined in `Tours/ISettings.cs`, which we've folded into `interfaces.js`.\n\nvar StockSkyOverlayTypes = {\n empty: 0,\n equatorialGrid: 1,\n equatorialGridText: 2,\n galacticGrid: 3,\n galacticGridText: 4,\n eclipticGrid: 5,\n eclipticGridText: 6,\n eclipticOverview: 7,\n eclipticOverviewText: 8,\n precessionChart: 9,\n altAzGrid: 10,\n altAzGridText: 11,\n constellationFigures: 12,\n constellationBoundaries: 13,\n constellationFocusedOnly: 14,\n constellationNames: 15,\n constellationPictures: 16,\n fadeToBlack: 17,\n fadeToLogo: 18,\n fadeToGradient: 19,\n screenBroadcast: 20,\n fadeRemoteOnly: 21,\n skyGrids: 22,\n constellations: 23,\n solarSystemStars: 24,\n solarSystemMilkyWay: 25,\n solarSystemCosmos: 26,\n solarSystemOrbits: 27,\n solarSystemPlanets: 28,\n solarSystemAsteroids: 29,\n solarSystemLighting: 30,\n solarSystemMinorOrbits: 31,\n showEarthCloudLayer: 32,\n showElevationModel: 33,\n showAtmosphere: 34,\n multiResSolarSystemBodies: 35,\n auroraBorialis: 36,\n earthCutAway: 37,\n showSolarSystem: 38,\n clouds8k: 39,\n filedOfView: 40,\n showISSModel: 41,\n solarSystemCMB: 42,\n mpcZone1: 43,\n mpcZone2: 44,\n mpcZone3: 45,\n mpcZone4: 46,\n mpcZone5: 47,\n mpcZone6: 48,\n mpcZone7: 49,\n orbitFilters: 50\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"StockSkyOverlayTypes\", StockSkyOverlayTypes);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerEnum)(\"StockSkyOverlayTypes\", StockSkyOverlayTypes);\n\n\n// wwtlib.SettingParameter\n//\n// This was defined in `Tours/ISettings.cs`, which we've folded into `interfaces.js`.\n\nfunction SettingParameter(edgeTrigger, opacity, targetState, filter) {\n this.targetState = false;\n this.edgeTrigger = false;\n this.opacity = 0;\n this.edgeTrigger = edgeTrigger;\n this.opacity = opacity;\n this.targetState = targetState;\n this.filter = filter;\n}\n\nvar SettingParameter$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"SettingParameter\", [SettingParameter, SettingParameter$, null]);\n\n\n// wwtlib.Settings\n\nfunction Settings() {\n this.autoRepeatTour = false;\n this._localHorizonMode = false;\n this._galacticMode = false;\n this._constellationBoundryColor = 'blue';\n this._constellationSelectionColor = 'yellow';\n this._constellationFigureColor = 'red';\n this._showConstellationFigures = true;\n this._showConstellationBoundries = true;\n this._showConstellationSelection = true;\n this._showCrosshairs = true;\n this._crosshairsColor = 'white';\n this._showEcliptic = false;\n this._locationLat = 47.717;\n this._locationLng = -122.0858;\n this._locationAltitude = 100;\n this._showFiledOfView = false;\n this._actualPlanetScale = true;\n this._fovCamera = 0;\n this._fovEyepiece = 0;\n this._fovTelescope = 0;\n this._showClouds = false;\n this._showGrid = false;\n this._showHorizon = true;\n this._showHorizonPanorama = false;\n this._showMoonsAsPointSource = true;\n this._showSolarSystem = true;\n this._solarSystemStars = true;\n this._solarSystemMilkyWay = true;\n this._solarSystemCosmos = true;\n this._solarSystemOrbits = true;\n this._solarSystemOverlays = true;\n this._solarSystemLighting = true;\n this._solarSystemMultiRes = true;\n this._solarSystemScale = 1;\n this._smoothPan = true;\n this._showElevationModel = true;\n this._showEquatorialGridText = false;\n this._showGalacticGrid = false;\n this._showGalacticGridText = false;\n this._showEclipticGrid = false;\n this._showEclipticGridText = false;\n this._showEclipticOverviewText = false;\n this._showAltAzGrid = false;\n this._eclipticGridColor = _color_js__WEBPACK_IMPORTED_MODULE_1__.Colors.get_green();\n this._galacticGridColor = _color_js__WEBPACK_IMPORTED_MODULE_1__.Colors.get_cyan();\n this._altAzGridColor = _color_js__WEBPACK_IMPORTED_MODULE_1__.Colors.get_magenta();\n this._precessionChartColor = _color_js__WEBPACK_IMPORTED_MODULE_1__.Colors.get_orange();\n this._eclipticColor = _color_js__WEBPACK_IMPORTED_MODULE_1__.Colors.get_blue();\n this._equatorialGridColor = _color_js__WEBPACK_IMPORTED_MODULE_1__.Colors.get_white();\n this._showAltAzGridText = false;\n this._showPrecessionChart = false;\n this._showConstellationPictures = false;\n this._showConstellationLabels = false;\n this._constellationLabelsHeight = 80;\n this._solarSystemCMB = true;\n this._solarSystemMinorPlanets = false;\n this._solarSystemPlanets = true;\n this._showEarthSky = true;\n this._solarSystemMinorOrbits = false;\n this._constellationsEnabled = '';\n this._constellationFiguresFilter = new _constellation_filter_js__WEBPACK_IMPORTED_MODULE_2__.ConstellationFilter();\n this._constellationBoundariesFilter = new _constellation_filter_js__WEBPACK_IMPORTED_MODULE_2__.ConstellationFilter();\n this._constellationNamesFilter = new _constellation_filter_js__WEBPACK_IMPORTED_MODULE_2__.ConstellationFilter();\n this._constellationArtFilter = new _constellation_filter_js__WEBPACK_IMPORTED_MODULE_2__.ConstellationFilter();\n this._showSkyOverlays = true;\n this._showConstellations = true;\n this._showSkyNode = true;\n this._showSkyGrids = true;\n this._showSkyOverlaysIn3d = true;\n this._earthCutawayView = false;\n this._showISSModel = false;\n this._milkyWayModel = false;\n this._minorPlanetsFilter = 255;\n this._planetOrbitsFilter = 2147483647;\n this._constellations = true;\n}\n\nSettings._active = null;\nSettings.tourSettings = null;\n\nSettings.get_current = function () {\n if (Settings._active == null) {\n Settings._active = new Settings();\n }\n return Settings._active;\n};\n\nSettings.get_globalSettings = function () {\n if (Settings._active == null) {\n Settings._active = new Settings();\n }\n return Settings._active;\n};\n\nSettings.get_active = function () {\n if (Settings._active == null) {\n Settings._active = new Settings();\n }\n if (Settings.tourSettings != null) {\n return Settings.tourSettings;\n }\n return Settings._active;\n};\n\nvar Settings$ = {\n get_constellationFigureColor: function () {\n return this._constellationFigureColor;\n },\n\n set_constellationFigureColor: function (value) {\n this._constellationFigureColor = value;\n return value;\n },\n\n get_constellationBoundryColor: function () {\n return this._constellationBoundryColor;\n },\n\n set_constellationBoundryColor: function (value) {\n this._constellationBoundryColor = value;\n return value;\n },\n\n get_constellationSelectionColor: function () {\n return this._constellationSelectionColor;\n },\n\n set_constellationSelectionColor: function (value) {\n this._constellationSelectionColor = value;\n return value;\n },\n\n get_showCrosshairs: function () {\n return this._showCrosshairs;\n },\n\n set_showCrosshairs: function (value) {\n this._showCrosshairs = value;\n return value;\n },\n\n get_smoothPan: function () {\n return this._smoothPan;\n },\n\n set_smoothPan: function (value) {\n this._smoothPan = value;\n return value;\n },\n\n get_crosshairsColor: function () {\n return this._crosshairsColor;\n },\n\n set_crosshairsColor: function (value) {\n this._crosshairsColor = value;\n return value;\n },\n\n get_actualPlanetScale: function () {\n return this._actualPlanetScale;\n },\n\n set_actualPlanetScale: function (value) {\n this._actualPlanetScale = value;\n return value;\n },\n\n get_fovCamera: function () {\n return this._fovCamera;\n },\n\n get_fovEyepiece: function () {\n return this._fovEyepiece;\n },\n\n get_fovTelescope: function () {\n return this._fovTelescope;\n },\n\n get_locationAltitude: function () {\n return this._locationAltitude;\n },\n\n set_locationAltitude: function (value) {\n this._locationAltitude = value;\n return value;\n },\n\n get_locationLat: function () {\n return this._locationLat;\n },\n\n set_locationLat: function (value) {\n this._locationLat = value;\n return value;\n },\n\n get_locationLng: function () {\n return this._locationLng;\n },\n\n set_locationLng: function (value) {\n this._locationLng = value;\n return value;\n },\n\n get_showClouds: function () {\n return this._showClouds;\n },\n\n get_showConstellationBoundries: function () {\n return this._showConstellationBoundries;\n },\n\n set_showConstellationBoundries: function (value) {\n this._showConstellationBoundries = value;\n return value;\n },\n\n get_showConstellationFigures: function () {\n return this._showConstellationFigures;\n },\n\n set_showConstellationFigures: function (value) {\n this._showConstellationFigures = value;\n return value;\n },\n\n get_showConstellationSelection: function () {\n return this._showConstellationSelection;\n },\n\n set_showConstellationSelection: function (value) {\n this._showConstellationSelection = value;\n return value;\n },\n\n get_showEcliptic: function () {\n return this._showEcliptic;\n },\n\n set_showEcliptic: function (value) {\n this._showEcliptic = value;\n return value;\n },\n\n get_showElevationModel: function () {\n return this._showElevationModel;\n },\n\n set_showElevationModel: function (value) {\n this._showElevationModel = value;\n return value;\n },\n\n get_showFieldOfView: function () {\n return this._showFiledOfView;\n },\n\n get_showGrid: function () {\n return this._showGrid;\n },\n\n set_showGrid: function (value) {\n this._showGrid = value;\n return value;\n },\n\n get_showHorizon: function () {\n return this._showHorizon;\n },\n\n set_showHorizon: function (value) {\n this._showHorizon = value;\n return value;\n },\n\n get_showHorizonPanorama: function () {\n return this._showHorizonPanorama;\n },\n\n get_showMoonsAsPointSource: function () {\n return this._showMoonsAsPointSource;\n },\n\n get_showSolarSystem: function () {\n return this._showSolarSystem;\n },\n\n set_showSolarSystem: function (value) {\n this._showSolarSystem = value;\n return value;\n },\n\n get_localHorizonMode: function () {\n return this._localHorizonMode;\n },\n\n set_localHorizonMode: function (value) {\n this._localHorizonMode = value;\n return value;\n },\n\n get_galacticMode: function () {\n return this._galacticMode;\n },\n\n set_galacticMode: function (value) {\n this._galacticMode = value;\n return value;\n },\n\n get_solarSystemStars: function () {\n return this._solarSystemStars;\n },\n\n set_solarSystemStars: function (value) {\n this._solarSystemStars = value;\n return value;\n },\n\n get_solarSystemMilkyWay: function () {\n return this._solarSystemMilkyWay;\n },\n\n set_solarSystemMilkyWay: function (value) {\n this._solarSystemMilkyWay = value;\n return value;\n },\n\n get_solarSystemCosmos: function () {\n return this._solarSystemCosmos;\n },\n\n set_solarSystemCosmos: function (value) {\n this._solarSystemCosmos = value;\n return value;\n },\n\n get_solarSystemOrbits: function () {\n return this._solarSystemOrbits;\n },\n\n set_solarSystemOrbits: function (value) {\n this._solarSystemOrbits = value;\n return value;\n },\n\n get_solarSystemOverlays: function () {\n return this._solarSystemOverlays;\n },\n\n set_solarSystemOverlays: function (value) {\n this._solarSystemOverlays = value;\n return value;\n },\n\n get_solarSystemLighting: function () {\n return this._solarSystemLighting;\n },\n\n set_solarSystemLighting: function (value) {\n this._solarSystemLighting = value;\n return value;\n },\n\n get_solarSystemMultiRes: function () {\n return true;\n },\n\n set_solarSystemMultiRes: function (value) {\n this._solarSystemMultiRes = value;\n return value;\n },\n\n get_solarSystemScale: function () {\n return this._solarSystemScale;\n },\n\n set_solarSystemScale: function (value) {\n this._solarSystemScale = value;\n return value;\n },\n\n get_showEquatorialGridText: function () {\n return this._showEquatorialGridText;\n },\n\n set_showEquatorialGridText: function (value) {\n this._showEquatorialGridText = value;\n return value;\n },\n\n get_showGalacticGrid: function () {\n return this._showGalacticGrid;\n },\n\n set_showGalacticGrid: function (value) {\n this._showGalacticGrid = value;\n return value;\n },\n\n get_showGalacticGridText: function () {\n return this._showGalacticGridText;\n },\n\n set_showGalacticGridText: function (value) {\n this._showGalacticGridText = value;\n return value;\n },\n\n get_showEclipticGrid: function () {\n return this._showEclipticGrid;\n },\n\n set_showEclipticGrid: function (value) {\n this._showEclipticGrid = value;\n return value;\n },\n\n get_showEclipticGridText: function () {\n return this._showEclipticGridText;\n },\n\n set_showEclipticGridText: function (value) {\n this._showEclipticGridText = value;\n return value;\n },\n\n get_showEclipticOverviewText: function () {\n return this._showEclipticOverviewText;\n },\n\n set_showEclipticOverviewText: function (value) {\n this._showEclipticOverviewText = value;\n return value;\n },\n\n get_showAltAzGrid: function () {\n return this._showAltAzGrid;\n },\n\n set_showAltAzGrid: function (value) {\n this._showAltAzGrid = value;\n return value;\n },\n\n get_eclipticGridColor: function () {\n return this._eclipticGridColor;\n },\n\n set_eclipticGridColor: function (value) {\n this._eclipticGridColor = value;\n return value;\n },\n\n get_galacticGridColor: function () {\n return this._galacticGridColor;\n },\n\n set_galacticGridColor: function (value) {\n this._galacticGridColor = value;\n return value;\n },\n\n get_altAzGridColor: function () {\n return this._altAzGridColor;\n },\n\n set_altAzGridColor: function (value) {\n this._altAzGridColor = value;\n return value;\n },\n\n get_precessionChartColor: function () {\n return this._precessionChartColor;\n },\n\n set_precessionChartColor: function (value) {\n this._precessionChartColor = value;\n return value;\n },\n\n get_eclipticColor: function () {\n return this._eclipticColor;\n },\n\n set_eclipticColor: function (value) {\n this._eclipticColor = value;\n return value;\n },\n\n get_equatorialGridColor: function () {\n return this._equatorialGridColor;\n },\n\n set_equatorialGridColor: function (value) {\n this._equatorialGridColor = value;\n return value;\n },\n\n get_showAltAzGridText: function () {\n return this._showAltAzGridText;\n },\n\n set_showAltAzGridText: function (value) {\n this._showAltAzGridText = value;\n return value;\n },\n\n get_showPrecessionChart: function () {\n return this._showPrecessionChart;\n },\n\n set_showPrecessionChart: function (value) {\n this._showPrecessionChart = value;\n return value;\n },\n\n get_showConstellationPictures: function () {\n return this._showConstellationPictures;\n },\n\n set_showConstellationPictures: function (value) {\n this._showConstellationPictures = value;\n return value;\n },\n\n get_showConstellationLabels: function () {\n return this._showConstellationLabels;\n },\n\n set_showConstellationLabels: function (value) {\n this._showConstellationLabels = value;\n return value;\n },\n\n get_constellationLabelsHeight: function () {\n return this._constellationLabelsHeight;\n },\n\n set_constellationLabelsHeight: function (value) {\n this._constellationLabelsHeight = value;\n return value;\n },\n\n get_solarSystemCMB: function () {\n return this._solarSystemCMB;\n },\n\n set_solarSystemCMB: function (value) {\n this._solarSystemCMB = value;\n return value;\n },\n\n get_solarSystemMinorPlanets: function () {\n return this._solarSystemMinorPlanets;\n },\n\n set_solarSystemMinorPlanets: function (value) {\n this._solarSystemMinorPlanets = value;\n return value;\n },\n\n get_solarSystemPlanets: function () {\n return this._solarSystemPlanets;\n },\n\n set_solarSystemPlanets: function (value) {\n this._solarSystemPlanets = value;\n return value;\n },\n\n get_showEarthSky: function () {\n return this._showEarthSky;\n },\n\n set_showEarthSky: function (value) {\n this._showEarthSky = value;\n return value;\n },\n\n get_solarSystemMinorOrbits: function () {\n return this._solarSystemMinorOrbits;\n },\n\n set_solarSystemMinorOrbits: function (value) {\n this._solarSystemMinorOrbits = value;\n return value;\n },\n\n get_constellationsEnabled: function () {\n return this._constellationsEnabled;\n },\n\n set_constellationsEnabled: function (value) {\n this._constellationsEnabled = value;\n return value;\n },\n\n get_constellationFiguresFilter: function () {\n return this._constellationFiguresFilter;\n },\n\n set_constellationFiguresFilter: function (value) {\n this._constellationFiguresFilter = value;\n return value;\n },\n\n get_constellationBoundariesFilter: function () {\n return this._constellationBoundariesFilter;\n },\n\n set_constellationBoundariesFilter: function (value) {\n this._constellationBoundariesFilter = value;\n return value;\n },\n\n get_constellationNamesFilter: function () {\n return this._constellationNamesFilter;\n },\n\n set_constellationNamesFilter: function (value) {\n this._constellationNamesFilter = value;\n return value;\n },\n\n get_constellationArtFilter: function () {\n return this._constellationArtFilter;\n },\n\n set_constellationArtFilter: function (value) {\n this._constellationArtFilter = value;\n return value;\n },\n\n get_showSkyOverlays: function () {\n return this._showSkyOverlays;\n },\n\n set_showSkyOverlays: function (value) {\n this._showSkyOverlays = value;\n return value;\n },\n\n get_showConstellations: function () {\n return this._showConstellations;\n },\n\n set_showConstellations: function (value) {\n this._showConstellations = value;\n return value;\n },\n\n get_showSkyNode: function () {\n return this._showSkyNode;\n },\n\n set_showSkyNode: function (value) {\n this._showSkyNode = value;\n return value;\n },\n\n get_showSkyGrids: function () {\n return this._showSkyGrids;\n },\n\n set_showSkyGrids: function (value) {\n this._showSkyGrids = value;\n return value;\n },\n\n get_showSkyOverlaysIn3d: function () {\n return this._showSkyOverlaysIn3d;\n },\n\n set_showSkyOverlaysIn3d: function (value) {\n this._showSkyOverlaysIn3d = value;\n return value;\n },\n\n get_earthCutawayView: function () {\n return this._earthCutawayView;\n },\n\n set_earthCutawayView: function (value) {\n this._earthCutawayView = value;\n return value;\n },\n\n get_showISSModel: function () {\n return this._showISSModel;\n },\n\n set_showISSModel: function (value) {\n this._showISSModel = value;\n return value;\n },\n\n get_milkyWayModel: function () {\n return this._milkyWayModel;\n },\n\n set_milkyWayModel: function (value) {\n this._milkyWayModel = value;\n return value;\n },\n\n get_minorPlanetsFilter: function () {\n return this._minorPlanetsFilter;\n },\n\n set_minorPlanetsFilter: function (value) {\n this._minorPlanetsFilter = value;\n return value;\n },\n\n get_planetOrbitsFilter: function () {\n return this._planetOrbitsFilter;\n },\n\n set_planetOrbitsFilter: function (value) {\n this._planetOrbitsFilter = value;\n return value;\n },\n\n get_constellations: function () {\n return this._constellations;\n },\n\n set_constellations: function (value) {\n this._constellations = value;\n return value;\n },\n\n getSetting: function (type) {\n if (type === 17) {\n return new SettingParameter(true, 0, !!0, null);\n }\n return new SettingParameter(false, 1, false, null);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Settings\", [Settings, Settings$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_3__.ISettings]);\n\n\n/***/ }),\n\n/***/ \"./esm/sky_image_tile.js\":\n/*!*******************************!*\\\n !*** ./esm/sky_image_tile.js ***!\n \\*******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SkyImageTile: () => (/* binding */ SkyImageTile)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _layers_wcs_image_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./layers/wcs_image.js */ \"./esm/layers/wcs_image.js\");\n/* harmony import */ var _tangent_tile_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tangent_tile.js */ \"./esm/tangent_tile.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A \"tile\" that is really a single image displayed using a tangential\n// projection.\n\n\n\n\n\n\n\n\n// wwtlib.SkyImageTile\n\nfunction SkyImageTile(level, x, y, dataset, parent) {\n this.pixelCenterX = 0;\n this.pixelCenterY = 0;\n this.scaleX = 0.01;\n this.scaleY = 0.01;\n this.height = 0;\n this.width = 0;\n _tangent_tile_js__WEBPACK_IMPORTED_MODULE_4__.TangentTile.call(this, level, x, y, dataset, parent);\n this.pixelCenterX = dataset.get_offsetX();\n this.pixelCenterY = dataset.get_offsetY();\n this.scaleX = -(this.scaleY = dataset.get_baseTileDegrees());\n if (dataset.get_bottomsUp()) {\n this.scaleX = -this.scaleX;\n }\n this.sphereCenter = this.geoTo3dTan(0, 0);\n this.radius = 1.25;\n this.computeBoundingSphere();\n}\n\nvar SkyImageTile$ = {\n getLatLngEdges: function () {\n var edges = new _tangent_tile_js__WEBPACK_IMPORTED_MODULE_4__.LatLngEdges();\n var wcsImage = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(this.dataset.get_wcsImage(), _layers_wcs_image_js__WEBPACK_IMPORTED_MODULE_3__.WcsImage);\n if (wcsImage != null && _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.useGl) {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.useGlVersion2) {\n this.width = wcsImage.get_sizeX();\n this.height = wcsImage.get_sizeY();\n }\n else {\n this.height = this.bmp.height;\n this.width = this.bmp.width;\n if (this.bmp.height !== wcsImage.get_sizeY()) {\n this.pixelCenterY += this.bmp.height - wcsImage.get_sizeY();\n }\n }\n } else if (this.texture != null) {\n this.height = this.texture.naturalHeight;\n this.width = this.texture.naturalWidth;\n } else {\n this.height = 256;\n this.width = 256;\n }\n edges.latMin = 0 + (this.scaleY * (this.height - this.pixelCenterY));\n edges.latMax = 0 - (this.scaleY * this.pixelCenterY);\n edges.lngMin = 0 + (this.scaleX * this.pixelCenterX);\n edges.lngMax = 0 - (this.scaleX * (this.width - this.pixelCenterX));\n return edges;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"SkyImageTile\", [SkyImageTile, SkyImageTile$, _tangent_tile_js__WEBPACK_IMPORTED_MODULE_4__.TangentTile]);\n\n\n/***/ }),\n\n/***/ \"./esm/sky_text.js\":\n/*!*************************!*\\\n !*** ./esm/sky_text.js ***!\n \\*************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Alignment: () => (/* binding */ Alignment),\n/* harmony export */ GlyphCache: () => (/* binding */ GlyphCache),\n/* harmony export */ GlyphItem: () => (/* binding */ GlyphItem),\n/* harmony export */ Text3d: () => (/* binding */ Text3d),\n/* harmony export */ Text3dBatch: () => (/* binding */ Text3dBatch)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./graphics/gl_buffers.js */ \"./esm/graphics/gl_buffers.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./graphics/shaders.js */ \"./esm/graphics/shaders.js\");\n/* harmony import */ var _tours_text_object_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./tours/text_object.js */ \"./esm/tours/text_object.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./web_file.js */ \"./esm/web_file.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Text rendered on the sky.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.Alignment\n\nvar Alignment = {\n center: 0,\n left: 1\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Alignment\", Alignment);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"Alignment\", Alignment);\n\n\n// wwtlib.Text3dBatch\n\nfunction Text3dBatch(height) {\n this.height = 128;\n this.items = [];\n this._glyphVersion = -1;\n this.viewTransform = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n this._textObject = new _tours_text_object_js__WEBPACK_IMPORTED_MODULE_9__.TextObject();\n this._vertCount = 0;\n this.height = (height * 3);\n}\n\nvar Text3dBatch$ = {\n add: function (newItem) {\n this.items.push(newItem);\n },\n\n draw: function (renderContext, opacity, color) {\n if (renderContext.gl == null) {\n var viewPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d._transformCoordinate(renderContext.get_viewPoint(), this.viewTransform);\n var drawHeight = (this.height / renderContext.get_fovAngle()) * renderContext.height / 180;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.items);\n while ($enum1.moveNext()) {\n var t3d = $enum1.current;\n var screenSpacePnt = renderContext.WVP.transform(t3d.center);\n if (screenSpacePnt.z < 0) {\n continue;\n }\n if (_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(viewPoint, t3d.center) < 0.55) {\n continue;\n }\n var screenSpaceTop = renderContext.WVP.transform(t3d.top);\n var rotation = Math.atan2(screenSpacePnt.x - screenSpaceTop.x, screenSpacePnt.y - screenSpaceTop.y);\n var ctx = renderContext.device;\n ctx.save();\n ctx.translate(screenSpacePnt.x, screenSpacePnt.y);\n ctx.rotate(-rotation); // todo update with up vector\n ctx.globalAlpha = opacity;\n ctx.fillStyle = color.toString();\n ctx.font = 'normal' + ' ' + (( false) ? 0 : 'normal') + ' ' + Math.round(drawHeight * 1.2).toString() + 'px ' + 'Arial';\n ctx.textBaseline = 'top';\n var tm = ctx.measureText(t3d.text);\n ctx.fillText(t3d.text, -tm.width / 2, -drawHeight / 2);\n ctx.restore();\n }\n } else {\n if (this._glyphCache == null || this._glyphCache.get_version() > this._glyphVersion) {\n this.prepareBatch();\n }\n if (!this._glyphCache.ready) {\n return;\n }\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_8__.TextShader.use(renderContext, this._vertexBuffer.vertexBuffer, this._glyphCache.get_texture().texture2d);\n renderContext.gl.drawArrays(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TRIANGLES, 0, this._vertexBuffer.count);\n }\n },\n\n prepareBatch: function () {\n if (this._glyphCache == null) {\n this._glyphCache = GlyphCache.getCache(this.height);\n }\n if (!this._glyphCache.ready) {\n return;\n }\n this._textObject.text = '';\n this._textObject.fontSize = this.height * 0.5;\n var verts = [];\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.items);\n while ($enum1.moveNext()) {\n var t3d = $enum1.current;\n var text = t3d.text;\n var left = 0;\n var top = 0;\n var fntAdjust = this._textObject.fontSize / 128;\n var factor = 0.6666;\n var width = 0;\n var height = 0;\n for (var i = 0; i < text.length; i++) {\n var item = this._glyphCache.getGlyphItem(text.substr(i, 1));\n if (item != null) {\n width += item.extents.x;\n height = Math.max(item.extents.y, height);\n }\n }\n var size = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(width, height);\n t3d.width = size.x * t3d.scale * factor * fntAdjust;\n t3d.height = size.y * t3d.scale * factor * fntAdjust;\n var charsLeft = text.length;\n for (var i = 0; i < charsLeft; i++) {\n var item = this._glyphCache.getGlyphItem(text.substr(i, 1));\n if (item != null) {\n var position = _util_js__WEBPACK_IMPORTED_MODULE_11__.Rectangle.create(left * t3d.scale * factor, 0 * t3d.scale * factor, item.extents.x * fntAdjust * t3d.scale * factor, item.extents.y * fntAdjust * t3d.scale * factor);\n left += (item.extents.x * fntAdjust);\n t3d.addGlyphPoints(verts, item.size, position, item.uvRect);\n }\n }\n }\n this._vertCount = verts.length;\n this._vertexBuffer = new _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__.PositionTextureVertexBuffer(this._vertCount);\n var vertBuf = this._vertexBuffer.lock();\n for (var i = 0; i < this._vertCount; i++) {\n vertBuf[i] = verts[i];\n }\n this._vertexBuffer.unlock();\n this._glyphVersion = this._glyphCache.get_version();\n },\n\n cleanUp: function () {\n if (this._vertexBuffer != null) {\n this._vertexBuffer = null;\n }\n this.items.length = 0;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Text3dBatch\", [Text3dBatch, Text3dBatch$, null]);\n\n// wwtlib.GlyphItem\n\nfunction GlyphItem(glyph) {\n this.referenceCount = 0;\n this.glyph = glyph;\n this.uvRect = new _util_js__WEBPACK_IMPORTED_MODULE_11__.Rectangle();\n this.size = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d();\n this.referenceCount = 1;\n}\n\nGlyphItem.create = function (glyph, uv, size, extents) {\n var temp = new GlyphItem(glyph);\n temp.glyph = glyph;\n temp.uvRect = uv;\n temp.size = size;\n temp.extents = extents;\n temp.referenceCount = 1;\n return temp;\n};\n\nGlyphItem._fromXML = function (node) {\n var glyph = node.attributes.getNamedItem('Glyph').nodeValue;\n var item = new GlyphItem(glyph);\n item.uvRect = _util_js__WEBPACK_IMPORTED_MODULE_11__.Rectangle.create(parseFloat(node.attributes.getNamedItem('UVLeft').nodeValue), parseFloat(node.attributes.getNamedItem('UVTop').nodeValue), parseFloat(node.attributes.getNamedItem('UVWidth').nodeValue), parseFloat(node.attributes.getNamedItem('UVHeight').nodeValue));\n item.size = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(parseFloat(node.attributes.getNamedItem('SizeWidth').nodeValue), parseFloat(node.attributes.getNamedItem('SizeHeight').nodeValue));\n item.extents = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(parseFloat(node.attributes.getNamedItem('ExtentsWidth').nodeValue), parseFloat(node.attributes.getNamedItem('ExtentsHeight').nodeValue));\n return item;\n};\n\nvar GlyphItem$ = {\n addRef: function () {\n this.referenceCount++;\n },\n\n release: function () {\n this.referenceCount--;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"GlyphItem\", [GlyphItem, GlyphItem$, null]);\n\n// wwtlib.GlyphCache\n\nfunction GlyphCache(height) {\n this._cellHeight = 128;\n this._gridSize = 8;\n this.ready = false;\n this._glyphItems = {};\n this.textObject = new _tours_text_object_js__WEBPACK_IMPORTED_MODULE_9__.TextObject();\n this._dirty = true;\n this._textureDirty = true;\n this._version = 0;\n this._cellHeight = height;\n this._texture = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_7__.Texture.fromUrl(_url_helpers_js__WEBPACK_IMPORTED_MODULE_10__.URLHelpers.singleton.engineAssetUrl('glyphs1.png'));\n this._webFile = new _web_file_js__WEBPACK_IMPORTED_MODULE_12__.WebFile(_url_helpers_js__WEBPACK_IMPORTED_MODULE_10__.URLHelpers.singleton.engineAssetUrl('glyphs1.xml'));\n this._webFile.onStateChange = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_glyphXmlReady', this);\n this._webFile.send();\n}\n\nGlyphCache._caches = {};\nGlyphCache._allGlyphs = '';\n\nGlyphCache.getCache = function (height) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(GlyphCache._caches, height)) {\n GlyphCache._caches[height] = new GlyphCache(height);\n }\n return GlyphCache._caches[height];\n};\n\nGlyphCache.cleanUpAll = function () {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(GlyphCache._caches);\n};\n\nvar GlyphCache$ = {\n get_height: function () {\n return this._cellHeight;\n },\n\n _glyphXmlReady: function () {\n if (this._webFile.get_state() === 2) {\n alert(this._webFile.get_message());\n } else if (this._webFile.get_state() === 1) {\n this._loadXmlGlyph(this._webFile.getXml());\n }\n },\n\n _loadXmlGlyph: function (xml) {\n var nodes = _baseutil_js__WEBPACK_IMPORTED_MODULE_3__.Util.selectSingleNode(xml, 'GlyphItems');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(nodes.childNodes);\n while ($enum1.moveNext()) {\n var glyphItem = $enum1.current;\n if (glyphItem.nodeName === 'GlyphItem') {\n var item = GlyphItem._fromXML(glyphItem);\n this._glyphItems[item.glyph] = item;\n GlyphCache._allGlyphs = GlyphCache._allGlyphs + item.glyph;\n }\n }\n this.ready = true;\n },\n\n get_texture: function () {\n return this._texture;\n },\n\n _makeTexture: function () {\n this._calcOrMake(true);\n },\n\n getGlyphItem: function (glyph) {\n if (this._dirty) {\n this._calculateGlyphDetails();\n }\n return this._glyphItems[glyph];\n },\n\n _calculateGlyphDetails: function () {\n this._calcOrMake(false);\n },\n\n _calcOrMake: function (makeTexture) { },\n\n get_version: function () {\n return this._version;\n },\n\n set_version: function (value) {\n this._version = value;\n return value;\n },\n\n addGlyph: function (glyph) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._glyphItems, glyph)) {\n var item = new GlyphItem(glyph);\n this._glyphItems[glyph] = item;\n this._dirty = true;\n this._textureDirty = true;\n this._version++;\n GlyphCache._allGlyphs = GlyphCache._allGlyphs + glyph;\n } else {\n this._glyphItems[glyph].addRef();\n }\n },\n\n cleanUp: function () {\n this._dirty = true;\n this._texture = null;\n },\n\n dispose: function () {\n this.cleanUp();\n },\n\n get_dirty: function () {\n return this._dirty;\n },\n\n set_dirty: function (value) {\n this._dirty = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"GlyphCache\", [GlyphCache, GlyphCache$, null, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.IDisposable]);\n\n// wwtlib.Text3d\n\nfunction Text3d(center, up, text, fontsize, scale) {\n this.rotation = 0;\n this.tilt = 0;\n this.bank = 0;\n this._matInit = false;\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_4__.Colors.get_white();\n this.sky = true;\n this.scale = 0;\n this.opacity = 1;\n this.text = '';\n this.width = 1;\n this.height = 1;\n this.alignment = 0;\n this.text = text;\n this.up = up;\n this.center = center;\n this.scale = scale;\n this.top = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.addVectors(center, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.scale(up, scale));\n if (fontsize < 0) {\n this.sky = false;\n }\n}\n\nvar Text3d$ = {\n addGlyphPoints: function (pointList, size, position, uv) {\n var points = new Array(6);\n for (var i = 0; i < 6; i++) {\n points[i] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionTexture();\n }\n var left = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.cross(this.center, this.up);\n var right = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.cross(this.up, this.center);\n left.normalize();\n right.normalize();\n this.up.normalize();\n var upTan = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.cross(this.center, right);\n upTan.normalize();\n if (!this.alignment) {\n left.multiply(this.width - position.get_left() * 2);\n right.multiply(this.width - ((this.width * 2) - position.get_right() * 2));\n } else if (this.alignment === 1) {\n left.multiply(-position.get_left() * 2);\n right.multiply(position.get_right() * 2);\n }\n var top = upTan.copy();\n var bottom = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.subtractVectors(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.get_empty(), upTan);\n top.multiply(this.height - position.get_top() * 2);\n bottom.multiply(this.height - ((this.height * 2) - position.get_bottom() * 2));\n var ul = this.center.copy();\n ul.add(top);\n if (this.sky) {\n ul.add(left);\n } else {\n ul.subtract(left);\n }\n var ur = this.center.copy();\n ur.add(top);\n if (this.sky) {\n ur.add(right);\n } else {\n ur.subtract(right);\n }\n var ll = this.center.copy();\n if (this.sky) {\n ll.add(left);\n } else {\n ll.subtract(left);\n }\n ll.add(bottom);\n var lr = this.center.copy();\n if (this.sky) {\n lr.add(right);\n } else {\n lr.subtract(right);\n }\n lr.add(bottom);\n points[0].position = ul.copy();\n points[0].tu = uv.get_left();\n points[0].tv = uv.get_top();\n points[2].tu = uv.get_left();\n points[2].tv = uv.get_bottom();\n points[2].position = ll.copy();\n points[1].tu = uv.get_right();\n points[1].tv = uv.get_top();\n points[1].position = ur.copy();\n points[3].tu = uv.get_right();\n points[3].tv = uv.get_bottom();\n points[3].position = lr.copy();\n points[5].tu = uv.get_right();\n points[5].tv = uv.get_top();\n points[5].position = ur.copy();\n points[4].tu = uv.get_left();\n points[4].tv = uv.get_bottom();\n points[4].position = ll.copy();\n if (!!this.rotation || !!this.tilt || !!this.bank) {\n if (!this._matInit) {\n var lookAt = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.lookAtLH(this.center, new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d(), this.up);\n var lookAtInv = lookAt.clone();\n lookAtInv.invert();\n this._rtbMat = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.multiplyMatrix(lookAt, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationZ(-this.rotation / 180 * Math.PI)), _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationX(-this.tilt / 180 * Math.PI)), _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationY(-this.bank / 180 * Math.PI)), lookAtInv);\n // \"todo make this true after debug\"\n this._matInit = true;\n }\n for (var i = 0; i < 6; i++) {\n points[i].position = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d._transformCoordinate(points[i].position, this._rtbMat);\n }\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(points);\n while ($enum1.moveNext()) {\n var pnt = $enum1.current;\n pointList.push(pnt);\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Text3d\", [Text3d, Text3d$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/space_time_controller.js\":\n/*!**************************************!*\\\n !*** ./esm/space_time_controller.js ***!\n \\**************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SpaceTimeController: () => (/* binding */ SpaceTimeController)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _astrocalc_date_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./astrocalc/date.js */ \"./esm/astrocalc/date.js\");\n/* harmony import */ var _astrocalc_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./astrocalc.js */ \"./esm/astrocalc.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./settings.js */ \"./esm/settings.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The WWT clock and related calculations.\n\n\n\n\n\n\n\n\n\n// wwtlib.SpaceTimeController\n\nfunction SpaceTimeController() { }\n\nSpaceTimeController.framesPerSecond = 30;\nSpaceTimeController.frameDumping = false;\nSpaceTimeController.cancelFrameDump = false;\nSpaceTimeController.currentFrameNumber = 0;\nSpaceTimeController.totalFrames = 0;\nSpaceTimeController._offset = 0;\nSpaceTimeController._syncToClock = true;\nSpaceTimeController._timeRate = 1;\nSpaceTimeController._altitude = 0;\n\nSpaceTimeController.updateClock = function () {\n if (SpaceTimeController._syncToClock) {\n var justNow = SpaceTimeController.get_metaNow();\n if (SpaceTimeController._timeRate !== 1) {\n var ts = justNow.getTime() - SpaceTimeController.last.getTime();\n var ticks = (ts * SpaceTimeController._timeRate);\n SpaceTimeController._offset += ticks;\n }\n SpaceTimeController.last = justNow;\n try {\n SpaceTimeController._now = new Date(justNow.getTime() + SpaceTimeController._offset);\n }\n catch ($e1) {\n SpaceTimeController._now = new Date(1, 12, 25, 23, 59, 59);\n SpaceTimeController._offset = SpaceTimeController._now - SpaceTimeController.get_metaNow();\n }\n if (SpaceTimeController._now.getFullYear() > 4000) {\n SpaceTimeController._now = new Date(4000, 12, 31, 23, 59, 59);\n SpaceTimeController._offset = SpaceTimeController._now - SpaceTimeController.get_metaNow();\n }\n if (SpaceTimeController._now.getFullYear() < 1) {\n SpaceTimeController._now = new Date(0, 12, 25, 23, 59, 59);\n SpaceTimeController._offset = SpaceTimeController._now - SpaceTimeController.get_metaNow();\n }\n }\n};\n\nSpaceTimeController.getTimeForFutureTime = function (delta) {\n try {\n if (SpaceTimeController._syncToClock) {\n var future = new Date((SpaceTimeController.get_now().getTime() + (delta * 1000) * SpaceTimeController._timeRate));\n return future;\n } else {\n return SpaceTimeController.get_now();\n }\n }\n catch ($e1) {\n return SpaceTimeController.get_now();\n }\n};\n\nSpaceTimeController.getJNowForFutureTime = function (delta) {\n try {\n if (SpaceTimeController._syncToClock) {\n var future = new Date(SpaceTimeController.get_now().getTime() + _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((delta * 1000 * SpaceTimeController._timeRate)));\n return SpaceTimeController.utcToJulian(future);\n } else {\n return SpaceTimeController.utcToJulian(SpaceTimeController.get_now());\n }\n }\n catch ($e1) {\n return SpaceTimeController.utcToJulian(SpaceTimeController.get_now());\n }\n};\n\nSpaceTimeController.get_now = function () {\n return SpaceTimeController._now;\n};\n\nSpaceTimeController.set_now = function (value) {\n SpaceTimeController._now = value;\n SpaceTimeController._offset = SpaceTimeController._now - SpaceTimeController.get_metaNow();\n SpaceTimeController.last = SpaceTimeController.get_metaNow();\n return value;\n};\n\nSpaceTimeController.get_metaNow = function () {\n return SpaceTimeController._metaNow;\n};\n\nSpaceTimeController.set_metaNow = function (value) {\n if (!SpaceTimeController.frameDumping) {\n SpaceTimeController._metaNow = value;\n }\n return value;\n};\n\nSpaceTimeController.nextFrame = function () {\n SpaceTimeController._metaNow.setMilliseconds(SpaceTimeController._metaNow.getMilliseconds() + Math.round(1000 / SpaceTimeController.framesPerSecond));\n SpaceTimeController.currentFrameNumber += 1;\n};\n\nSpaceTimeController.get_doneDumping = function () {\n return !SpaceTimeController.frameDumping || SpaceTimeController.cancelFrameDump || (SpaceTimeController.currentFrameNumber >= SpaceTimeController.totalFrames);\n};\n\nSpaceTimeController.syncTime = function () {\n SpaceTimeController._offset = 0;\n SpaceTimeController._now = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.now();\n SpaceTimeController._syncToClock = true;\n};\n\nSpaceTimeController.get_jNow = function () {\n return SpaceTimeController.utcToJulian(SpaceTimeController.get_now());\n};\n\nSpaceTimeController.get_syncToClock = function () {\n return SpaceTimeController._syncToClock;\n};\n\nSpaceTimeController.set_syncToClock = function (value) {\n if (SpaceTimeController._syncToClock !== value) {\n SpaceTimeController._syncToClock = value;\n if (value) {\n SpaceTimeController.last = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.now();\n SpaceTimeController._offset = SpaceTimeController._now - _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.now();\n } else {\n SpaceTimeController._now = new Date(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.now().getTime() + SpaceTimeController._offset);\n }\n }\n return value;\n};\n\nSpaceTimeController.get_timeRate = function () {\n return SpaceTimeController._timeRate;\n};\n\nSpaceTimeController.set_timeRate = function (value) {\n SpaceTimeController._timeRate = value;\n return value;\n};\n\nSpaceTimeController.get_altitude = function () {\n return SpaceTimeController._altitude;\n};\n\nSpaceTimeController.set_altitude = function (value) {\n SpaceTimeController._altitude = value;\n return value;\n};\n\nSpaceTimeController.get_location = function () {\n SpaceTimeController._location = _coordinates_js__WEBPACK_IMPORTED_MODULE_4__.Coordinates.fromLatLng(_settings_js__WEBPACK_IMPORTED_MODULE_5__.Settings.get_active().get_locationLat(), _settings_js__WEBPACK_IMPORTED_MODULE_5__.Settings.get_active().get_locationLng());\n SpaceTimeController._altitude = _settings_js__WEBPACK_IMPORTED_MODULE_5__.Settings.get_active().get_locationAltitude();\n return SpaceTimeController._location;\n};\n\nSpaceTimeController.set_location = function (value) {\n if (_settings_js__WEBPACK_IMPORTED_MODULE_5__.Settings.get_globalSettings().get_locationLat() !== value.get_lat()) {\n _settings_js__WEBPACK_IMPORTED_MODULE_5__.Settings.get_globalSettings().set_locationLat(value.get_lat());\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_5__.Settings.get_globalSettings().get_locationLng() !== value.get_lng()) {\n _settings_js__WEBPACK_IMPORTED_MODULE_5__.Settings.get_globalSettings().set_locationLng(value.get_lng());\n }\n SpaceTimeController._location = value;\n return value;\n};\n\nSpaceTimeController.julianToUtc = function (jDate) {\n var date = new _astrocalc_date_js__WEBPACK_IMPORTED_MODULE_2__.DT();\n date.setJD(jDate, true);\n var ms = (date.second() - _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(date.second())) * 1000;\n return new Date(date.year(), date.month() - 1, date.day(), date.hour(), date.minute(), _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(date.second()), _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate(ms));\n};\n\nSpaceTimeController._twoLineDateToJulian = function (p) {\n var pre1950 = parseInt(p.substring(0, 1)) < 6;\n var year = parseInt(((pre1950) ? ' 20' : '19') + p.substring(0, 2));\n var days = parseFloat(p.substring(2, 3));\n var fraction = parseFloat(p.substr(5));\n var date = new Date(year, 0, 1, 0, 0);\n return SpaceTimeController.utcToJulian(date) + (days - 1 + fraction);\n};\n\nSpaceTimeController.julianToTwoLineDate = function (jDate) {\n return SpaceTimeController.dateToTwoLineDate(SpaceTimeController.julianToUtc(jDate));\n};\n\nSpaceTimeController.dateToTwoLineDate = function (date) {\n var sb = new _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.StringBuilder();\n sb.append(date.getFullYear() % 100);\n var fullYear = new Date(date.getFullYear(), 0, 1, 0, 0);\n var dayofyear = Math.floor((date - fullYear) / (60 * 60 * 24 * 1000)) + 2;\n var day = dayofyear + date.getHours() / 24 + date.getMinutes() / 60 / 24 + date.getSeconds() / 60 / 60 / 24 + date.getMilliseconds() / 1000 / 60 / 60 / 24;\n var sDay = SpaceTimeController.tleDayString(day);\n sb.append(sDay);\n return sb.toString();\n};\n\nSpaceTimeController.tleDayString = function (day) {\n var formated = day.toString();\n var point = formated.indexOf('.');\n if (point === -1) {\n point = formated.length;\n formated += '.0';\n }\n var len = formated.length - point - 1;\n var fill = '00000000';\n formated = fill.substr(0, 3 - point) + formated + fill.substr(0, 8 - len);\n return formated;\n};\n\nSpaceTimeController.utcToJulian = function (utc) {\n var year = utc.getUTCFullYear();\n var month = utc.getUTCMonth() + 1;\n var day = utc.getUTCDate();\n var hour = utc.getUTCHours();\n var minute = utc.getUTCMinutes();\n var second = utc.getUTCSeconds() + utc.getUTCMilliseconds() / 1000;\n var dblDay = day + (hour / 24) + (minute / 1440) + (second / 86400);\n return _astrocalc_js__WEBPACK_IMPORTED_MODULE_3__.AstroCalc.getJulianDay(year, month, dblDay);\n};\n\nSpaceTimeController.dateToJD = function (Year, Month, Day, bGregorianCalendar) {\n var Y = Year;\n var M = Month;\n if (M < 3) {\n Y = Y - 1;\n M = M + 12;\n }\n var A = 0;\n var B = 0;\n if (bGregorianCalendar) {\n A = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((Y / 100));\n B = 2 - A + _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((A / 4));\n }\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((365.25 * (Y + 4716))) + _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.truncate((30.6001 * (M + 1))) + Day + B - 1524.5;\n};\n\nvar SpaceTimeController$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"SpaceTimeController\", [SpaceTimeController, SpaceTimeController$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/ss.js\":\n/*!*******************!*\\\n !*** ./esm/ss.js ***!\n \\*******************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ss: () => (/* binding */ ss)\n/* harmony export */ });\n// This file is part of WorldWide Telescope and derived from:\n\n/*! Script# Runtime\n * Designed and licensed for use and distribution with Script#-generated scripts.\n * Copyright (c) 2012, Nikhil Kothari, and the Script# Project.\n * More information at http://scriptsharp.com\n */\n\n// It has been customized to adapt to the particulars of the WWT JavaScript\n// build system.\n\nfunction _ss() {\n \"use strict\";\n\n // Various Helpers/Utilities\n\n function _nop() {\n }\n\n function isValue(o) {\n return (o !== null) && (o !== undefined);\n }\n\n function _value(args) {\n for (var i = 2, l = args.length; i < l; i++) {\n if (isValue(args[i])) {\n return args[i];\n }\n }\n return null;\n }\n\n function value(a, b) {\n return isValue(a) ? a : isValue(b) ? b : _value(arguments);\n }\n\n function extend(o, items) {\n for (var n in items) {\n o[n] = items[n];\n }\n return o;\n }\n\n function parseBoolean(s) {\n return (s.toLowerCase() == 'true');\n }\n\n function parseRegExp(s) {\n if (s[0] == '/') {\n var endSlashIndex = s.lastIndexOf('/');\n if (endSlashIndex > 1) {\n var expression = s.substring(1, endSlashIndex);\n var flags = s.substr(endSlashIndex + 1);\n return new RegExp(expression, flags);\n }\n }\n\n return null;\n }\n\n function parseNumber(s) {\n if (!s || !s.length) {\n return 0;\n }\n if ((s.indexOf('.') >= 0) || (s.indexOf('e') >= 0) ||\n endsWith(s, 'f') || endsWith(s, 'F')) {\n return parseFloat(s);\n }\n return parseInt(s, 10);\n }\n\n function parseDate(s) {\n var t = Date.parse(s);\n return isNaN(t) ? undefined : new Date(t);\n }\n\n function truncate(n) {\n return (n >= 0) ? Math.floor(n) : Math.ceil(n);\n }\n\n function now() {\n return new Date();\n }\n\n function today() {\n var d = new Date();\n return new Date(d.getFullYear(), d.getMonth(), d.getDate());\n }\n\n function compareDates(d1, d2) {\n return (d1 === d2) ? true : ((isValue(d1) && isValue(d2)) ? (d1.getTime() == d2.getTime()) : false);\n }\n\n function _popStackFrame(e) {\n if (!isValue(e.stack) ||\n !isValue(e.fileName) ||\n !isValue(e.lineNumber)) {\n return;\n }\n\n var stackFrames = e.stack.split('\\n');\n var currentFrame = stackFrames[0];\n var pattern = e.fileName + ':' + e.lineNumber;\n while (isValue(currentFrame) && currentFrame.indexOf(pattern) === -1) {\n stackFrames.shift();\n currentFrame = stackFrames[0];\n }\n\n var nextFrame = stackFrames[1];\n if (!isValue(nextFrame)) {\n return;\n }\n\n var nextFrameParts = nextFrame.match(/@(.*):(\\d+)$/);\n if (!isValue(nextFrameParts)) {\n return;\n }\n\n stackFrames.shift();\n e.stack = stackFrames.join('\\n');\n e.fileName = nextFrameParts[1];\n e.lineNumber = parseInt(nextFrameParts[2], 10);\n }\n\n function error(message, errorInfo, innerException) {\n var e = new Error(message);\n if (errorInfo) {\n for (var v in errorInfo) {\n e[v] = errorInfo[v];\n }\n }\n if (innerException) {\n e.innerException = innerException;\n }\n\n _popStackFrame(e);\n return e;\n }\n\n function fail(message) {\n console.assert(false, message);\n if (globalThis.navigator) {\n eval('debugger;');\n }\n }\n\n // Collections\n\n function toArray(obj) {\n return obj ? (typeof obj == 'string' ? JSON.parse('(' + obj + ')') : Array.prototype.slice.call(obj)) : null;\n }\n\n function removeItem(a, item) {\n var index = a.indexOf(item);\n return index >= 0 ? (a.splice(index, 1), true) : false;\n }\n\n function clearKeys(obj) {\n for (var key in obj) {\n delete obj[key];\n }\n }\n\n function keyExists(obj, key) {\n return obj[key] !== undefined;\n }\n\n function keys(obj) {\n if (Object.keys) {\n return Object.keys(obj);\n }\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }\n return keys;\n }\n\n function keyCount(obj) {\n return keys(obj).length;\n }\n\n function Enumerator(obj, keys) {\n var index = -1;\n var length = keys ? keys.length : obj.length;\n var lookup = keys ? function () { return { key: keys[index], value: obj[keys[index]] }; } :\n function () { return obj[index]; };\n\n this.current = null;\n this.moveNext = function () {\n index++;\n this.current = lookup();\n return index < length;\n };\n this.reset = function () {\n index = -1;\n this.current = null;\n };\n }\n\n var _nopEnumerator = {\n current: null,\n moveNext: function () { return false; },\n reset: _nop\n };\n\n function enumerate(o) {\n if (!isValue(o)) {\n return _nopEnumerator;\n }\n if (o.getEnumerator) {\n return o.getEnumerator();\n }\n if (o.length !== undefined) {\n return new Enumerator(o);\n }\n return new Enumerator(o, keys(o));\n }\n\n function Stack() {\n this.count = 0;\n this._items = [];\n }\n\n var Stack$ = {\n clear: function () {\n this._items.length = 0;\n this.count = 0;\n },\n contains: function (item) {\n for (var i = this.count - 1; i >= 0; i--) {\n if (this._items[i] === item) {\n return true;\n }\n }\n return false;\n },\n getEnumerator: function () {\n return new Enumerator(this._items.reverse());\n },\n peek: function () {\n return this._items[this.count - 1];\n },\n push: function (item) {\n this._items.push(item);\n this.count++;\n },\n pop: function () {\n if (this.count) {\n this.count--;\n return this._items.pop();\n }\n return undefined;\n }\n }\n\n function Queue() {\n this.count = 0;\n this._items = [];\n this._offset = 0;\n }\n\n function _cleanQueue(q) {\n q._items = q._items.slice(q._offset);\n q._offset = 0;\n }\n\n var Queue$ = {\n clear: function () {\n this._items.length = 0;\n this._offset = 0;\n this.count = 0;\n },\n contains: function (item) {\n for (var i = this._offset, length = this._items.length; i <= length; i++) {\n if (this._items[i] === item) {\n return true;\n }\n }\n return false;\n },\n dequeue: function () {\n if (this.count) {\n var item = this._items[this._offset];\n if (++this._offset * 2 >= this._items.length) {\n _cleanQueue(this);\n }\n this.count--;\n return item;\n }\n return undefined;\n },\n enqueue: function (item) {\n this._items.push(item);\n this.count++;\n },\n getEnumerator: function () {\n if (this._offset != 0) {\n _cleanQueue(this);\n }\n return new Enumerator(this._items);\n },\n peek: function () {\n return this._items.length ? this._items[this._offset] : undefined;\n }\n }\n\n // String\n\n function string(arg1, arg2) {\n if (typeof arg2 == 'number') {\n return arg2 > 1 ? new Array(arg2 + 1).join(arg1) : arg1;\n }\n return Array.prototype.join.call(arguments, '');\n }\n\n function emptyString(s) {\n return !s || !s.length;\n }\n\n function whitespace(s) {\n return emptyString(s) || !s.replace(/^\\s*/, '').length;\n }\n\n function compareStrings(s1, s2, ignoreCase) {\n s1 = s1 || '', s2 = s2 || '';\n ignoreCase ? (s1 = s1.toUpperCase(), s2 = s2.toUpperCase()) : 0;\n return (s1 === s2) ? 0 : (s1 < s2) ? -1 : 1;\n }\n\n var _formatPlaceHolderRE = /(\\{[^}^{]+\\})/g;\n var _formatters = {};\n\n function format(cultureOrFormat) {\n var culture = neutralCulture;\n var format = cultureOrFormat;\n var values = Array.prototype.slice.call(arguments, 1);\n\n if (cultureOrFormat.constructor != String) {\n culture = cultureOrFormat;\n format = values[0];\n values = values.slice(1);\n }\n\n return format.replace(_formatPlaceHolderRE,\n function (str, match) {\n var index = parseInt(match.substr(1), 10);\n var value = values[index];\n if (!isValue(value)) {\n return '';\n }\n\n var formatter = _formatters[typeName(value)];\n if (formatter) {\n var formatSpec = '';\n var formatIndex = match.indexOf(':');\n if (formatIndex > 0) {\n formatSpec = match.substring(formatIndex + 1, match.length - 1);\n }\n if (formatSpec && (formatSpec != 'i')) {\n return formatter(value, formatSpec, culture);\n }\n }\n return culture == neutralCulture ? value.toString() : value.toLocaleString();\n });\n }\n\n function trim(s, tc) {\n if (tc || !String.prototype.trim) {\n tc = tc ? tc.join('') : null;\n var r = tc ? new RegExp('^[' + tc + ']+|[' + tc + ']+$', 'g') : /^\\s+|\\s+$/g;\n return s.replace(r, '');\n }\n return s.trim();\n }\n\n function trimStart(s, tc) {\n var r = tc ? new RegExp('^[' + tc.join('') + ']+') : /^\\s+/;\n return s.replace(r, '');\n }\n\n function trimEnd(s, tc) {\n var r = tc ? new RegExp('[' + tc.join('') + ']+$') : /\\s+$/;\n return s.replace(r, '');\n }\n\n function startsWith(s, prefix) {\n if (emptyString(prefix)) {\n return true;\n }\n if (emptyString(s) || (prefix.length > s.length)) {\n return false;\n }\n return s.substr(0, prefix.length) == prefix;\n }\n\n function endsWith(s, suffix) {\n if (emptyString(suffix)) {\n return true;\n }\n if (emptyString(s) || (suffix.length > s.length)) {\n return false;\n }\n return s.substr(-suffix.length) == suffix;\n }\n\n function padLeft(s, totalWidth, ch) {\n return (s.length < totalWidth) ? string(ch || ' ', totalWidth - s.length) + s : s;\n }\n\n function padRight(s, totalWidth, ch) {\n return (s.length < totalWidth) ? s + string(ch || ' ', totalWidth - s.length) : s;\n }\n\n function removeString(s, index, count) {\n if (!count || ((index + count) > s.length)) {\n return s.substr(0, index);\n }\n return s.substr(0, index) + s.substr(index + count);\n }\n\n function insertString(s, index, value) {\n if (!value) {\n return s;\n }\n if (!index) {\n return value + s;\n }\n return s.substr(0, index) + value + s.substr(index);\n }\n\n function replaceString(s, oldValue, newValue) {\n return s.split(oldValue).join(newValue || '');\n }\n\n // Delegate Functionality\n\n function _bindList(fnList) {\n var d = function () {\n var args = arguments;\n var result = null;\n for (var i = 0, l = fnList.length; i < l; i++) {\n result = args.length ? fnList[i].apply(null, args) : fnList[i].call(null);\n }\n return result;\n };\n d._fnList = fnList;\n return d;\n }\n\n function bind(fn, o) {\n if (!o) {\n return fn;\n }\n\n var name = null;\n fn = typeof fn == 'string' ? o[name = fn] : fn;\n\n var cache = name ? o.$$b || (o.$$b = {}) : null;\n var binding = cache ? cache[name] : null;\n\n if (!binding) {\n // Create a function that invokes the specified function, in the\n // context of the specified object.\n binding = function () {\n return fn.apply(o, arguments);\n };\n\n if (cache) {\n cache[name] = binding;\n }\n }\n return binding;\n }\n\n function bindAdd(binding, value) {\n if (!binding) {\n return value;\n }\n if (!value) {\n return binding;\n }\n\n var fnList = [].concat(binding._fnList || binding, value);\n return _bindList(fnList);\n }\n\n function bindSub(binding, value) {\n if (!binding) {\n return null;\n }\n if (!value) {\n return binding;\n }\n\n var fnList = binding._fnList || [binding];\n var index = fnList.indexOf(value);\n if (index >= 0) {\n if (fnList.length == 1) {\n return null;\n }\n\n fnList = index ? fnList.slice(0, index).concat(fnList.slice(index + 1)) : fnList.slice(1);\n return _bindList(fnList);\n }\n return binding;\n }\n\n function bindExport(fn, multiUse, name, root) {\n // Generate a unique name if one is not specified\n name = name || '__' + (new Date()).valueOf();\n\n // If unspecified, exported bindings go on the global object\n // (so they are callable using a simple identifier).\n root = root || globalThis;\n\n var exp = {\n name: name,\n detach: function () {\n root[name] = _nop;\n },\n dispose: function () {\n try { delete root[name]; } catch (e) { root[name] = undefined; }\n }\n };\n\n // Multi-use bindings are exported directly; for the rest a stub is exported, and the stub\n // first auto-disposes, and then invokes the actual binding.\n root[name] = multiUse ? fn : function () {\n exp.dispose();\n return fn.apply(null, arguments);\n };\n\n return exp;\n }\n\n // EventArgs\n\n function EventArgs() {\n }\n\n EventArgs.Empty = new EventArgs();\n\n function CancelEventArgs() {\n this.cancel = false;\n }\n\n // Contracts\n\n function IDisposable() { }\n function IEnumerable() { }\n function IEnumerator() { }\n function IObserver() { }\n function IApplication() { }\n function IContainer() { }\n function IObjectFactory() { }\n function IEventManager() { }\n function IInitializable() { }\n\n // StringBuilder\n\n function StringBuilder(s) {\n this._parts = isValue(s) && s !== '' ? [s] : [];\n this.isEmpty = this._parts.length == 0;\n }\n\n var StringBuilder$ = {\n append: function (s) {\n if (isValue(s) && s !== '') {\n this._parts.push(s);\n this.isEmpty = false;\n }\n return this;\n },\n\n appendLine: function (s) {\n this.append(s);\n this.append('\\r\\n');\n this.isEmpty = false;\n return this;\n },\n\n clear: function () {\n this._parts = [];\n this.isEmpty = true;\n },\n\n toString: function (s) {\n return this._parts.join(s || '');\n }\n };\n\n // Observable\n\n var _observerStack = [];\n var _observerRegistration = {\n dispose: function () {\n _observerStack.pop();\n }\n }\n\n function _captureObservers(observers) {\n var registeredObservers = _observerStack;\n var observerCount = registeredObservers.length;\n\n if (observerCount) {\n observers = observers || [];\n for (var i = 0; i < observerCount; i++) {\n var observer = registeredObservers[i];\n if (observers.indexOf(observer) < 0) {\n observers.push(observer);\n }\n }\n return observers;\n }\n return null;\n }\n\n function _invalidateObservers(observers) {\n for (var i = 0, len = observers.length; i < len; i++) {\n observers[i].invalidateObserver();\n }\n }\n\n function Observable(v) {\n this._v = v;\n this._observers = null;\n }\n\n var Observable$ = {\n getValue: function () {\n this._observers = _captureObservers(this._observers);\n return this._v;\n },\n setValue: function (v) {\n if (this._v !== v) {\n this._v = v;\n\n var observers = this._observers;\n if (observers) {\n this._observers = null;\n _invalidateObservers(observers);\n }\n }\n }\n };\n\n Observable.registerObserver = function (o) {\n _observerStack.push(o);\n return _observerRegistration;\n }\n\n function ObservableCollection(items) {\n this._items = items || [];\n this._observers = null;\n }\n\n var ObservableCollection$ = {\n get_item: function (index) {\n this._observers = _captureObservers(this._observers);\n return this._items[index];\n },\n set_item: function (index, item) {\n this._items[index] = item;\n this._updated();\n },\n get_length: function () {\n this._observers = _captureObservers(this._observers);\n return this._items.length;\n },\n add: function (item) {\n this._items.push(item);\n this._updated();\n },\n clear: function () {\n this._items.clear();\n this._updated();\n },\n contains: function (item) {\n return this._items.indexOf(item) >= 0;\n },\n getEnumerator: function () {\n this._observers = _captureObservers(this._observers);\n // TODO: Change this\n return this._items.getEnumerator();\n },\n indexOf: function (item) {\n return this._items.indexOf(item);\n },\n insert: function (index, item) {\n this._items.insert(index, item);\n this._updated();\n },\n remove: function (item) {\n if (this._items.remove(item)) {\n this._updated();\n return true;\n }\n return false;\n },\n removeAt: function (index) {\n this._items.splice(index, 1);\n this._updated();\n },\n toArray: function () {\n return this._items;\n },\n _updated: function () {\n var observers = this._observers;\n if (observers) {\n this._observers = null;\n _invalidateObservers(observers);\n }\n }\n }\n\n // Task\n\n function Task(result) {\n this._continuations = result !== undefined ?\n (this.status = 'done', null) :\n (this.status = 'pending', []);\n this.result = result;\n this.error = null;\n }\n\n var Task$ = {\n get_completed: function () {\n return this.status != 'pending';\n },\n changeWith: function (continuation) {\n var task = new Task();\n this.continueWith(function (t) {\n var error = t.error;\n var result;\n if (!error) {\n try {\n result = continuation(t);\n }\n catch (e) {\n error = e;\n }\n }\n _updateTask(task, result, error);\n });\n return task;\n },\n continueWith: function (continuation) {\n if (this._continuations) {\n this._continuations.push(continuation);\n }\n else {\n var self = this;\n setTimeout(function () { continuation(self); }, 0);\n }\n return this;\n },\n done: function (callback) {\n return this.continueWith(function (t) {\n if (t.status == 'done') {\n callback(t.result);\n }\n });\n },\n fail: function (callback) {\n return this.continueWith(function (t) {\n if (t.status == 'failed') {\n callback(t.error);\n }\n });\n },\n then: function (doneCallback, failCallback) {\n return this.continueWith(function (t) {\n t.status == 'done' ? doneCallback(t.result) : failCallback(t.error);\n });\n }\n };\n\n function _updateTask(task, result, error) {\n if (task.status == 'pending') {\n if (error) {\n task.error = error;\n task.status = 'failed';\n }\n else {\n task.result = result;\n task.status = 'done';\n }\n\n var continuations = task._continuations;\n task._continuations = null;\n\n for (var i = 0, c = continuations.length; i < c; i++) {\n continuations[i](task);\n }\n }\n }\n\n function _joinTasks(tasks, any) {\n tasks = toArray(tasks);\n\n var count = tasks.length;\n\n var interval = 0;\n if ((count > 1) && (typeof tasks[0] == 'number')) {\n interval = tasks[0];\n tasks = tasks.slice(1);\n count--;\n }\n if (Array.isArray(tasks[0])) {\n tasks = tasks[0];\n count = tasks.length;\n }\n\n var joinTask = new Task();\n var seen = 0;\n\n function continuation(t) {\n if (joinTask.status == 'pending') {\n seen++;\n if (any) {\n _updateTask(joinTask, t);\n }\n else if (seen == count) {\n _updateTask(joinTask, true);\n }\n }\n }\n\n function timeout() {\n if (joinTask.status == 'pending') {\n if (any) {\n _updateTask(joinTask, null);\n }\n else {\n _updateTask(joinTask, false);\n }\n }\n }\n\n if (interval != 0) {\n setTimeout(timeout, interval);\n }\n\n for (var i = 0; i < count; i++) {\n tasks[i].continueWith(continuation);\n }\n\n return joinTask;\n }\n Task.all = function () {\n return _joinTasks(arguments, false);\n }\n Task.any = function () {\n return _joinTasks(arguments, true);\n }\n Task.delay = function (timeout) {\n var timerTask = new Task();\n\n setTimeout(function () {\n _updateTask(timerTask, true);\n }, timeout);\n\n return timerTask;\n }\n\n function deferred(result) {\n var task = new Task(result);\n\n return {\n task: task,\n resolve: function (result) {\n _updateTask(task, result);\n },\n reject: function (error) {\n _updateTask(task, null, (error || new Error()));\n }\n };\n }\n\n // Culture\n\n var neutralCulture = {\n name: '',\n // numberFormat\n nf: {\n nan: 'NaN', // naNSymbol\n neg: '-', // negativeSign\n pos: '+', // positiveSign\n negInf: '-Infinity', // negativeInfinityText\n posInf: 'Infinity', // positiveInfinityText\n gw: [3], // numberGroupSizes\n dd: 2, // numberDecimalDigits\n ds: '.', // numberDecimalSeparator\n gs: ',', // numberGroupSeparator\n\n per: '%', // percentSymbol\n perGW: [3], // percentGroupSizes\n perDD: 2, // percentDecimalDigits\n perDS: '.', // percentDecimalSeparator\n perGS: ',', // percentGroupSeparator\n perPP: '{0} %', // percentPositivePattern\n perNP: '-{0} %', // percentNegativePattern\n\n cur: '$', // currencySymbol\n curGW: [3], // currencyGroupSizes\n curDD: 2, // currencyDecimalDigits\n curDS: '.', // currencyDecimalSeparator\n curGS: ',', // currencyGroupSeparator\n curNP: '(${0})', // currencyNegativePattern\n curPP: '${0}' // currencyPositivePattern\n },\n // dateFormat\n dtf: {\n am: 'AM', // amDesignator\n pm: 'PM', // pmDesignator\n\n ds: '/', // dateSeparator\n ts: ':', // timeSeparator\n\n gmt: 'ddd, dd MMM yyyy HH:mm:ss \\'GMT\\'', // gmtDateTimePattern\n uni: 'yyyy-MM-dd HH:mm:ssZ', // universalDateTimePattern\n sort: 'yyyy-MM-ddTHH:mm:ss', // sortableDateTimePattern\n dt: 'dddd, MMMM dd, yyyy h:mm:ss tt', // dateTimePattern\n\n ld: 'dddd, MMMM dd, yyyy', // longDatePattern\n sd: 'M/d/yyyy', // shortDatePattern\n\n lt: 'h:mm:ss tt', // longTimePattern\n st: 'h:mm tt', // shortTimePattern\n\n day0: 0, // firstDayOfWeek\n day: ['Sunday', 'Monday', 'Tuesday',\n 'Wednesday', 'Thursday',\n 'Friday', 'Saturday'], // dayNames\n sday: ['Sun', 'Mon', 'Tue', 'Wed',\n 'Thu', 'Fri', 'Sat'], // shortDayNames\n mday: ['Su', 'Mo', 'Tu', 'We',\n 'Th', 'Fr', 'Sa'], // minimizedDayNames\n\n mon: ['January', 'February', 'March',\n 'April', 'May', 'June', 'July',\n 'August', 'September', 'October',\n 'November', 'December', ''], // monthNames\n smon: ['Jan', 'Feb', 'Mar', 'Apr',\n 'May', 'Jun', 'Jul', 'Aug',\n 'Sep', 'Oct', 'Nov', 'Dec', ''] // shortMonthNames\n }\n };\n\n var currentCulture = { name: 'en-us', dtf: neutralCulture.dtf, nf: neutralCulture.nf };\n\n // Formatting Helpers\n\n function _commaFormatNumber(number, groups, decimal, comma) {\n var decimalPart = null;\n var decimalIndex = number.indexOf(decimal);\n if (decimalIndex > 0) {\n decimalPart = number.substr(decimalIndex);\n number = number.substr(0, decimalIndex);\n }\n\n var negative = number.startsWith('-');\n if (negative) {\n number = number.substr(1);\n }\n\n var groupIndex = 0;\n var groupSize = groups[groupIndex];\n if (number.length < groupSize) {\n return decimalPart ? number + decimalPart : number;\n }\n\n var index = number.length;\n var s = '';\n var done = false;\n while (!done) {\n var length = groupSize;\n var startIndex = index - length;\n if (startIndex < 0) {\n groupSize += startIndex;\n length += startIndex;\n startIndex = 0;\n done = true;\n }\n if (!length) {\n break;\n }\n\n var part = number.substr(startIndex, length);\n if (s.length) {\n s = part + comma + s;\n }\n else {\n s = part;\n }\n index -= length;\n\n if (groupIndex < groups.length - 1) {\n groupIndex++;\n groupSize = groups[groupIndex];\n }\n }\n\n if (negative) {\n s = '-' + s;\n }\n return decimalPart ? s + decimalPart : s;\n }\n\n _formatters['Number'] = function (number, format, culture) {\n var nf = culture.nf;\n var s = '';\n var precision = -1;\n\n if (format.length > 1) {\n precision = parseInt(format.substr(1));\n }\n\n var fs = format.charAt(0);\n switch (fs) {\n case 'd': case 'D':\n s = parseInt(Math.abs(number)).toString();\n if (precision != -1) {\n s = padLeft(s, precision, '0');\n }\n if (number < 0) {\n s = '-' + s;\n }\n break;\n case 'x': case 'X':\n s = parseInt(Math.abs(number)).toString(16);\n if (fs == 'X') {\n s = s.toUpperCase();\n }\n if (precision != -1) {\n s = padLeft(s, precision, '0');\n }\n break;\n case 'e': case 'E':\n if (precision == -1) {\n s = number.toExponential();\n }\n else {\n s = number.toExponential(precision);\n }\n if (fs == 'E') {\n s = s.toUpperCase();\n }\n break;\n case 'f': case 'F':\n case 'n': case 'N':\n if (precision == -1) {\n precision = nf.dd;\n }\n s = number.toFixed(precision).toString();\n if (precision && (nf.ds != '.')) {\n var index = s.indexOf('.');\n s = s.substr(0, index) + nf.ds + s.substr(index + 1);\n }\n if ((fs == 'n') || (fs == 'N')) {\n s = _commaFormatNumber(s, nf.gw, nf.ds, nf.gs);\n }\n break;\n case 'c': case 'C':\n if (precision == -1) {\n precision = nf.curDD;\n }\n s = Math.abs(number).toFixed(precision).toString();\n if (precision && (nf.curDS != '.')) {\n var index = s.indexOf('.');\n s = s.substr(0, index) + nf.curDS + s.substr(index + 1);\n }\n s = _commaFormatNumber(s, nf.curGW, nf.curDS, nf.curGS);\n if (number < 0) {\n s = String.format(culture, nf.curNP, s);\n }\n else {\n s = String.format(culture, nf.curPP, s);\n }\n break;\n case 'p': case 'P':\n if (precision == -1) {\n precision = nf.perDD;\n }\n s = (Math.abs(number) * 100.0).toFixed(precision).toString();\n if (precision && (nf.perDS != '.')) {\n var index = s.indexOf('.');\n s = s.substr(0, index) + nf.perDS + s.substr(index + 1);\n }\n s = _commaFormatNumber(s, nf.perGW, nf.perDS, nf.perGS);\n if (number < 0) {\n s = String.format(culture, nf.perNP, s);\n }\n else {\n s = String.format(culture, nf.perPP, s);\n }\n break;\n }\n\n return s;\n }\n\n var _dateFormatRE = /'.*?[^\\\\]'|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|zzz|zz|z/g;\n\n _formatters['Date'] = function (dt, format, culture) {\n if (format == 'iso') {\n return dt.toISOString();\n }\n else if (format.charAt(0) == 'i') {\n var fnName = 'String';\n switch (format) {\n case 'id': fnName = 'DateString'; break;\n case 'it': fnName = 'TimeString'; break;\n }\n return culture == neutralCulture ? dt['to' + fnName]() : dt['toLocale' + fnName]();\n }\n\n var dtf = culture.dtf;\n\n if (format.length == 1) {\n switch (format) {\n case 'f': format = dtf.ld + ' ' + dtf.st; break;\n case 'F': format = dtf.dt; break;\n\n case 'd': format = dtf.sd; break;\n case 'D': format = dtf.ld; break;\n\n case 't': format = dtf.st; break;\n case 'T': format = dtf.lt; break;\n\n case 'g': format = dtf.sd + ' ' + dtf.st; break;\n case 'G': format = dtf.sd + ' ' + dtf.lt; break;\n\n case 'R': case 'r':\n dtf = neutralCulture.dtf;\n format = dtf.gmt;\n break;\n case 'u': format = dtf.uni; break;\n case 'U':\n format = dtf.dt;\n dt = new Date(dt.getUTCFullYear(), dt.getUTCMonth(), dt.getUTCDate(),\n dt.getUTCHours(), dt.getUTCMinutes(), dt.getUTCSeconds(), dt.getUTCMilliseconds());\n break;\n\n case 's': format = dtf.sort; break;\n }\n }\n\n if (format.charAt(0) == '%') {\n format = format.substr(1);\n }\n\n var sb = new StringBuilder();\n\n _dateFormatRE.lastIndex = 0;\n while (true) {\n var index = _dateFormatRE.lastIndex;\n var match = _dateFormatRE.exec(format);\n\n sb.append(format.slice(index, match ? match.index : format.length));\n if (!match) {\n break;\n }\n\n var fs = match[0];\n var part = fs;\n switch (fs) {\n case 'dddd':\n part = dtf.day[dt.getDay()];\n break;\n case 'ddd':\n part = dtf.sday[dt.getDay()];\n break;\n case 'dd':\n part = padLeft(dt.getDate().toString(), 2, '0');\n break;\n case 'd':\n part = dt.getDate();\n break;\n case 'MMMM':\n part = dtf.mon[dt.getMonth()];\n break;\n case 'MMM':\n part = dtf.smon[dt.getMonth()];\n break;\n case 'MM':\n part = padLeft((dt.getMonth() + 1).toString(), 2, '0');\n break;\n case 'M':\n part = (dt.getMonth() + 1);\n break;\n case 'yyyy':\n part = dt.getFullYear();\n break;\n case 'yy':\n part = padLeft((dt.getFullYear() % 100).toString(), 2, '0');\n break;\n case 'y':\n part = (dt.getFullYear() % 100);\n break;\n case 'h': case 'hh':\n part = dt.getHours() % 12;\n if (!part) {\n part = '12';\n }\n else if (fs == 'hh') {\n part = padLeft(part.toString(), 2, '0');\n }\n break;\n case 'HH':\n part = padLeft(dt.getHours().toString(), 2, '0');\n break;\n case 'H':\n part = dt.getHours();\n break;\n case 'mm':\n part = padLeft(dt.getMinutes().toString(), 2, '0');\n break;\n case 'm':\n part = dt.getMinutes();\n break;\n case 'ss':\n part = padLeft(dt.getSeconds().toString(), 2, '0');\n break;\n case 's':\n part = dt.getSeconds();\n break;\n case 't': case 'tt':\n part = (dt.getHours() < 12) ? dtf.am : dtf.pm;\n if (fs == 't') {\n part = part.charAt(0);\n }\n break;\n case 'fff':\n part = padLeft(dt.getMilliseconds().toString(), 3, '0');\n break;\n case 'ff':\n part = padLeft(dt.getMilliseconds().toString(), 3).substr(0, 2);\n break;\n case 'f':\n part = padLeft(dt.getMilliseconds().toString(), 3).charAt(0);\n break;\n case 'z':\n part = dt.getTimezoneOffset() / 60;\n part = ((part >= 0) ? '-' : '+') + Math.floor(Math.abs(part));\n break;\n case 'zz': case 'zzz':\n part = dt.getTimezoneOffset() / 60;\n part = ((part >= 0) ? '-' : '+') + padLeft(Math.floor(Math.abs(part)).toString(), 2, '0');\n if (fs == 'zzz') {\n part += dtf.ts + padLeft(Math.abs(dt.getTimezoneOffset() % 60).toString(), 2, '0');\n }\n break;\n default:\n if (part.charAt(0) == '\\'') {\n part = part.substr(1, part.length - 2).replace(/\\\\'/g, '\\'');\n }\n break;\n }\n sb.append(part);\n }\n\n return sb.toString();\n }\n\n // Type System\n\n var _modules = {};\n\n var _classMarker = 'class';\n var _interfaceMarker = 'interface';\n\n function createType(typeName, typeInfo, typeRegistry) {\n // The typeInfo is either an array of information representing\n // classes and interfaces, or an object representing enums and resources\n // or a function, representing a record factory.\n\n if (Array.isArray(typeInfo)) {\n var type = typeInfo[0];\n\n // A class is minimally the class type and an object representing\n // its prototype members, and optionally the base type, and references\n // to interfaces implemented by the class.\n if (typeInfo.length >= 2) {\n var baseType = typeInfo[2];\n if (baseType) {\n // Chain the prototype of the base type (using an anonymous type\n // in case the base class is not creatable, or has side-effects).\n var anonymous = function () { };\n anonymous.prototype = baseType.prototype;\n type.prototype = new anonymous();\n type.prototype.constructor = type;\n }\n\n // Add the type's prototype members if there are any\n typeInfo[1] && extend(type.prototype, typeInfo[1]);\n\n type.$base = baseType || Object;\n type.$interfaces = typeInfo.slice(3);\n type.$type = _classMarker;\n }\n else {\n type.$type = _interfaceMarker;\n }\n\n type.$name = typeName;\n return typeRegistry[typeName] = type;\n }\n\n return typeInfo;\n }\n\n function isClass(fn) {\n return fn.$type == _classMarker;\n }\n\n function isInterface(fn) {\n return fn.$type == _interfaceMarker;\n }\n\n function typeOf(instance) {\n var ctor;\n\n // NOTE: We have to catch exceptions because the constructor\n // cannot be looked up on native COM objects\n try {\n ctor = instance.constructor;\n }\n catch (ex) {\n }\n return ctor || Object;\n }\n\n function type(s) {\n var nsIndex = s.indexOf('.');\n var ns = nsIndex > 0 ? _modules[s.substr(0, nsIndex)] : globalThis;\n var name = nsIndex > 0 ? s.substr(nsIndex + 1) : s;\n\n return ns ? ns[name] : null;\n }\n\n var _typeNames = [\n Number, 'Number',\n String, 'String',\n Boolean, 'Boolean',\n Array, 'Array',\n Date, 'Date',\n RegExp, 'RegExp',\n Function, 'Function'\n ];\n\n function typeName(type) {\n if (!(type instanceof Function)) {\n type = type.constructor;\n }\n if (type.$name) {\n return type.$name;\n }\n if (type.name) {\n return type.name;\n }\n for (var i = 0, len = _typeNames.length; i < len; i += 2) {\n if (type == _typeNames[i]) {\n return _typeNames[i + 1];\n }\n }\n return 'Object';\n }\n\n function canAssign(type, otherType) {\n // Checks if the specified type is equal to otherType,\n // or is a parent of otherType\n\n if ((type == Object) || (type == otherType)) {\n return true;\n }\n if (type.$type == _classMarker) {\n var baseType = otherType.$base;\n while (baseType) {\n if (type == baseType) {\n return true;\n }\n baseType = baseType.$base;\n }\n }\n else if (type.$type == _interfaceMarker) {\n var baseType = otherType;\n while (baseType) {\n var interfaces = baseType.$interfaces;\n if (interfaces && (interfaces.indexOf(type) >= 0)) {\n return true;\n }\n baseType = baseType.$base;\n }\n }\n return false;\n }\n\n function instanceOf(type, instance) {\n // Checks if the specified instance is of the specified type\n\n if (!isValue(instance)) {\n return false;\n }\n\n if ((type == Object) || (instance instanceof type)) {\n return true;\n }\n\n var instanceType = typeOf(instance);\n return canAssign(type, instanceType);\n }\n\n function canCast(instance, type) {\n return instanceOf(type, instance);\n }\n\n function safeCast(instance, type) {\n return instanceOf(type, instance) ? instance : null;\n }\n\n function ss_module(name, implementation, exports) {\n var registry = _modules[name] = { $name: name };\n\n if (implementation) {\n for (var typeName in implementation) {\n createType(typeName, implementation[typeName], registry);\n }\n }\n\n var api = {};\n if (exports) {\n for (var typeName in exports) {\n api[typeName] = createType(typeName, exports[typeName], registry);\n }\n }\n\n return api;\n }\n\n function createRegistry(name) {\n var registry = _modules[name] = { $name: name };\n return registry;\n }\n\n return extend(ss_module('ss', null, {\n IDisposable: [IDisposable],\n IEnumerable: [IEnumerable],\n IEnumerator: [IEnumerator],\n IObserver: [IObserver],\n IApplication: [IApplication],\n IContainer: [IContainer],\n IObjectFactory: [IObjectFactory],\n IEventManager: [IEventManager],\n IInitializable: [IInitializable],\n EventArgs: [EventArgs, {}],\n CancelEventArgs: [CancelEventArgs, {}, EventArgs],\n StringBuilder: [StringBuilder, StringBuilder$],\n Stack: [Stack, Stack$],\n Queue: [Queue, Queue$],\n Observable: [Observable, Observable$],\n ObservableCollection: [ObservableCollection, ObservableCollection$, null, IEnumerable],\n Task: [Task, Task$]\n }), {\n version: '0.8',\n\n isValue: isValue,\n value: value,\n extend: extend,\n keys: keys,\n keyCount: keyCount,\n keyExists: keyExists,\n clearKeys: clearKeys,\n enumerate: enumerate,\n array: toArray,\n remove: removeItem,\n boolean: parseBoolean,\n regexp: parseRegExp,\n number: parseNumber,\n date: parseDate,\n truncate: truncate,\n now: now,\n today: today,\n compareDates: compareDates,\n error: error,\n string: string,\n emptyString: emptyString,\n whitespace: whitespace,\n format: format,\n compareStrings: compareStrings,\n startsWith: startsWith,\n endsWith: endsWith,\n padLeft: padLeft,\n padRight: padRight,\n trim: trim,\n trimStart: trimStart,\n trimEnd: trimEnd,\n insertString: insertString,\n removeString: removeString,\n replaceString: replaceString,\n bind: bind,\n bindAdd: bindAdd,\n bindSub: bindSub,\n bindExport: bindExport,\n deferred: deferred,\n\n module: ss_module,\n modules: _modules,\n createRegistry: createRegistry,\n createType: createType,\n\n isClass: isClass,\n isInterface: isInterface,\n typeOf: typeOf,\n type: type,\n typeName: typeName,\n canCast: canCast,\n safeCast: safeCast,\n canAssign: canAssign,\n instanceOf: instanceOf,\n\n culture: {\n neutral: neutralCulture,\n current: currentCulture\n },\n\n fail: fail\n });\n}\n\nvar ss = _ss();\n\n/***/ }),\n\n/***/ \"./esm/star.js\":\n/*!*********************!*\\\n !*** ./esm/star.js ***!\n \\*********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Galaxy: () => (/* binding */ Galaxy),\n/* harmony export */ Star: () => (/* binding */ Star)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Information about catalogued objects.\n\n\n\n\n\n\n\n\n// wwtlib.Star\n\nfunction Star(input) {\n this.magnitude = 0;\n this.RA = 0;\n this.dec = 0;\n this.BMV = 0;\n this.id = 0;\n this.absoluteMagnitude = 0;\n this.par = 0;\n this.distance = 0;\n var sa = input.split('\\t');\n this.id = parseInt(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(sa[0], 'HIP', ''));\n this.dec = parseFloat(sa[3]);\n this.RA = parseFloat(sa[2]) / 15;\n if (sa.length > 4) {\n try {\n if (sa[4].toUpperCase() !== 'NULL' && !!sa[4]) {\n this.magnitude = parseFloat(sa[4]);\n }\n }\n catch ($e1) {\n }\n }\n if (sa.length > 5) {\n try {\n this.BMV = parseFloat(sa[5]);\n this._makeColor(this.BMV);\n }\n catch ($e2) {\n }\n }\n if (sa.length > 6) {\n this.par = parseFloat(sa[6]);\n this._makeDistanceAndMagnitude();\n }\n}\n\nvar Star$ = {\n get_name: function () {\n return 'HIP' + this.id.toString();\n },\n\n get_coordinates: function () {\n return _coordinates_js__WEBPACK_IMPORTED_MODULE_4__.Coordinates.fromRaDec(this.RA, this.dec);\n },\n\n stars: function (input, newish) {\n var sa = input.split('\\t');\n this.id = parseInt(sa[0]);\n this.RA = parseFloat(sa[1]) / 15;\n this.dec = parseFloat(sa[2]);\n if (sa.length > 3) {\n try {\n this.magnitude = parseFloat(sa[3]);\n }\n catch ($e1) {\n }\n }\n if (sa.length > 4) {\n try {\n this.col = _color_js__WEBPACK_IMPORTED_MODULE_3__.Color.load(sa[4]);\n }\n catch ($e2) {\n }\n }\n },\n\n _makeDistanceAndMagnitude: function () {\n this.distance = 1 / (this.par / 1000);\n this.absoluteMagnitude = this.magnitude - 5 * (_baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.logN(this.distance, 10) - 1);\n //Convert to AU\n this.distance *= 206264.806;\n },\n\n _makeColor: function (bmv) {\n var c = 0xFFFFFFFF;\n\n if (bmv <= -0.32) {\n c = 0xFFA2B8FF;\n } else if (bmv <= -0.31) {\n c = 0xFFA3B8FF;\n } else if (bmv <= -0.3) {\n c = 0xFFA4BAFF;\n }\n // mistake in original source. Should this be \"<= -0.29\" or something?\n // else if (bmv <= -0.3) {\n // c = 0xFFA5BAFF;\n // }\n else if (bmv <= -0.28) {\n c = 0xFFA7BCFF;\n } else if (bmv <= -0.26) {\n c = 0xFFA9BDFF;\n } else if (bmv <= -0.24) {\n c = 0xFFABBFFF;\n } else if (bmv <= -0.2) {\n c = 0xFFAFC2FF;\n } else if (bmv <= -0.16) {\n c = 0xFFB4C6FF;\n } else if (bmv <= -0.14) {\n c = 0xFFB6C8FF;\n } else if (bmv <= -0.12) {\n c = 0xFFB9CAFF;\n } else if (bmv <= -0.09) {\n c = 0xFFBCCDFF;\n } else if (bmv <= -0.06) {\n c = 0xFFC1D0FF;\n } else if (bmv <= 0) {\n c = 0xFFCAD6FF;\n } else if (bmv <= 0.06) {\n c = 0xFFD2DCFF;\n } else if (bmv <= 0.14) {\n c = 0xFFDDE4FF;\n } else if (bmv <= 0.19) {\n c = 0xFFE3E8FF;\n } else if (bmv <= 0.31) {\n c = 0xFFF2F2FF;\n } else if (bmv <= 0.36) {\n c = 0xFFF9F6FF;\n } else if (bmv <= 0.43) {\n c = 0xFFFFF9FC;\n } else if (bmv <= 0.54) {\n c = 0xFFFFF6F3;\n } else if (bmv <= 0.59) {\n c = 0xFFFFF3EB;\n } else if (bmv <= 0.63) {\n c = 0xFFFFF1E7;\n } else if (bmv <= 0.66) {\n c = 0xFFFFEFE1;\n } else if (bmv <= 0.74) {\n c = 0xFFFFEEDD;\n } else if (bmv <= 0.82) {\n c = 0xFFFFEAD5;\n } else if (bmv <= 0.92) {\n c = 0xFFFFE4C4;\n } else if (bmv <= 1.15) {\n c = 0xFFFFFDFB8;\n } else if (bmv <= 1.3) {\n c = 0xFFFFDDB4;\n } else if (bmv <= 1.41) {\n c = 0xFFFFD39D;\n } else if (bmv <= 1.48) {\n c = 0xFFFFCD91;\n } else if (bmv <= 1.52) {\n c = 0xFFFFC987;\n } else if (bmv <= 1.55) {\n c = 0xFFFFC57F;\n } else if (bmv <= 1.56) {\n c = 0xFFFFC177;\n } else if (bmv <= 1.61) {\n c = 0xFFFFBD71;\n } else if (bmv <= 1.72) {\n c = 0xFFFFB866;\n } else if (bmv <= 1.84) {\n c = 0xFFFFB25B;\n } else if (bmv <= 2) {\n c = 0xFFFFAD51;\n }\n\n this.col = _color_js__WEBPACK_IMPORTED_MODULE_3__.Color.fromInt(c);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Star\", [Star, Star$, null]);\n\n\n// wwtlib.Galaxy\n\nfunction Galaxy(br) {\n this.RA = 0;\n this.dec = 0;\n this.distance = 0;\n this.type = 0;\n this.eTypeBucket = 0;\n this.size = 5;\n this.sdssID = 0;\n this.sdssID = br.readInt64();\n this.RA = br.readSingle();\n this.dec = br.readSingle();\n this.distance = br.readSingle();\n this.eTypeBucket = br.readByte();\n this.size = br.readSingle();\n}\n\nGalaxy._eTypeBuckets = [-3, -0.186, -0.168, -0.158, -0.15, -0.143, -0.137, -0.13, -0.123, -0.115, -0.104, -0.089, -0.068, -0.042, -0.011, 0.024, 0.064, 0.111, 0.169, 0.252, 3];\n\nGalaxy.getEType = function (value) {\n var a = 0;\n var b = Galaxy._eTypeBuckets.length - 1;\n while (b - a > 1) {\n var m = (a + b) / 2;\n if (value > Galaxy._eTypeBuckets[m]) {\n a = m;\n } else {\n b = m;\n }\n }\n return a;\n};\n\nvar Galaxy$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Galaxy\", [Galaxy, Galaxy$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/tangent_tile.js\":\n/*!*****************************!*\\\n !*** ./esm/tangent_tile.js ***!\n \\*****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LatLngEdges: () => (/* binding */ LatLngEdges),\n/* harmony export */ TangentTile: () => (/* binding */ TangentTile)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _render_triangle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./render_triangle.js */ \"./esm/render_triangle.js\");\n/* harmony import */ var _layers_fits_image_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./layers/fits_image.js */ \"./esm/layers/fits_image.js\");\n/* harmony import */ var _tile_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tile.js */ \"./esm/tile.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A tile in a pyramid that uses a tangential (gnomonic) projection.\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.LatLngEdges\n\nfunction LatLngEdges() {\n this.latMin = 0;\n this.latMax = 0;\n this.lngMin = 0;\n this.lngMax = 0;\n}\n\nvar LatLngEdges$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"LatLngEdges\", [LatLngEdges, LatLngEdges$, null]);\n\n\n// wwtlib.TangentTile\n\nfunction TangentTile(level, x, y, dataset, parent) {\n this._topDown$1 = true;\n _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile.call(this);\n this.parent = parent;\n this.level = level;\n this.tileX = x;\n this.tileY = y;\n this.dataset = dataset;\n this._topDown$1 = !dataset.get_bottomsUp();\n this.computeBoundingSphere();\n}\n\nvar TangentTile$ = {\n computeBoundingSphere: function () {\n if (!this._topDown$1) {\n this.computeBoundingSphereBottomsUp();\n return;\n }\n var tileDegrees = this.dataset.get_baseTileDegrees() / Math.pow(2, this.level);\n var latMin = (this.dataset.get_baseTileDegrees() / 2 - (this.tileY) * tileDegrees) + this.dataset.get_offsetY();\n var latMax = (this.dataset.get_baseTileDegrees() / 2 - ((this.tileY + 1)) * tileDegrees) + this.dataset.get_offsetY();\n var lngMin = ((this.tileX) * tileDegrees - this.dataset.get_baseTileDegrees() / this.dataset.get_widthFactor()) + this.dataset.get_offsetX();\n var lngMax = (((this.tileX + 1)) * tileDegrees - this.dataset.get_baseTileDegrees() / this.dataset.get_widthFactor()) + this.dataset.get_offsetX();\n var latCenter = (latMin + latMax) / 2;\n var lngCenter = (lngMin + lngMax) / 2;\n this.sphereCenter = this.geoTo3dTan(latCenter, lngCenter);\n this.topLeft = this.geoTo3dTan(latMin, lngMin);\n this.bottomRight = this.geoTo3dTan(latMax, lngMax);\n this.topRight = this.geoTo3dTan(latMin, lngMax);\n this.bottomLeft = this.geoTo3dTan(latMax, lngMin);\n var distVect = this.geoTo3dTan(latMin, lngMin);\n distVect.subtract(this.sphereCenter);\n this.sphereRadius = distVect.length();\n },\n\n computeBoundingSphereBottomsUp: function () {\n var tileDegrees = this.dataset.get_baseTileDegrees() / Math.pow(2, this.level);\n var latMin = (this.dataset.get_baseTileDegrees() / 2 + ((this.tileY + 1)) * tileDegrees) + this.dataset.get_offsetY();\n var latMax = (this.dataset.get_baseTileDegrees() / 2 + (this.tileY) * tileDegrees) + this.dataset.get_offsetY();\n var lngMin = ((this.tileX) * tileDegrees - this.dataset.get_baseTileDegrees() / this.dataset.get_widthFactor()) + this.dataset.get_offsetX();\n var lngMax = (((this.tileX + 1)) * tileDegrees - this.dataset.get_baseTileDegrees() / this.dataset.get_widthFactor()) + this.dataset.get_offsetX();\n this.topLeft = this.geoTo3dTan(latMin, lngMin);\n this.bottomRight = this.geoTo3dTan(latMax, lngMax);\n this.topRight = this.geoTo3dTan(latMin, lngMax);\n this.bottomLeft = this.geoTo3dTan(latMax, lngMin);\n },\n\n getLatLngEdges: function () {\n var tileDegrees = this.dataset.get_baseTileDegrees() / Math.pow(2, this.level);\n var edges = new LatLngEdges();\n edges.latMin = (this.dataset.get_baseTileDegrees() / 2 - (this.tileY) * tileDegrees) + this.dataset.get_offsetY();\n edges.latMax = (this.dataset.get_baseTileDegrees() / 2 - ((this.tileY + 1)) * tileDegrees) + this.dataset.get_offsetY();\n edges.lngMin = ((this.tileX) * tileDegrees - this.dataset.get_baseTileDegrees() / this.dataset.get_widthFactor()) + this.dataset.get_offsetX();\n edges.lngMax = (((this.tileX + 1)) * tileDegrees - this.dataset.get_baseTileDegrees() / this.dataset.get_widthFactor()) + this.dataset.get_offsetX();\n return edges;\n },\n\n geoTo3dTan: function (lat, lng) {\n lng = -lng;\n var fac1 = this.dataset.get_baseTileDegrees() / 2;\n var factor = Math.tan(fac1 * _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile.RC);\n return this.dataset.get_matrix().transform(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.create(1, (lat / fac1 * factor), (lng / fac1 * factor)));\n },\n\n requestImage: function () {\n this.fitsImage = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(this.dataset.get_wcsImage(), _layers_fits_image_js__WEBPACK_IMPORTED_MODULE_6__.FitsImage);\n if (this.fitsImage != null) {\n this.texReady = true;\n this.downloading = false;\n this.errored = this.fitsImage.errored;\n this.requestPending = false;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheRemoveFromQueue)(this.get_key(), true);\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.useGlVersion2) {\n this.makeTexture();\n this.readyToRender = true;\n }\n else {\n //Cached bitmap for performance reasons\n //Only used in legacy rendering of FITS (WebGL 1.0) inside SkyImageTile\n this.bmp = this.fitsImage.getBitmap();\n this.texture2d = this.bmp.getTexture();\n this.readyToRender = true;\n }\n } else {\n _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile.prototype.requestImage.call(this);\n }\n },\n\n createGeometry: function (renderContext) {\n if (this.geometryCreated) {\n return true;\n }\n this.geometryCreated = true;\n for (var i = 0; i < 4; i++) {\n this._renderTriangleLists[i] = [];\n }\n this.globalCenter = this.geoTo3dTan(0, 0);\n var edges = this.getLatLngEdges();\n this.topLeft = this.geoTo3dTan(edges.latMin, edges.lngMin).subtract(this.globalCenter);\n this.bottomRight = this.geoTo3dTan(edges.latMax, edges.lngMax).subtract(this.globalCenter);\n this.topRight = this.geoTo3dTan(edges.latMin, edges.lngMax).subtract(this.globalCenter);\n this.bottomLeft = this.geoTo3dTan(edges.latMax, edges.lngMin).subtract(this.globalCenter);\n var center = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.midPoint(this.topLeft, this.bottomRight);\n var leftCenter = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.midPoint(this.topLeft, this.bottomLeft);\n var rightCenter = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.midPoint(this.topRight, this.bottomRight);\n var topCenter = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.midPoint(this.topLeft, this.topRight);\n var bottomCenter = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.midPoint(this.bottomLeft, this.bottomRight);\n if (renderContext.gl == null) {\n this._renderTriangleLists[0].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(this.topLeft, 0, 0), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(leftCenter, 0, 0.5), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(topCenter, 0.5, 0), this.texture, this.level));\n this._renderTriangleLists[0].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(leftCenter, 0, 0.5), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(center, 0.5, 0.5), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(topCenter, 0.5, 0), this.texture, this.level));\n this._renderTriangleLists[1].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(topCenter, 0.5, 0), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(rightCenter, 1, 0.5), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(this.topRight, 1, 0), this.texture, this.level));\n this._renderTriangleLists[1].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(topCenter, 0.5, 0), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(center, 0.5, 0.5), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(rightCenter, 1, 0.5), this.texture, this.level));\n this._renderTriangleLists[2].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(leftCenter, 0, 0.5), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(bottomCenter, 0.5, 1), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(center, 0.5, 0.5), this.texture, this.level));\n this._renderTriangleLists[2].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(leftCenter, 0, 0.5), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(this.bottomLeft, 0, 1), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(bottomCenter, 0.5, 1), this.texture, this.level));\n this._renderTriangleLists[3].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(center, 0.5, 0.5), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(this.bottomRight, 1, 1), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(rightCenter, 1, 0.5), this.texture, this.level));\n this._renderTriangleLists[3].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__.RenderTriangle.create(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(center, 0.5, 0.5), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(bottomCenter, 0.5, 1), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(this.bottomRight, 1, 1), this.texture, this.level));\n this.readyToRender = true;\n } else {\n //process vertex list\n this._vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, this._vertexBuffer);\n var f32array = new Float32Array(9 * 5);\n var buffer = f32array;\n var index = 0;\n index = this.addVertex(buffer, index, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(bottomCenter, 0.5, 1));\n index = this.addVertex(buffer, index, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(this.bottomLeft, 0, 1));\n index = this.addVertex(buffer, index, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(this.bottomRight, 1, 1));\n index = this.addVertex(buffer, index, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(center, 0.5, 0.5));\n index = this.addVertex(buffer, index, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(leftCenter, 0, 0.5));\n index = this.addVertex(buffer, index, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(rightCenter, 1, 0.5));\n index = this.addVertex(buffer, index, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(topCenter, 0.5, 0));\n index = this.addVertex(buffer, index, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(this.topLeft, 0, 0));\n index = this.addVertex(buffer, index, _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(this.topRight, 1, 0));\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, f32array, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n\n // process index buffers\n for (var i = 0; i < 4; i++) {\n index = 0;\n this.triangleCount = 2;\n var ui16array = new Uint16Array(this.triangleCount * 3);\n var indexArray = ui16array;\n switch (i) {\n case 0:\n indexArray[index++] = 7;\n indexArray[index++] = 4;\n indexArray[index++] = 6;\n indexArray[index++] = 4;\n indexArray[index++] = 3;\n indexArray[index++] = 6;\n break;\n case 1:\n indexArray[index++] = 6;\n indexArray[index++] = 5;\n indexArray[index++] = 8;\n indexArray[index++] = 6;\n indexArray[index++] = 3;\n indexArray[index++] = 5;\n break;\n case 2:\n indexArray[index++] = 4;\n indexArray[index++] = 0;\n indexArray[index++] = 3;\n indexArray[index++] = 4;\n indexArray[index++] = 1;\n indexArray[index++] = 0;\n break;\n case 3:\n indexArray[index++] = 3;\n indexArray[index++] = 2;\n indexArray[index++] = 5;\n indexArray[index++] = 3;\n indexArray[index++] = 0;\n indexArray[index++] = 2;\n break;\n }\n this._indexBuffers[i] = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, this._indexBuffers[i]);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, ui16array, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n }\n }\n return true;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TangentTile\", [TangentTile, TangentTile$, _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile]);\n\n\n/***/ }),\n\n/***/ \"./esm/tile.js\":\n/*!*********************!*\\\n !*** ./esm/tile.js ***!\n \\*********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Tile: () => (/* binding */ Tile)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./graphics/shaders.js */ \"./esm/graphics/shaders.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n/* harmony import */ var _blend_state_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./blend_state.js */ \"./esm/blend_state.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _layers_color_map_container_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./layers/color_map_container.js */ \"./esm/layers/color_map_container.js\");\n/* harmony import */ var _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./layers/fits_image_js.js */ \"./esm/layers/fits_image_js.js\");\n/* harmony import */ var _layers_fits_image_tile_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./layers/fits_image_tile.js */ \"./esm/layers/fits_image_tile.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The base class for tiles in image tile pyramids.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.Tile\n\nfunction Tile() {\n this._renderTriangleLists = new Array(4);\n this._indexBuffers = new Array(4);\n this.level = 0;\n this.tileX = 0;\n this.tileY = 0;\n this.texture = null;\n this.texture2d = null;\n this.isCatalogTile = false;\n this.readyToRender = false;\n this.inViewFrustum = true;\n this.globalCenter = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.zero;\n this.children = [null, null, null, null];\n this.parent = null;\n this.localCenter = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this.renderedAtOrBelowGeneration = 0;\n this._demScaleFactor = 6371000;\n this.demIndex = 0;\n this.demAverage = 0;\n this.demReady = false;\n this.texReady = false;\n this.demTile = false;\n this.demDownloading = false;\n this.renderedGeneration = 0;\n this.accomidation = 0;\n this.accessCount = 0;\n this.downloading = false;\n this.geometryCreated = false;\n this._isHdTile = false;\n this.demSize = 33 * 33;\n this._topLeftScreen = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this._bottomRightScreen = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this._topRightScreen = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this._bottomLeftScreen = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this.sphereRadius = 0;\n this.sphereCenter = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n this.radius = 1;\n this.triangleCount = 0;\n this.requestHits = 0;\n this.requestPending = false;\n this.errored = false;\n this._key = null;\n this._tileId = null;\n this._vertexCount = 0;\n this.renderChildPart = null;\n this.renderChildPart = new Array(4);\n for (var i = 0; i < 4; i++) {\n this.renderChildPart[i] = _blend_state_js__WEBPACK_IMPORTED_MODULE_9__.BlendState.create(false, 500);\n }\n}\n\nTile.currentRenderGeneration = 0;\nTile.tileTargetX = -1;\nTile.tileTargetY = -1;\nTile.tileTargetLevel = -1;\nTile.tilesInView = 0;\nTile.trianglesRendered = 0;\nTile.tilesTouched = 0;\nTile.frustumList = null;\n(0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileUvMultiple)(1);\nTile.callCount = 0;\nTile.useAccomidation = true;\n(0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileDemEnabled)(true);\nTile.maxLevel = 20;\nTile.meshComplexity = 50;\nTile.imageQuality = 50;\nTile.lastDeepestLevel = 0;\nTile.deepestLevel = 0;\nTile.RC = (3.1415927 / 180);\n\nTile.getFrustumList = function () {\n try {\n return Tile.frustumList;\n }\n catch ($e1) {\n return null;\n }\n};\n\nTile.get_subDivisions = function () {\n return 32;\n};\n\nvar Tile$ = {\n getIndexBuffer: function (index, accomidation) {\n return this._indexBuffers[index];\n },\n\n isPointInTile: function (lat, lng) {\n return false;\n },\n\n getSurfacePointAltitude: function (lat, lng, meters) {\n return 0;\n },\n\n makeTexture: function () {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice != null) {\n try {\n this.texture2d = _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.createTexture();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.bindTexture(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_2D, this.texture2d);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_WRAP_S, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.CLAMP_TO_EDGE);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_WRAP_T, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.CLAMP_TO_EDGE);\n if (this.dataset.get_extension().toLowerCase().indexOf('fits') > -1 && _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGlVersion2) {\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.texImage2D(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_2D, 0, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.R32F, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(this.fitsImage.get_sizeX()), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(this.fitsImage.get_sizeY()), 0, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.RED, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.FLOAT, this.fitsImage.dataUnit);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_MIN_FILTER, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.NEAREST);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_MAG_FILTER, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.NEAREST);\n }\n else {\n var image = this.texture;\n // Before we bind resize to a power of two if nessesary so we can MIPMAP\n if ((!_graphics_texture_js__WEBPACK_IMPORTED_MODULE_6__.Texture.isPowerOfTwo(this.texture.height) | !_graphics_texture_js__WEBPACK_IMPORTED_MODULE_6__.Texture.isPowerOfTwo(this.texture.width)) === 1) {\n var temp = document.createElement('canvas');\n temp.height = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_6__.Texture.fitPowerOfTwo(image.height);\n temp.width = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_6__.Texture.fitPowerOfTwo(image.width);\n var ctx = temp.getContext('2d');\n ctx.drawImage(image, 0, 0, temp.width, temp.height);\n //Substitute the resized image\n image = temp;\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.texImage2D(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_2D, 0, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.RGBA, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.RGBA, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.UNSIGNED_BYTE, image);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_MIN_FILTER, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.LINEAR_MIPMAP_NEAREST);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.generateMipmap(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_2D);\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.bindTexture(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TEXTURE_2D, null);\n }\n catch ($e1) {\n this.errored = true;\n }\n }\n },\n\n addVertex: function (buffer, index, p) {\n buffer[index++] = p.position.x;\n buffer[index++] = p.position.y;\n buffer[index++] = p.position.z;\n buffer[index++] = p.tu;\n buffer[index++] = p.tv;\n return index;\n },\n\n geoTo3dWithAlt: function (lat, lng, useLocalCenter, rev) {\n lat = Math.max(Math.min(90, lat), -90);\n lng = Math.max(Math.min(180, lng), -180);\n if (!_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileDemEnabled || this.demData == null) {\n return this.geoTo3d(lat, lng, useLocalCenter);\n }\n if (rev) {\n lng -= 180;\n }\n var altitude = this.demData[this.demIndex];\n var retVal = this.geoTo3dWithAltitude(lat, lng, altitude, useLocalCenter);\n return retVal;\n },\n\n geoTo3dWithAltitude: function (lat, lng, altitude, useLocalCenter) {\n var radius = 1 + (altitude / this.get__demScaleFactor());\n var retVal = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create((Math.cos(lng * Tile.RC) * Math.cos(lat * Tile.RC) * radius), (Math.sin(lat * Tile.RC) * radius), (Math.sin(lng * Tile.RC) * Math.cos(lat * Tile.RC) * radius));\n if (useLocalCenter) {\n retVal.subtract(this.localCenter);\n }\n return retVal;\n },\n\n get__demScaleFactor: function () {\n return this._demScaleFactor; // / Properties.Settings.Default.TerrainScaling;\n },\n\n set__demScaleFactor: function (value) {\n this._demScaleFactor = value;\n return value;\n },\n\n requestImage: function () {\n var $this = this;\n\n if (this.dataset.get_extension().toLowerCase().indexOf('fits') > -1) {\n if (!this.downloading && !this.readyToRender) {\n this.downloading = true;\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGlVersion2) {\n this.fitsImage = new _layers_fits_image_tile_js__WEBPACK_IMPORTED_MODULE_13__.FitsImageTile(this.dataset, this.get_URL(), function (wcsImage) {\n $this.downloading = false;\n $this.errored = $this.fitsImage.errored;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheRemoveFromQueue)($this.get_key(), true);\n if (!$this.fitsImage.errored) {\n if (!$this.level) {\n // For a non-HiPS tiled FITS, this is our\n // mechanism for notifying the layer creator\n // that the initial FITS data have loaded and\n // the FitsProperties can be trusted.\n $this.dataset.get_fitsProperties()._fireMainImageLoaded($this.fitsImage);\n $this.fitsImage.applyDisplaySettings();\n }\n $this.texReady = true;\n $this.readyToRender = $this.texReady && ($this.demReady || !$this.demTile);\n $this.requestPending = false;\n $this.makeTexture();\n }\n });\n }\n else {\n this.fitsImage = _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_12__.FitsImageJs.createTiledFits(this.dataset, this.get_URL(), function (wcsImage) {\n if (!$this.level) {\n $this.dataset.get_fitsProperties()._fireMainImageLoaded($this.fitsImage);\n }\n $this.texReady = true;\n $this.downloading = false;\n $this.errored = $this.fitsImage.errored;\n $this.readyToRender = $this.texReady && ($this.demReady || !$this.demTile);\n $this.requestPending = false;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheRemoveFromQueue)($this.get_key(), true);\n $this.texture2d = wcsImage.getBitmap().getTexture();\n });\n }\n }\n } else {\n if (this.get_dataset().get_wcsImage() != null) {\n this.texReady = true;\n this.downloading = false;\n this.errored = false;\n this.readyToRender = true;\n this.requestPending = false;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheRemoveFromQueue)(this.get_key(), true);\n return;\n }\n if (!this.downloading && !this.readyToRender) {\n this.downloading = true;\n this.texture = document.createElement('img');\n var xdomimg = this.texture;\n this.texture.addEventListener('load', function (e) {\n $this.texReady = true;\n $this.downloading = false;\n $this.errored = false;\n $this.readyToRender = $this.texReady && ($this.demReady || !$this.demTile);\n $this.requestPending = false;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheRemoveFromQueue)($this.get_key(), true);\n $this.makeTexture();\n }, false);\n this.texture.addEventListener('error', function (e) {\n if (!$this.texture.hasAttribute('proxyattempt')) {\n $this.texture.setAttribute('proxyattempt', true);\n // NOTE: `this.URL` is dynamically generated using\n // URLHelpers.rewrite(). Say that we request tiles from\n // example.com, which requires CORS proxying. Say also\n // that this callback is called for a request to a tile\n // that should in fact be available. If a different\n // request fails before this callback is called,\n // activateProxy() will be called on the example.com\n // domain, making it so that `this.URL` in the following\n // call goes through the proxy, making it so that\n // `new_url` is null, making it so that this tile is\n // erroneously marked as failed when it should not be.\n // The solution: make sure to check proxy activation\n // with the *original* request URL, `texture.Src`, not\n // the one that may have been updated, `this.URL`.\n var new_url = _url_helpers_js__WEBPACK_IMPORTED_MODULE_10__.URLHelpers.singleton.activateProxy($this.texture.src);\n if (new_url != null) {\n // null => don't bother: we know that the proxy won't help\n $this.texture.src = new_url;\n return;\n }\n }\n $this.downloading = false;\n $this.readyToRender = false;\n $this.errored = true;\n $this.requestPending = false;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheRemoveFromQueue)($this.get_key(), true);\n }, false);\n xdomimg.crossOrigin = 'anonymous';\n this.texture.src = this.get_URL();\n }\n }\n },\n\n createDemFromParent: function () {\n return false;\n },\n\n _loadDemData: function () {\n if (this.demFile == null) {\n return this.createDemFromParent();\n }\n this.demData = this.demFile;\n if (this.demFile.length !== 1089 && this.demFile.length !== 513) {\n return this.createDemFromParent();\n }\n var total = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.demData);\n while ($enum1.moveNext()) {\n var fv = $enum1.current;\n total += fv;\n }\n this.demAverage /= this.demData.length;\n return true;\n },\n\n requestDem: function () {\n var $this = this;\n\n if (!this.readyToRender && !this.demDownloading) {\n this.demTile = true;\n this.demDownloading = true;\n Tile.callCount++;\n var xhr = new XMLHttpRequest();\n xhr.addEventListener('load', function (e) {\n $this.demReady = true;\n $this.demDownloading = false;\n $this.readyToRender = $this.texReady && ($this.demReady || !$this.demTile);\n $this.requestPending = false;\n try {\n $this.demFile = new Float32Array(xhr.response);\n }\n catch ($e1) {\n }\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheRemoveFromQueue)($this.get_key(), true);\n }, false);\n xhr.addEventListener('error', function (e) {\n $this.demDownloading = false;\n $this.demReady = false;\n $this.readyToRender = false;\n $this.errored = true;\n $this.requestPending = false;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheRemoveFromQueue)($this.get_key(), true);\n }, false);\n xhr.open('GET', this.get_demURL(), true);\n xhr.responseType = 'arraybuffer';\n xhr.send();\n }\n },\n\n draw3D: function (renderContext, opacity) {\n this.renderedGeneration = Tile.currentRenderGeneration;\n Tile.tilesTouched++;\n this.accessCount = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.inc_tileCacheAccessID)();\n if (this.errored) {\n return false;\n }\n var xMax = 2;\n this.inViewFrustum = true;\n if (!this.readyToRender) {\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheAddTileToQueue)(this);\n return false;\n }\n var transitioning = false;\n var childIndex = 0;\n var yOffset = 0;\n if (this.dataset.get_mercator() || this.dataset.get_bottomsUp()) {\n yOffset = 1;\n }\n var xOffset = 0;\n var anythingToRender = false;\n var childRendered = false;\n for (var y1 = 0; y1 < 2; y1++) {\n for (var x1 = 0; x1 < xMax; x1++) {\n if (this.level < this.dataset.get_levels()) {\n // make children\n if (this.children[childIndex] == null) {\n this.children[childIndex] = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheGetTile)(this.level + 1, this.tileX * 2 + ((x1 + xOffset) % 2), this.tileY * 2 + ((y1 + yOffset) % 2), this.dataset, this);\n }\n if (this.children[childIndex].isTileInFrustum(renderContext.get_frustum())) {\n this.inViewFrustum = true;\n if (this.children[childIndex].isTileBigEnough(renderContext)) {\n this.renderChildPart[childIndex].set_targetState(!this.children[childIndex].draw3D(renderContext, opacity));\n if (this.renderChildPart[childIndex].get_targetState()) {\n childRendered = true;\n }\n }\n else {\n this.renderChildPart[childIndex].set_targetState(true);\n }\n }\n else {\n this.renderChildPart[childIndex].set_targetState(this.renderChildPart[childIndex].set_state(false));\n }\n if (this.renderChildPart[childIndex].get_targetState() !== this.renderChildPart[childIndex].get_state()) {\n transitioning = true;\n }\n }\n else {\n this.renderChildPart[childIndex].set_state(true);\n }\n if (!!this.renderChildPart[childIndex].get_state()) {\n anythingToRender = true;\n }\n childIndex++;\n }\n }\n if (childRendered || anythingToRender) {\n this.renderedAtOrBelowGeneration = Tile.currentRenderGeneration;\n if (this.parent != null) {\n this.parent.renderedAtOrBelowGeneration = this.renderedAtOrBelowGeneration;\n }\n }\n if (!anythingToRender) {\n return true;\n }\n if (!this.createGeometry(renderContext)) {\n return false;\n }\n Tile.tilesInView++;\n this.accomidation = this._computeAccomidation();\n for (var i = 0; i < 4; i++) {\n if (this.renderChildPart[i].get_targetState()) {\n this.renderPart(renderContext, i, (opacity / 100), false);\n }\n }\n return true;\n },\n\n _computeAccomidation: function () {\n var accVal = 0;\n if (!Tile.useAccomidation) {\n return 0;\n }\n var top = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheGetCachedTile)(this.level, this.tileX, this.tileY + 1, this.dataset, this);\n if (top == null || top.renderedAtOrBelowGeneration < Tile.currentRenderGeneration - 2) {\n accVal += 1;\n }\n var right = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheGetCachedTile)(this.level, this.tileX + 1, this.tileY, this.dataset, this);\n if (right == null || right.renderedAtOrBelowGeneration < Tile.currentRenderGeneration - 2) {\n accVal += 2;\n }\n var bottom = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheGetCachedTile)(this.level, this.tileX, this.tileY - 1, this.dataset, this);\n if (bottom == null || bottom.renderedAtOrBelowGeneration < Tile.currentRenderGeneration - 2) {\n accVal += 4;\n }\n var left = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheGetCachedTile)(this.level, this.tileX - 1, this.tileY, this.dataset, this);\n if (left == null || left.renderedAtOrBelowGeneration < Tile.currentRenderGeneration - 2) {\n accVal += 8;\n }\n return accVal;\n },\n\n renderPart: function (renderContext, part, opacity, combine) {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice == null) {\n var lighting = renderContext.lighting && renderContext.get_sunPosition() != null;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._renderTriangleLists[part]);\n while ($enum1.moveNext()) {\n var tri = $enum1.current;\n tri.opacity = opacity;\n if (lighting) {\n // transform normal by WV\n var norm = tri.normal.copy();\n renderContext.get_world().multiplyVector(norm);\n norm.normalize();\n\n // Dot product from sun angle\n var light = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.dot(norm, renderContext.get_sunPosition());\n if (light < 0) {\n light = 0;\n }\n else {\n light = Math.min(1, (light * 1));\n }\n\n // set lighting\n tri.lighting = light;\n }\n else {\n tri.lighting = 1;\n }\n tri.draw(renderContext.device, renderContext.WVP);\n }\n } else {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGlVersion2 && this.fitsImage != null) {\n _layers_color_map_container_js__WEBPACK_IMPORTED_MODULE_11__.ColorMapContainer.bindColorMapTexture(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice, this.dataset.get_fitsProperties().colorMapName);\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.FitsShader.min = this.dataset.get_fitsProperties().lowerCut;\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.FitsShader.max = this.dataset.get_fitsProperties().upperCut;\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.FitsShader.containsBlanks = this.dataset.get_fitsProperties().containsBlanks;\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.FitsShader.blankValue = this.dataset.get_fitsProperties().blankValue;\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.FitsShader.bZero = this.dataset.get_fitsProperties().bZero;\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.FitsShader.bScale = this.dataset.get_fitsProperties().bScale;\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.FitsShader.scaleType = this.dataset.get_fitsProperties().scaleType;\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.FitsShader.transparentBlack = this.dataset.get_fitsProperties().transparentBlack;\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.FitsShader.use(renderContext, this._vertexBuffer, this.getIndexBuffer(part, this.accomidation), this.texture2d, opacity, false, this.globalCenter);\n }\n else {\n _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__.TileShader.use(renderContext, this._vertexBuffer, this.getIndexBuffer(part, this.accomidation), this.texture2d, opacity, false, this.globalCenter);\n }\n renderContext.gl.drawElements(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.TRIANGLES, this.triangleCount * 3, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__.WEBGL.UNSIGNED_SHORT, 0);\n }\n },\n\n cleanUp: function (removeFromParent) {\n this.readyToRender = false;\n this.demData = null;\n this.demFile = null;\n this.demDownloading = false;\n this.texReady = false;\n this.demReady = false;\n this.errored = false;\n if (this.texture != null) {\n this.texture = null;\n }\n this._renderTriangleLists = new Array(4);\n this.geometryCreated = false;\n if (removeFromParent && this.parent != null) {\n this.parent.removeChild(this);\n this.parent = null;\n }\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice != null) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._indexBuffers);\n while ($enum1.moveNext()) {\n var buf = $enum1.current;\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.deleteBuffer(buf);\n }\n this._indexBuffers = new Array(4);\n if (this._vertexBuffer != null) {\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.deleteBuffer(this._vertexBuffer);\n this._vertexBuffer = null;\n }\n if (this.texture2d != null) {\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tilePrepDevice.deleteTexture(this.texture2d);\n this.texture2d = null;\n }\n }\n },\n\n removeChild: function (child) {\n for (var i = 0; i < 4; i++) {\n if (this.children[i] === child) {\n this.children[i] = null;\n return;\n }\n }\n },\n\n createGeometry: function (renderContext) {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileDemEnabled && this.demReady && this.demData == null) {\n if (!this._loadDemData()) {\n return false;\n }\n }\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileDemEnabled && this.demData == null) {\n return false;\n }\n this.readyToRender = true;\n return true;\n },\n\n calcSphere: function () {\n var corners = new Array(4);\n corners[0] = this.topLeft;\n corners[1] = this.bottomRight;\n corners[2] = this.topRight;\n corners[3] = this.bottomLeft;\n var result = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.ConvexHull.findEnclosingSphere(corners);\n this.sphereCenter = result.center;\n this.sphereRadius = result.radius;\n },\n\n isTileBigEnough: function (renderContext) {\n if (this.level > 1) {\n // Test for tile scale in view.\n var wvp = renderContext.WVP;\n wvp._transformTo(this.topLeft, this._topLeftScreen);\n wvp._transformTo(this.bottomRight, this._bottomRightScreen);\n wvp._transformTo(this.topRight, this._topRightScreen);\n wvp._transformTo(this.bottomLeft, this._bottomLeftScreen);\n var top = this._topLeftScreen;\n top.subtract(this._topRightScreen);\n var topLength = top.length();\n var bottom = this._bottomLeftScreen;\n bottom.subtract(this._bottomRightScreen);\n var bottomLength = bottom.length();\n var left = this._bottomLeftScreen;\n left.subtract(this._topLeftScreen);\n var leftLength = left.length();\n var right = this._bottomRightScreen;\n right.subtract(this._topRightScreen);\n var rightLength = right.length();\n var lengthMax = Math.max(Math.max(rightLength, leftLength), Math.max(bottomLength, topLength));\n if (lengthMax < 300) { // was 220\n return false;\n }\n else {\n Tile.deepestLevel = (this.level > Tile.deepestLevel) ? this.level : Tile.deepestLevel;\n }\n }\n return true;\n },\n\n isTileInFrustum: function (frustum) {\n if (this.level < 2 && (!this.dataset.get_projection() || this.dataset.get_projection() === 3)) {\n // return true;\n }\n this.inViewFrustum = false;\n var centerV4 = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector4d(this.sphereCenter.x, this.sphereCenter.y, this.sphereCenter.z, 1);\n for (var i = 0; i < 6; i++) {\n if (frustum[i].dot(centerV4) < -this.sphereRadius) {\n return false;\n }\n }\n this.inViewFrustum = true;\n return true;\n },\n\n get_sphereRadius: function () {\n return this.sphereRadius;\n },\n\n get_sphereCenter: function () {\n return this.sphereCenter;\n },\n\n geoTo3d: function (lat, lng, useLocalCenter) {\n if (this.dataset.get_dataSetType() === 3) {\n var retVal = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-(Math.cos(lng * Tile.RC) * Math.cos(lat * Tile.RC) * this.radius), (Math.sin(lat * Tile.RC) * this.radius), (Math.sin(lng * Tile.RC) * Math.cos(lat * Tile.RC) * this.radius));\n return retVal;\n } else {\n lng -= 180;\n var retVal = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create((Math.cos(lng * Tile.RC) * Math.cos(lat * Tile.RC) * this.radius), (Math.sin(lat * Tile.RC) * this.radius), (Math.sin(lng * Tile.RC) * Math.cos(lat * Tile.RC) * this.radius));\n return retVal;\n }\n },\n\n onCreateVertexBuffer: function (sender, e) { },\n\n get_dataset: function () {\n return this.dataset;\n },\n\n set_dataset: function (value) {\n this.dataset = value;\n return value;\n },\n\n get_key: function () {\n if (this._key == null) {\n this._key = (0,_util_js__WEBPACK_IMPORTED_MODULE_8__.getTileKey)(this.dataset, this.level, this.tileX, this.tileY, this.parent);\n }\n return this._key;\n },\n\n // URL parameters\n //\n //{0} ImageSetID\n //{1} level\n //{2} x tile id\n //{3} y tile id\n //{4} quadtree address (VE style)\n //{5} quadtree address (Google maps style)\n //{6} top left corner RA\n //{7} top left corner Dec\n //{8} bottom right corner RA\n //{9} bottom right corner dec\n //{10} bottom left corner RA\n //{11} bottom left corner dec\n //{12} top right corner RA\n //{13} top right corner dec\n //{X} - Tile X value\n //{Y} - Tile Y value\n //{L} - Tile Level\n //{Q} - Quad Key ID\n //{S} - Last Digit of Quadkey\n get_URL: function () {\n var rewritten_url = _url_helpers_js__WEBPACK_IMPORTED_MODULE_10__.URLHelpers.singleton.rewrite(this.dataset.get_url(), 0);\n var returnUrl = rewritten_url;\n if (rewritten_url.indexOf('{1}') > -1) {\n // Old style URL\n if (!this.dataset.get_projection() && !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this.dataset.get_quadTreeTileMap())) {\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format(rewritten_url, this.getServerID(), this.getTileID());\n if (returnUrl.indexOf('virtualearth.net') > -1) {\n returnUrl += '&n=z';\n }\n return returnUrl;\n }\n else {\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format(rewritten_url, this.dataset.get_imageSetID(), this.level, this.tileX, this.tileY);\n }\n }\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{X}', this.tileX.toString());\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{Y}', this.tileY.toString());\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{L}', this.level.toString());\n var hash = 0;\n if (returnUrl.indexOf('{S:0}') > -1) {\n hash = 0;\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{S:0}', '{S}');\n }\n if (returnUrl.indexOf('{S:1}') > -1) {\n hash = 1;\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{S:1}', '{S}');\n }\n if (returnUrl.indexOf('{S:2}') > -1) {\n hash = 2;\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{S:2}', '{S}');\n }\n if (returnUrl.indexOf('{S:3}') > -1) {\n hash = 3;\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{S:3}', '{S}');\n }\n if (returnUrl.indexOf('a{S}') > -1) {\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, 'a{S}', 'r{S}');\n }\n if (returnUrl.indexOf('h{S}') > -1) {\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, 'h{S}', 'r{S}');\n }\n if (returnUrl.indexOf('//r{S}.ortho.tiles.virtualearth.net') > -1) {\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '//r{S}.ortho.tiles.virtualearth.net', '//ecn.t{S}.tiles.virtualearth.net');\n }\n var id = this.getTileID();\n var server = '';\n if (!id.length) {\n server = hash.toString();\n } else {\n server = id.substr(id.length - 1, 1);\n }\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{Q}', id);\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{S}', server);\n if (returnUrl.indexOf('virtualearth.net') > -1) {\n returnUrl += '&n=z';\n }\n return returnUrl;\n },\n\n get_demURL: function () {\n var rewritten_url = _url_helpers_js__WEBPACK_IMPORTED_MODULE_10__.URLHelpers.singleton.rewrite(this.dataset.get_demUrl(), 0);\n if (!this.dataset.get_projection() && !_data_globals_js__WEBPACK_IMPORTED_MODULE_4__.freestandingMode) {\n var baseUrl = _url_helpers_js__WEBPACK_IMPORTED_MODULE_10__.URLHelpers.singleton.coreStaticUrl('wwtweb/demtile.aspx?q={0},{1},{2},M');\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(rewritten_url)) {\n baseUrl = rewritten_url;\n }\n }\n if (rewritten_url.indexOf('{1}') > -1) {\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format(rewritten_url + '&new', this.level, this.tileX, this.tileY);\n }\n var returnUrl = rewritten_url;\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{X}', this.tileX.toString());\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{Y}', this.tileY.toString());\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{L}', this.level.toString());\n var hash = 0;\n if (returnUrl.indexOf('{S:0}') > -1) {\n hash = 0;\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{S:0}', '{S}');\n }\n if (returnUrl.indexOf('{S:1}') > -1) {\n hash = 1;\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{S:1}', '{S}');\n }\n if (returnUrl.indexOf('{S:2}') > -1) {\n hash = 2;\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{S:2}', '{S}');\n }\n if (returnUrl.indexOf('{S:3}') > -1) {\n hash = 3;\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{S:3}', '{S}');\n }\n var id = this.getTileID();\n var server = '';\n if (!id.length) {\n server = hash.toString();\n } else {\n server = id.substr(id.length - 1, 1);\n }\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{Q}', id);\n returnUrl = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(returnUrl, '{S}', server);\n return returnUrl;\n },\n\n getServerID: function () {\n var server = (this.tileX & 1) + ((this.tileY & 1) << 1);\n return server;\n },\n\n getTileID: function () {\n if (this._tileId != null) {\n return this._tileId;\n }\n var netLevel = this.level;\n var netX = this.tileX;\n var netY = this.tileY;\n if (this.dataset.get_projection() === 1) {\n netLevel++;\n }\n var tileMap = this.dataset.get_quadTreeTileMap();\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(tileMap)) {\n var sb = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.StringBuilder();\n for (var i = netLevel; i > 0; --i) {\n var mask = 1 << (i - 1);\n var val = 0;\n if (!!(netX & mask)) {\n val = 1;\n }\n if (!!(netY & mask)) {\n val += 2;\n }\n sb.append(tileMap.substr(val, 1));\n }\n this._tileId = sb.toString();\n return this._tileId;\n } else {\n this._tileId = '0';\n return this._tileId;\n }\n },\n\n get_vertexCount: function () {\n return this._vertexCount;\n },\n\n set_vertexCount: function (value) {\n this._vertexCount = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Tile\", [Tile, Tile$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/tile_cache.js\":\n/*!***************************!*\\\n !*** ./esm/tile_cache.js ***!\n \\***************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TileCache: () => (/* binding */ TileCache)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n/* harmony import */ var _tile_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./tile.js */ \"./esm/tile.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./imageset.js */ \"./esm/imageset.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The cache of tiles and associated download queue.\n\n\n\n\n\n\n\n\n\n\n// wwtlib.TileCache\n\nfunction TileCache() { }\n\nTileCache._queue = {};\nTileCache._tiles = {};\nTileCache.openThreads = 8;\nTileCache.readyToRenderCount = 0;\nTileCache.maxTileCacheSize = 800;\nTileCache.maxReadyToRenderSize = 200;\nTileCache._maxTotalToPurge = 0;\n\nTileCache.get_queueCount = function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyCount(TileCache._queue);\n};\n\n// This name is no longer used internally, but preserve it\n// for API compatibility.\nTileCache.getTile = function (level, x, y, dataset, parent) {\n var retTile = null;\n var tileKey = (0,_util_js__WEBPACK_IMPORTED_MODULE_4__.getTileKey)(dataset, level, x, y, parent);\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(TileCache._tiles, tileKey)) {\n retTile = _imageset_js__WEBPACK_IMPORTED_MODULE_6__.Imageset.getNewTile(dataset, level, x, y, parent);\n if (retTile != null) {\n TileCache._tiles[tileKey] = retTile;\n }\n }\n else {\n retTile = TileCache._tiles[tileKey];\n }\n var p = 0;\n return retTile;\n};\n\n(0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileCacheGetTile)(TileCache.getTile);\n\n// This name is no longer used internally, but preserve it\n// for API compatibility.\nTileCache.getCachedTile = function (level, x, y, dataset, parent) {\n if (level < dataset.get_baseLevel()) {\n return null;\n }\n var retTile = null;\n var tileKey = (0,_util_js__WEBPACK_IMPORTED_MODULE_4__.getTileKey)(dataset, level, x, y, parent);\n try {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(TileCache._tiles, tileKey)) {\n return null;\n } else {\n retTile = TileCache._tiles[tileKey];\n }\n }\n catch ($e1) { }\n return retTile;\n};\n\n(0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileCacheGetCachedTile)(TileCache.getCachedTile);\n\nTileCache.clearCache = function() {\n for (const tile of Object.values(TileCache._tiles)) {\n try {\n tile.cleanUp(true);\n } catch (e) {\n continue;\n }\n }\n}\n\nTileCache.getReadyToRenderTileCount = function () {\n var notReadyCullList = [];\n var readyCullList = [];\n try {\n try {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(TileCache._tiles));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var tile = TileCache._tiles[key];\n if (tile.renderedGeneration < (_tile_js__WEBPACK_IMPORTED_MODULE_5__.Tile.currentRenderGeneration - 10) && !(tile.requestPending || tile.downloading)) {\n if (tile.readyToRender) {\n readyCullList.push(tile);\n }\n else {\n notReadyCullList.push(tile);\n }\n }\n }\n }\n catch ($e2) {\n }\n return readyCullList.length;\n }\n catch ($e3) {\n return -1;\n }\n};\n\nTileCache.processQueue = function (renderContext) {\n while (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyCount(TileCache._queue) > 0 && TileCache.openThreads > 0) {\n var minDistance = 100000;\n var overlayTile = false;\n var maxKey = null;\n var level = 1000;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(TileCache._queue));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var t = TileCache._queue[key];\n if (!t.requestPending && t.inViewFrustum) {\n var vectTemp = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.makeCopy(t.get_sphereCenter());\n vectTemp._transformByMatrics(renderContext.get_world());\n if (renderContext.space) {\n vectTemp.subtract(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(0, 0, -1));\n }\n else {\n vectTemp.subtract(renderContext.cameraPosition);\n }\n var distTemp = Math.max(0, vectTemp.length() - t.get_sphereRadius());\n var thisIsOverlay = (t.get_dataset().get_projection() === _imageset_js__WEBPACK_IMPORTED_MODULE_6__.ProjectionType.tangent) || (t.get_dataset().get_projection() === _imageset_js__WEBPACK_IMPORTED_MODULE_6__.ProjectionType.skyImage);\n if (distTemp < minDistance && (!overlayTile || thisIsOverlay)) {\n minDistance = distTemp;\n maxKey = t.get_key();\n level = t.level;\n overlayTile = thisIsOverlay;\n }\n }\n }\n if (maxKey != null) {\n var workTile = TileCache._queue[maxKey];\n workTile.requestPending = true;\n TileCache.openThreads--;\n if (TileCache.openThreads < 0) {\n TileCache.openThreads = 0;\n }\n workTile.requestImage();\n if (workTile.get_dataset().get_elevationModel()) {\n workTile.requestDem();\n }\n } else {\n return;\n }\n }\n};\n\n// This name is no longer used internally, but preserve it\n// for API compatibility.\nTileCache.addTileToQueue = function (tile) {\n var hitValue;\n hitValue = 256;\n if (!tile.downloading && !tile.readyToRender) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(TileCache._queue, tile.get_key())) {\n TileCache._queue[tile.get_key()].requestHits += hitValue;\n } else {\n tile.requestHits = hitValue;\n TileCache._queue[tile.get_key()] = tile;\n }\n }\n return true;\n};\n\n(0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileCacheAddTileToQueue)(TileCache.addTileToQueue);\n\n// This name is no longer used internally, but preserve it\n// for API compatibility.\nTileCache.removeFromQueue = function (key, complete) {\n if (complete) {\n var workTile = TileCache._queue[key];\n if (workTile != null) {\n workTile.requestPending = false;\n delete TileCache._queue[workTile.get_key()];\n }\n TileCache.openThreads++;\n }\n delete TileCache._queue[key];\n};\n\n(0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_tileCacheRemoveFromQueue)(TileCache.removeFromQueue);\n\nTileCache.clearCache = function () {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(TileCache._tiles);\n};\n\nTileCache.purgeQueue = function () {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(TileCache._queue);\n};\n\nTileCache.purgeLRU = function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyCount(TileCache._tiles) < TileCache.maxReadyToRenderSize) {\n return;\n }\n var notReadyCullList = [];\n var readyCullList = [];\n try {\n try {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(TileCache._tiles));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var tile = TileCache._tiles[key];\n if (tile.renderedGeneration < (_tile_js__WEBPACK_IMPORTED_MODULE_5__.Tile.currentRenderGeneration - 10) && !(tile.requestPending || tile.downloading)) {\n if (tile.readyToRender) {\n readyCullList.push(tile);\n }\n else {\n notReadyCullList.push(tile);\n }\n }\n }\n }\n catch ($e2) {\n }\n TileCache.readyToRenderCount = readyCullList.length;\n if (readyCullList.length > TileCache.maxReadyToRenderSize) {\n readyCullList.sort(function (t1, t2) {\n return (t2.accessCount < t1.accessCount) ? 1 : ((t2.accessCount === t1.accessCount) ? 0 : -1);\n });\n var totalToPurge = readyCullList.length - TileCache.maxReadyToRenderSize;\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(readyCullList);\n while ($enum3.moveNext()) {\n var tile = $enum3.current;\n if (totalToPurge < 1) {\n break;\n }\n tile.cleanUp(false);\n totalToPurge--;\n }\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyCount(TileCache._tiles) < TileCache.maxTileCacheSize) {\n return;\n }\n if (notReadyCullList.length > TileCache.maxTileCacheSize) {\n notReadyCullList.sort(function (t1, t2) {\n return (t2.accessCount < t1.accessCount) ? 1 : ((t2.accessCount === t1.accessCount) ? 0 : -1);\n });\n var totalToPurge = notReadyCullList.length - TileCache.maxTileCacheSize;\n if (totalToPurge > 20) {\n totalToPurge = 20;\n }\n var $enum4 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(notReadyCullList);\n while ($enum4.moveNext()) {\n var tile = $enum4.current;\n if (totalToPurge < 1) {\n break;\n }\n tile.cleanUp(true);\n delete TileCache._tiles[tile.get_key()];\n totalToPurge--;\n }\n }\n }\n catch ($e5) { }\n finally { }\n return;\n};\n\n// Age things in queue. If they are not visible they will go away in time\nTileCache.decimateQueue = function () {\n var list = [];\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(TileCache._queue));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var t = TileCache._queue[key];\n if (!t.requestPending) {\n t.requestHits = t.requestHits / 2;\n try {\n if (t.requestHits < 2) {\n list.push(t);\n }\n else if (!t.inViewFrustum) {\n list.push(t);\n }\n }\n catch ($e2) {\n }\n }\n }\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(list);\n while ($enum3.moveNext()) {\n var t = $enum3.current;\n delete TileCache._queue[t.get_key()];\n }\n};\n\nvar TileCache$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TileCache\", [TileCache, TileCache$, null]);\n\n\n\n/***/ }),\n\n/***/ \"./esm/toast_tile.js\":\n/*!***************************!*\\\n !*** ./esm/toast_tile.js ***!\n \\***************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ToastTile: () => (/* binding */ ToastTile)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _render_triangle_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./render_triangle.js */ \"./esm/render_triangle.js\");\n/* harmony import */ var _tile_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tile.js */ \"./esm/tile.js\");\n/* harmony import */ var _triangle_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./triangle.js */ \"./esm/triangle.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A tile in a pyramid that uses a TOAST projection.\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.ToastTile\n\nfunction ToastTile() {\n this._topDown$1 = true;\n this.backslash = false;\n this._vertexList$1 = null;\n this._childTriangleList$1 = null;\n this._subDivisionLevel$1 = 4;\n this._subDivided$1 = false;\n _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile.call(this);\n}\n\nToastTile.slashIndexBuffer = new Array(64);\nToastTile.backSlashIndexBuffer = new Array(64);\nToastTile.rootIndexBuffer = new Array(4);\n\nToastTile._cloneArray$1 = function (indexArray) {\n var count = indexArray.length;\n var ui16array = new Uint16Array(count);\n var indexArrayNew = ui16array;\n for (var i = 0; i < count; i++) {\n indexArrayNew[i] = indexArray[i];\n }\n return indexArrayNew;\n};\n\nToastTile.create = function (level, xc, yc, dataset, parent) {\n var temp = new ToastTile();\n temp.parent = parent;\n temp.level = level;\n temp.tileX = xc;\n temp.tileY = yc;\n temp.dataset = dataset;\n temp._topDown$1 = !dataset.get_bottomsUp();\n if (temp.tileX !== xc) {\n alert('bad');\n }\n if (!!dataset.get_meanRadius()) {\n temp.set__demScaleFactor(dataset.get_meanRadius());\n }\n else {\n if (!dataset.get_dataSetType()) {\n temp.set__demScaleFactor(6371000);\n } else {\n temp.set__demScaleFactor(3396010);\n }\n }\n temp.computeBoundingSphere();\n return temp;\n};\n\nvar ToastTile$ = {\n computeBoundingSphere: function () {\n this._initializeGrids$1();\n this.topLeft = this.bounds[0 + 3 * 0].position.copy();\n this.bottomRight = this.bounds[2 + 3 * 2].position.copy();\n this.topRight = this.bounds[2 + 3 * 0].position.copy();\n this.bottomLeft = this.bounds[0 + 3 * 2].position.copy();\n this.calcSphere();\n },\n\n getIndexBuffer: function (index, accomidation) {\n if (!this.level) {\n return ToastTile.rootIndexBuffer[index];\n }\n if (this.backslash) {\n return ToastTile.backSlashIndexBuffer[index * 16 + accomidation];\n } else {\n return ToastTile.slashIndexBuffer[index * 16 + accomidation];\n }\n },\n _processIndexBuffer$1: function (indexArray, part) {\n if (!this.level) {\n ToastTile.rootIndexBuffer[part] = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, ToastTile.rootIndexBuffer[part]);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, indexArray, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n return;\n }\n for (var a = 0; a < 16; a++) {\n var partArray = ToastTile._cloneArray$1(indexArray);\n this._processAccomindations$1(partArray, a);\n if (this.backslash) {\n ToastTile.backSlashIndexBuffer[part * 16 + a] = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, ToastTile.backSlashIndexBuffer[part * 16 + a]);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, partArray, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n }\n else {\n ToastTile.slashIndexBuffer[part * 16 + a] = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, ToastTile.slashIndexBuffer[part * 16 + a]);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ELEMENT_ARRAY_BUFFER, partArray, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n }\n }\n },\n _processAccomindations$1: function (indexArray, a) {\n var map = {};\n var gridMap = {};\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(indexArray);\n while ($enum1.moveNext()) {\n var index = $enum1.current;\n var vert = this._vertexList$1[index];\n var arrayX = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((vert.tu * 16 + 0.5));\n var arrayY = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((vert.tv * 16 + 0.5));\n var ii = (arrayY << 8) + arrayX;\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(gridMap, ii)) {\n gridMap[ii] = index;\n }\n }\n var sections = 16;\n if ((a & 1) === 1) {\n for (var x = 1; x < sections; x += 2) {\n var y = sections;\n var key = (y << 8) + x;\n var val = (y << 8) + x + 1;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(gridMap, key)) {\n map[gridMap[key]] = gridMap[val];\n }\n }\n }\n if ((a & 2) === 2) {\n for (var y = 1; y < sections; y += 2) {\n var x = sections;\n var key = (y << 8) + x;\n var val = ((y + 1) << 8) + x;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(gridMap, key)) {\n map[gridMap[key]] = gridMap[val];\n }\n }\n }\n if ((a & 4) === 4) {\n for (var x = 1; x < sections; x += 2) {\n var y = 0;\n var key = (y << 8) + x;\n var val = (y << 8) + x + 1;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(gridMap, key)) {\n map[gridMap[key]] = gridMap[val];\n }\n }\n }\n if ((a & 8) === 8) {\n for (var y = 1; y < sections; y += 2) {\n var x = 0;\n var key = (y << 8) + x;\n var val = ((y + 1) << 8) + x;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(gridMap, key)) {\n map[gridMap[key]] = gridMap[val];\n }\n }\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyCount(map)) {\n //nothing to process\n return;\n }\n for (var i = 0; i < indexArray.length; i++) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(map, indexArray[i])) {\n indexArray[i] = map[indexArray[i]];\n }\n }\n },\n\n calculateFullSphere: function (list) {\n var result = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.ConvexHull.findEnclosingSphere(list);\n this.sphereCenter = result.center;\n this.sphereRadius = result.radius;\n },\n\n isPointInTile: function (lat, lng) {\n if (!this.level) {\n return true;\n }\n if (this.level === 1) {\n if ((lng >= 0 && lng <= 90) && (!this.tileX && this.tileY === 1)) {\n return true;\n }\n if ((lng > 90 && lng <= 180) && (this.tileX === 1 && this.tileY === 1)) {\n return true;\n }\n if ((lng < 0 && lng >= -90) && (!this.tileX && !this.tileY)) {\n return true;\n }\n if ((lng < -90 && lng >= -180) && (this.tileX === 1 && !this.tileY)) {\n return true;\n }\n return false;\n }\n if (!this.demReady || this.demData == null) {\n return false;\n }\n var testPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_5__.Coordinates.geoTo3dDouble(-lat, lng);\n var top = this._isLeftOfHalfSpace$1(this.topLeft.copy(), this.topRight.copy(), testPoint);\n var right = this._isLeftOfHalfSpace$1(this.topRight.copy(), this.bottomRight.copy(), testPoint);\n var bottom = this._isLeftOfHalfSpace$1(this.bottomRight.copy(), this.bottomLeft.copy(), testPoint);\n var left = this._isLeftOfHalfSpace$1(this.bottomLeft.copy(), this.topLeft.copy(), testPoint);\n if (top && right && bottom && left) {\n return true;\n }\n return false;\n },\n _isLeftOfHalfSpace$1: function (pntA, pntB, pntTest) {\n pntA.normalize();\n pntB.normalize();\n var cross = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.cross(pntA, pntB);\n var dot = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.dot(cross, pntTest);\n return dot < 0;\n },\n\n getSurfacePointAltitude: function (lat, lng, meters) {\n if (this.level < _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile.lastDeepestLevel) {\n for (var ii = 0; ii < 4; ii++) {\n var child = this.children[ii];\n if (child != null) {\n if (child.isPointInTile(lat, lng)) {\n var retVal = child.getSurfacePointAltitude(lat, lng, meters);\n if (!!retVal) {\n return retVal;\n }\n else {\n break;\n }\n }\n }\n }\n }\n _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile.tileTargetLevel = this.level;\n _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile.tileTargetX = this.tileX;\n _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile.tileTargetY = this.tileY;\n var testPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_5__.Coordinates.geoTo3dDouble(-lat, lng);\n testPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.subtractVectors(new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d(), testPoint);\n var uv = _util_js__WEBPACK_IMPORTED_MODULE_9__.DistanceCalc.getUVFromInnerPoint(this.topLeft.copy(), this.topRight.copy(), this.bottomLeft.copy(), this.bottomRight.copy(), testPoint.copy());\n\n // Get 4 samples and interpolate\n var uud = Math.max(0, Math.min(16, (uv.x * 16)));\n var vvd = Math.max(0, Math.min(16, (uv.y * 16)));\n var uu = Math.max(0, Math.min(15, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((uv.x * 16))));\n var vv = Math.max(0, Math.min(15, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((uv.y * 16))));\n var ha = uud - uu;\n var va = vvd - vv;\n\n if (this.demArray != null) {\n // 4 nearest neighbors\n var ul = this.demArray[uu + 17 * vv];\n var ur = this.demArray[(uu + 1) + 17 * vv];\n var ll = this.demArray[uu + 17 * (vv + 1)];\n var lr = this.demArray[(uu + 1) + 17 * (vv + 1)];\n var top = ul * (1 - ha) + ha * ur;\n var bottom = ll * (1 - ha) + ha * lr;\n var val = top * (1 - va) + va * bottom;\n return val / this.get__demScaleFactor();\n }\n return this.demAverage / this.get__demScaleFactor();\n },\n _initializeGrids$1: function () {\n this._vertexList$1 = [];\n this._childTriangleList$1 = new Array(4);\n this._childTriangleList$1[0] = [];\n this._childTriangleList$1[1] = [];\n this._childTriangleList$1[2] = [];\n this._childTriangleList$1[3] = [];\n this.bounds = new Array(9);\n if (this.level > 0) {\n if (this.parent == null) {\n this.parent = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileCacheGetTile)(this.level - 1, this.tileX / 2, this.tileY / 2, this.dataset, null);\n }\n var parent = this.parent;\n var xIndex = this.tileX % 2;\n var yIndex = this.tileY % 2;\n if (this.level > 1) {\n this.backslash = parent.backslash;\n }\n else {\n this.backslash = (xIndex === 1 ^ yIndex === 1) === 1;\n }\n this.bounds[0 + 3 * 0] = parent.bounds[xIndex + 3 * yIndex].copy();\n this.bounds[1 + 3 * 0] = this._midpoint$1(parent.bounds[xIndex + 3 * yIndex], parent.bounds[xIndex + 1 + 3 * yIndex]);\n this.bounds[2 + 3 * 0] = parent.bounds[xIndex + 1 + 3 * yIndex].copy();\n this.bounds[0 + 3 * 1] = this._midpoint$1(parent.bounds[xIndex + 3 * yIndex], parent.bounds[xIndex + 3 * (yIndex + 1)]);\n if (this.backslash) {\n this.bounds[1 + 3 * 1] = this._midpoint$1(parent.bounds[xIndex + 3 * yIndex], parent.bounds[xIndex + 1 + 3 * (yIndex + 1)]);\n }\n else {\n this.bounds[1 + 3 * 1] = this._midpoint$1(parent.bounds[xIndex + 1 + 3 * yIndex], parent.bounds[xIndex + 3 * (yIndex + 1)]);\n }\n this.bounds[2 + 3 * 1] = this._midpoint$1(parent.bounds[xIndex + 1 + 3 * yIndex], parent.bounds[xIndex + 1 + 3 * (yIndex + 1)]);\n this.bounds[0 + 3 * 2] = parent.bounds[xIndex + 3 * (yIndex + 1)].copy();\n this.bounds[1 + 3 * 2] = this._midpoint$1(parent.bounds[xIndex + 3 * (yIndex + 1)], parent.bounds[xIndex + 1 + 3 * (yIndex + 1)]);\n this.bounds[2 + 3 * 2] = parent.bounds[xIndex + 1 + 3 * (yIndex + 1)].copy();\n this.bounds[0 + 3 * 0].tu = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[0 + 3 * 0].tv = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 0].tu = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 0].tv = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 0].tu = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 0].tv = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[0 + 3 * 1].tu = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[0 + 3 * 1].tv = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 1].tu = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 1].tv = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 1].tu = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 1].tv = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[0 + 3 * 2].tu = 0 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[0 + 3 * 2].tv = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 2].tu = 0.5 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[1 + 3 * 2].tv = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 2].tu = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this.bounds[2 + 3 * 2].tv = 1 * _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple;\n this._vertexList$1.push(this.bounds[0 + 3 * 0]);\n this._vertexList$1.push(this.bounds[1 + 3 * 0]);\n this._vertexList$1.push(this.bounds[2 + 3 * 0]);\n this._vertexList$1.push(this.bounds[0 + 3 * 1]);\n this._vertexList$1.push(this.bounds[1 + 3 * 1]);\n this._vertexList$1.push(this.bounds[2 + 3 * 1]);\n this._vertexList$1.push(this.bounds[0 + 3 * 2]);\n this._vertexList$1.push(this.bounds[1 + 3 * 2]);\n this._vertexList$1.push(this.bounds[2 + 3 * 2]);\n if (this.backslash) {\n this._childTriangleList$1[0].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(4, 1, 0));\n this._childTriangleList$1[0].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(3, 4, 0));\n this._childTriangleList$1[1].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(5, 2, 1));\n this._childTriangleList$1[1].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(4, 5, 1));\n this._childTriangleList$1[2].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(7, 4, 3));\n this._childTriangleList$1[2].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(6, 7, 3));\n this._childTriangleList$1[3].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(8, 5, 4));\n this._childTriangleList$1[3].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(7, 8, 4));\n }\n else {\n this._childTriangleList$1[0].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(3, 1, 0));\n this._childTriangleList$1[0].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(4, 1, 3));\n this._childTriangleList$1[1].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(4, 2, 1));\n this._childTriangleList$1[1].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(5, 2, 4));\n this._childTriangleList$1[2].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(6, 4, 3));\n this._childTriangleList$1[2].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(7, 4, 6));\n this._childTriangleList$1[3].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(7, 5, 4));\n this._childTriangleList$1[3].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(8, 5, 7));\n }\n } else {\n this.bounds[0 + 3 * 0] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, -1, 0, 0, 0);\n this.bounds[1 + 3 * 0] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, 0, 1, 0.5, 0);\n this.bounds[2 + 3 * 0] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, -1, 0, 1, 0);\n this.bounds[0 + 3 * 1] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(-1, 0, 0, 0, 0.5);\n this.bounds[1 + 3 * 1] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, 1, 0, 0.5, 0.5);\n this.bounds[2 + 3 * 1] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(1, 0, 0, 1, 0.5);\n this.bounds[0 + 3 * 2] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, -1, 0, 0, 1);\n this.bounds[1 + 3 * 2] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, 0, -1, 0.5, 1);\n this.bounds[2 + 3 * 2] = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.create(0, -1, 0, 1, 1);\n this._vertexList$1.push(this.bounds[0 + 3 * 0]);\n this._vertexList$1.push(this.bounds[1 + 3 * 0]);\n this._vertexList$1.push(this.bounds[2 + 3 * 0]);\n this._vertexList$1.push(this.bounds[0 + 3 * 1]);\n this._vertexList$1.push(this.bounds[1 + 3 * 1]);\n this._vertexList$1.push(this.bounds[2 + 3 * 1]);\n this._vertexList$1.push(this.bounds[0 + 3 * 2]);\n this._vertexList$1.push(this.bounds[1 + 3 * 2]);\n this._vertexList$1.push(this.bounds[2 + 3 * 2]);\n this._childTriangleList$1[0].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(3, 1, 0));\n this._childTriangleList$1[0].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(4, 1, 3));\n this._childTriangleList$1[1].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(5, 2, 1));\n this._childTriangleList$1[1].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(4, 5, 1));\n this._childTriangleList$1[2].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(7, 4, 3));\n this._childTriangleList$1[2].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(6, 7, 3));\n this._childTriangleList$1[3].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(7, 5, 4));\n this._childTriangleList$1[3].push(_triangle_js__WEBPACK_IMPORTED_MODULE_8__.Triangle.create(8, 5, 7));\n }\n },\n _midpoint$1: function (positionNormalTextured, positionNormalTextured_2) {\n var a1 = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector3d.lerp(positionNormalTextured.position, positionNormalTextured_2.position, 0.5);\n var a1uv = _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.lerp(_double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(positionNormalTextured.tu, positionNormalTextured.tv), _double3d_js__WEBPACK_IMPORTED_MODULE_3__.Vector2d.create(positionNormalTextured_2.tu, positionNormalTextured_2.tv), 0.5);\n a1.normalize();\n return _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture.createPos(a1, a1uv.x, a1uv.y);\n },\n\n createGeometry: function (renderContext) {\n if (this.geometryCreated) {\n return true;\n }\n this.geometryCreated = true;\n _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile.prototype.createGeometry.call(this, renderContext);\n if (!this._subDivided$1) {\n if (this._vertexList$1 == null) {\n this._initializeGrids$1();\n }\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tileUvMultiple == 256) {\n if (!this.dataset.get_dataSetType() || this.dataset.get_dataSetType() === 1) {\n this._subDivisionLevel$1 = Math.min(5, Math.max(0, 5 - this.level));\n }\n else {\n this._subDivisionLevel$1 = Math.min(5, Math.max(0, 5 - this.level));\n }\n }\n else {\n if (this.demTile && this.level > 1) {\n this.demArray = new Array(17 * 17);\n this.demSize = 17 * 17;\n if (this.backslash) {\n if (ToastTile._backslashYIndex$1 == null) {\n this._tempBackslashYIndex$1 = new Array(this.demSize);\n this._tempBackslashXIndex$1 = new Array(this.demSize);\n }\n }\n else {\n if (ToastTile._slashYIndex$1 == null) {\n this._tempSlashYIndex$1 = new Array(this.demSize);\n this._tempSlashXIndex$1 = new Array(this.demSize);\n }\n }\n }\n }\n for (var i = 0; i < 4; i++) {\n var count = this._subDivisionLevel$1;\n while (count-- > 1) {\n var newList = [];\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._childTriangleList$1[i]);\n while ($enum1.moveNext()) {\n var tri = $enum1.current;\n tri.subDivide(newList, this._vertexList$1);\n }\n this._childTriangleList$1[i] = newList;\n }\n }\n if (renderContext.gl == null) {\n for (var i = 0; i < 4; i++) {\n this._renderTriangleLists[i] = [];\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._childTriangleList$1[i]);\n while ($enum2.moveNext()) {\n var tri = $enum2.current;\n var p1 = this._vertexList$1[tri.c];\n var p2 = this._vertexList$1[tri.b];\n var p3 = this._vertexList$1[tri.a];\n this._renderTriangleLists[i].push(_render_triangle_js__WEBPACK_IMPORTED_MODULE_6__.RenderTriangle.create(p1, p2, p3, this.texture, this.level));\n }\n }\n }\n else {\n this._vertexBuffer = _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.createBuffer();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bindBuffer(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, this._vertexBuffer);\n var f32array = new Float32Array(this._vertexList$1.length * 5);\n var buffer = f32array;\n var index = 0;\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._vertexList$1);\n while ($enum3.moveNext()) {\n var pt = $enum3.current;\n if (this.demTile) {\n index = this.addVertex(buffer, index, this._getMappedVertex(pt));\n this.demIndex++;\n }\n else {\n index = this.addVertex(buffer, index, pt);\n }\n }\n if (this.demTile) {\n if (this.backslash) {\n if (this._tempBackslashXIndex$1 != null) {\n ToastTile._backslashXIndex$1 = this._tempBackslashXIndex$1;\n ToastTile._backslashYIndex$1 = this._tempBackslashYIndex$1;\n this._tempBackslashXIndex$1 = null;\n this._tempBackslashYIndex$1 = null;\n }\n }\n else {\n if (this._tempSlashYIndex$1 != null) {\n ToastTile._slashXIndex$1 = this._tempSlashXIndex$1;\n ToastTile._slashYIndex$1 = this._tempSlashYIndex$1;\n this._tempSlashYIndex$1 = null;\n this._tempSlashXIndex$1 = null;\n }\n }\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.tilePrepDevice.bufferData(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.ARRAY_BUFFER, f32array, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__.WEBGL.STATIC_DRAW);\n for (var i = 0; i < 4; i++) {\n this.triangleCount = this._childTriangleList$1[i].length;\n if (this.getIndexBuffer(i, 0) == null) {\n var ui16array = new Uint16Array(this.triangleCount * 3);\n var indexArray = ui16array;\n index = 0;\n var $enum4 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._childTriangleList$1[i]);\n while ($enum4.moveNext()) {\n var tri = $enum4.current;\n indexArray[index++] = tri.c;\n indexArray[index++] = tri.b;\n indexArray[index++] = tri.a;\n }\n this._processIndexBuffer$1(indexArray, i);\n }\n }\n }\n this._subDivided$1 = true;\n }\n return true;\n },\n\n _getMappedVertex: function (vert) {\n var vertOut = new _double3d_js__WEBPACK_IMPORTED_MODULE_3__.PositionTexture();\n var latLng = _coordinates_js__WEBPACK_IMPORTED_MODULE_5__.Coordinates.cartesianToSpherical2(vert.position);\n if (latLng.get_lng() < -180) {\n latLng.set_lng(latLng.get_lng() + 360);\n }\n if (latLng.get_lng() > 180) {\n latLng.set_lng(latLng.get_lng() - 360);\n }\n if (this.level > 1) {\n var arrayX = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((vert.tu * 16 + 0.5));\n var arrayY = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((vert.tv * 16 + 0.5));\n this.demArray[arrayX + arrayY * 17] = this.demData[this.demIndex];\n if (this.backslash) {\n if (this._tempBackslashYIndex$1 != null) {\n this._tempBackslashXIndex$1[this.demIndex] = arrayX;\n this._tempBackslashYIndex$1[this.demIndex] = arrayY;\n }\n }\n else {\n if (this._tempSlashYIndex$1 != null) {\n this._tempSlashXIndex$1[this.demIndex] = arrayX;\n this._tempSlashYIndex$1[this.demIndex] = arrayY;\n }\n }\n }\n var pos = this.geoTo3dWithAlt(latLng.get_lat(), latLng.get_lng(), false, false);\n vertOut.tu = vert.tu;\n vertOut.tv = vert.tv;\n pos.subtract(this.localCenter);\n vertOut.position = pos;\n return vertOut;\n },\n\n cleanUp: function (removeFromParent) {\n _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile.prototype.cleanUp.call(this, removeFromParent);\n if (this._vertexList$1 != null) {\n this._vertexList$1 = null;\n }\n if (this._childTriangleList$1 != null) {\n this._childTriangleList$1 = null;\n }\n this._subDivided$1 = false;\n this.demArray = null;\n },\n _getDemSample$1: function (xc, yc) {\n return this.demArray[(16 - yc) * 17 + xc];\n },\n\n createDemFromParent: function () {\n var parent = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(this.parent, ToastTile);\n if (parent == null) {\n return false;\n }\n var offsetX = (((this.tileX % 2) === 1) ? 8 : 0);\n var offsetY = ((!(this.tileY % 2)) ? 8 : 0);\n this.demArray = new Array(17 * 17);\n\n // Interpolate across\n for (var yy1 = 0; yy1 < 17; yy1 += 2) {\n var copy = true;\n for (var xx1 = 0; xx1 < 17; xx1++) {\n if (copy) {\n this.demArray[(16 - yy1) * 17 + xx1] = parent._getDemSample$1((xx1 / 2) + offsetX, (yy1 / 2) + offsetY);\n }\n else {\n this.demArray[(16 - yy1) * 17 + xx1] = ((parent._getDemSample$1((xx1 / 2) + offsetX, (yy1 / 2) + offsetY) + parent._getDemSample$1(((xx1 / 2) + offsetX) + 1, (yy1 / 2) + offsetY)) / 2);\n }\n copy = !copy;\n }\n }\n\n // Interpolate down\n for (var yy2 = 1; yy2 < 17; yy2 += 2) {\n for (var xx2 = 0; xx2 < 17; xx2++) {\n this.demArray[(16 - yy2) * 17 + xx2] = ((this._getDemSample$1(xx2, yy2 - 1) + this._getDemSample$1(xx2, yy2 + 1)) / 2);\n }\n }\n\n // Convert the dem array back to the arranged DEM list thu slash/backslash mapping tables\n this.demData = new Array(this.demSize);\n for (var i = 0; i < this.demSize; i++) {\n if (this.backslash) {\n this.demData[i] = this.demArray[ToastTile._backslashXIndex$1[i] + ToastTile._backslashYIndex$1[i] * 17];\n }\n else {\n this.demData[i] = this.demArray[ToastTile._slashXIndex$1[i] + ToastTile._slashYIndex$1[i] * 17];\n }\n this.demAverage += this.demData[i];\n }\n\n // Get Average value for new DemData table\n this.demAverage /= this.demData.length;\n this.demReady = true;\n return true;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ToastTile\", [ToastTile, ToastTile$, _tile_js__WEBPACK_IMPORTED_MODULE_7__.Tile]);\n\n\n/***/ }),\n\n/***/ \"./esm/tour.js\":\n/*!*********************!*\\\n !*** ./esm/tour.js ***!\n \\*********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Tour: () => (/* binding */ Tour)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Top-level information about a tour.\n\n\n\n\n\n\n\n\n// wwtlib.Tour\n\nfunction Tour() {\n this.userLevel = 0;\n this.classification = 0;\n this.averageRating = 0;\n this.lengthInSecs = 0;\n this._thumbnailUrlField = '';\n}\n\nTour._fromXml = function (child) {\n var temp = new Tour();\n if (child.attributes.getNamedItem('ID') != null) {\n temp.id = child.attributes.getNamedItem('ID').nodeValue;\n }\n if (child.attributes.getNamedItem('TourUrl') != null) {\n temp._tourUrl = child.attributes.getNamedItem('TourUrl').nodeValue;\n }\n if (child.attributes.getNamedItem('Title') != null) {\n temp.title = child.attributes.getNamedItem('Title').nodeValue;\n }\n if (child.attributes.getNamedItem('Description') != null) {\n temp.description = child.attributes.getNamedItem('Description').nodeValue;\n }\n if (child.attributes.getNamedItem('Classification') != null) {\n temp.classification = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('Classification', child.attributes.getNamedItem('Classification').nodeValue);\n }\n if (child.attributes.getNamedItem('AuthorEmail') != null) {\n temp.authorEmail = child.attributes.getNamedItem('AuthorEmail').nodeValue;\n }\n if (child.attributes.getNamedItem('Author') != null) {\n temp.author = child.attributes.getNamedItem('Author').nodeValue;\n }\n if (child.attributes.getNamedItem('AuthorURL') != null) {\n temp.authorURL = child.attributes.getNamedItem('AuthorURL').nodeValue;\n }\n if (child.attributes.getNamedItem('AuthorImageUrl') != null) {\n temp.authorImageUrl = child.attributes.getNamedItem('AuthorImageUrl').nodeValue;\n }\n if (child.attributes.getNamedItem('AverageRating') != null) {\n temp.averageRating = parseFloat(child.attributes.getNamedItem('AverageRating').nodeValue);\n }\n if (child.attributes.getNamedItem('LengthInSecs') != null) {\n temp.lengthInSecs = parseFloat(child.attributes.getNamedItem('LengthInSecs').nodeValue);\n }\n if (child.attributes.getNamedItem('OrganizationUrl') != null) {\n temp.organizationUrl = child.attributes.getNamedItem('OrganizationUrl').nodeValue;\n }\n if (child.attributes.getNamedItem('OrganizationName') != null) {\n temp.organizationName = child.attributes.getNamedItem('OrganizationName').nodeValue;\n }\n if (child.attributes.getNamedItem('RelatedTours') != null) {\n temp.relatedTours = child.attributes.getNamedItem('RelatedTours').nodeValue;\n }\n if (child.attributes.getNamedItem('Keywords') != null) {\n temp.keywords = child.attributes.getNamedItem('Keywords').nodeValue;\n }\n if (child.attributes.getNamedItem('ThumbnailUrl') != null) {\n temp.set_thumbnailUrl(child.attributes.getNamedItem('ThumbnailUrl').nodeValue);\n }\n return temp;\n};\n\nvar Tour$ = {\n get_name: function () {\n return this.title;\n },\n\n get_thumbnail: function () {\n return this._thumbnail;\n },\n\n set_thumbnail: function (value) {\n this._thumbnail = value;\n return value;\n },\n\n get_thumbnailUrl: function () {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._thumbnailUrlField)) {\n return this._thumbnailUrlField;\n } else if (_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.freestandingMode) {\n return _url_helpers_js__WEBPACK_IMPORTED_MODULE_4__.URLHelpers.singleton.engineAssetUrl('thumb_star.jpg');\n }\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format(_url_helpers_js__WEBPACK_IMPORTED_MODULE_4__.URLHelpers.singleton.coreStaticUrl('wwtweb/GetTourThumbnail.aspx?GUID={0}'), this.id);\n },\n\n set_thumbnailUrl: function (value) {\n this._thumbnailUrlField = value;\n return value;\n },\n\n get_tourUrl: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._tourUrl) && !_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.freestandingMode) {\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format(_url_helpers_js__WEBPACK_IMPORTED_MODULE_4__.URLHelpers.singleton.coreStaticUrl('wwtweb/GetTour.aspx?GUID={0}'), this.id);\n } else {\n return this._tourUrl;\n }\n },\n\n set_tourUrl: function (value) {\n this._tourUrl = value;\n return value;\n },\n\n get_bounds: function () {\n return this._bounds;\n },\n\n set_bounds: function (value) {\n this._bounds = value;\n return value;\n },\n\n get_isImage: function () {\n return false;\n },\n\n get_isTour: function () {\n return true;\n },\n\n get_isFolder: function () {\n return false;\n },\n\n get_isCloudCommunityItem: function () {\n return false;\n },\n\n get_readOnly: function () {\n return false;\n },\n\n get_children: function () {\n return [];\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Tour\", [Tour, Tour$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_3__.IThumbnail]);\n\n\n/***/ }),\n\n/***/ \"./esm/tours/file_cabinet.js\":\n/*!***********************************!*\\\n !*** ./esm/tours/file_cabinet.js ***!\n \\***********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FileCabinet: () => (/* binding */ FileCabinet),\n/* harmony export */ FileEntry: () => (/* binding */ FileEntry)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utilities/xml_text_writer.js */ \"./esm/utilities/xml_text_writer.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../web_file.js */ \"./esm/web_file.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A simple XML-based file archive format.\n\n\n\n\n\n\n\n\n// wwtlib.FileEntry\n\nfunction FileEntry(filename, size) {\n this.size = 0;\n this.offset = 0;\n this.filename = filename;\n this.size = size;\n}\n\nvar FileEntry$ = {\n toString: function () {\n return this.filename;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"FileEntry\", [FileEntry, FileEntry$, null]);\n\n\n// wwtlib.FileCabinet\n\nfunction FileCabinet() {\n this.tempDirectory = '';\n this._currentOffset = 0;\n this._packageID = '';\n this.url = '';\n this.clearFileList();\n}\n\nFileCabinet.fromUrl = function (url, callMe) {\n var temp = new FileCabinet();\n temp.url = url;\n temp._callMe = callMe;\n temp._webFile = new _web_file_js__WEBPACK_IMPORTED_MODULE_4__.WebFile(url);\n temp._webFile.responseType = 'blob';\n temp._webFile.onStateChange = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_loadCabinet', temp);\n temp._webFile.send();\n return temp;\n};\n\nvar FileCabinet$ = {\n get_packageID: function () {\n return this._packageID;\n },\n\n set_packageID: function (value) {\n this._packageID = value;\n return value;\n },\n\n addFile: function (filename, data) {\n if (data == null) {\n return;\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._fileDirectory, filename)) {\n var fe = new FileEntry(filename, data.size);\n fe.offset = this._currentOffset;\n fe.blob = data;\n this.fileList.push(fe);\n this._fileDirectory[filename] = fe;\n this._currentOffset += fe.size;\n }\n },\n\n clearFileList: function () {\n if (this.fileList == null) {\n this.fileList = [];\n }\n if (this._fileDirectory == null) {\n this._fileDirectory = {};\n }\n this.fileList.length = 0;\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(this._fileDirectory);\n this._currentOffset = 0;\n },\n\n packageFiles: function () {\n var xmlWriter = new _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_3__.XmlTextWriter();\n xmlWriter.formatting = 1;\n xmlWriter._writeProcessingInstruction('xml', \"version='1.0' encoding='UTF-8'\");\n xmlWriter._writeStartElement('FileCabinet');\n xmlWriter._writeAttributeString('HeaderSize', '0x0BADFOOD');\n xmlWriter._writeStartElement('Files');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.fileList);\n while ($enum1.moveNext()) {\n var entry = $enum1.current;\n xmlWriter._writeStartElement('File');\n xmlWriter._writeAttributeString('Name', entry.filename);\n xmlWriter._writeAttributeString('Size', entry.size.toString());\n xmlWriter._writeAttributeString('Offset', entry.offset.toString());\n xmlWriter._writeEndElement();\n }\n xmlWriter._writeEndElement();\n xmlWriter._writeFullEndElement();\n xmlWriter._close();\n var data = xmlWriter.body;\n var blob = new Blob([data]);\n var sizeText = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('0x{0:x8}', blob.size);\n data = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(data, '0x0BADFOOD', sizeText);\n blob = new Blob([data]);\n var blobs = [];\n blobs.push(blob);\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.fileList);\n\n // add the blobs to array to append in order\n while ($enum2.moveNext()) {\n var entry = $enum2.current;\n blobs.push(entry.blob);\n }\n var cabBlob = new Blob(blobs, { type: 'application/x-wtt' });\n return cabBlob;\n },\n\n _loadCabinet: function () {\n var $this = this;\n\n if (this._webFile.get_state() === 2) {\n alert(this._webFile.get_message());\n } else if (this._webFile.get_state() === 1) {\n this._mainBlob = this._webFile.getBlob();\n var chunck = new FileReader();\n chunck.onloadend = function (e) {\n var offset = $this._getSize(chunck.result);\n var header = new FileReader();\n header.onloadend = function (ee) {\n var data = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(header.result, String);\n var xParser = new DOMParser();\n $this.extract(xParser.parseFromString(data, 'text/xml'), offset);\n $this._callMe();\n };\n header.readAsText($this._mainBlob.slice(0, offset));\n };\n chunck.readAsText(this._mainBlob.slice(0, 255));\n }\n },\n\n _getSize: function (data) {\n var start = data.indexOf('0x');\n if (start === -1) {\n return 0;\n }\n return parseInt(data.substring(start, start + 10), 16);\n },\n\n extract: function (doc, offset) {\n try {\n var cab = _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.selectSingleNode(doc, 'FileCabinet');\n var files = _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.selectSingleNode(cab, 'Files');\n this.fileList.length = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(files.childNodes);\n while ($enum1.moveNext()) {\n var child = $enum1.current;\n if (child.nodeName === 'File') {\n var fe = new FileEntry(child.attributes.getNamedItem('Name').nodeValue, parseInt(child.attributes.getNamedItem('Size').nodeValue));\n fe.offset = offset;\n offset += fe.size;\n this.fileList.push(fe);\n }\n }\n }\n catch ($e2) {\n }\n },\n\n getFileBlob: function (filename) {\n var fe = this.getFileEntry(filename);\n if (fe != null) {\n var ext = filename.substr(filename.lastIndexOf('.')).toLowerCase();\n var type = null;\n switch (ext) {\n case '.png':\n type = 'image/png';\n break;\n case '.jpg':\n case '.jpeg':\n type = 'image/jpeg';\n break;\n case '.mp3':\n type = 'audio/mpeg3';\n break;\n case '.txt':\n type = 'text/plain';\n break;\n case '.fit':\n case '.fits':\n type = 'application/octet-stream';\n break;\n }\n return this._mainBlob.slice(fe.offset, fe.offset + fe.size, type);\n }\n return null;\n },\n\n getFileEntry: function (filename) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.fileList);\n while ($enum1.moveNext()) {\n var entry = $enum1.current;\n if (entry.filename === filename) {\n return entry;\n }\n }\n return null;\n },\n\n get_masterFile: function () {\n if (this.fileList.length > 0) {\n return this.fileList[0].filename;\n } else {\n return null;\n }\n },\n\n clearTempFiles: function () {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.fileList);\n while ($enum1.moveNext()) {\n var entry = $enum1.current;\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"FileCabinet\", [FileCabinet, FileCabinet$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/tours/overlay.js\":\n/*!******************************!*\\\n !*** ./esm/tours/overlay.js ***!\n \\******************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AudioOverlay: () => (/* binding */ AudioOverlay),\n/* harmony export */ AudioType: () => (/* binding */ AudioType),\n/* harmony export */ BitmapOverlay: () => (/* binding */ BitmapOverlay),\n/* harmony export */ FlipbookOverlay: () => (/* binding */ FlipbookOverlay),\n/* harmony export */ LoopTypes: () => (/* binding */ LoopTypes),\n/* harmony export */ Overlay: () => (/* binding */ Overlay),\n/* harmony export */ OverlayAnchor: () => (/* binding */ OverlayAnchor),\n/* harmony export */ ShapeOverlay: () => (/* binding */ ShapeOverlay),\n/* harmony export */ ShapeType: () => (/* binding */ ShapeType),\n/* harmony export */ TextOverlay: () => (/* binding */ TextOverlay)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../graphics/sprite2d.js */ \"./esm/graphics/sprite2d.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _ui_tools_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../ui_tools.js */ \"./esm/ui_tools.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n/* harmony import */ var _text_object_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./text_object.js */ \"./esm/tours/text_object.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A graphical overlay shown inside a tour.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.OverlayAnchor\n\nvar OverlayAnchor = {\n sky: 0,\n screen: 1\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"OverlayAnchor\", OverlayAnchor);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"OverlayAnchor\", OverlayAnchor);\n\n\n// wwtlib.AudioType\n\nvar AudioType = {\n music: 0,\n voice: 1\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"AudioType\", AudioType);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"AudioType\", AudioType);\n\n\n// wwtlib.ShapeType\n\nvar ShapeType = {\n circle: 0,\n rectagle: 1,\n star: 2,\n donut: 3,\n arrow: 4,\n line: 5,\n openRectagle: 6\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ShapeType\", ShapeType);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"ShapeType\", ShapeType);\n\n\n// wwtlib.LoopTypes\n\nvar LoopTypes = {\n loop: 0,\n upDown: 1,\n down: 2,\n upDownOnce: 3,\n once: 4,\n begin: 5,\n end: 6\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"LoopTypes\", LoopTypes);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"LoopTypes\", LoopTypes);\n\n\n// wwtlib.Overlay\n\nfunction Overlay() {\n this.isDynamic = false;\n this.isDesignTimeOnly = false;\n this._name = '';\n\n // this used to be a GUID and should become that again now that we have\n // proper support for them in the web engine.\n this.id = (Overlay.nextId++).toString();\n this._owner = null;\n this._url = '';\n this._linkID = '';\n this._domeMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.get_identity();\n this._domeMatX = 0;\n this._domeMatY = 0;\n this._domeAngle = 0;\n this.points = null;\n this._animate = false;\n this._tweenFactor = 0;\n this._endX = 0;\n this._endY = 0;\n this._endOpacity = 0;\n this._endColor = new _color_js__WEBPACK_IMPORTED_MODULE_7__.Color();\n this._endWidth = 0;\n this._endHeight = 0;\n this._endRotationAngle = 0;\n this._anchor = 1;\n this._x = 0;\n this._y = 0;\n this._width = 0;\n this._height = 0;\n this._color = _color_js__WEBPACK_IMPORTED_MODULE_7__.Colors.get_white();\n this._opacity = 0.5;\n this._rotationAngle = 0;\n this.currentRotation = 0;\n this.texture = null;\n this.texture2d = null;\n this._interpolationType = 5;\n}\n\nOverlay.defaultAnchor = 1;\nOverlay.clipboardFormat = 'WorldWideTelescope.Overlay';\nOverlay.nextId = 11231;\nOverlay.RC = 3.1415927 / 180;\n\nOverlay._fromXml = function (owner, overlay) {\n if (overlay.attributes == null) {\n return null;\n }\n if (overlay.attributes.getNamedItem('Type') == null) {\n return null;\n }\n var overlayClassName = overlay.attributes.getNamedItem('Type').nodeValue;\n var overLayType = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(overlayClassName, 'TerraViewer.', '');\n var newOverlay = null;\n switch (overLayType) {\n case 'AudioOverlay':\n newOverlay = new AudioOverlay();\n break;\n case 'BitmapOverlay':\n newOverlay = new BitmapOverlay();\n break;\n case 'FlipBookOverlay':\n newOverlay = new FlipbookOverlay();\n break;\n case 'ShapeOverlay':\n newOverlay = new ShapeOverlay();\n break;\n case 'TextOverlay':\n newOverlay = new TextOverlay();\n break;\n default:\n return null;\n }\n newOverlay._owner = owner;\n newOverlay._initOverlayFromXml(overlay);\n return newOverlay;\n};\n\nvar Overlay$ = {\n get_name: function () {\n return this._name;\n },\n\n set_name: function (value) {\n this._name = value;\n return value;\n },\n\n get_owner: function () {\n return this._owner;\n },\n\n set_owner: function (value) {\n this._owner = value;\n return value;\n },\n\n get_zOrder: function () {\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._owner.get_overlays());\n while ($enum1.moveNext()) {\n var item = $enum1.current;\n if (item === this) {\n break;\n }\n index++;\n }\n return index;\n },\n\n get_url: function () {\n return this._url;\n },\n\n set_url: function (value) {\n this._url = value;\n return value;\n },\n\n get_linkID: function () {\n return this._linkID;\n },\n\n set_linkID: function (value) {\n this._linkID = value;\n return value;\n },\n\n play: function () { },\n\n pause: function () { },\n\n stop: function () { },\n\n seek: function (time) { },\n\n makePosition: function (centerX, centerY, offsetX, offsetY, angle) {\n centerX -= 960;\n centerY -= 558;\n var point = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(centerX + offsetX, centerY + offsetY, 1347);\n if (!!this._domeMatX || !!this._domeMatY || this._domeAngle !== angle) {\n this._domeMatX = centerX;\n this._domeMatY = centerY;\n this._domeMatrix = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.translation(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(-centerX, -centerY, 0));\n this._domeMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d._rotationZ((angle / 180 * Math.PI)));\n this._domeMatrix._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix3d.translation(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.create(centerX, centerY, 0)));\n }\n point = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d._transformCoordinate(point, this._domeMatrix);\n return point;\n },\n\n draw3D: function (renderContext, designTime) {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGl) {\n if (this.texture == null || this.isDynamic) {\n this.initializeTexture();\n }\n if (!this.isDesignTimeOnly || designTime) {\n this.initializeGeometry();\n this.updateRotation();\n }\n } else {\n }\n },\n\n cleanUp: function () {\n if (this.texture != null) {\n this.texture = null;\n }\n this.texture2d = null;\n },\n\n initializeTexture: function () { },\n\n // This hook exists to deal with web browser autoplay restrictions. In the\n // strictest case, we can't just start playing media files at will -- we\n // need to start playing them in response to a user-initiated event. But\n // there is a generally a scheme in which files are \"unlocked\" once they've\n // started to be played, and after that point we can control their playback\n // more precisely. So, this function should do any multimedia playback\n // initialization needed. It will be called when the user initiates tour\n // playback.\n //\n // Repeated calls should be idempotent.\n prepMultimedia: function () { },\n\n cleanUpGeometry: function () {\n this.currentRotation = 0;\n this.points = null;\n },\n\n initializeGeometry: function () {\n if (this.points == null) {\n this.currentRotation = 0;\n this.points = new Array(4);\n this.points[0] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[0].position = this.makePosition(this.get_x(), this.get_y(), -this.get_width() / 2, -this.get_height() / 2, this.get_rotationAngle());\n this.points[0].tu = 0;\n this.points[0].tv = 0;\n this.points[0].color = this.get_color();\n this.points[1] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[1].position = this.makePosition(this.get_x(), this.get_y(), this.get_width() / 2, -this.get_height() / 2, this.get_rotationAngle());\n this.points[1].tu = 1;\n this.points[1].tv = 0;\n this.points[1].color = this.get_color();\n this.points[2] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[2].position = this.makePosition(this.get_x(), this.get_y(), -this.get_width() / 2, this.get_height() / 2, this.get_rotationAngle());\n this.points[2].tu = 0;\n this.points[2].tv = 1;\n this.points[2].color = this.get_color();\n this.points[3] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[3].position = this.makePosition(this.get_x(), this.get_y(), this.get_width() / 2, this.get_height() / 2, this.get_rotationAngle());\n this.points[3].tu = 1;\n this.points[3].tv = 1;\n this.points[3].color = this.get_color();\n }\n },\n\n updateRotation: function () { },\n\n // Animation Support\n\n get_animate: function () {\n return this._animate;\n },\n\n set_animate: function (value) {\n if (this._animate !== value) {\n this._animate = value;\n if (this._animate) {\n this._endX = this._x;\n this._endY = this._y;\n this._endRotationAngle = this._rotationAngle;\n this._endColor = this._color;\n this._endWidth = this._width;\n this._endHeight = this._height;\n this.cleanUpGeometry();\n }\n else {\n this._endX = this._x = this.get_x();\n this._endY = this._y = this.get_y();\n this._endRotationAngle = this._rotationAngle = this.get_rotationAngle();\n this._endColor = this._color = this.get_color();\n this._endWidth = this._width = this.get_width();\n this._endHeight = this._height = this.get_height();\n this.cleanUpGeometry();\n this._tweenFactor = 0;\n }\n }\n return value;\n },\n\n get_tweenFactor: function () {\n return this._tweenFactor;\n },\n\n set_tweenFactor: function (value) {\n if (!this._animate) {\n this._tweenFactor = 0;\n } else {\n if (this._tweenFactor !== value) {\n this._tweenFactor = value;\n this.cleanUpGeometry();\n }\n }\n return value;\n },\n\n get_anchor: function () {\n return this._anchor;\n },\n\n set_anchor: function (value) {\n this._anchor = value;\n return value;\n },\n\n get_position: function () {\n return _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(this.get_x(), this.get_y());\n },\n\n set_position: function (value) {\n this.set_x(value.x);\n this.set_y(value.y);\n return value;\n },\n\n get_x: function () {\n return (this._x * (1 - this._tweenFactor)) + (this._endX * this._tweenFactor);\n },\n\n set_x: function (value) {\n if (this._tweenFactor < 0.5) {\n if (this._x !== value) {\n this._x = value;\n this.cleanUpGeometry();\n }\n } else {\n if (this._endX !== value) {\n this._endX = value;\n this.cleanUpGeometry();\n }\n }\n return value;\n },\n\n get_y: function () {\n return (this._y * (1 - this._tweenFactor)) + (this._endY * this._tweenFactor);\n },\n\n set_y: function (value) {\n if (this._tweenFactor < 0.5) {\n if (this._y !== value) {\n this._y = value;\n this.cleanUpGeometry();\n }\n } else {\n if (this._endY !== value) {\n this._endY = value;\n this.cleanUpGeometry();\n }\n }\n return value;\n },\n\n get_width: function () {\n return (this._width * (1 - this._tweenFactor)) + (this._endWidth * this._tweenFactor);\n },\n\n set_width: function (value) {\n if (value < 5 && !!value) {\n value = 5;\n }\n if (this._tweenFactor < 0.5) {\n if (this._width !== value) {\n this._width = value;\n this.cleanUpGeometry();\n }\n } else {\n if (this._endWidth !== value) {\n this._endWidth = value;\n this.cleanUpGeometry();\n }\n }\n return value;\n },\n\n get_height: function () {\n return (this._height * (1 - this._tweenFactor)) + (this._endHeight * this._tweenFactor);\n },\n\n set_height: function (value) {\n if (value < 5 && !!value) {\n value = 5;\n }\n if (this._tweenFactor < 0.5) {\n if (this._height !== value) {\n this._height = value;\n this.cleanUpGeometry();\n }\n } else {\n if (this._endHeight !== value) {\n this._endHeight = value;\n this.cleanUpGeometry();\n }\n }\n return value;\n },\n\n get_color: function () {\n var red = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((this._color.r * (1 - this._tweenFactor)) + (this._endColor.r * this._tweenFactor)));\n var green = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((this._color.g * (1 - this._tweenFactor)) + (this._endColor.g * this._tweenFactor)));\n var blue = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((this._color.b * (1 - this._tweenFactor)) + (this._endColor.b * this._tweenFactor)));\n var alpha = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((this._color.a * (1 - this._tweenFactor)) + (this._endColor.a * this._tweenFactor)));\n return _color_js__WEBPACK_IMPORTED_MODULE_7__.Color.fromArgb(Math.max(0, Math.min(255, alpha)), Math.max(0, Math.min(255, red)), Math.max(0, Math.min(255, green)), Math.max(0, Math.min(255, blue)));\n },\n\n set_color: function (value) {\n if (this._tweenFactor < 0.5) {\n if (this._color !== value) {\n this._color = value;\n this.cleanUpGeometry();\n }\n } else {\n if (this._endColor !== value) {\n this._endColor = value;\n this.cleanUpGeometry();\n }\n }\n return value;\n },\n\n get_opacity: function () {\n return this.get_color().a / 255;\n },\n\n set_opacity: function (value) {\n var col = this.get_color();\n this.set_color(_color_js__WEBPACK_IMPORTED_MODULE_7__.Color.fromArgb(Math.min(255, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((value * 255))), col.r, col.g, col.b));\n this._opacity = value;\n return value;\n },\n\n get_rotationAngle: function () {\n return (this._rotationAngle * (1 - this._tweenFactor)) + (this._endRotationAngle * this._tweenFactor);\n },\n\n set_rotationAngle: function (value) {\n if (this._tweenFactor < 0.5) {\n if (this._rotationAngle !== value) {\n this._rotationAngle = value;\n this.cleanUpGeometry();\n }\n } else {\n if (this._endRotationAngle !== value) {\n this._endRotationAngle = value;\n this.cleanUpGeometry();\n }\n }\n return value;\n },\n\n hitTest: function (pntTest) {\n var tempPoints = new Array(1);\n tempPoints[0] = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(pntTest.x, pntTest.y);\n var mat = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix2d.rotateAt(-this.get_rotationAngle() / 180 * Math.PI, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(this.get_x(), this.get_y()));\n mat._transformPoints(tempPoints);\n var rect = _util_js__WEBPACK_IMPORTED_MODULE_11__.Rectangle.create((this.get_x() - (this.get_width() / 2)), (this.get_y() - (this.get_height() / 2)), this.get_width(), this.get_height());\n return rect.contains(tempPoints[0]);\n },\n\n get_bounds: function () {\n return this._bounds;\n },\n\n set_bounds: function (value) {\n this._bounds = value;\n return value;\n },\n\n get_interpolationType: function () {\n return this._interpolationType;\n },\n\n set_interpolationType: function (value) {\n this._interpolationType = value;\n return value;\n },\n\n saveToXml: function (xmlWriter, saveKeys) {\n xmlWriter._writeStartElement('Overlay');\n xmlWriter._writeAttributeString('Id', this.id);\n xmlWriter._writeAttributeString('Type', this.getTypeName());\n xmlWriter._writeAttributeString('Name', this.get_name());\n xmlWriter._writeAttributeString('X', this._x.toString());\n xmlWriter._writeAttributeString('Y', this._y.toString());\n xmlWriter._writeAttributeString('Width', this._width.toString());\n xmlWriter._writeAttributeString('Height', this._height.toString());\n xmlWriter._writeAttributeString('Rotation', this._rotationAngle.toString());\n xmlWriter._writeAttributeString('Color', this._color.save());\n xmlWriter._writeAttributeString('Url', this._url);\n xmlWriter._writeAttributeString('LinkID', this._linkID);\n xmlWriter._writeAttributeString('Animate', this._animate.toString());\n if (this._animate) {\n xmlWriter._writeAttributeString('EndX', this._endX.toString());\n xmlWriter._writeAttributeString('EndY', this._endY.toString());\n xmlWriter._writeAttributeString('EndWidth', this._endWidth.toString());\n xmlWriter._writeAttributeString('EndHeight', this._endHeight.toString());\n xmlWriter._writeAttributeString('EndRotation', this._endRotationAngle.toString());\n xmlWriter._writeAttributeString('EndColor', this._endColor.save());\n xmlWriter._writeAttributeString('InterpolationType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('InterpolationType', this._interpolationType));\n }\n xmlWriter._writeAttributeString('Anchor', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('OverlayAnchor', this._anchor));\n this.writeOverlayProperties(xmlWriter);\n xmlWriter._writeEndElement();\n },\n\n getTypeName: function () {\n return 'TerraViewer.Overlay';\n },\n\n addFilesToCabinet: function (fc) { },\n\n writeOverlayProperties: function (xmlWriter) { },\n\n _initOverlayFromXml: function (node) {\n this.id = node.attributes.getNamedItem('Id').nodeValue;\n this.set_name(node.attributes.getNamedItem('Name').nodeValue);\n this._x = parseFloat(node.attributes.getNamedItem('X').nodeValue);\n this._y = parseFloat(node.attributes.getNamedItem('Y').nodeValue);\n this._width = parseFloat(node.attributes.getNamedItem('Width').nodeValue);\n this._height = parseFloat(node.attributes.getNamedItem('Height').nodeValue);\n this._rotationAngle = parseFloat(node.attributes.getNamedItem('Rotation').nodeValue);\n this._color = _color_js__WEBPACK_IMPORTED_MODULE_7__.Color.load(node.attributes.getNamedItem('Color').nodeValue);\n if (node.attributes.getNamedItem('Url') != null) {\n this.set_url(node.attributes.getNamedItem('Url').nodeValue);\n }\n if (node.attributes.getNamedItem('LinkID') != null) {\n this.set_linkID(node.attributes.getNamedItem('LinkID').nodeValue);\n }\n if (node.attributes.getNamedItem('Animate') != null) {\n this._animate = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(node.attributes.getNamedItem('Animate').nodeValue);\n if (this._animate) {\n this._endX = parseFloat(node.attributes.getNamedItem('EndX').nodeValue);\n this._endY = parseFloat(node.attributes.getNamedItem('EndY').nodeValue);\n this._endColor = _color_js__WEBPACK_IMPORTED_MODULE_7__.Color.load(node.attributes.getNamedItem('EndColor').nodeValue);\n this._endWidth = parseFloat(node.attributes.getNamedItem('EndWidth').nodeValue);\n this._endHeight = parseFloat(node.attributes.getNamedItem('EndHeight').nodeValue);\n this._endRotationAngle = parseFloat(node.attributes.getNamedItem('EndRotation').nodeValue);\n if (node.attributes.getNamedItem('InterpolationType') != null) {\n this.set_interpolationType(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('InterpolationType', node.attributes.getNamedItem('InterpolationType').nodeValue));\n }\n }\n }\n this.initializeFromXml(node);\n },\n\n initializeFromXml: function (node) { },\n\n toString: function () {\n return this.get_name();\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Overlay\", [Overlay, Overlay$, null]);\n\n// wwtlib.BitmapOverlay\n\nfunction BitmapOverlay() {\n this._textureReady$1 = false;\n this._sprite$1 = new _graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_5__.Sprite2d();\n Overlay.call(this);\n}\n\n//todo figure out how to load local files into cloud and to cabinet\nBitmapOverlay.create = function (owner, file) {\n var temp = new BitmapOverlay();\n temp.set_owner(owner);\n // to make directory and guid filename in tour temp dir.\n temp._filename$1 = file.name;\n temp.set_name(owner.getNextDefaultName('Image'));\n temp.set_x(0);\n temp.set_y(0);\n owner.get_owner().addCachedFile(file.name, file);\n return temp;\n};\n\nvar BitmapOverlay$ = {\n getTypeName: function () {\n return 'TerraViewer.BitmapOverlay';\n },\n\n copy: function (owner) {\n var newBmpOverlay = new BitmapOverlay();\n newBmpOverlay.set_owner(owner);\n newBmpOverlay._filename$1 = this._filename$1;\n newBmpOverlay.set_x(this.get_x());\n newBmpOverlay.set_y(this.get_y());\n newBmpOverlay.set_width(this.get_width());\n newBmpOverlay.set_height(this.get_height());\n newBmpOverlay.set_color(this.get_color());\n newBmpOverlay.set_opacity(this.get_opacity());\n newBmpOverlay.set_rotationAngle(this.get_rotationAngle());\n newBmpOverlay.set_name(this.get_name() + ' - Copy');\n return newBmpOverlay;\n },\n\n cleanUp: function () {\n this.texture = null;\n if (this.texture2d != null) {\n this.texture2d.cleanUp();\n this.texture2d = null;\n }\n },\n\n initializeTexture: function () {\n var $this = this;\n\n try {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGl) {\n this.texture2d = this.get_owner().get_owner().getCachedTexture2d(this._filename$1);\n this._textureReady$1 = true;\n }\n else {\n this.texture = this.get_owner().get_owner().getCachedTexture(this._filename$1, function () {\n $this._textureReady$1 = true;\n });\n }\n }\n catch ($e1) {\n }\n },\n\n draw3D: function (renderContext, designTime) {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGl) {\n if (this.texture2d == null) {\n this.initializeTexture();\n }\n if (!this.get_width() && !this.get_height()) {\n this.set_width(this.texture2d.imageElement.width);\n this.set_height(this.texture2d.imageElement.height);\n }\n this.initializeGeometry();\n this.updateRotation();\n this._sprite$1.draw(renderContext, this.points, this.points.length, this.texture2d, true, 1);\n } else {\n if (this.texture == null) {\n this.initializeTexture();\n }\n if (!this._textureReady$1) {\n return;\n }\n if (!this.get_width() && !this.get_height()) {\n this.set_width(this.texture.width);\n this.set_height(this.texture.height);\n }\n var ctx = renderContext.device;\n ctx.save();\n ctx.translate(this.get_x(), this.get_y());\n ctx.rotate(this.get_rotationAngle() * Overlay.RC);\n ctx.globalAlpha = this.get_opacity();\n ctx.drawImage(this.texture, -this.get_width() / 2, -this.get_height() / 2, this.get_width(), this.get_height());\n ctx.restore();\n }\n },\n\n addFilesToCabinet: function (fc) {\n fc.addFile(this.get_owner().get_owner().get_workingDirectory() + this._filename$1, this.get_owner().get_owner().getFileBlob(this._filename$1));\n },\n\n writeOverlayProperties: function (xmlWriter) {\n xmlWriter._writeStartElement('Bitmap');\n xmlWriter._writeAttributeString('Filename', this._filename$1);\n xmlWriter._writeEndElement();\n },\n\n initializeFromXml: function (node) {\n var bitmap = _baseutil_js__WEBPACK_IMPORTED_MODULE_6__.Util.selectSingleNode(node, 'Bitmap');\n this._filename$1 = bitmap.attributes.getNamedItem('Filename').nodeValue;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"BitmapOverlay\", [BitmapOverlay, BitmapOverlay$, Overlay]);\n\n// wwtlib.TextOverlay\n\nfunction TextOverlay() {\n this._sprite$1 = new _graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_5__.Sprite2d();\n this._ctx$1 = null;\n this._ce$1 = null;\n Overlay.call(this);\n}\n\nTextOverlay.create = function (textObject) {\n var to = new TextOverlay();\n to.textObject = textObject;\n to._calculateTextSize$1();\n return to;\n};\n\nvar TextOverlay$ = {\n getTypeName: function () {\n return 'TerraViewer.TextOverlay';\n },\n\n get_color: function () {\n return Overlay.prototype.get_color.call(this);\n },\n\n set_color: function (value) {\n if (this.textObject.foregroundColor !== value) {\n this.textObject.foregroundColor = value;\n Overlay.prototype.set_color.call(this, value);\n this.cleanUp();\n }\n return value;\n },\n\n draw3D: function (renderContext, designTime) {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGl) {\n this.initializeTexture();\n this.initializeGeometry();\n this.updateRotation();\n this._sprite$1.draw(renderContext, this.points, this.points.length, this.texture2d, true, 1);\n } else {\n var ctx = renderContext.device;\n ctx.save();\n ctx.translate(this.get_x(), this.get_y());\n ctx.rotate(this.get_rotationAngle() * Overlay.RC);\n ctx.globalAlpha = this.get_opacity();\n this._drawCanvasText$1(ctx);\n ctx.restore();\n }\n },\n _drawCanvasText$1: function (ctx) {\n ctx.fillStyle = this.textObject.foregroundColor.toString();\n ctx.font = ((this.textObject.italic) ? 'italic' : 'normal') + ' ' + ((this.textObject.bold) ? 'bold' : 'normal') + ' ' + Math.round(this.textObject.fontSize * 1.2).toString() + 'px ' + this.textObject.fontName;\n ctx.textBaseline = 'top';\n var text = this.textObject.text;\n if (text.indexOf('{$') > -1) {\n if (text.indexOf('{$DATE}') > -1) {\n var date = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0:yyyy/MM/dd}', _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__.SpaceTimeController.get_now());\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$DATE}', date);\n }\n if (text.indexOf('{$TIME}') > -1) {\n var time = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0:HH:mm:ss}', _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__.SpaceTimeController.get_now());\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$TIME}', time);\n }\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$DIST}', _ui_tools_js__WEBPACK_IMPORTED_MODULE_10__.UiTools.formatDistance(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_solarSystemCameraDistance()));\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$LAT}', _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.lat));\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$LNG}', _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.lat));\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$RA}', _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.get_RA()));\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$DEC}', _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.get_dec()));\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$FOV}', _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_fovAngle()));\n }\n var lines = text.split('\\n');\n var baseline = -(this.get_height() / 2);\n var lineSpace = this.textObject.fontSize * 1.7;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(lines);\n while ($enum1.moveNext()) {\n var line = $enum1.current;\n var parts = _baseutil_js__WEBPACK_IMPORTED_MODULE_6__.Util.getWrappedText(ctx, line, this.get_width());\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(parts);\n while ($enum2.moveNext()) {\n var part = $enum2.current;\n ctx.fillText(part, -this.get_width() / 2, baseline);\n baseline += lineSpace;\n }\n }\n },\n _calculateTextSize$1: function () {\n if (this._ctx$1 == null || this._ce$1 == null) {\n this._ce$1 = document.createElement('canvas');\n this._ce$1.height = 100;\n this._ce$1.width = 100;\n this._ctx$1 = this._ce$1.getContext('2d');\n }\n this._ctx$1.fillStyle = this.textObject.foregroundColor.toString();\n this._ctx$1.font = ((this.textObject.italic) ? 'italic' : 'normal') + ' ' + ((this.textObject.bold) ? 'bold' : 'normal') + ' ' + Math.round(this.textObject.fontSize * 1.2).toString() + 'px ' + this.textObject.fontName;\n this._ctx$1.textBaseline = 'top';\n var text = this.textObject.text;\n if (text.indexOf('{$') > -1) {\n if (text.indexOf('{$DATE}') > -1) {\n var date = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0:yyyy/MM/dd}', _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__.SpaceTimeController.get_now());\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$DATE}', date);\n }\n if (text.indexOf('{$TIME}') > -1) {\n var time = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0:HH:mm:ss}', _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__.SpaceTimeController.get_now());\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$TIME}', time);\n }\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$DIST}', _ui_tools_js__WEBPACK_IMPORTED_MODULE_10__.UiTools.formatDistance(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_solarSystemCameraDistance()));\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$LAT}', _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.lat));\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$LNG}', _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.lat));\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$RA}', _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.get_RA()));\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$DEC}', _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.get_dec()));\n text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.replaceString(text, '{$FOV}', _coordinates_js__WEBPACK_IMPORTED_MODULE_8__.Coordinates.formatDMS(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_fovAngle()));\n }\n var lines = text.split('\\n');\n var baseline = 0;\n var lineSpace = this.textObject.fontSize * 1.7;\n var maxWidth = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(lines);\n while ($enum1.moveNext()) {\n var line = $enum1.current;\n var width = this._ctx$1.measureText(line).width;\n maxWidth = Math.max(width, maxWidth);\n baseline += lineSpace;\n }\n\n //Width + fudge factor\n this.set_width(maxWidth * 1.01);\n this.set_height(baseline);\n this._ce$1 = null;\n this._ctx$1 = null;\n },\n\n initializeTexture: function () {\n if (this.texture2d == null || (this.textObject.text.indexOf('{$') > -1)) {\n if (!this.get_height() || !this.get_width()) {\n this._calculateTextSize$1();\n }\n if (this._ctx$1 == null || this._ce$1 == null) {\n this._ce$1 = document.createElement('canvas');\n this._ce$1.height = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(this.get_height());\n this._ce$1.width = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(this.get_width());\n this._ctx$1 = this._ce$1.getContext('2d');\n }\n this._ctx$1.translate(this.get_width() / 2, this.get_height() / 2);\n this._ctx$1.clearRect(0, 0, this.get_width(), this.get_height());\n this._drawCanvasText$1(this._ctx$1);\n this.texture2d = new _graphics_texture_js__WEBPACK_IMPORTED_MODULE_4__.Texture();\n this.texture2d.imageElement = this._ce$1;\n this.texture2d.makeTexture();\n this._ce$1 = null;\n this._ctx$1 = null;\n }\n },\n\n writeOverlayProperties: function (xmlWriter) {\n xmlWriter._writeStartElement('Text');\n this.textObject._saveToXml(xmlWriter);\n xmlWriter._writeEndElement();\n },\n\n initializeFromXml: function (node) {\n var text = _baseutil_js__WEBPACK_IMPORTED_MODULE_6__.Util.selectSingleNode(node, 'Text');\n this.textObject = _text_object_js__WEBPACK_IMPORTED_MODULE_12__.TextObject._fromXml(_baseutil_js__WEBPACK_IMPORTED_MODULE_6__.Util.selectSingleNode(text, 'TextObject'));\n },\n\n initializeGeometry: function () {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGl) {\n Overlay.prototype.initializeGeometry.call(this);\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TextOverlay\", [TextOverlay, TextOverlay$, Overlay]);\n\n// wwtlib.ShapeOverlay\n\nfunction ShapeOverlay() {\n this._shapeType$1 = 1;\n this._sprite$1 = new _graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_5__.Sprite2d();\n this._triangleStrip$1 = true;\n Overlay.call(this);\n}\n\nShapeOverlay._create = function (currentTourStop, shapeType) {\n var overlay = new ShapeOverlay();\n overlay._shapeType$1 = shapeType;\n overlay.set_owner(currentTourStop);\n return overlay;\n};\n\nvar ShapeOverlay$ = {\n getTypeName: function () {\n return 'TerraViewer.ShapeOverlay';\n },\n\n get_shapeType: function () {\n return this._shapeType$1;\n },\n\n set_shapeType: function (value) {\n this._shapeType$1 = value;\n this.cleanUpGeometry();\n return value;\n },\n\n draw3D: function (renderContext, designTime) {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGl) {\n this.initializeGeometry();\n this._sprite$1.draw(renderContext, this.points, this.points.length, null, this._triangleStrip$1, this.get_opacity());\n } else {\n switch (this._shapeType$1) {\n case 0:\n this._drawCircleGeometry$1(renderContext);\n break;\n case 1:\n this._drawRectGeometry$1(renderContext);\n break;\n case 6:\n this._drawOpenRectGeometry$1(renderContext);\n break;\n case 2:\n this._drawStarGeometry$1(renderContext);\n break;\n case 3:\n this._drawDonutGeometry$1(renderContext);\n break;\n case 4:\n this._drawArrowGeometry$1(renderContext);\n break;\n case 5:\n this._drawLineGeometry$1(renderContext);\n break;\n default:\n break;\n }\n }\n },\n\n initializeGeometry: function () {\n if (this.points == null) {\n switch (this._shapeType$1) {\n case 0:\n this._createCircleGeometry$1();\n break;\n case 1:\n Overlay.prototype.initializeGeometry.call(this);\n break;\n case 6:\n this._createOpenRectGeometry$1();\n break;\n case 2:\n this._createStarGeometry$1();\n break;\n case 3:\n this._createDonutGeometry$1();\n break;\n case 4:\n this._createArrowGeometry$1();\n break;\n case 5:\n this._createLineGeometry$1();\n break;\n default:\n break;\n }\n }\n },\n _createLineGeometry$1: function () {\n var centerX = this.get_x();\n var centerY = this.get_y();\n var radius = this.get_width() / 2;\n var length = this.get_width();\n var segments = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((length / 12)) + 1;\n var radiansPerSegment = (Math.PI * 2) / segments;\n if (this.points == null) {\n this.points = new Array(segments * 2 + 2);\n }\n for (var j = 0; j <= segments; j++) {\n var i = j * 2;\n this.points[i] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[i].position = this.makePosition(this.get_x(), this.get_y(), ((j / segments) * this.get_width() - (this.get_width() / 2)), 6, this.get_rotationAngle());\n this.points[i].tu = (j % 2);\n this.points[i].tv = 0;\n this.points[i].color = this.get_color();\n this.points[i + 1] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[i + 1].position = this.makePosition(this.get_x(), this.get_y(), ((j / segments) * this.get_width() - (this.get_width() / 2)), -6, this.get_rotationAngle());\n this.points[i + 1].tu = (j % 2);\n this.points[i + 1].tv = 1;\n this.points[i + 1].color = this.get_color();\n }\n },\n _createOpenRectGeometry$1: function () {\n var centerX = this.get_x();\n var centerY = this.get_y();\n var radius = this.get_width() / 2;\n var length = this.get_width();\n var segments = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((length / 12)) + 1;\n var segmentsHigh = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((this.get_height() / 12)) + 1;\n var totalPoints = (((segments + 1) * 2) + ((segmentsHigh + 1) * 2)) * 2;\n if (this.points == null) {\n this.points = new Array(totalPoints);\n }\n for (var j = 0; j <= segments; j++) {\n var i = j * 2;\n this.points[i] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[i].position = this.makePosition(centerX, centerY, (j / segments) * this.get_width() - (this.get_width() / 2), (this.get_height() / 2), this.get_rotationAngle());\n this.points[i].tu = (j % 2);\n this.points[i].tv = 0;\n this.points[i].color = this.get_color();\n this.points[i + 1] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[i + 1].position = this.makePosition(centerX, centerY, (j / segments) * this.get_width() - (this.get_width() / 2), ((this.get_height() / 2) - 12), this.get_rotationAngle());\n this.points[i + 1].tu = (j % 2);\n this.points[i + 1].tv = 1;\n this.points[i + 1].color = this.get_color();\n var k = (((segments + 1) * 4) + ((segmentsHigh + 1) * 2) - 2) - i;\n this.points[k] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[k].position = this.makePosition(centerX, centerY, (j / segments) * this.get_width() - (this.get_width() / 2), (-(this.get_height() / 2)) + 12, this.get_rotationAngle());\n this.points[k].tu = (j % 2);\n this.points[k].tv = 0;\n this.points[k].color = this.get_color();\n this.points[k + 1] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[k + 1].position = this.makePosition(centerX, centerY, (j / segments) * this.get_width() - (this.get_width() / 2), (-(this.get_height() / 2)), this.get_rotationAngle());\n this.points[k + 1].tu = (j % 2);\n this.points[k + 1].tv = 1;\n this.points[k + 1].color = this.get_color();\n }\n var offset = ((segments + 1) * 2);\n for (var j = 0; j <= segmentsHigh; j++) {\n var top = ((segmentsHigh + 1) * 2) + offset - 2;\n var i = j * 2;\n this.points[top - i] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[top - i].position = this.makePosition(centerX, centerY, (this.get_width() / 2), ((j / segmentsHigh) * this.get_height() - (this.get_height() / 2)), this.get_rotationAngle());\n this.points[top - i].tu = (j % 2);\n this.points[top - i].tv = 0;\n this.points[top - i].color = this.get_color();\n this.points[top - i + 1] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[top - i + 1].position = this.makePosition(centerX, centerY, ((this.get_width() / 2) - 12), ((j / segmentsHigh) * this.get_height() - (this.get_height() / 2)), this.get_rotationAngle());\n this.points[top - i + 1].tu = (j % 2);\n this.points[top - i + 1].tv = 1;\n this.points[top - i + 1].color = this.get_color();\n var k = i + ((segments + 1) * 4) + ((segmentsHigh + 1) * 2);\n this.points[k] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[k].position = this.makePosition(centerX, centerY, (-(this.get_width() / 2) + 12), ((j / segmentsHigh) * this.get_height() - (this.get_height() / 2)), this.get_rotationAngle());\n this.points[k].tu = (j % 2);\n this.points[k].tv = 0;\n this.points[k].color = this.get_color();\n this.points[k + 1] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[k + 1].position = this.makePosition(centerX, centerY, (-(this.get_width() / 2)), ((j / segmentsHigh) * this.get_height() - (this.get_height() / 2)), this.get_rotationAngle());\n this.points[k + 1].tu = (j % 2);\n this.points[k + 1].tv = 1;\n this.points[k + 1].color = this.get_color();\n }\n },\n _createStarGeometry$1: function () {\n var centerX = this.get_x();\n var centerY = this.get_y();\n var radius = this.get_width() / 2;\n var radiansPerSegment = (Math.PI * 2) / 5;\n if (this.points == null) {\n this.points = new Array(12);\n }\n if (this._pnts$1 == null) {\n this._pnts$1 = new Array(10);\n }\n for (var i = 0; i < 5; i++) {\n var rads = i * radiansPerSegment - (Math.PI / 2);\n this._pnts$1[i] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this._pnts$1[i].position = this.makePosition(centerX, centerY, (Math.cos(rads) * (this.get_width() / 2)), (Math.sin(rads) * (this.get_height() / 2)), this.get_rotationAngle());\n this._pnts$1[i].tu = 0;\n this._pnts$1[i].tv = 0;\n this._pnts$1[i].color = this.get_color();\n }\n for (var i = 5; i < 10; i++) {\n var rads = i * radiansPerSegment + (radiansPerSegment / 2) - (Math.PI / 2);\n this._pnts$1[i] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this._pnts$1[i].position = this.makePosition(centerX, centerY, (Math.cos(rads) * (this.get_width() / 5.3)), (Math.sin(rads) * (this.get_height() / 5.3)), this.get_rotationAngle());\n this._pnts$1[i].tu = 0;\n this._pnts$1[i].tv = 0;\n this._pnts$1[i].color = this.get_color();\n }\n this.points[0] = this._pnts$1[0];\n this.points[1] = this._pnts$1[5];\n this.points[2] = this._pnts$1[9];\n this.points[3] = this._pnts$1[1];\n this.points[4] = this._pnts$1[7];\n this.points[5] = this._pnts$1[4];\n this.points[6] = this._pnts$1[6];\n this.points[7] = this._pnts$1[2];\n this.points[8] = this._pnts$1[7];\n this.points[9] = this._pnts$1[7];\n this.points[10] = this._pnts$1[3];\n this.points[11] = this._pnts$1[8];\n this._triangleStrip$1 = false;\n },\n _createArrowGeometry$1: function () {\n if (this.points == null) {\n this.points = new Array(9);\n }\n this.points[0] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[0].position = this.makePosition(this.get_x(), this.get_y(), -this.get_width() / 2, -this.get_height() / 4, this.get_rotationAngle());\n this.points[0].tu = 0;\n this.points[0].tv = 0;\n this.points[0].color = this.get_color();\n this.points[1] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[1].position = this.makePosition(this.get_x(), this.get_y(), this.get_width() / 4, -this.get_height() / 4, this.get_rotationAngle());\n this.points[1].tu = 1;\n this.points[1].tv = 0;\n this.points[1].color = this.get_color();\n this.points[2] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[2].position = this.makePosition(this.get_x(), this.get_y(), -this.get_width() / 2, this.get_height() / 4, this.get_rotationAngle());\n this.points[2].tu = 0;\n this.points[2].tv = 1;\n this.points[2].color = this.get_color();\n this.points[3] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[3].position = this.makePosition(this.get_x(), this.get_y(), this.get_width() / 4, -this.get_height() / 4, this.get_rotationAngle());\n this.points[3].tu = 1;\n this.points[3].tv = 0;\n this.points[3].color = this.get_color();\n this.points[4] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[4].position = this.makePosition(this.get_x(), this.get_y(), -this.get_width() / 2, this.get_height() / 4, this.get_rotationAngle());\n this.points[4].tu = 0;\n this.points[4].tv = 1;\n this.points[4].color = this.get_color();\n this.points[5] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[5].position = this.makePosition(this.get_x(), this.get_y(), this.get_width() / 4, this.get_height() / 4, this.get_rotationAngle());\n this.points[5].tu = 1;\n this.points[5].tv = 1;\n this.points[5].color = this.get_color();\n this.points[6] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[6].position = this.makePosition(this.get_x(), this.get_y(), this.get_width() / 4, -this.get_height() / 2, this.get_rotationAngle());\n this.points[6].tu = 1;\n this.points[6].tv = 1;\n this.points[6].color = this.get_color();\n this.points[7] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[7].position = this.makePosition(this.get_x(), this.get_y(), this.get_width() / 2, 0, this.get_rotationAngle());\n this.points[7].tu = 1;\n this.points[7].tv = 0.5;\n this.points[7].color = this.get_color();\n this.points[8] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[8].position = this.makePosition(this.get_x(), this.get_y(), this.get_width() / 4, this.get_height() / 2, this.get_rotationAngle());\n this.points[8].tu = 1;\n this.points[8].tv = 1;\n this.points[8].color = this.get_color();\n this._triangleStrip$1 = false;\n },\n _createDonutGeometry$1: function () {\n var centerX = this.get_x();\n var centerY = this.get_y();\n var radius = this.get_width() / 2;\n var circumference = Math.PI * 2 * radius;\n var segments = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((circumference / 12)) + 1;\n var radiansPerSegment = (Math.PI * 2) / segments;\n if (this.points == null) {\n this.points = new Array(segments * 2 + 2);\n }\n for (var j = 0; j <= segments; j++) {\n var i = j * 2;\n this.points[i] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[i].position = this.makePosition(centerX, centerY, (Math.cos(j * radiansPerSegment) * (this.get_width() / 2)), (Math.sin(j * radiansPerSegment) * (this.get_height() / 2)), this.get_rotationAngle());\n this.points[i].tu = (j % 2);\n this.points[i].tv = 0;\n this.points[i].color = this.get_color();\n this.points[i + 1] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[i + 1].position = this.makePosition(centerX, centerY, (Math.cos(j * radiansPerSegment) * ((this.get_width() / 2) - 10)), (Math.sin(j * radiansPerSegment) * ((this.get_height() / 2) - 10)), this.get_rotationAngle());\n this.points[i + 1].tu = (j % 2);\n this.points[i + 1].tv = 1;\n this.points[i + 1].color = this.get_color();\n }\n },\n _createCircleGeometry$1: function () {\n var centerX = this.get_x();\n var centerY = this.get_y();\n var radius = this.get_width() / 2;\n var circumference = Math.PI * 2 * radius;\n var segments = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((circumference / 12)) + 1;\n var radiansPerSegment = (Math.PI * 2) / segments;\n if (this.points == null) {\n this.points = new Array(segments * 2 + 2);\n }\n for (var j = 0; j <= segments; j++) {\n var i = j * 2;\n this.points[i] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[i].position = this.makePosition(centerX, centerY, (Math.cos(j * radiansPerSegment) * (this.get_width() / 2)), (Math.sin(j * radiansPerSegment) * (this.get_height() / 2)), this.get_rotationAngle());\n this.points[i].tu = (j % 2);\n this.points[i].tv = 0;\n this.points[i].color = this.get_color();\n this.points[i + 1] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n this.points[i + 1].position = this.makePosition(centerX, centerY, 0, 0, this.get_rotationAngle());\n this.points[i + 1].tu = (j % 2);\n this.points[i + 1].tv = 1;\n this.points[i + 1].color = this.get_color();\n }\n },\n\n initializeTexture: function () {\n switch (this.get_shapeType()) {\n case 5:\n case 3:\n case 6:\n break;\n case 0:\n case 1:\n case 2:\n case 4:\n default:\n this.texture = null;\n break;\n }\n },\n\n //todo this needs to be Dashed rounded lines..\n _drawLineGeometry$1: function (renderContext) {\n var ctx = renderContext.device;\n ctx.save();\n var radius = this.get_width() / 2;\n ctx.translate(this.get_x(), this.get_y());\n ctx.rotate(this.get_rotationAngle() * Overlay.RC);\n ctx.moveTo(-radius, 0);\n ctx.lineTo(radius, 0);\n ctx.lineWidth = 9;\n ctx.strokeStyle = this.get_color().toString();\n ctx.globalAlpha = this.get_opacity();\n ctx.stroke();\n ctx.restore();\n },\n\n _drawOpenRectGeometry$1: function (renderContext) {\n var ctx = renderContext.device;\n ctx.save();\n ctx.translate(this.get_x(), this.get_y());\n ctx.rotate(this.get_rotationAngle() * Overlay.RC);\n ctx.beginPath();\n ctx.moveTo(-this.get_width() / 2, -this.get_height() / 2);\n ctx.lineTo(this.get_width() / 2, -this.get_height() / 2);\n ctx.lineTo(this.get_width() / 2, this.get_height() / 2);\n ctx.lineTo(-this.get_width() / 2, this.get_height() / 2);\n ctx.closePath();\n ctx.lineWidth = 9;\n ctx.strokeStyle = this.get_color().toString();\n ctx.globalAlpha = this.get_opacity();\n ctx.stroke();\n ctx.restore();\n },\n\n _drawRectGeometry$1: function (renderContext) {\n var ctx = renderContext.device;\n ctx.save();\n ctx.translate(this.get_x(), this.get_y());\n ctx.rotate(this.get_rotationAngle() * Overlay.RC);\n ctx.beginPath();\n ctx.moveTo(-this.get_width() / 2, -this.get_height() / 2);\n ctx.lineTo(this.get_width() / 2, -this.get_height() / 2);\n ctx.lineTo(this.get_width() / 2, this.get_height() / 2);\n ctx.lineTo(-this.get_width() / 2, this.get_height() / 2);\n ctx.closePath();\n ctx.lineWidth = 0;\n ctx.fillStyle = this.get_color().toString();\n ctx.globalAlpha = this.get_opacity();\n ctx.fill();\n ctx.restore();\n },\n\n _drawStarGeometry$1: function (renderContext) {\n var ctx = renderContext.device;\n ctx.save();\n ctx.translate(this.get_x(), this.get_y());\n ctx.rotate(this.get_rotationAngle() * Overlay.RC);\n ctx.beginPath();\n var centerX = 0;\n var centerY = 0;\n var radius = this.get_width() / 2;\n var radiansPerSegment = (Math.PI * 2) / 5;\n var first = true;\n for (var i = 0; i < 5; i++) {\n var rads = i * radiansPerSegment - (Math.PI / 2);\n if (first) {\n first = false;\n ctx.moveTo(centerX + Math.cos(rads) * (this.get_width() / 2), centerY + Math.sin(rads) * (this.get_height() / 2));\n }\n else {\n ctx.lineTo(centerX + Math.cos(rads) * (this.get_width() / 2), centerY + Math.sin(rads) * (this.get_height() / 2));\n }\n var rads2 = i * radiansPerSegment + (radiansPerSegment / 2) - (Math.PI / 2);\n ctx.lineTo(centerX + Math.cos(rads2) * (this.get_width() / 5.3), centerY + Math.sin(rads2) * (this.get_height() / 5.3));\n }\n ctx.closePath();\n ctx.lineWidth = 0;\n ctx.fillStyle = this.get_color().toString();\n ctx.globalAlpha = this.get_opacity();\n ctx.fill();\n ctx.restore();\n },\n\n _drawArrowGeometry$1: function (renderContext) {\n var ctx = renderContext.device;\n ctx.save();\n ctx.translate(this.get_x(), this.get_y());\n ctx.rotate(this.get_rotationAngle() * Overlay.RC);\n ctx.beginPath();\n ctx.moveTo((-(this.get_width() / 2)), (-(this.get_height() / 4)));\n ctx.lineTo((this.get_width() / 4), (-(this.get_height() / 4)));\n ctx.lineTo((this.get_width() / 4), (-(this.get_height() / 2)));\n ctx.lineTo((this.get_width() / 2), 0);\n ctx.lineTo((this.get_width() / 4), (this.get_height() / 2));\n ctx.lineTo((this.get_width() / 4), (this.get_height() / 4));\n ctx.lineTo((-(this.get_width() / 2)), (this.get_height() / 4));\n ctx.closePath();\n ctx.lineWidth = 0;\n ctx.fillStyle = this.get_color().toString();\n ctx.globalAlpha = this.get_opacity();\n ctx.fill();\n ctx.restore();\n },\n\n //todo move to dashed lines in future\n _drawDonutGeometry$1: function (renderContext) {\n var ctx = renderContext.device;\n ctx.save();\n ctx.translate(this.get_x(), this.get_y());\n ctx.scale(1, this.get_height() / this.get_width());\n ctx.rotate(this.get_rotationAngle() * Overlay.RC);\n ctx.beginPath();\n ctx.arc(0, 0, this.get_width() / 2, 0, Math.PI * 2, false);\n ctx.closePath();\n ctx.lineWidth = 9;\n ctx.strokeStyle = this.get_color().toString();\n ctx.globalAlpha = this.get_opacity();\n ctx.stroke();\n ctx.restore();\n },\n\n _drawCircleGeometry$1: function (renderContext) {\n var ctx = renderContext.device;\n ctx.save();\n ctx.scale(1, this.get_width() / this.get_height());\n ctx.translate(this.get_x(), this.get_y());\n ctx.rotate(this.get_rotationAngle() * Overlay.RC);\n ctx.beginPath();\n ctx.arc(0, 0, this.get_width(), 0, Math.PI * 2, false);\n ctx.closePath();\n ctx.lineWidth = 0;\n ctx.fillStyle = this.get_color().toString();\n ctx.globalAlpha = this.get_opacity();\n ctx.fill();\n ctx.restore();\n },\n\n cleanUpGeometry: function () {\n Overlay.prototype.cleanUpGeometry.call(this);\n this.cleanUp();\n },\n\n writeOverlayProperties: function (xmlWriter) {\n xmlWriter._writeStartElement('Shape');\n xmlWriter._writeAttributeString('ShapeType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('ShapeType', this._shapeType$1));\n xmlWriter._writeEndElement();\n },\n\n initializeFromXml: function (node) {\n var shape = _baseutil_js__WEBPACK_IMPORTED_MODULE_6__.Util.selectSingleNode(node, 'Shape');\n this._shapeType$1 = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('ShapeType', shape.attributes.getNamedItem('ShapeType').nodeValue);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ShapeOverlay\", [ShapeOverlay, ShapeOverlay$, Overlay]);\n\n// wwtlib.AudioOverlay\n\nfunction AudioOverlay() {\n this._audio$1 = null;\n this._audioReady$1 = false;\n this._wantPlaying$1 = false;\n this._volume$1 = 100;\n this._mute$1 = false;\n this._position$1 = 0;\n this._trackType$1 = 0;\n Overlay.call(this);\n this.isDesignTimeOnly = true;\n}\n\nAudioOverlay.create = function (currentTourStop, file) {\n var ao = new AudioOverlay();\n ao.set_owner(currentTourStop);\n ao._filename$1 = file.name;\n ao.get_owner().get_owner().addCachedFile(file.name, file);\n return ao;\n};\n\nvar AudioOverlay$ = {\n getTypeName: function () {\n return 'TerraViewer.AudioOverlay';\n },\n\n get_mute: function () {\n return this._mute$1;\n },\n\n set_mute: function (value) {\n this._mute$1 = value;\n this.set_volume(this.get_volume());\n return value;\n },\n\n get_volume: function () {\n return this._volume$1;\n },\n\n set_volume: function (value) {\n this._volume$1 = value;\n if (this._audio$1 != null) {\n this._audio$1.volume = (this._mute$1) ? 0 : (this._volume$1 / 100);\n }\n return value;\n },\n\n addFilesToCabinet: function (fc) {\n fc.addFile(this.get_owner().get_owner().get_workingDirectory() + this._filename$1, this.get_owner().get_owner().getFileBlob(this._filename$1));\n },\n\n play: function () {\n if (this._audio$1 == null) {\n this.prepMultimedia();\n }\n this._wantPlaying$1 = true;\n if (this._audio$1 != null && this._audioReady$1) {\n this._audio$1.play();\n this.set_volume(this.get_volume());\n this._audio$1.currentTime = this._position$1;\n }\n },\n\n pause: function () {\n if (this._audio$1 == null) {\n this.prepMultimedia();\n }\n this._wantPlaying$1 = false;\n if (this._audio$1 != null && this._audioReady$1) {\n this._audio$1.pause();\n }\n },\n\n stop: function () {\n this.pause(); // these operations are identical for audio\n },\n\n seek: function (time) {\n this._position$1 = time;\n if (this._audio$1 == null) {\n this.prepMultimedia();\n }\n if (this._audioReady$1) {\n if (this._audio$1.duration < time) {\n this._audio$1.pause();\n }\n else {\n this._audio$1.currentTime = this._position$1;\n }\n }\n },\n\n prepMultimedia: function () {\n var $this = this;\n\n if (this._audio$1 != null) {\n return;\n }\n this._audio$1 = document.createElement('audio');\n this._audio$1.addEventListener('canplaythrough', function () {\n if (!$this._audioReady$1) {\n $this._audioReady$1 = true;\n if ($this._wantPlaying$1) {\n $this.play();\n }\n }\n }, false);\n\n // As of December 2020, on Safari, we need to use a \n // sub-element for the audio to play. If we set src/type on the\n // parent element the playback breaks. This in turn breaks some\n // older browsers -- in a world of infinite developer time we'd\n // choose the behavior based on the browser version.\n var source = document.createElement('source');\n this._audio$1.appendChild(source);\n source.src = this.get_owner().get_owner().getFileStream(this._filename$1);\n source.type = 'audio/mp3';\n this._audio$1.load();\n },\n\n // TODO: understand better when/how this function is called. It ought to\n // be called for every frame by the generic Draw3D implementation since\n // we never set `texture`, I think. But note that the main music and\n // voice tracks aren't \"rendered\" in this way, so this function doesn't\n // get called for them, it looks.\n initializeTexture: function () {\n this.prepMultimedia();\n },\n\n cleanUp: function () {\n Overlay.prototype.cleanUp.call(this);\n this._wantPlaying$1 = false;\n if (this._audio$1 != null) {\n this._audio$1.pause();\n this._audio$1.src = null;\n this._audio$1 = null;\n }\n },\n\n get_trackType: function () {\n return this._trackType$1;\n },\n\n set_trackType: function (value) {\n this._trackType$1 = value;\n return value;\n },\n\n writeOverlayProperties: function (xmlWriter) {\n xmlWriter._writeStartElement('Audio');\n xmlWriter._writeAttributeString('Filename', this._filename$1);\n xmlWriter._writeAttributeString('Volume', this._volume$1.toString());\n xmlWriter._writeAttributeString('Mute', this._mute$1.toString());\n xmlWriter._writeAttributeString('TrackType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('AudioType', this._trackType$1));\n xmlWriter._writeEndElement();\n },\n\n initializeFromXml: function (node) {\n var audio = _baseutil_js__WEBPACK_IMPORTED_MODULE_6__.Util.selectSingleNode(node, 'Audio');\n this._filename$1 = audio.attributes.getNamedItem('Filename').nodeValue;\n if (audio.attributes.getNamedItem('Volume') != null) {\n this._volume$1 = parseInt(audio.attributes.getNamedItem('Volume').nodeValue);\n }\n if (audio.attributes.getNamedItem('Mute') != null) {\n this._mute$1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(audio.attributes.getNamedItem('Mute').nodeValue);\n }\n if (audio.attributes.getNamedItem('TrackType') != null) {\n this._trackType$1 = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('AudioType', audio.attributes.getNamedItem('TrackType').nodeValue);\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"AudioOverlay\", [AudioOverlay, AudioOverlay$, Overlay]);\n\n// wwtlib.FlipbookOverlay\n\nfunction FlipbookOverlay() {\n this._loopType$1 = 1;\n this._startFrame$1 = 0;\n this._framesList$1 = [];\n this._frames$1 = 1;\n this._framesX$1 = 8;\n this._framesY$1 = 8;\n this._textureReady$1 = false;\n this._currentFrame$1 = 0;\n this._cellHeight$1 = 256;\n this._cellWidth$1 = 256;\n this._timeStart$1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n this._playing$1 = true;\n Overlay.call(this);\n}\n\nvar FlipbookOverlay$ = {\n getTypeName: function () {\n return 'TerraViewer.FlipbookOverlay';\n },\n\n get_loopType: function () {\n return this._loopType$1;\n },\n\n set_loopType: function (value) {\n this._loopType$1 = value;\n return value;\n },\n\n get_startFrame: function () {\n return this._startFrame$1;\n },\n\n set_startFrame: function (value) {\n this._startFrame$1 = value;\n return value;\n },\n\n get_frameSequence: function () {\n return this._frameSequence$1;\n },\n\n set_frameSequence: function (value) {\n if (this._frameSequence$1 !== value) {\n this._frameSequence$1 = value;\n this._framesList$1 = [];\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._frameSequence$1)) {\n try {\n var parts = this._frameSequence$1.split(',');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(parts);\n while ($enum1.moveNext()) {\n var part = $enum1.current;\n var x = parseInt(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.trim(part));\n this._framesList$1.push(x);\n }\n }\n catch ($e2) {\n }\n }\n }\n return value;\n },\n\n get_frames: function () {\n return this._frames$1;\n },\n\n set_frames: function (value) {\n this._frames$1 = value;\n return value;\n },\n\n get_framesX: function () {\n return this._framesX$1;\n },\n\n set_framesX: function (value) {\n this._framesX$1 = value;\n return value;\n },\n\n get_framesY: function () {\n return this._framesY$1;\n },\n\n set_framesY: function (value) {\n this._framesY$1 = value;\n return value;\n },\n\n copy: function (owner) {\n var newFlipbookOverlay = new FlipbookOverlay();\n newFlipbookOverlay.set_owner(owner);\n newFlipbookOverlay._filename$1 = this._filename$1;\n newFlipbookOverlay.set_x(this.get_x());\n newFlipbookOverlay.set_y(this.get_y());\n newFlipbookOverlay.set_width(this.get_width());\n newFlipbookOverlay.set_height(this.get_height());\n newFlipbookOverlay.set_color(this.get_color());\n newFlipbookOverlay.set_opacity(this.get_opacity());\n newFlipbookOverlay.set_rotationAngle(this.get_rotationAngle());\n newFlipbookOverlay.set_name(this.get_name() + ' - Copy');\n newFlipbookOverlay.set_startFrame(this.get_startFrame());\n newFlipbookOverlay.set_frames(this.get_frames());\n newFlipbookOverlay.set_loopType(this.get_loopType());\n newFlipbookOverlay.set_frameSequence(this.get_frameSequence());\n newFlipbookOverlay.set_framesX(this.get_framesX());\n newFlipbookOverlay.set_framesY(this.get_framesY());\n return newFlipbookOverlay;\n },\n\n cleanUp: function () {\n this.texture = null;\n },\n\n initializeTexture: function () {\n var $this = this;\n\n try {\n var colorKey = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.endsWith(this._filename$1.toLowerCase(), '.jpg');\n this.texture = this.get_owner().get_owner().getCachedTexture(this._filename$1, function () {\n $this._textureReady$1 = true;\n });\n }\n catch ($e1) {\n }\n },\n\n addFilesToCabinet: function (fc) {\n fc.addFile(this.get_owner().get_owner().get_workingDirectory() + this._filename$1, this.get_owner().get_owner().getFileBlob(this._filename$1));\n },\n\n writeOverlayProperties: function (xmlWriter) {\n xmlWriter._writeStartElement('Flipbook');\n xmlWriter._writeAttributeString('Filename', this._filename$1);\n xmlWriter._writeAttributeString('Frames', this._frames$1.toString());\n xmlWriter._writeAttributeString('Loop', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('LoopTypes', this._loopType$1));\n xmlWriter._writeAttributeString('FramesX', this._framesX$1.toString());\n xmlWriter._writeAttributeString('FramesY', this._framesY$1.toString());\n xmlWriter._writeAttributeString('StartFrame', this._startFrame$1.toString());\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._frameSequence$1)) {\n xmlWriter._writeAttributeString('FrameSequence', this._frameSequence$1);\n }\n xmlWriter._writeEndElement();\n },\n\n initializeFromXml: function (node) {\n var flipbook = _baseutil_js__WEBPACK_IMPORTED_MODULE_6__.Util.selectSingleNode(node, 'Flipbook');\n this._filename$1 = flipbook.attributes.getNamedItem('Filename').nodeValue;\n this._frames$1 = parseInt(flipbook.attributes.getNamedItem('Frames').nodeValue);\n this._loopType$1 = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('LoopTypes', flipbook.attributes.getNamedItem('Loop').nodeValue);\n if (flipbook.attributes.getNamedItem('FramesX') != null) {\n this.set_framesX(parseInt(flipbook.attributes.getNamedItem('FramesX').nodeValue));\n }\n if (flipbook.attributes.getNamedItem('FramesY') != null) {\n this.set_framesY(parseInt(flipbook.attributes.getNamedItem('FramesY').nodeValue));\n }\n if (flipbook.attributes.getNamedItem('StartFrame') != null) {\n this.set_startFrame(parseInt(flipbook.attributes.getNamedItem('StartFrame').nodeValue));\n }\n if (flipbook.attributes.getNamedItem('FrameSequence') != null) {\n this.set_frameSequence(flipbook.attributes.getNamedItem('FrameSequence').nodeValue);\n }\n },\n\n play: function () {\n this._playing$1 = true;\n this._timeStart$1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n },\n\n pause: function () {\n this._playing$1 = false;\n },\n\n stop: function () {\n this._playing$1 = false;\n this._currentFrame$1 = 0;\n },\n\n initializeGeometry: function () {\n var frameCount = this._frames$1;\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._frameSequence$1)) {\n frameCount = this._framesList$1.length;\n }\n if (this._playing$1) {\n var ts = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now() - this._timeStart$1;\n switch (this._loopType$1) {\n case 0:\n this._currentFrame$1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((ts / 1000 * 24) % frameCount)) + this._startFrame$1;\n break;\n case 1:\n this._currentFrame$1 = Math.abs(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((ts / 1000 * 24 + frameCount) % (frameCount * 2 - 1))) - (frameCount - 1)) + this._startFrame$1;\n if (this._currentFrame$1 < 0 || this._currentFrame$1 > frameCount - 1) {\n var p = 0;\n }\n break;\n case 2:\n this._currentFrame$1 = Math.max(0, frameCount - _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((ts / 1000 * 24) % frameCount))) + this._startFrame$1;\n break;\n case 3:\n var temp = Math.min(ts / 1000 * 24, frameCount * 2 + 1) + frameCount;\n this._currentFrame$1 = Math.abs((temp % (frameCount * 2 - 1)) - (frameCount - 1)) + this._startFrame$1;\n break;\n case 4:\n this._currentFrame$1 = Math.min(frameCount - 1, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((ts / 1000 * 24)));\n break;\n case 5:\n this._currentFrame$1 = this._startFrame$1;\n break;\n case 6:\n this._currentFrame$1 = (frameCount - 1) + this._startFrame$1;\n break;\n default:\n this._currentFrame$1 = this._startFrame$1;\n break;\n }\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._frameSequence$1)) {\n if (this._currentFrame$1 < this._framesList$1.length && this._currentFrame$1 > -1) {\n this._currentFrame$1 = this._framesList$1[this._currentFrame$1];\n }\n else {\n this._currentFrame$1 = 0;\n }\n }\n this.currentRotation = 0;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"FlipbookOverlay\", [FlipbookOverlay, FlipbookOverlay$, Overlay]);\n\n\n/***/ }),\n\n/***/ \"./esm/tours/selection.js\":\n/*!********************************!*\\\n !*** ./esm/tours/selection.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Selection: () => (/* binding */ Selection),\n/* harmony export */ SelectionAnchor: () => (/* binding */ SelectionAnchor)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../graphics/sprite2d.js */ \"./esm/graphics/sprite2d.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// An interactive selection for the tour editor.\n\n\n\n\n\n\n\n\n\n\n// wwtlib.SelectionAnchor\n\nvar SelectionAnchor = {\n topLeft: 0,\n top: 1,\n topRight: 2,\n right: 3,\n bottomRight: 4,\n bottom: 5,\n bottomLeft: 6,\n left: 7,\n rotate: 8,\n move: 9,\n center: 10,\n none: 11\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"SelectionAnchor\", SelectionAnchor);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"SelectionAnchor\", SelectionAnchor);\n\n\n// wwtlib.Selection\n//\n// Note: this type is a bit dangerous because there is a built-in browser type\n// of the same name. So if you forget to import this type into your module, your\n// code will likely get the other one instead. As usual, we're reluctant to\n// rename it because that would break API compatibility.\n\nfunction Selection() {\n this._singleSelectHandles = null;\n this._multiSelectHandles = null;\n this._focusHandles = null;\n this.selectionSet = [];\n this._focus = null;\n this._ratio = 1;\n this._sprite = new _graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_3__.Sprite2d();\n this._centerX = 0;\n this._centerY = 0;\n}\n\nSelection._points = new Array(9 * 3 * 2);\n\nvar Selection$ = {\n clearSelection: function () {\n this.selectionSet.length = 0;\n },\n\n addSelection: function (overlay) {\n if (overlay != null) {\n if (!(this.selectionSet.indexOf(overlay) >= 0)) {\n this.selectionSet.push(overlay);\n }\n }\n },\n\n addSelectionRange: function (overlays) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(overlays);\n while ($enum1.moveNext()) {\n var ov = $enum1.current;\n this.selectionSet.push(ov);\n }\n },\n\n isOverlaySelected: function (overlay) {\n return (this.selectionSet.indexOf(overlay) >= 0);\n },\n\n setSelection: function (overlay) {\n this.selectionSet.length = 0;\n if (overlay != null) {\n this.selectionSet.push(overlay);\n }\n },\n\n get_multiSelect: function () {\n return this.selectionSet.length > 1;\n },\n\n setSelectionRange: function (overlays) {\n this.selectionSet.length = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(overlays);\n while ($enum1.moveNext()) {\n var ov = $enum1.current;\n this.selectionSet.push(ov);\n }\n },\n\n get_focus: function () {\n return this._focus;\n },\n\n set_focus: function (value) {\n this._focus = value;\n return value;\n },\n\n draw3D: function (renderContext, transparancy) {\n this._ratio = 1116 / renderContext.height;\n if (this._singleSelectHandles == null) {\n this._singleSelectHandles = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_4__.Texture.fromUrl('images/Selhand.bmp');\n }\n if (this._multiSelectHandles == null) {\n this._multiSelectHandles = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_4__.Texture.fromUrl('images/multiSelhand.bmp');\n }\n if (this._focusHandles == null) {\n this._focusHandles = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_4__.Texture.fromUrl('images/FocusHandles.png');\n }\n if (this.selectionSet.length > 1) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n if (overlay === this._focus) {\n this._drawSelectionHandles(renderContext, overlay, this._focusHandles);\n }\n else {\n this._drawSelectionHandles(renderContext, overlay, this._multiSelectHandles);\n }\n }\n } else {\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selectionSet);\n while ($enum2.moveNext()) {\n var overlay = $enum2.current;\n this._drawSelectionHandles(renderContext, overlay, this._singleSelectHandles);\n }\n }\n },\n\n _drawSelectionHandles: function (renderContext, overlay, handleTexture) {\n var handles = this.makeHandles(overlay);\n var angle = overlay.get_rotationAngle();\n var i = 0;\n var j = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(handles);\n while ($enum1.moveNext()) {\n var handle = $enum1.current;\n Selection._points[i + 0] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n Selection._points[i + 0].position = overlay.makePosition(this._centerX, this._centerY, handle.get_left() - this._centerX, handle.get_top() - this._centerY, angle);\n Selection._points[i + 0].tu = j * (1 / 9);\n Selection._points[i + 0].tv = 0;\n Selection._points[i + 0].color = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n Selection._points[i + 1] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n Selection._points[i + 1].position = overlay.makePosition(this._centerX, this._centerY, handle.get_right() - this._centerX, handle.get_top() - this._centerY, angle);\n Selection._points[i + 1].tu = (j + 1) * (1 / 9);\n Selection._points[i + 1].tv = 0;\n Selection._points[i + 1].color = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n Selection._points[i + 2] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n Selection._points[i + 2].position = overlay.makePosition(this._centerX, this._centerY, handle.get_left() - this._centerX, handle.get_bottom() - this._centerY, angle);\n Selection._points[i + 2].tu = j * (1 / 9);\n Selection._points[i + 2].tv = 1;\n Selection._points[i + 2].color = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n Selection._points[i + 3] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n Selection._points[i + 3].position = overlay.makePosition(this._centerX, this._centerY, handle.get_right() - this._centerX, handle.get_top() - this._centerY, angle);\n Selection._points[i + 3].tu = (j + 1) * (1 / 9);\n Selection._points[i + 3].tv = 0;\n Selection._points[i + 3].color = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n Selection._points[i + 4] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n Selection._points[i + 4].position = overlay.makePosition(this._centerX, this._centerY, handle.get_right() - this._centerX, handle.get_bottom() - this._centerY, angle);\n Selection._points[i + 4].tu = (j + 1) * (1 / 9);\n Selection._points[i + 4].tv = 1;\n Selection._points[i + 4].color = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n Selection._points[i + 5] = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.PositionColoredTextured();\n Selection._points[i + 5].position = overlay.makePosition(this._centerX, this._centerY, handle.get_left() - this._centerX, handle.get_bottom() - this._centerY, angle);\n Selection._points[i + 5].tu = j * (1 / 9);\n Selection._points[i + 5].tv = 1;\n Selection._points[i + 5].color = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n i += 6;\n j++;\n }\n if (this.get_multiSelect()) {\n this._sprite.draw(renderContext, Selection._points, Selection._points.length - 6, handleTexture, false, 1);\n } else {\n this._sprite.draw(renderContext, Selection._points, Selection._points.length, handleTexture, false, 1);\n }\n },\n\n pointToSelectionSpace: function (pntIn) {\n var tempPoints = new Array(1);\n tempPoints[0] = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(pntIn.x, pntIn.y);\n var mat = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix2d.rotateAt(-this.selectionSet[0].get_rotationAngle() / 180 * Math.PI, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(this.selectionSet[0].get_x(), this.selectionSet[0].get_y()));\n mat._transformPoints(tempPoints);\n return tempPoints[0];\n },\n\n pointToScreenSpace: function (pntIn) {\n var tempPoints = new Array(1);\n tempPoints[0] = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(pntIn.x, pntIn.y);\n var mat = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Matrix2d.rotateAt(this.selectionSet[0].get_rotationAngle() / 180 * Math.PI, _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(this.selectionSet[0].get_x(), this.selectionSet[0].get_y()));\n mat._transformPoints(tempPoints);\n return tempPoints[0];\n },\n\n hitTest: function (position) {\n if (this.selectionSet.length === 1) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n var handles = this.makeHandles(overlay);\n var index = 0;\n var testPoint = this.pointToSelectionSpace(position);\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(handles);\n while ($enum2.moveNext()) {\n var rectf = $enum2.current;\n if (rectf.contains(testPoint)) {\n return index;\n }\n index++;\n }\n }\n }\n return 11;\n },\n\n makeHandles: function (overlay) {\n var x = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((overlay.get_x() - (overlay.get_width() / 2))) + 0.5;\n var y = (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(overlay.get_y()) - (overlay.get_height() / 2)) + 0.5;\n this._centerX = overlay.get_x();\n this._centerY = overlay.get_y();\n var width = overlay.get_width();\n var height = overlay.get_height();\n var handleSize = 12 * this._ratio;\n var handles = new Array(9);\n handles[0] = _util_js__WEBPACK_IMPORTED_MODULE_6__.Rectangle.create(x - handleSize, y - handleSize, handleSize, handleSize);\n handles[1] = _util_js__WEBPACK_IMPORTED_MODULE_6__.Rectangle.create((x + (width / 2)) - (handleSize / 2), y - handleSize, handleSize, handleSize);\n handles[2] = _util_js__WEBPACK_IMPORTED_MODULE_6__.Rectangle.create(x + width, y - handleSize, handleSize, handleSize);\n handles[3] = _util_js__WEBPACK_IMPORTED_MODULE_6__.Rectangle.create(x + width, (y + (height / 2)) - (handleSize / 2), handleSize, handleSize);\n handles[4] = _util_js__WEBPACK_IMPORTED_MODULE_6__.Rectangle.create(x + width, (y + height), handleSize, handleSize);\n handles[5] = _util_js__WEBPACK_IMPORTED_MODULE_6__.Rectangle.create((x + (width / 2)) - (handleSize / 2), (y + height), handleSize, handleSize);\n handles[6] = _util_js__WEBPACK_IMPORTED_MODULE_6__.Rectangle.create(x - handleSize, (y + height), handleSize, handleSize);\n handles[7] = _util_js__WEBPACK_IMPORTED_MODULE_6__.Rectangle.create(x - handleSize, (y + (height / 2)) - (handleSize / 2), handleSize, handleSize);\n handles[8] = _util_js__WEBPACK_IMPORTED_MODULE_6__.Rectangle.create((x + (width / 2)) - (handleSize / 2), y - 30 * this._ratio, handleSize, handleSize);\n return handles;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Selection\", [Selection, Selection$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/tours/text_object.js\":\n/*!**********************************!*\\\n !*** ./esm/tours/text_object.js ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TextBorderStyle: () => (/* binding */ TextBorderStyle),\n/* harmony export */ TextObject: () => (/* binding */ TextObject)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A basic text data object.\n\n\n\n\n\n\n\n\n// wwtlib.TextBorderStyle\n\nvar TextBorderStyle = {\n none: 0,\n tight: 1,\n small: 2,\n medium: 3,\n large: 4\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TextBorderStyle\", TextBorderStyle);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerEnum)(\"TextBorderStyle\", TextBorderStyle);\n\n\n// wwtlib.TextObject\n\nfunction TextObject() {\n this.bold = false;\n this.italic = false;\n this.underline = false;\n this.fontSize = 0;\n this.borderStyle = 0;\n}\n\nTextObject.create = function (text, bold, italic, underline, fontSize, fontName, forgroundColor, backgroundColor, borderStyle) {\n var temp = new TextObject();\n temp.text = text;\n temp.bold = bold;\n temp.italic = italic;\n temp.underline = underline;\n temp.fontSize = fontSize;\n temp.fontName = fontName;\n temp.foregroundColor = forgroundColor;\n temp.backgroundColor = backgroundColor;\n temp.borderStyle = borderStyle;\n return temp;\n};\n\nTextObject._fromXml = function (node) {\n var newTextObject = new TextObject();\n newTextObject.text = _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.getInnerText(node);\n newTextObject.borderStyle = 0;\n newTextObject.bold = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.boolean(node.attributes.getNamedItem('Bold').nodeValue);\n newTextObject.italic = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.boolean(node.attributes.getNamedItem('Italic').nodeValue);\n newTextObject.underline = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.boolean(node.attributes.getNamedItem('Underline').nodeValue);\n newTextObject.fontSize = parseFloat(node.attributes.getNamedItem('FontSize').nodeValue);\n newTextObject.fontName = node.attributes.getNamedItem('FontName').nodeValue;\n newTextObject.foregroundColor = _color_js__WEBPACK_IMPORTED_MODULE_3__.Color.load(node.attributes.getNamedItem('ForgroundColor').nodeValue);\n newTextObject.backgroundColor = _color_js__WEBPACK_IMPORTED_MODULE_3__.Color.load(node.attributes.getNamedItem('BackgroundColor').nodeValue);\n if (node.attributes.getNamedItem('BorderStyle') != null) {\n newTextObject.borderStyle = _typesystem_js__WEBPACK_IMPORTED_MODULE_0__.Enums.parse('TextBorderStyle', node.attributes.getNamedItem('BorderStyle').nodeValue);\n }\n return newTextObject;\n};\n\nvar TextObject$ = {\n toString: function () {\n return this.text;\n },\n\n _saveToXml: function (xmlWriter) {\n xmlWriter._writeStartElement('TextObject');\n xmlWriter._writeAttributeString('Bold', this.bold.toString());\n xmlWriter._writeAttributeString('Italic', this.italic.toString());\n xmlWriter._writeAttributeString('Underline', this.underline.toString());\n xmlWriter._writeAttributeString('FontSize', this.fontSize.toString());\n xmlWriter._writeAttributeString('FontName', this.fontName);\n xmlWriter._writeAttributeString('ForgroundColor', this.foregroundColor.save());\n xmlWriter._writeAttributeString('BackgroundColor', this.backgroundColor.save());\n xmlWriter._writeAttributeString('BorderStyle', _typesystem_js__WEBPACK_IMPORTED_MODULE_0__.Enums.toXml('TextBorderStyle', this.borderStyle));\n xmlWriter._writeString(this.text);\n xmlWriter._writeEndElement();\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TextObject\", [TextObject, TextObject$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/tours/tour_document.js\":\n/*!************************************!*\\\n !*** ./esm/tours/tour_document.js ***!\n \\************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TourDocument: () => (/* binding */ TourDocument),\n/* harmony export */ UserLevel: () => (/* binding */ UserLevel)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n/* harmony import */ var _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utilities/xml_text_writer.js */ \"./esm/utilities/xml_text_writer.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../imageset.js */ \"./esm/imageset.js\");\n/* harmony import */ var _view_mover_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../view_mover.js */ \"./esm/view_mover.js\");\n/* harmony import */ var _layers_reference_frame_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../layers/reference_frame.js */ \"./esm/layers/reference_frame.js\");\n/* harmony import */ var _file_cabinet_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./file_cabinet.js */ \"./esm/tours/file_cabinet.js\");\n/* harmony import */ var _tour_stop_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./tour_stop.js */ \"./esm/tours/tour_stop.js\");\n/* harmony import */ var _tour_player_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./tour_player.js */ \"./esm/tours/tour_player.js\");\n/* harmony import */ var _layers_layer_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../layers/layer.js */ \"./esm/layers/layer.js\");\n/* harmony import */ var _layers_imageset_layer_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../layers/imageset_layer.js */ \"./esm/layers/imageset_layer.js\");\n/* harmony import */ var _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../layers/layer_manager.js */ \"./esm/layers/layer_manager.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A WWT Tour document.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.UserLevel\n\nvar UserLevel = {\n beginner: 0,\n intermediate: 1,\n advanced: 2,\n educator: 3,\n professional: 4\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"UserLevel\", UserLevel);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"UserLevel\", UserLevel);\n\n\n// wwtlib.TourDocument\n\nfunction TourDocument() {\n this._tourDirty = 0;\n this._workingDirectory = '';\n this.url = '';\n this._tagId = '';\n this._representativeThumbnailTourstop = 0;\n this._id = '';\n this._title = '';\n this._runTime = 0;\n this._lastDirtyCheck = 0;\n this._description = '';\n this._attributesAndCredits = '';\n this._authorEmailOther = '';\n this._authorEmail = '';\n this._authorUrl = '';\n this._authorPhone = '';\n this._authorContactText = '';\n this._orgName = 'None';\n this._orgUrl = '';\n this._author = '';\n this._authorImageUrl = '';\n this._authorImage = null;\n this._organizationUrl = '';\n this._filename = '';\n this._level = 0;\n this._type = 268435456;\n this._taxonomy = '';\n this._keywords = '';\n this._objects = '';\n this._editMode = false;\n this.explicitTourLinks = [];\n this.implicitTourLinks = [];\n this._tourStops = [];\n this._currentTourstopIndex = -1;\n this._textureList = {};\n this._textureList2d = {};\n\n // This handles new files added while editing a tour\n this._fileCache = {};\n this.dontCleanUpTempFiles = false;\n this._id = _util_js__WEBPACK_IMPORTED_MODULE_6__.Guid.newGuid().toString();\n}\n\nTourDocument.get_baseWorkingDirectory = function () {\n return '';\n};\n\nTourDocument.fromUrl = function (url, callMe) {\n var temp = new TourDocument();\n temp.url = url;\n temp._callMe = callMe;\n temp._cabinet = _file_cabinet_js__WEBPACK_IMPORTED_MODULE_11__.FileCabinet.fromUrl(url, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_loadXmlDocument', temp));\n return temp;\n};\n\nTourDocument.fromUrlRaw = function (url, callMe) {\n var temp = new TourDocument();\n temp.url = url;\n temp._callMe = callMe;\n temp._cabinet = _file_cabinet_js__WEBPACK_IMPORTED_MODULE_11__.FileCabinet.fromUrl(url, callMe);\n return temp;\n};\n\n(0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.set_tourDocumentFromUrlRaw)(TourDocument.fromUrlRaw);\n\nvar TourDocument$ = {\n get_tourDirty: function () {\n return this._tourDirty > 0;\n },\n\n set_tourDirty: function (value) {\n if (value) {\n this._tourDirty++;\n } else {\n this._tourDirty = 0;\n }\n return value;\n },\n\n get_workingDirectory: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._workingDirectory)) {\n this._workingDirectory = TourDocument.get_baseWorkingDirectory() + this._id + '\\\\';\n }\n return this._workingDirectory;\n },\n\n set_workingDirectory: function (value) {\n this._workingDirectory = value;\n return value;\n },\n\n _loadXmlDocument: function () {\n var $this = this;\n\n try {\n var master = this._cabinet.get_masterFile();\n var doc = new FileReader();\n doc.onloadend = function (ee) {\n var data = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(doc.result, String);\n var xParser = new DOMParser();\n $this.fromXml(xParser.parseFromString(data, 'text/xml'));\n $this._callMe();\n };\n doc.readAsText(this._cabinet.getFileBlob(master));\n }\n catch (ex) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalScriptInterface._fireTourError(ex);\n }\n },\n\n fromXml: function (doc) {\n var root = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(doc, 'Tour');\n this._id = root.attributes.getNamedItem('ID').nodeValue;\n this.set_title(root.attributes.getNamedItem('Title').nodeValue);\n this.set_author(root.attributes.getNamedItem('Author').nodeValue);\n if (root.attributes.getNamedItem('Descirption') != null) {\n this.set_description(root.attributes.getNamedItem('Descirption').nodeValue);\n }\n if (root.attributes.getNamedItem('AuthorEmail') != null) {\n this._authorEmail = root.attributes.getNamedItem('AuthorEmail').nodeValue;\n }\n if (root.attributes.getNamedItem('Keywords') != null) {\n this.set_keywords(root.attributes.getNamedItem('Keywords').nodeValue);\n }\n if (root.attributes.getNamedItem('OrganizationName') != null) {\n this.set_orgName(root.attributes.getNamedItem('OrganizationName').nodeValue);\n }\n this._organizationUrl = root.attributes.getNamedItem('OrganizationUrl').nodeValue;\n this._level = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('UserLevel', root.attributes.getNamedItem('UserLevel').nodeValue);\n this._type = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('Classification', root.attributes.getNamedItem('Classification').nodeValue);\n this._taxonomy = root.attributes.getNamedItem('Taxonomy').nodeValue;\n var TourStops = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(root, 'TourStops');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(TourStops.childNodes);\n while ($enum1.moveNext()) {\n var tourStop = $enum1.current;\n if (tourStop.nodeName === 'TourStop') {\n this.addTourStop(_tour_stop_js__WEBPACK_IMPORTED_MODULE_12__.TourStop._fromXml(this, tourStop));\n }\n }\n var Frames = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(root, 'ReferenceFrames');\n if (Frames != null) {\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(Frames.childNodes);\n while ($enum2.moveNext()) {\n var frame = $enum2.current;\n if (frame.nodeName === 'ReferenceFrame') {\n var newFrame = new _layers_reference_frame_js__WEBPACK_IMPORTED_MODULE_10__.ReferenceFrame();\n newFrame.initializeFromXml(frame);\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists((0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.layerManagerGetAllMaps)(), newFrame.name)) {\n var map = new _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerMap(newFrame.name, 18);\n map.frame = newFrame;\n map.loadedFromTour = true;\n (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.layerManagerGetAllMaps)()[newFrame.name] = map;\n }\n }\n }\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.connectAllChildren();\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.loadTree();\n }\n var Layers = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(root, 'Layers');\n if (Layers != null) {\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(Layers.childNodes);\n while ($enum3.moveNext()) {\n var layer = $enum3.current;\n if (layer.nodeName === 'Layer') {\n var newLayer = _layers_layer_js__WEBPACK_IMPORTED_MODULE_14__.Layer.fromXml(layer, true);\n if (newLayer != null) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(newLayer, _layers_imageset_layer_js__WEBPACK_IMPORTED_MODULE_15__.ImageSetLayer)) {\n var imageSetLayer = newLayer;\n var imageset = imageSetLayer.get_imageSet();\n if (imageset.get_projection() === _imageset_js__WEBPACK_IMPORTED_MODULE_8__.ProjectionType.healpix && imageset.get_extension() === '.tsv') {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.addCatalogHips(imageset);\n continue;\n }\n }\n var fileName = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0}.txt', newLayer.id.toString());\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.get_layerList(), newLayer.id)) {\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.deleteLayerByID(newLayer.id, true, false);\n }\n try {\n newLayer.loadedFromTour = true;\n newLayer.loadData(this, fileName);\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.add(newLayer, false);\n }\n catch ($e4) {\n }\n }\n }\n }\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.loadTree();\n }\n this._tourDirty = 0;\n },\n\n saveToDataUrl: function () {\n return URL.createObjectURL(this.saveToBlob());\n },\n\n saveToBlob: function () {\n var excludeAudio = false;\n this.cleanUp();\n var tourXml = this.getTourXML();\n var fc = new _file_cabinet_js__WEBPACK_IMPORTED_MODULE_11__.FileCabinet();\n fc.set_packageID(this.get_id());\n fc.addFile('Tour.wwtxml', new Blob([tourXml]));\n if (this._authorImage != null) {\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.get_tourStops());\n while ($enum1.moveNext()) {\n var stop = $enum1.current;\n stop._addFilesToCabinet(fc, excludeAudio);\n }\n var masterList = this._createLayerMasterList();\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(masterList);\n while ($enum2.moveNext()) {\n var id = $enum2.current;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.get_layerList(), id)) {\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.get_layerList()[id].addFilesToCabinet(fc);\n }\n }\n this.set_tourDirty(false);\n return fc.packageFiles();\n },\n\n getTourXML: function () {\n var xmlWriter = new _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_7__.XmlTextWriter();\n xmlWriter.formatting = 1;\n xmlWriter._writeProcessingInstruction('xml', \"version='1.0' encoding='UTF-8'\");\n xmlWriter._writeStartElement('Tour');\n xmlWriter._writeAttributeString('ID', this._id);\n xmlWriter._writeAttributeString('Title', this._title);\n xmlWriter._writeAttributeString('Descirption', this.get_description());\n xmlWriter._writeAttributeString('Description', this.get_description());\n xmlWriter._writeAttributeString('RunTime', (this.get_runTime() / 1000).toString());\n xmlWriter._writeAttributeString('Author', this._author);\n xmlWriter._writeAttributeString('AuthorEmail', this._authorEmail);\n xmlWriter._writeAttributeString('OrganizationUrl', this._organizationUrl);\n xmlWriter._writeAttributeString('OrganizationName', this.get_orgName());\n xmlWriter._writeAttributeString('Keywords', this.get_keywords());\n xmlWriter._writeAttributeString('UserLevel', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('UserLevel', this._level));\n xmlWriter._writeAttributeString('Classification', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('Classification', this._type));\n xmlWriter._writeAttributeString('Taxonomy', this._taxonomy);\n var timeLineTour = this._isTimelineTour();\n xmlWriter._writeAttributeString('TimeLineTour', timeLineTour.toString());\n xmlWriter._writeStartElement('TourStops');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.get_tourStops());\n while ($enum1.moveNext()) {\n var stop = $enum1.current;\n stop._saveToXml(xmlWriter, true);\n }\n xmlWriter._writeEndElement();\n var masterList = this._createLayerMasterList();\n\n // This will now save and sync emtpy frames...\n var referencedFrames = this._getReferenceFrameList();\n xmlWriter._writeStartElement('ReferenceFrames');\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(referencedFrames);\n while ($enum2.moveNext()) {\n var item = $enum2.current;\n item.saveToXml(xmlWriter);\n }\n xmlWriter._writeEndElement();\n xmlWriter._writeStartElement('Layers');\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(masterList);\n while ($enum3.moveNext()) {\n var id = $enum3.current;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.get_layerList(), id)) {\n var layer = _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.get_layerList()[id];\n var name = layer.get_name();\n var imageset = _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.getCatalogHipsByName(name);\n if (imageset != null) {\n var imageSetLayer = _layers_imageset_layer_js__WEBPACK_IMPORTED_MODULE_15__.ImageSetLayer.create(imageset);\n imageSetLayer.id = id;\n imageSetLayer.set_name(name);\n imageSetLayer.set_referenceFrame('Sky');\n imageSetLayer.saveToXml(xmlWriter);\n }\n else {\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.get_layerList()[id].saveToXml(xmlWriter);\n }\n }\n }\n xmlWriter._writeEndElement();\n xmlWriter._writeFullEndElement();\n xmlWriter._close();\n return xmlWriter.body;\n },\n\n _getReferenceFrameList: function () {\n var list = [];\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys((0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.layerManagerGetAllMaps)()));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var lm = (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.layerManagerGetAllMaps)()[key];\n if ((lm.frame.reference === 18 || lm.frame.reference === 19) && !(list.indexOf(lm.frame) >= 0) && !lm.frame._systemGenerated) {\n list.push(lm.frame);\n }\n }\n return list;\n },\n\n _createLayerMasterList: function () {\n var masterList = [];\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.get_tourStops());\n while ($enum1.moveNext()) {\n var stop = $enum1.current;\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(stop.layers));\n while ($enum2.moveNext()) {\n var id = $enum2.current;\n if (!(masterList.indexOf(id) >= 0)) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__.LayerManager.get_layerList(), id)) {\n masterList.push(id);\n }\n }\n }\n }\n return masterList;\n },\n\n _isTimelineTour: function () {\n return false;\n },\n\n get_tagId: function () {\n return this._tagId;\n },\n\n set_tagId: function (value) {\n this._tagId = value;\n return value;\n },\n\n get_authorThumbnailFilename: function () {\n return 'Author.Png';\n },\n\n get_tourThumbnailFilename: function () {\n if (this._representativeThumbnailTourstop < this._tourStops.length) {\n return this._tourStops[this._representativeThumbnailTourstop].get_tourStopThumbnailFilename();\n } else {\n return null;\n }\n },\n\n get_id: function () {\n return this._id;\n },\n\n set_id: function (value) {\n this._id = value;\n return value;\n },\n\n get_title: function () {\n return this._title;\n },\n\n set_title: function (value) {\n this._title = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_runTime: function () {\n if (!this._runTime || this._lastDirtyCheck !== this._tourDirty) {\n this._runTime = this._calculateRunTime();\n this._lastDirtyCheck = this._tourDirty;\n }\n return this._runTime;\n },\n\n get_description: function () {\n return this._description;\n },\n\n set_description: function (value) {\n this._description = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_attributesAndCredits: function () {\n return this._attributesAndCredits;\n },\n\n set_attributesAndCredits: function (value) {\n this._attributesAndCredits = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_authorEmailOther: function () {\n return this._authorEmailOther;\n },\n\n set_authorEmailOther: function (value) {\n this._authorEmailOther = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_authorEmail: function () {\n return this._authorEmail;\n },\n\n set_authorEmail: function (value) {\n this._authorEmail = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_authorUrl: function () {\n return this._authorUrl;\n },\n\n set_authorUrl: function (value) {\n this._authorUrl = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_authorPhone: function () {\n return this._authorPhone;\n },\n\n set_authorPhone: function (value) {\n this._authorPhone = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_authorContactText: function () {\n return this._authorContactText;\n },\n\n set_authorContactText: function (value) {\n this._authorContactText = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_orgName: function () {\n return this._orgName;\n },\n\n set_orgName: function (value) {\n this._orgName = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_orgUrl: function () {\n return this._orgUrl;\n },\n\n set_orgUrl: function (value) {\n this._orgUrl = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_author: function () {\n return this._author;\n },\n\n set_author: function (value) {\n this._author = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_authorImageUrl: function () {\n return this._authorImageUrl;\n },\n\n set_authorImageUrl: function (value) {\n this._authorImageUrl = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_authorImage: function () {\n return this._authorImage;\n },\n\n set_authorImage: function (value) {\n this._authorImage = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_organizationUrl: function () {\n return this._organizationUrl;\n },\n\n set_organizationUrl: function (value) {\n this._organizationUrl = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_fileName: function () {\n return this._filename;\n },\n\n set_fileName: function (value) {\n this._filename = value;\n return value;\n },\n\n get_level: function () {\n return this._level;\n },\n\n set_level: function (value) {\n this._level = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_type: function () {\n return this._type;\n },\n\n set_type: function (value) {\n this._type = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_taxonomy: function () {\n return this._taxonomy;\n },\n\n set_taxonomy: function (value) {\n this._taxonomy = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_keywords: function () {\n return this._keywords;\n },\n\n set_keywords: function (value) {\n this._keywords = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_objects: function () {\n return this._objects;\n },\n\n set_objects: function (value) {\n this._objects = value;\n this.set_tourDirty(true);\n return value;\n },\n\n get_editMode: function () {\n return this._editMode;\n },\n\n set_editMode: function (value) {\n this._editMode = value;\n return value;\n },\n\n get_tourStops: function () {\n return this._tourStops;\n },\n\n set_tourStops: function (value) {\n this._tourStops = value;\n return value;\n },\n\n get_currentTourstopIndex: function () {\n return this._currentTourstopIndex;\n },\n\n set_currentTourstopIndex: function (value) {\n this._currentTourstopIndex = value;\n return value;\n },\n\n addTourStop: function (ts) {\n ts.set_owner(this);\n this.get_tourStops().push(ts);\n this._currentTourstopIndex = this._tourStops.length - 1;\n this.set_tourDirty(true);\n },\n\n insertTourStop: function (ts) {\n ts.set_owner(this);\n if (this._currentTourstopIndex > -1) {\n this.get_tourStops().splice(this._currentTourstopIndex, 0, ts);\n } else {\n this.get_tourStops().push(ts);\n this._currentTourstopIndex = this._tourStops.length - 1;\n }\n this.set_tourDirty(true);\n },\n\n insertAfterTourStop: function (ts) {\n ts.set_owner(this);\n if (this._currentTourstopIndex > -1 || this._currentTourstopIndex < this.get_tourStops().length) {\n this.get_tourStops().splice(this._currentTourstopIndex + 1, 0, ts);\n } else {\n this.get_tourStops().push(ts);\n this._currentTourstopIndex = this._tourStops.length - 1;\n }\n this.set_tourDirty(true);\n },\n\n removeTourStop: function (ts) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(this._tourStops, ts);\n if (this._currentTourstopIndex > this._tourStops.length - 1) {\n this._currentTourstopIndex--;\n }\n this.set_tourDirty(true);\n },\n\n _calculateRunTime: function () {\n var totalTime = 0;\n for (var i = 0; i < this._tourStops.length; i++) {\n totalTime += this._tourStops[i].get_duration();\n if (i > 0) {\n switch (this._tourStops[i].get__transition()) {\n case 0:\n if (this._tourStops[i].get_target().get_backgroundImageset() == null || (this._tourStops[i - 1].get_target().get_backgroundImageset().get_dataSetType() === this._tourStops[i].get_target().get_backgroundImageset().get_dataSetType() && ((this._tourStops[i - 1].get_target().get_backgroundImageset().get_dataSetType() != _imageset_js__WEBPACK_IMPORTED_MODULE_8__.ImageSetType.solarSystem) || (this._tourStops[i - 1].get_target().get_target() === this._tourStops[i].get_target().get_target())))) {\n var start = (this._tourStops[i - 1].get_endTarget() == null) ? this._tourStops[i - 1].get_target().get_camParams() : this._tourStops[i - 1].get_endTarget().get_camParams();\n var slew = _view_mover_js__WEBPACK_IMPORTED_MODULE_9__.ViewMoverSlew.create(start, this._tourStops[i].get_target().get_camParams());\n totalTime += slew.get_moveTime() * 1000;\n }\n break;\n case 2:\n break;\n case 1:\n break;\n case 5:\n break;\n default:\n break;\n }\n }\n }\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(totalTime);\n },\n\n elapsedTimeTillTourstop: function (index) {\n if (!index && index >= this._tourStops.length) {\n return 0;\n }\n var totalTime = 0;\n for (var i = 0; i < index; i++) {\n totalTime += this._tourStops[i].get_duration();\n if (i > 0) {\n switch (this._tourStops[i].get__transition()) {\n case 0:\n var start = (this._tourStops[i - 1].get_endTarget() == null) ? this._tourStops[i - 1].get_target().get_camParams() : this._tourStops[i - 1].get_endTarget().get_camParams();\n if (this._tourStops[i - 1].get_target().get_backgroundImageset().get_dataSetType() === this._tourStops[i].get_target().get_backgroundImageset().get_dataSetType() && ((this._tourStops[i - 1].get_target().get_backgroundImageset().get_dataSetType() != _imageset_js__WEBPACK_IMPORTED_MODULE_8__.ImageSetType.solarSystem) || (this._tourStops[i - 1].get_target().get_target() === this._tourStops[i].get_target().get_target()))) {\n var slew = _view_mover_js__WEBPACK_IMPORTED_MODULE_9__.ViewMoverSlew.create(start, this._tourStops[i].get_target().get_camParams());\n totalTime += slew.get_moveTime() * 1000;\n }\n break;\n case 2:\n break;\n case 1:\n break;\n case 5:\n break;\n default:\n break;\n }\n }\n }\n return totalTime / 1000;\n },\n\n elapsedTimeSinceLastMaster: function (index) {\n var masterOut = null;\n if (!index && index >= this._tourStops.length) {\n return null;\n }\n var totalTime = 0;\n for (var i = 0; i < index; i++) {\n if (this._tourStops[i].get_masterSlide()) {\n totalTime = 0;\n masterOut = this._tourStops[i];\n }\n totalTime += this._tourStops[i].get_duration();\n if (i > 0) {\n switch (this._tourStops[i].get__transition()) {\n case 0:\n var start = (this._tourStops[i - 1].get_endTarget() == null) ? this._tourStops[i - 1].get_target().get_camParams() : this._tourStops[i - 1].get_endTarget().get_camParams();\n if (this._tourStops[i - 1].get_target().get_backgroundImageset().get_dataSetType() === this._tourStops[i].get_target().get_backgroundImageset().get_dataSetType() && ((this._tourStops[i - 1].get_target().get_backgroundImageset().get_dataSetType() != _imageset_js__WEBPACK_IMPORTED_MODULE_8__.ImageSetType.solarSystem) || (this._tourStops[i - 1].get_target().get_target() === this._tourStops[i].get_target().get_target()))) {\n var slew = _view_mover_js__WEBPACK_IMPORTED_MODULE_9__.ViewMoverSlew.create(start, this._tourStops[i].get_target().get_camParams());\n totalTime += slew.get_moveTime() * 1000;\n }\n break;\n case 2:\n break;\n case 1:\n break;\n case 5:\n break;\n default:\n break;\n }\n }\n }\n return new _tour_player_js__WEBPACK_IMPORTED_MODULE_13__.MasterTime(masterOut, totalTime / 1000);\n },\n\n getMasterSlideForIndex: function (index) {\n var master = -1;\n for (var i = 0; i < index; i++) {\n if (this._tourStops[i].get_masterSlide()) {\n master = i;\n }\n }\n if (master === -1) {\n return null;\n }\n return this._tourStops[master];\n },\n\n getTourStopIndexByID: function (id) {\n if (!id || id === 'Next') {\n return this._currentTourstopIndex++;\n }\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._tourStops);\n while ($enum1.moveNext()) {\n var stop = $enum1.current;\n if (stop.get_id() === id) {\n return index;\n }\n index++;\n }\n return -1;\n },\n\n cleanUp: function () { },\n\n getCachedTexture: function (filename, callMe) {\n if (this._textureList == null) {\n this._textureList = {};\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._textureList, filename)) {\n callMe();\n return this._textureList[filename];\n }\n var url = this.getFileStream(filename);\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.whitespace(url)) {\n var texture = document.createElement('img');\n texture.src = this.getFileStream(filename);\n texture.addEventListener('load', function () {\n callMe();\n }, false);\n this._textureList[filename] = texture;\n return texture;\n } else {\n return null;\n }\n },\n\n getCachedTexture2d: function (filename) {\n if (this._textureList2d == null) {\n this._textureList2d = {};\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._textureList2d, filename)) {\n return this._textureList2d[filename];\n }\n var texture = new _graphics_texture_js__WEBPACK_IMPORTED_MODULE_5__.Texture();\n texture.load(this.getFileStream(filename));\n this._textureList2d[filename] = texture;\n return texture;\n },\n\n addCachedFile: function (filename, file) {\n this._fileCache[filename] = file;\n\n //Clean up old Cached Textures if they are based on this file.\n\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._textureList2d, filename)) {\n delete this._textureList2d[filename];\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._textureList, filename)) {\n delete this._textureList[filename];\n }\n },\n\n getFileStream: function (filename) {\n var blob = this.getFileBlob(filename);\n if (blob == null) {\n return null;\n }\n return URL.createObjectURL(blob);\n },\n\n getFileBlob: function (filename) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(this._fileCache, filename)) {\n return this._fileCache[filename];\n } else if (this._cabinet != null) {\n return this._cabinet.getFileBlob(this.get_workingDirectory() + filename);\n } else {\n return null;\n }\n },\n\n get_currentTourStop: function () {\n if (this._currentTourstopIndex > -1) {\n return this.get_tourStops()[this._currentTourstopIndex];\n } else {\n return null;\n }\n },\n\n set_currentTourStop: function (value) {\n var i = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.get_tourStops());\n while ($enum1.moveNext()) {\n var stop = $enum1.current;\n if (stop === value) {\n if (this._currentTourstopIndex > -1) {\n }\n this._currentTourstopIndex = i;\n break;\n }\n i++;\n }\n return value;\n },\n\n clearTempFiles: function () { }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TourDocument\", [TourDocument, TourDocument$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/tours/tour_edit.js\":\n/*!********************************!*\\\n !*** ./esm/tours/tour_edit.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TourEditTab: () => (/* binding */ TourEditTab)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utilities/xml_text_writer.js */ \"./esm/utilities/xml_text_writer.js\");\n/* harmony import */ var _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utilities/context_menu_strip.js */ \"./esm/utilities/context_menu_strip.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n/* harmony import */ var _place_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../place.js */ \"./esm/place.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _ui_tools_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../ui_tools.js */ \"./esm/ui_tools.js\");\n/* harmony import */ var _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../layers/layer_manager.js */ \"./esm/layers/layer_manager.js\");\n/* harmony import */ var _overlay_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./overlay.js */ \"./esm/tours/overlay.js\");\n/* harmony import */ var _undo_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./undo.js */ \"./esm/tours/undo.js\");\n/* harmony import */ var _tour_stop_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./tour_stop.js */ \"./esm/tours/tour_stop.js\");\n/* harmony import */ var _tour_player_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./tour_player.js */ \"./esm/tours/tour_player.js\");\n/* harmony import */ var _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./tour_editor.js */ \"./esm/tours/tour_editor.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The \"tour editor tab\" UX.\n//\n// This file defines `TourEditTab`; the types `TourEdit` and `TourEditor` are\n// defined in `tour_editor.js`.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.TourEditTab\n\nfunction TourEditTab() {\n this.musicTrack = new _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.SoundEditor();\n this.voiceTrack = new _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.SoundEditor();\n this._tour = null;\n this.tourStopList = new _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.TourStopList();\n this.tourEditorUI = new _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.TourEditor();\n this._contextMenu = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ContextMenuStrip();\n this.nextSlideCallback = null;\n this.playing = false;\n this._player = null;\n this._defultColor = _color_js__WEBPACK_IMPORTED_MODULE_6__.Colors.get_white();\n}\n\nvar TourEditTab$ = {\n setUiStrings: function () { },\n\n get_tour: function () {\n return this._tour;\n },\n\n set_tour: function (value) {\n this._tour = value;\n this.tourEditorUI.set_tour(this._tour);\n this.tourStopList.tour = this._tour;\n _overlay_js__WEBPACK_IMPORTED_MODULE_14__.Overlay.defaultAnchor = 1;\n if (this._tour.get_tourStops().length > 0) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.gotoTarget(this._tour.get_tourStops()[0].get_target(), false, true, false);\n this._tour.set_currentTourstopIndex(0);\n this.tourStopList.selectedItem = this._tour.get_currentTourstopIndex();\n this.musicTrack.target = this._tour.get_currentTourStop();\n this.voiceTrack.target = this._tour.get_currentTourStop();\n (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.setManagerVisibleLayerList)(this._tour.get_currentTourStop().layers);\n }\n this.setEditMode(this._tour.get_editMode());\n return value;\n },\n\n tour_CurrentTourstopChanged: function () {\n _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.tourEditorUI.selection);\n if (this.tourEditorUI != null) {\n this.tourEditorUI.clearSelection();\n }\n this.tourStopList.refresh();\n },\n\n setFocusedChild: function () { },\n\n selectCurrent: function () {\n this.tourStopList.selectedItem = this._tour.get_currentTourstopIndex();\n this.tourStopList.refresh();\n },\n\n tourEdit_Load: function (sender, e) { },\n\n playNow: function (fromStart) {\n this.playing = true;\n if (this.get_tour().get_editMode() || fromStart) {\n this.get_tour().set_currentTourstopIndex(-1);\n }\n this.setPlayPauseMode();\n },\n\n _tourPlayer_TourEnded: function (sender, e) { },\n\n _endTour_CloseTour: function (sender, e) { },\n\n _endTour_LaunchTour: function (sender, e) {\n this.playNow(true);\n },\n\n setEditMode: function (visible) { },\n\n tourStopList_ItemClicked: function (sender, e) {\n if (this._tour.get_currentTourStop() !== e) {\n this._tour.set_currentTourStop(e);\n if (e != null) {\n this.musicTrack.target = this._tour.get_currentTourStop();\n this.voiceTrack.target = this._tour.get_currentTourStop();\n }\n else {\n this.musicTrack.target = null;\n this.voiceTrack.target = null;\n }\n this.tourEditorUI.clearSelection();\n }\n if (this.playing) {\n this._playFromHere_Click(sender, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n },\n\n tourStopList_ItemDoubleClicked: function (sender, e) {\n this.showSlideStartPosition(e);\n },\n\n showSlideStartPosition: function (ts) {\n this._tour.set_currentTourStop(ts);\n if (ts != null) {\n this.musicTrack.target = this._tour.get_currentTourStop();\n this.voiceTrack.target = this._tour.get_currentTourStop();\n } else {\n this.musicTrack.target = null;\n this.voiceTrack.target = null;\n }\n this.tourEditorUI.clearSelection();\n if (this._tour.get_currentTourStop() != null) {\n this._tour.get_currentTourStop().syncSettings();\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_11__.SpaceTimeController.set_now(this._tour.get_currentTourStop().get_startTime());\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_11__.SpaceTimeController.set_syncToClock(false);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.gotoTarget(ts.get_target(), false, true, false);\n this._tour.get_currentTourStop().set_tweenPosition(0);\n this._tour.get_currentTourStop()._updateLayerOpacity();\n (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.setManagerVisibleLayerList)(this._tour.get_currentTourStop().layers);\n }\n },\n\n tourStopList_MouseClick: function (sender, e) {\n if (!this._tour.get_editMode()) {\n }\n if (this.tourStopList.multipleSelection) {\n // MultiSelection Menu\n if (this._contextMenu != null) {\n this._contextMenu._dispose();\n }\n this._contextMenu = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ContextMenuStrip();\n var selectAllMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(1345, 'Select All'));\n var cutMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(427, 'Cut'));\n var copyMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(428, 'Copy'));\n var pasteMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(429, 'Paste'));\n var deleteMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(167, 'Delete'));\n cutMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_cutMenu_Click', this);\n copyMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_copyMenu_Click', this);\n pasteMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_pasteMenu_Click', this);\n deleteMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_deleteMenu_Click', this);\n selectAllMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_selectAllMenu_Click', this);\n var sep1 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripSeparator();\n this._contextMenu.items.push(selectAllMenu);\n this._contextMenu.items.push(sep1);\n this._contextMenu.items.push(cutMenu);\n this._contextMenu.items.push(copyMenu);\n pasteMenu.enabled = this.tourEditorUI.clipboardType === 'WorldWideTelescope.Slide';\n this._contextMenu.items.push(pasteMenu);\n this._contextMenu.items.push(deleteMenu);\n this._contextMenu._show(_util_js__WEBPACK_IMPORTED_MODULE_9__.Cursor.get_position());\n } else if (this._tour.get_currentTourStop() == null) {\n // Context menu for no selection\n if (this._contextMenu != null) {\n this._contextMenu._dispose();\n }\n this._contextMenu = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ContextMenuStrip();\n var selectAllMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(1345, 'Select All'));\n var pasteMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(425, 'Paste'));\n var sep1 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripSeparator();\n var sep2 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripSeparator();\n var insertSlide = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(426, 'Add New Slide'));\n pasteMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_pasteMenu_Click', this);\n selectAllMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_selectAllMenu_Click', this);\n insertSlide.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_addNewSlide_Click', this);\n pasteMenu.enabled = this.tourEditorUI.clipboardType === 'WorldWideTelescope.Slide';\n this._contextMenu.items.push(selectAllMenu);\n this._contextMenu.items.push(sep1);\n this._contextMenu.items.push(pasteMenu);\n this._contextMenu.items.push(sep2);\n this._contextMenu.items.push(insertSlide);\n this._contextMenu._show(_util_js__WEBPACK_IMPORTED_MODULE_9__.Cursor.get_position());\n } else {\n if (this._contextMenu != null) {\n this._contextMenu._dispose();\n }\n this._contextMenu = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ContextMenuStrip();\n var selectAllMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(1345, 'Select All'));\n var cutMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(427, 'Cut'));\n var copyMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(428, 'Copy'));\n var pasteMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(429, 'Paste'));\n var deleteMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(167, 'Delete'));\n var sep1 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripSeparator();\n var sep3 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripSeparator();\n var sep4 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripSeparator();\n var sep5 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripSeparator();\n var sep6 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripSeparator();\n var sep7 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripSeparator();\n var insertSlide = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(431, 'Insert New Slide'));\n var insertDuplicate = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(627, 'Duplicate Slide at End Position'));\n var insertSlideshow = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(628, 'Merge Tour after slide...'));\n var playFromHere = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(432, 'Preview Tour From Here'));\n var sep2 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripSeparator();\n var captureThumbnail = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(433, 'Capture New Thumbnail'));\n var setSkyPosition = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(434, 'Set Start Camera Position'));\n var setEndSkyPosition = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(435, 'Set End Camera Position'));\n var showSkyPosition = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(436, 'Show Start Camera Position'));\n var showEndSkyPosition = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(437, 'Show End Camera Position'));\n var masterSlide = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(438, 'Master Slide'));\n var makeTimeline = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(1346, 'Create Timeline'));\n var showTimeline = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(1347, 'Show Timeline'));\n var linkString = this._tour.get_currentTourStop().get_nextSlide();\n switch (linkString) {\n case '':\n case null:\n case 'Next':\n linkString = ' (' + _util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(610, 'Next Slide') + ')';\n break;\n case 'Return':\n linkString = ' (' + _util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(602, 'Return to Caller') + ')';\n break;\n default:\n var index = this.get_tour().getTourStopIndexByID(linkString);\n if (index > -1) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._tour.get_tourStops()[index].get_description())) {\n linkString = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format(' (Slide {0})', index);\n }\n else {\n linkString = ' (' + this._tour.get_tourStops()[index].get_description() + ')';\n }\n }\n break;\n }\n var setNextSlide = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(590, 'Set Next Slide') + linkString);\n var trackSpaceTime = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(439, 'Track Date/Time/Location'));\n var fadeInOverlays = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(629, 'Fade In Slide Elements'));\n var properties = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(20, 'Properties'));\n var interpolation = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(1029, 'Animation Tween Type'));\n var Linear = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(1030, 'Linear'));\n var Ease = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(1031, 'Ease In/Out'));\n var EaseIn = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(1032, 'Ease In'));\n var EaseOut = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(1033, 'Ease Out'));\n var Exponential = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(1034, 'Exponential'));\n Linear.tag = 0;\n Ease.tag = 3;\n EaseIn.tag = 1;\n EaseOut.tag = 2;\n Exponential.tag = 4;\n Linear.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_interpolation_Click', this);\n Ease.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_interpolation_Click', this);\n EaseIn.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_interpolation_Click', this);\n EaseOut.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_interpolation_Click', this);\n Exponential.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_interpolation_Click', this);\n switch (this._tour.get_currentTourStop().get_interpolationType()) {\n case 0:\n Linear.checked = true;\n break;\n case 1:\n EaseIn.checked = true;\n break;\n case 2:\n EaseOut.checked = true;\n break;\n case 3:\n Ease.checked = true;\n break;\n case 4:\n Exponential.checked = true;\n break;\n default:\n break;\n }\n interpolation.dropDownItems.push(Linear);\n interpolation.dropDownItems.push(Ease);\n interpolation.dropDownItems.push(EaseIn);\n interpolation.dropDownItems.push(EaseOut);\n interpolation.dropDownItems.push(Exponential);\n selectAllMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_selectAllMenu_Click', this);\n insertDuplicate.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_insertDuplicate_Click', this);\n cutMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_cutMenu_Click', this);\n copyMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_copyMenu_Click', this);\n pasteMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_pasteMenu_Click', this);\n deleteMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_deleteMenu_Click', this);\n insertSlide.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_insertNewSlide_Click', this);\n properties.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_properties_Click', this);\n captureThumbnail.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_captureThumbnail_Click', this);\n setSkyPosition.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_setSkyPosition_Click', this);\n setEndSkyPosition.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_setEndSkyPosition_Click', this);\n showEndSkyPosition.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_showEndSkyPosition_Click', this);\n showSkyPosition.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_showSkyPosition_Click', this);\n playFromHere.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_playFromHere_Click', this);\n masterSlide.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_masterSlide_Click', this);\n setNextSlide.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_setNextSlide_Click', this);\n trackSpaceTime.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_trackSpaceTime_Click', this);\n insertSlideshow.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_insertSlideshow_Click', this);\n fadeInOverlays.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_fadeInOverlays_Click', this);\n if (this._tour.get_currentTourStop().get_masterSlide()) {\n masterSlide.checked = true;\n }\n if (this._tour.get_currentTourStop().get_hasTime()) {\n trackSpaceTime.checked = true;\n }\n fadeInOverlays.checked = this._tour.get_currentTourStop().get_fadeInOverlays();\n this._contextMenu.items.push(selectAllMenu);\n this._contextMenu.items.push(sep7);\n this._contextMenu.items.push(cutMenu);\n this._contextMenu.items.push(copyMenu);\n pasteMenu.enabled = this.tourEditorUI.clipboardType === 'WorldWideTelescope.Slide';\n this._contextMenu.items.push(pasteMenu);\n this._contextMenu.items.push(deleteMenu);\n this._contextMenu.items.push(sep1);\n this._contextMenu.items.push(insertSlide);\n this._contextMenu.items.push(insertDuplicate);\n this._contextMenu.items.push(insertSlideshow);\n this._contextMenu.items.push(sep2);\n this._contextMenu.items.push(playFromHere);\n this._contextMenu.items.push(sep3);\n this._contextMenu.items.push(setSkyPosition);\n this._contextMenu.items.push(setEndSkyPosition);\n this._contextMenu.items.push(sep4);\n this._contextMenu.items.push(showSkyPosition);\n this._contextMenu.items.push(showEndSkyPosition);\n this._contextMenu.items.push(sep5);\n this._contextMenu.items.push(captureThumbnail);\n this._contextMenu.items.push(sep6);\n this._contextMenu.items.push(masterSlide);\n this._contextMenu.items.push(setNextSlide);\n this._contextMenu.items.push(fadeInOverlays);\n this._contextMenu.items.push(trackSpaceTime);\n this._contextMenu.items.push(interpolation);\n this._contextMenu._show(_double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d.create(e.clientX, e.clientY));\n }\n },\n\n _selectAllMenu_Click: function (sender, e) {\n this.tourStopList.selectAll();\n },\n\n _interpolation_Click: function (sender, e) {\n var item = sender;\n this._tour.get_currentTourStop().set_interpolationType(item.tag);\n },\n\n _nextSlideChosen: function () {\n if (this._selectDialog.get_OK()) {\n this._tour.get_currentTourStop().set_nextSlide(this._selectDialog.get_id());\n }\n },\n\n _setNextSlide_Click: function (sender, e) {\n this._selectDialog = new _util_js__WEBPACK_IMPORTED_MODULE_9__.SelectLink(null);\n this.nextSlideCallback(this._selectDialog, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_nextSlideChosen', this));\n },\n\n _insertDuplicate_Click: function (sender, e) {\n _undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.push(new _undo_js__WEBPACK_IMPORTED_MODULE_15__.UndoTourSlidelistChange(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(530, 'Duplicate Slide at End Position'), this._tour));\n var ts = this._tour.get_currentTourStop().copy();\n if (ts == null) {\n return;\n }\n if (ts.get_endTarget() != null) {\n ts.get_endTarget().set_backgroundImageset(ts.get_target().get_backgroundImageset());\n ts.get_endTarget().set_studyImageset(ts.get_target().get_studyImageset());\n ts.set_target(ts.get_endTarget());\n ts.set_startTime(ts.get_endTime());\n ts.set_endTarget(null);\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(ts.get_overlays());\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.set_tweenFactor(1);\n overlay.set_animate(!overlay.get_animate());\n overlay.set_animate(!overlay.get_animate());\n }\n ts.set_tweenPosition(0);\n ts.set_fadeInOverlays(false);\n this._tour.insertAfterTourStop(ts);\n this.tourStopList.refresh();\n },\n\n _fadeInOverlays_Click: function (sender, e) {\n this._tour.get_currentTourStop().set_fadeInOverlays(!this._tour.get_currentTourStop().get_fadeInOverlays());\n },\n\n _insertSlideshow_Click: function (sender, e) { },\n\n _trackSpaceTime_Click: function (sender, e) {\n _undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_16__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(532, 'Track Time Edit'), this._tour));\n this._tour.get_currentTourStop().set_hasTime(!this._tour.get_currentTourStop().get_hasTime());\n },\n\n _masterSlide_Click: function (sender, e) {\n _undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_16__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(533, 'Master Slide State Edit'), this._tour));\n this._tour.get_currentTourStop().set_masterSlide(!this._tour.get_currentTourStop().get_masterSlide());\n this.tourStopList.refresh();\n },\n\n _playFromHere_Click: function (sender, e) {\n this.playFromCurrentTourstop();\n },\n\n playFromCurrentTourstop: function () {\n this.playing = true;\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.gotoTarget(this._tour.get_currentTourStop().get_target(), false, true, false);\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_11__.SpaceTimeController.set_now(this._tour.get_currentTourStop().get_startTime());\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_11__.SpaceTimeController.set_syncToClock(false);\n this.setPlayPauseMode();\n },\n\n playFromTourstop: function (ts) {\n this._tour.set_currentTourStop(ts);\n this.playFromCurrentTourstop();\n },\n\n _showSkyPosition_Click: function (sender, e) {\n if (this._tour.get_currentTourStop() != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.gotoTarget(this._tour.get_currentTourStop().get_target(), false, true, false);\n this._tour.get_currentTourStop().syncSettings();\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_11__.SpaceTimeController.set_now(this._tour.get_currentTourStop().get_startTime());\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_11__.SpaceTimeController.set_syncToClock(false);\n this._tour.get_currentTourStop().set_tweenPosition(0);\n (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.setManagerVisibleLayerList)(this._tour.get_currentTourStop().layers);\n this.tourStopList.refresh();\n }\n },\n\n _showEndSkyPosition_Click: function (sender, e) {\n this._tour.get_currentTourStop().set_tweenPosition(1);\n this._tour.get_currentTourStop()._updateLayerOpacity();\n if (this._tour.get_currentTourStop() != null && this._tour.get_currentTourStop().get_endTarget() != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.gotoTargetFull(false, true, this._tour.get_currentTourStop().get_endTarget().get_camParams(), this._tour.get_currentTourStop().get_target().get_studyImageset(), this._tour.get_currentTourStop().get_target().get_backgroundImageset());\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.set_solarSystemTrack(this._tour.get_currentTourStop().get_endTarget().get_target());\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_11__.SpaceTimeController.set_now(this._tour.get_currentTourStop().get_endTime());\n this._tour.get_currentTourStop().syncSettings();\n (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.setManagerVisibleLayerList)(this._tour.get_currentTourStop().layers);\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_11__.SpaceTimeController.set_syncToClock(false);\n this.tourStopList.refresh();\n this.tourEditorUI.clearSelection();\n }\n },\n\n _setEndSkyPosition_Click: function (sender, e) {\n if (this._tour.get_currentTourStop() != null) {\n _undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_16__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(435, 'Set End Camera Position'), this._tour));\n var newPlace = _place_js__WEBPACK_IMPORTED_MODULE_10__.Place.createCameraParams('End Place', _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.copy(), 268435456, _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.constellation, _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_backgroundImageset().get_dataSetType(), _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_solarSystemTrack());\n this._tour.get_currentTourStop().set_endTarget(newPlace);\n this._tour.get_currentTourStop().get_endTarget().set_constellation(_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.constellation);\n this._tour.get_currentTourStop().set_endTime(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_11__.SpaceTimeController.get_now());\n this._tour.get_currentTourStop().set_tweenPosition(1);\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this._tour.get_currentTourStop().layers));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var info = this._tour.get_currentTourStop().layers[key];\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists(_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_13__.LayerManager.get_layerList(), info.id)) {\n info.endOpacity = _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_13__.LayerManager.get_layerList()[info.id].get_opacity();\n info.endParams = _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_13__.LayerManager.get_layerList()[info.id].getParams();\n }\n }\n this._tour.get_currentTourStop()._updateLayerOpacity();\n this.tourStopList.refresh();\n _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.TimeLine.refreshUi();\n this.tourEditorUI.clearSelection();\n }\n },\n\n _setSkyPosition_Click: function (sender, e) {\n if (this._tour.get_currentTourStop() != null) {\n _undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_16__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(434, 'Set Start Camera Position'), this._tour));\n this._tour.get_currentTourStop().get_target().set_target(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_solarSystemTrack());\n this._tour.get_currentTourStop().get_target().set_type(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_backgroundImageset().get_dataSetType());\n this._tour.get_currentTourStop().get_target().set_camParams(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.copy());\n this._tour.get_currentTourStop().get_target().set_constellation(_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.constellation);\n this._tour.get_currentTourStop().get_target().set_studyImageset(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_foregroundImageset());\n this._tour.get_currentTourStop().get_target().set_type(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_backgroundImageset().get_dataSetType());\n this._tour.get_currentTourStop().get_target().set_backgroundImageset(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_backgroundImageset().get_stockImageSet());\n this._tour.get_currentTourStop().captureSettings();\n this._tour.get_currentTourStop().layers = _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_13__.LayerManager._getVisibleLayerList(this._tour.get_currentTourStop().layers);\n this._tour.get_currentTourStop().set_tweenPosition(0);\n this.tourStopList.refresh();\n _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.TimeLine.refreshUi();\n this.tourEditorUI.clearSelection();\n }\n },\n\n _captureThumbnail_Click: function (sender, e) {\n if (this._tour.get_currentTourStop() != null) {\n this._captureThumbnail(this._tour.get_currentTourStop());\n }\n },\n\n _captureThumbnail: function (tourStop) {\n var $this = this;\n\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.captureThumbnail(function (blob) {\n var filename = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0}.thumb.png', tourStop.get_id());\n $this._tour.addCachedFile(filename, blob);\n tourStop.set_thumbnail($this._tour.getCachedTexture(filename, function () {\n $this.tourStopList.refresh();\n }));\n });\n },\n\n _properties_Click: function (sender, e) {\n throw new Error('The method or operation is not implemented.');\n },\n\n tourStopList_AddNewSlide: function (sender, e) {\n this.addSlide(false);\n this.tourStopList.ensureAddVisible();\n },\n\n _addNewSlide_Click: function (sender, e) {\n this.addSlide(false);\n this.tourStopList.ensureAddVisible();\n },\n\n _insertNewSlide_Click: function (sender, e) {\n this.addSlide(true);\n },\n\n addSlide: function (insert) {\n _undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.push(new _undo_js__WEBPACK_IMPORTED_MODULE_15__.UndoTourSlidelistChange(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(426, 'Add New Slide'), this._tour));\n _util_js__WEBPACK_IMPORTED_MODULE_9__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_9__.Cursors.get_waitCursor());\n var placeName = 'Current Screen';\n var newPlace = _place_js__WEBPACK_IMPORTED_MODULE_10__.Place.createCameraParams(placeName, _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.viewCamera.copy(), 268435456, _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.constellation, _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_backgroundImageset().get_dataSetType(), _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_solarSystemTrack());\n newPlace.set_studyImageset(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_foregroundImageset());\n newPlace.set_backgroundImageset(_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.get_backgroundImageset().get_stockImageSet());\n var newTourStop = _tour_stop_js__WEBPACK_IMPORTED_MODULE_16__.TourStop.create(newPlace);\n if (insert) {\n this._tour.insertTourStop(newTourStop);\n } else {\n this._tour.addTourStop(newTourStop);\n }\n if (this._tour.get_currentTourStop() != null) {\n this.musicTrack.target = this._tour.get_currentTourStop();\n this.voiceTrack.target = this._tour.get_currentTourStop();\n } else {\n this.musicTrack.target = null;\n this.voiceTrack.target = null;\n }\n this._tour.get_currentTourStop().layers = _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_13__.LayerManager._getVisibleLayerList(this._tour.get_currentTourStop().layers);\n this._captureThumbnail(newTourStop);\n this.tourStopList.selectedItem = this.tourStopList.findItem(newTourStop);\n this.tourStopList.refresh();\n this.tourEditorUI.clearSelection();\n _util_js__WEBPACK_IMPORTED_MODULE_9__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_9__.Cursors.get_defaultV());\n _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.TimeLine.refreshUi();\n },\n\n _deleteMenu_Click: function (sender, e) {\n _undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.push(new _undo_js__WEBPACK_IMPORTED_MODULE_15__.UndoTourSlidelistChange(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(534, 'Delete Slide'), this._tour));\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.tourStopList.selectedItems));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var item = this.tourStopList.selectedItems[key];\n this._tour.removeTourStop(item);\n }\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(this.tourStopList.selectedItems);\n this.tourStopList.selectedItem = -1;\n this._tour.set_currentTourStop(null);\n this.musicTrack.target = null;\n this.voiceTrack.target = null;\n this.tourStopList.refresh();\n this.tourEditorUI.clearSelection();\n },\n\n _pasteMenu_Click: function (sender, e) {\n if (this.tourEditorUI.clipboardType === 'WorldWideTelescope.Slide') {\n _undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.push(new _undo_js__WEBPACK_IMPORTED_MODULE_15__.UndoTourSlidelistChange(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(535, 'Paste Slide'), this._tour));\n var xParser = new DOMParser();\n var doc = xParser.parseFromString(this.tourEditorUI.clipboardData, 'text/xml');\n var node = _baseutil_js__WEBPACK_IMPORTED_MODULE_5__.Util.selectSingleNode(doc, 'TourStops');\n var pasteStack = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.Stack();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(node.childNodes);\n while ($enum1.moveNext()) {\n var child = $enum1.current;\n if (child.nodeName === 'TourStop') {\n var ts = _tour_stop_js__WEBPACK_IMPORTED_MODULE_16__.TourStop._fromXml(this._tour, child);\n ts.set_id(_util_js__WEBPACK_IMPORTED_MODULE_9__.Guid.newGuid().toString());\n pasteStack.push(ts);\n }\n }\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(this.tourStopList.selectedItems);\n var curIndex = this.tourStopList.selectedItem + pasteStack.count - 1;\n while (pasteStack.count > 0) {\n var ts = pasteStack.pop();\n this._tour.insertTourStop(ts);\n this.tourStopList.selectedItems[curIndex--] = ts;\n }\n this.tourStopList.refresh();\n this.tourEditorUI.clearSelection();\n }\n },\n\n _copyMenu_Click: function (sender, e) {\n var writer = new _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_7__.XmlTextWriter();\n writer._writeProcessingInstruction('xml', \"version='1.0' encoding='UTF-8'\");\n writer._writeStartElement('TourStops');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.tourStopList.selectedItems));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var item = this.tourStopList.selectedItems[key];\n item._saveToXml(writer, true);\n }\n writer._writeEndElement();\n this.tourEditorUI.clipboardType = 'WorldWideTelescope.Slide';\n this.tourEditorUI.clipboardData = writer.body;\n },\n\n _cutMenu_Click: function (sender, e) {\n _undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.push(new _undo_js__WEBPACK_IMPORTED_MODULE_15__.UndoTourSlidelistChange(_util_js__WEBPACK_IMPORTED_MODULE_9__.Language.getLocalizedText(536, 'Cut Slide'), this._tour));\n this._copyMenu_Click(sender, e);\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.tourStopList.selectedItems));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var item = this.tourStopList.selectedItems[key];\n this._tour.removeTourStop(item);\n }\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(this.tourStopList.selectedItems);\n this.tourStopList.refresh();\n this.tourEditorUI.clearSelection();\n },\n\n pauseTour: function () {\n if (this.playing) {\n this.playing = false;\n }\n this.setPlayPauseMode();\n },\n\n preview_Click: function (sender, e) {\n this.playing = !this.playing;\n if (this.playing && this._tour.get_editMode()) {\n this.get_tour().set_currentTourstopIndex(-1);\n }\n this.setPlayPauseMode();\n },\n\n setPlayPauseMode: function () {\n if (this._tour.get_editMode()) {\n if (this.playing) {\n if (this._player == null) {\n this._player = new _tour_player_js__WEBPACK_IMPORTED_MODULE_17__.TourPlayer();\n }\n this._player.set_tour(this._tour);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.uiController = this._player;\n this._player.play();\n this.tourStopList.showAddButton = false;\n }\n else {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.uiController = this.tourEditorUI;\n if (this._player != null) {\n this._player.stop(false);\n }\n this._player = null;\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.set__mover(null);\n this.tourStopList.showAddButton = this._tour.get_editMode();\n }\n } else {\n if (this.playing) {\n if (this._player == null) {\n this._player = new _tour_player_js__WEBPACK_IMPORTED_MODULE_17__.TourPlayer();\n }\n this._player.set_tour(this._tour);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.uiController = this._player;\n this._player.play();\n this.tourStopList.showAddButton = false;\n }\n else {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.uiController = null;\n _render_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalRenderContext.freezeView();\n if (this._player != null) {\n this._player.stop(false);\n }\n this._player = null;\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.uiController = null;\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalWWTControl.set__mover(null);\n this.tourStopList.showAddButton = this._tour.get_editMode();\n }\n }\n this.tourStopList.refresh();\n },\n\n playerTimer_Tick: function (sender, e) {\n if (this.playing) {\n if (this._player != null) {\n if (!_tour_player_js__WEBPACK_IMPORTED_MODULE_17__.TourPlayer.get_playing()) {\n this.playing = false;\n this.setPlayPauseMode();\n }\n else {\n if (this.tourStopList.selectedItem !== this._tour.get_currentTourstopIndex()) {\n this.tourStopList.selectedItem = this._tour.get_currentTourstopIndex();\n }\n }\n }\n }\n },\n\n insertShapeCircle_Click: function (sender, e) {\n this.tourEditorUI.addShape('', 0);\n },\n\n insertShapeRectangle_Click: function (sender, e) {\n this.tourEditorUI.addShape('', 1);\n },\n\n insertShapeLine_Click: function (sender, e) {\n this.tourEditorUI.addShape('', 5);\n },\n\n insertDonut_Click: function (sender, e) {\n this.tourEditorUI.addShape('', 3);\n },\n\n _addArrow_Click: function (sender, e) {\n this.tourEditorUI.addShape('', 4);\n },\n\n insertVideo_Click: function (sender, e) { },\n\n insertAudio_Click: function (sender, e) { },\n\n insertHyperlink_Click: function (sender, e) { },\n\n colorPicker_Click: function (sender, e) { },\n\n tourEditTab_Leave: function (sender, e) { },\n\n editTourProperties_Click: function (sender, e) { },\n\n saveTour_Click: function (sender, e) {\n this.save(false);\n },\n\n save: function (saveAs) {\n return true;\n },\n\n addVideo_Click: function (sender, e) { },\n\n addPicture_Click: function (sender, e) { },\n\n addShape_Click: function (sender, e) { },\n\n _addOpenRectangle_Click: function (sender, e) {\n this.tourEditorUI.addShape('', 6);\n },\n\n _addStar_Click: function (sender, e) {\n this.tourEditorUI.addShape('', 2);\n },\n\n addText_Click: function (sender, e) { },\n\n preview_EnabledChanged: function (sender, e) {\n if (this.playing) {\n } else {\n }\n },\n\n preview_MouseEnter: function (sender, e) { },\n\n preview_MouseLeave: function (sender, e) { },\n\n preview_MouseUp: function (sender, e) { },\n\n preview_MouseDown: function (sender, e) { },\n\n tourStopList_ItemHover: function (sender, e) { },\n\n refresh: function () { },\n\n undoStep: function () {\n if (_undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.peekAction()) {\n _undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.stepBack();\n this.tourStopList.refresh();\n this.tourStopList.selectedItem = this._tour.get_currentTourstopIndex();\n this.showSlideStartPosition(this._tour.get_currentTourStop());\n this.refresh();\n _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.tourEditorUI.selection);\n }\n },\n\n redoStep: function () {\n if (_undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.peekRedoAction()) {\n _undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.stepForward();\n this.tourStopList.refresh();\n this.tourStopList.selectedItem = this._tour.get_currentTourstopIndex();\n this.showSlideStartPosition(this._tour.get_currentTourStop());\n this.refresh();\n _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.tourEditorUI.selection);\n }\n },\n\n tourStopList_ShowEndPosition: function (sender, e) {\n this._showEndSkyPosition_Click(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n },\n\n tourStopList_ShowStartPosition: function (sender, e) {\n this.showSlideStartPosition(this.get_tour().get_currentTourStop());\n this.tourEditorUI.clearSelection();\n },\n\n tourStopList_KeyDown: function (sender, e) {\n if (e.ctrlKey) {\n switch (e.keyCode) {\n case 67:\n this._copyMenu_Click(null, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n break;\n case 86:\n this._pasteMenu_Click(null, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n break;\n case 88:\n this._cutMenu_Click(null, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n break;\n case 90:\n if (_undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.peekAction()) {\n _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.TourEdit._undoStep();\n }\n else {\n _ui_tools_js__WEBPACK_IMPORTED_MODULE_12__.UiTools._beep();\n }\n break;\n case 89:\n if (_undo_js__WEBPACK_IMPORTED_MODULE_15__.Undo.peekRedoAction()) {\n _tour_editor_js__WEBPACK_IMPORTED_MODULE_18__.TourEdit._redoStep();\n }\n else {\n _ui_tools_js__WEBPACK_IMPORTED_MODULE_12__.UiTools._beep();\n }\n break;\n }\n }\n if (e.keyCode === 46) {\n this._deleteMenu_Click(null, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n },\n\n _ensureSelectedVisible: function () {\n this.tourStopList.ensureSelectedVisible();\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TourEditTab\", [TourEditTab, TourEditTab$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/tours/tour_editor.js\":\n/*!**********************************!*\\\n !*** ./esm/tours/tour_editor.js ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ OverlayList: () => (/* binding */ OverlayList),\n/* harmony export */ SoundEditor: () => (/* binding */ SoundEditor),\n/* harmony export */ TimeLine: () => (/* binding */ TimeLine),\n/* harmony export */ TourEdit: () => (/* binding */ TourEdit),\n/* harmony export */ TourEditor: () => (/* binding */ TourEditor),\n/* harmony export */ TourStopList: () => (/* binding */ TourStopList)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _utilities_color_picker_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utilities/color_picker.js */ \"./esm/utilities/color_picker.js\");\n/* harmony import */ var _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utilities/context_menu_strip.js */ \"./esm/utilities/context_menu_strip.js\");\n/* harmony import */ var _utilities_simple_input_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utilities/simple_input.js */ \"./esm/utilities/simple_input.js\");\n/* harmony import */ var _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utilities/xml_text_writer.js */ \"./esm/utilities/xml_text_writer.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _ui_tools_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../ui_tools.js */ \"./esm/ui_tools.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n/* harmony import */ var _overlay_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./overlay.js */ \"./esm/tours/overlay.js\");\n/* harmony import */ var _selection_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./selection.js */ \"./esm/tours/selection.js\");\n/* harmony import */ var _undo_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./undo.js */ \"./esm/tours/undo.js\");\n/* harmony import */ var _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./tour_stop.js */ \"./esm/tours/tour_stop.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Infrastructure for editing tours.\n//\n// This file defines `TourEdit` and `TourEditor`, among others; the type\n// `TourEditTab` is defined in `tour_edit.js`.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.TourEditor\n\nfunction TourEditor() {\n this.selection = new _selection_js__WEBPACK_IMPORTED_MODULE_15__.Selection();\n this._contextMenu = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ContextMenuStrip();\n this._tour = null;\n this._mouseDown = false;\n this._selectionAction = 11;\n this._needUndoFrame = false;\n this._contextPoint = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d();\n this._dragCopying = false;\n this._brokeThreshold = false;\n this.nextSlideCallback = null;\n this.clipboardData = '';\n this.clipboardType = '';\n this.editTextCallback = null;\n this._defaultColor = _color_js__WEBPACK_IMPORTED_MODULE_4__.Colors.get_white();\n}\n\nTourEditor.capturing = false;\nTourEditor.currentEditor = null;\n\nvar TourEditor$ = {\n render: function (renderContext) {\n renderContext.setupMatricesOverlays();\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return;\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._tour.get_currentTourStop().get_overlays());\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n if (overlay.get_animate() && this.get_tour().get_currentTourStop().get_keyFramed()) {\n overlay.set_tweenFactor(this._tour.get_currentTourStop().get_tweenPosition());\n }\n else if (!this.get_tour().get_currentTourStop().get_keyFramed()) {\n overlay.set_tweenFactor((this._tour.get_currentTourStop().get_tweenPosition() < 0.5) ? 0 : 1);\n }\n overlay.draw3D(renderContext, true);\n }\n this.selection.draw3D(renderContext, 1);\n if (TourEditor.currentEditor != null) {\n TourEditor.currentEditor.render(renderContext);\n }\n _settings_js__WEBPACK_IMPORTED_MODULE_11__.Settings.tourSettings = null;\n },\n\n get_tour: function () {\n return this._tour;\n },\n\n set_tour: function (value) {\n this._tour = value;\n return value;\n },\n\n close: function () {\n if (this._tour != null) {\n // todo check for changes\n this._tour = null;\n this.set_focus(null);\n }\n },\n\n clearSelection: function () {\n this.selection.clearSelection();\n OverlayList._updateOverlayListSelection(this.selection);\n this.set_focus(null);\n },\n\n get_focus: function () {\n return this.selection.get_focus();\n },\n\n set_focus: function (value) {\n this.selection.set_focus(value);\n return value;\n },\n\n pointToView: function (pnt) {\n var clientHeight = _render_globals_js__WEBPACK_IMPORTED_MODULE_10__.globalRenderContext.height;\n var clientWidth = _render_globals_js__WEBPACK_IMPORTED_MODULE_10__.globalRenderContext.width;\n var viewWidth = (_render_globals_js__WEBPACK_IMPORTED_MODULE_10__.globalRenderContext.width / _render_globals_js__WEBPACK_IMPORTED_MODULE_10__.globalRenderContext.height) * 1116;\n var x = ((pnt.x) / (clientWidth) * viewWidth) - ((viewWidth - 1920) / 2);\n var y = (pnt.y) / clientHeight * 1116;\n return _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(x, y);\n },\n\n mouseDown: function (sender, e) {\n this._brokeThreshold = false;\n this._needUndoFrame = true;\n var location = this.pointToView(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(e.offsetX, e.offsetY));\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n this._needUndoFrame = false;\n return false;\n }\n if (TourEditor.currentEditor != null) {\n if (TourEditor.currentEditor.mouseDown(sender, e)) {\n return true;\n }\n }\n if (this.get_focus() != null) {\n if (this.selection.get_multiSelect()) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n if (overlay.hitTest(location)) {\n this._selectionAction = 9;\n this._mouseDown = true;\n this._pointDown = location;\n this.set_focus(overlay);\n if (e.ctrlKey) {\n this._dragCopying = true;\n }\n return true;\n }\n }\n }\n else {\n if (this.get_focus().hitTest(location)) {\n this._selectionAction = 9;\n this._mouseDown = true;\n this._pointDown = location;\n if (e.ctrlKey) {\n this._dragCopying = true;\n }\n return true;\n }\n }\n var hit = this.selection.hitTest(location);\n if (hit !== 11) {\n this._selectionAction = hit;\n this._mouseDown = true;\n if (hit === 8) {\n this._pointDown = location;\n }\n else {\n this._pointDown = this.selection.pointToSelectionSpace(location);\n }\n return true;\n }\n }\n for (var i = this._tour.get_currentTourStop().get_overlays().length - 1; i >= 0; i--) {\n if (this._tour.get_currentTourStop().get_overlays()[i].hitTest(location)) {\n this._selectionAction = 9;\n this.set_focus(this._tour.get_currentTourStop().get_overlays()[i]);\n if (e.ctrlKey || e.shiftKey) {\n this.selection.addSelection(this.get_focus());\n }\n else {\n this.selection.setSelection(this.get_focus());\n }\n OverlayList._updateOverlayListSelection(this.selection);\n this._mouseDown = true;\n this._pointDown = location;\n return true;\n }\n }\n this.set_focus(null);\n this.clearSelection();\n this._needUndoFrame = false;\n return false;\n },\n\n mouseUp: function (sender, e) {\n this._brokeThreshold = false;\n if (TourEditor.currentEditor != null) {\n if (TourEditor.currentEditor.mouseUp(sender, e)) {\n return true;\n }\n }\n this._contextPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(e.offsetX, e.offsetY);\n if (this._mouseDown) {\n this._mouseDown = false;\n if (e.button === 2) {\n if (this.get_focus() != null) {\n this.showSelectionContextMenu(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(e.offsetX, e.offsetY));\n }\n }\n return true;\n }\n if (e.button === 2) {\n if (this.get_focus() == null) {\n this._showNoSelectionContextMenu(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(e.offsetX, e.offsetY));\n }\n return true;\n }\n return false;\n },\n\n mouseMove: function (sender, e) {\n if (TourEditor.currentEditor != null) {\n if (TourEditor.currentEditor.mouseMove(sender, e)) {\n return true;\n }\n }\n var location = this.pointToView(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(e.offsetX, e.offsetY));\n if (this._mouseDown && this.get_focus() != null) {\n var undoFrame = null;\n var actionText = _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(502, 'Edit');\n if (this._needUndoFrame) {\n undoFrame = new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(502, 'Edit'), this._tour);\n }\n var moveX;\n var moveY;\n if (this._selectionAction !== 9 && this._selectionAction !== 8) {\n var newPoint = this.selection.pointToSelectionSpace(location);\n moveX = newPoint.x - this._pointDown.x;\n moveY = newPoint.y - this._pointDown.y;\n this._pointDown = newPoint;\n }\n else {\n moveX = location.x - this._pointDown.x;\n moveY = location.y - this._pointDown.y;\n if (this._selectionAction === 9 && !this._brokeThreshold) {\n if (Math.abs(moveX) > 3 || Math.abs(moveY) > 3) {\n this._brokeThreshold = true;\n }\n else {\n return true;\n }\n }\n this._pointDown = location;\n }\n if (this._dragCopying) {\n if (this.selection.get_multiSelect()) {\n var set = this.selection.selectionSet;\n this.clearSelection();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(set);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n var newOverlay = this.addOverlay(overlay);\n newOverlay.set_x(overlay.get_x());\n newOverlay.set_y(overlay.get_y());\n this.set_focus(newOverlay);\n this.selection.addSelection(this.get_focus());\n }\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n this._dragCopying = false;\n }\n else {\n var newOverlay = this.addOverlay(this.get_focus());\n newOverlay.set_x(this.get_focus().get_x());\n newOverlay.set_y(this.get_focus().get_y());\n this.set_focus(newOverlay);\n this.selection.setSelection(this.get_focus());\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n this._dragCopying = false;\n }\n }\n var aspect = this.get_focus().get_width() / this.get_focus().get_height();\n var center = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(this.get_focus().get_x(), this.get_focus().get_y());\n if (e.ctrlKey) {\n actionText = _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(537, 'Resize');\n switch (this._selectionAction) {\n case 0:\n this.get_focus().set_width(Math.max(2, this.get_focus().get_width() - moveX * 2));\n this.get_focus().set_height(Math.max(2, this.get_focus().get_height() - (moveX / aspect) * 2));\n break;\n case 1:\n this.get_focus().set_height(Math.max(2, this.get_focus().get_height() - moveY * 2));\n break;\n case 2:\n this.get_focus().set_width(Math.max(2, this.get_focus().get_width() + moveX * 2));\n this.get_focus().set_height(Math.max(2, this.get_focus().get_height() + (moveX / aspect) * 2));\n break;\n case 3:\n this.get_focus().set_width(Math.max(2, this.get_focus().get_width() + moveX * 2));\n break;\n case 4:\n this.get_focus().set_width(Math.max(2, this.get_focus().get_width() + moveX * 2));\n this.get_focus().set_height(Math.max(2, this.get_focus().get_height() + (moveX / aspect) * 2));\n break;\n case 5:\n this.get_focus().set_height(Math.max(2, this.get_focus().get_height() + moveY * 2));\n break;\n case 6:\n this.get_focus().set_width(Math.max(2, this.get_focus().get_width() - moveX * 2));\n this.get_focus().set_height(Math.max(2, this.get_focus().get_height() - (moveX / aspect) * 2));\n break;\n case 7:\n this.get_focus().set_width(Math.max(2, this.get_focus().get_width() - moveX * 2));\n break;\n case 8:\n actionText = _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(538, 'Rotate');\n this.get_focus().set_rotationAngle(this.get_focus().get_rotationAngle() + moveX / 10);\n break;\n case 9:\n actionText = _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(539, 'Drag Copy');\n center.x += moveX;\n center.y += moveY;\n break;\n case 10:\n break;\n case 11:\n break;\n default:\n break;\n }\n }\n else {\n if (this._selectionAction !== 8 && this._selectionAction !== 9) {\n if (moveX > (this.get_focus().get_width() - 2)) {\n moveX = 0;\n }\n if (moveY > (this.get_focus().get_height() - 2)) {\n moveY = 0;\n }\n }\n actionText = _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(537, 'Resize');\n switch (this._selectionAction) {\n case 0:\n this.get_focus().set_width(this.get_focus().get_width() - moveX);\n this.get_focus().set_height(this.get_focus().get_height() - (moveX / aspect));\n center.x += (moveX / 2);\n center.y += ((moveX / aspect) / 2);\n break;\n case 1:\n this.get_focus().set_height(this.get_focus().get_height() - moveY);\n center.y += (moveY / 2);\n break;\n case 2:\n this.get_focus().set_width(this.get_focus().get_width() + moveX);\n this.get_focus().set_height(this.get_focus().get_height() + (moveX / aspect));\n center.x += (moveX / 2);\n center.y -= ((moveX / aspect) / 2);\n break;\n case 3:\n this.get_focus().set_width(this.get_focus().get_width() + moveX);\n center.x += (moveX / 2);\n break;\n case 4:\n this.get_focus().set_width(this.get_focus().get_width() + moveX);\n this.get_focus().set_height(this.get_focus().get_height() + (moveX / aspect));\n center.x += (moveX / 2);\n center.y += ((moveX / aspect) / 2);\n break;\n case 5:\n this.get_focus().set_height(this.get_focus().get_height() + moveY);\n center.y += (moveY / 2);\n break;\n case 6:\n this.get_focus().set_width(this.get_focus().get_width() - moveX);\n this.get_focus().set_height(this.get_focus().get_height() - (moveX / aspect));\n center.x += (moveX / 2);\n center.y -= ((moveX / aspect) / 2);\n break;\n case 7:\n this.get_focus().set_width(this.get_focus().get_width() - moveX);\n center.x += (moveX / 2);\n break;\n case 8:\n actionText = _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(538, 'Rotate');\n this.get_focus().set_rotationAngle(this.get_focus().get_rotationAngle() + moveX);\n break;\n case 9:\n actionText = _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(540, 'Move');\n center.x += moveX;\n center.y += moveY;\n break;\n case 10:\n break;\n case 11:\n break;\n default:\n break;\n }\n }\n if (this._selectionAction !== 9 && this._selectionAction !== 8) {\n center = this.selection.pointToScreenSpace(center);\n }\n if (this.selection.get_multiSelect()) {\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum2.moveNext()) {\n var overlay = $enum2.current;\n overlay.set_x(overlay.get_x() + moveX);\n overlay.set_y(overlay.get_y() + moveY);\n }\n }\n else {\n this.get_focus().set_x(center.x);\n this.get_focus().set_y(center.y);\n }\n if (this._needUndoFrame) {\n this._needUndoFrame = false;\n undoFrame.set_actionText(actionText);\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(undoFrame);\n }\n } else {\n if (this.get_focus() != null) {\n if (this.get_focus().hitTest(location)) {\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeAll());\n return false;\n }\n var hit = this.selection.hitTest(location);\n if (hit === 11) {\n return false;\n }\n switch (hit) {\n case 0:\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeNWSE());\n break;\n case 1:\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeNS());\n break;\n case 2:\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeNESW());\n break;\n case 3:\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeWE());\n break;\n case 4:\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeNWSE());\n break;\n case 5:\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeNS());\n break;\n case 6:\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeNESW());\n break;\n case 7:\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeWE());\n break;\n case 8:\n _util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.set_current(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursors.get_sizeWE());\n break;\n case 10:\n break;\n case 11:\n break;\n default:\n break;\n }\n }\n }\n return false;\n },\n\n _showNoSelectionContextMenu: function (position) {\n if (this._contextMenu != null) {\n this._contextMenu._dispose();\n }\n if (this._tour.get_currentTourStop() == null) {\n return;\n }\n this._contextMenu = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ContextMenuStrip();\n var pasteMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(425, 'Paste'));\n pasteMenu.enabled = this.clipboardType === 'WorldWideTelescope.Overlay';\n pasteMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_pasteMenu_Click', this);\n this._contextMenu.items.push(pasteMenu);\n this._contextMenu._show(position);\n },\n\n _addOpenRectangle_Click: function (sender, e) {\n this.addShape('', 6);\n },\n\n _addStar_Click: function (sender, e) {\n this.addShape('', 2);\n },\n\n _insertShapeCircle_Click: function (sender, e) {\n this.addShape('', 0);\n },\n\n _insertShapeRectangle_Click: function (sender, e) {\n this.addShape('', 1);\n },\n\n _insertShapeLine_Click: function (sender, e) {\n this.addShape('', 5);\n },\n\n _insertDonut_Click: function (sender, e) {\n this.addShape('', 3);\n },\n\n _addArrow_Click: function (sender, e) {\n this.addShape('', 4);\n },\n\n showSelectionContextMenu: function (position) {\n if (this.get_focus() == null) {\n return;\n }\n var multiSelect = this.selection.get_multiSelect();\n if (this._contextMenu != null) {\n this._contextMenu._dispose();\n }\n this._contextMenu = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ContextMenuStrip();\n var cutMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(427, 'Cut'));\n var copyMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(428, 'Copy'));\n var pasteMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(425, 'Paste'));\n var deleteMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(167, 'Delete'));\n var sep1 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripSeparator();\n var sep2 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripSeparator();\n var sep3 = new _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripSeparator();\n var bringToFront = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(452, 'Bring to Front'));\n var sendToBack = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(453, 'Send to Back'));\n var bringForward = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(454, 'Bring Forward'));\n var sendBackward = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(455, 'Send Backward'));\n var properties = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(20, 'Properties'));\n var editText = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(502, 'Edit'));\n var url = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(587, 'Hyperlink'));\n var linkString = this.get_focus().get_linkID();\n switch (this.get_focus().get_linkID()) {\n case '':\n case null:\n linkString = ' (' + _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(609, 'No Link') + ')';\n break;\n case 'Next':\n linkString = ' (' + _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(610, 'Next Slide') + ')';\n break;\n case 'Return':\n linkString = ' (' + _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(602, 'Return to Caller') + ')';\n break;\n default:\n var index = this.get_tour().getTourStopIndexByID(this.get_focus().get_linkID());\n if (index > -1) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._tour.get_tourStops()[index].get_description())) {\n linkString = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format(' (' + _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1340, 'Slide') + ' {0})', index);\n }\n else {\n linkString = ' (' + this._tour.get_tourStops()[index].get_description() + ')';\n }\n }\n break;\n }\n var animateMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(588, 'Animate'));\n var linkID = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(589, 'Link to Slide') + linkString);\n var pickColor = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(458, 'Color/Opacity'));\n var flipbookProperties = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(630, 'Flipbook Properties'));\n var interpolateMenu = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1029, 'Animation Tween Type'));\n var Linear = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1030, 'Linear'));\n var Ease = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1031, 'Ease In/Out'));\n var EaseIn = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1032, 'Ease In'));\n var EaseOut = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1033, 'Ease Out'));\n var Exponential = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1034, 'Exponential'));\n var Default = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1035, 'Slide Default'));\n var Align = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(790, 'Align'));\n var AlignTop = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1333, 'Top'));\n var AlignBottom = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1334, 'Bottom'));\n var AlignLeft = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1335, 'Left'));\n var AlignRight = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1336, 'Right'));\n var AlignHorizon = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1337, 'Horizontal'));\n var AlignVertical = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1338, 'Vertical'));\n var AlignCenter = _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__.ToolStripMenuItem.create(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1339, 'Centered'));\n Align.dropDownItems.push(AlignTop);\n Align.dropDownItems.push(AlignBottom);\n Align.dropDownItems.push(AlignLeft);\n Align.dropDownItems.push(AlignRight);\n Align.dropDownItems.push(AlignHorizon);\n Align.dropDownItems.push(AlignVertical);\n Align.dropDownItems.push(AlignCenter);\n Linear.tag = 0;\n Ease.tag = 3;\n EaseIn.tag = 1;\n EaseOut.tag = 2;\n Exponential.tag = 4;\n Default.tag = 5;\n Linear.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_interpolation_Click', this);\n Ease.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_interpolation_Click', this);\n EaseIn.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_interpolation_Click', this);\n EaseOut.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_interpolation_Click', this);\n Exponential.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_interpolation_Click', this);\n Default.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_interpolation_Click', this);\n switch (this.get_focus().get_interpolationType()) {\n case 0:\n Linear.checked = true;\n break;\n case 1:\n EaseIn.checked = true;\n break;\n case 2:\n EaseOut.checked = true;\n break;\n case 3:\n Ease.checked = true;\n break;\n case 4:\n Exponential.checked = true;\n break;\n case 5:\n Default.checked = true;\n break;\n default:\n break;\n }\n interpolateMenu.dropDownItems.push(Default);\n interpolateMenu.dropDownItems.push(Linear);\n interpolateMenu.dropDownItems.push(Ease);\n interpolateMenu.dropDownItems.push(EaseIn);\n interpolateMenu.dropDownItems.push(EaseOut);\n interpolateMenu.dropDownItems.push(Exponential);\n cutMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_cutMenu_Click', this);\n copyMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_copyMenu_Click', this);\n deleteMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_deleteMenu_Click', this);\n bringToFront.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_bringToFront_Click', this);\n sendToBack.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_sendToBack_Click', this);\n sendBackward.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_sendBackward_Click', this);\n bringForward.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_bringForward_Click', this);\n properties.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_properties_Click', this);\n editText.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_editText_Click', this);\n url.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_url_Click', this);\n pickColor.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_pickColor_Click', this);\n pasteMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_pasteMenu_Click', this);\n animateMenu.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_animateMenu_Click', this);\n flipbookProperties.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_flipbookProperties_Click', this);\n linkID.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_linkID_Click', this);\n AlignTop.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_alignTop_Click', this);\n AlignBottom.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_alignBottom_Click', this);\n AlignLeft.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_alignLeft_Click', this);\n AlignRight.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_alignRight_Click', this);\n AlignHorizon.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_alignHorizon_Click', this);\n AlignVertical.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_alignVertical_Click', this);\n AlignCenter.click = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_alignCenter_Click', this);\n this._contextMenu.items.push(cutMenu);\n this._contextMenu.items.push(copyMenu);\n this._contextMenu.items.push(pasteMenu);\n this._contextMenu.items.push(deleteMenu);\n this._contextMenu.items.push(sep1);\n this._contextMenu.items.push(bringToFront);\n this._contextMenu.items.push(sendToBack);\n this._contextMenu.items.push(bringForward);\n this._contextMenu.items.push(sendBackward);\n this._contextMenu.items.push(Align);\n this._contextMenu.items.push(sep2);\n pasteMenu.enabled = false;\n this._contextMenu.items.push(pickColor);\n this._contextMenu.items.push(url);\n this._contextMenu.items.push(linkID);\n this._contextMenu.items.push(animateMenu);\n this._contextMenu.items.push(sep3);\n this._contextMenu.items.push(flipbookProperties);\n animateMenu.checked = this.get_focus().get_animate();\n this._contextMenu.items.push(interpolateMenu);\n interpolateMenu.enabled = this.get_focus().get_animate();\n flipbookProperties.visible = (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this.get_focus(), _overlay_js__WEBPACK_IMPORTED_MODULE_14__.FlipbookOverlay));\n sep3.visible = (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this.get_focus(), _overlay_js__WEBPACK_IMPORTED_MODULE_14__.FlipbookOverlay));\n if (multiSelect) {\n url.visible = false;\n linkID.visible = false;\n properties.visible = false;\n flipbookProperties.visible = false;\n bringForward.visible = false;\n sendBackward.visible = false;\n } else {\n Align.visible = false;\n }\n this._contextMenu.items.push(properties);\n if (this.get_focus() != null) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.typeOf(this.get_focus()) === _overlay_js__WEBPACK_IMPORTED_MODULE_14__.TextOverlay) {\n this._contextMenu.items.push(editText);\n }\n }\n this._contextMenu._show(position);\n },\n\n _editText_Click: function (sender, e) {\n if (this.get_focus() != null) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.typeOf(this.get_focus()) === _overlay_js__WEBPACK_IMPORTED_MODULE_14__.TextOverlay) {\n this._editText();\n }\n }\n },\n\n _alignVertical_Click: function (sender, e) {\n if (this.get_focus() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1036, 'Vertical Align'), this._tour));\n var xCenter = this.get_focus().get_x();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.set_x(xCenter);\n }\n },\n\n _alignHorizon_Click: function (sender, e) {\n if (this.get_focus() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1037, 'Horizontal Align'), this._tour));\n var yCenter = this.get_focus().get_y();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.set_y(yCenter);\n }\n },\n\n _alignCenter_Click: function (sender, e) {\n if (this.get_focus() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1038, 'Align Centers'), this._tour));\n var yCenter = this.get_focus().get_y();\n var xCenter = this.get_focus().get_x();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.set_y(yCenter);\n overlay.set_x(xCenter);\n }\n },\n\n _alignRight_Click: function (sender, e) {\n if (this.get_focus() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1040, 'Align Right'), this._tour));\n var left = this.get_focus().get_x() + this.get_focus().get_width() / 2;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.set_x(left - overlay.get_width() / 2);\n }\n },\n\n _alignLeft_Click: function (sender, e) {\n if (this.get_focus() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1041, 'Align Left'), this._tour));\n var right = this.get_focus().get_x() - this.get_focus().get_width() / 2;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.set_x(right + overlay.get_width() / 2);\n }\n },\n\n _alignBottom_Click: function (sender, e) {\n if (this.get_focus() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1042, 'Align Bottoms'), this._tour));\n var top = this.get_focus().get_y() + this.get_focus().get_height() / 2;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.set_y(top - overlay.get_height() / 2);\n }\n },\n\n _alignTop_Click: function (sender, e) {\n if (this.get_focus() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(1039, 'Align Tops'), this._tour));\n var top = this.get_focus().get_y() - this.get_focus().get_height() / 2;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.set_y(top + overlay.get_height() / 2);\n }\n },\n\n _interpolation_Click: function (sender, e) {\n var item = sender;\n if (this.get_focus() != null) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.set_interpolationType(item.tag);\n }\n }\n },\n\n _linkSlideChosen: function () {\n if (this.selectDialog.get_OK()) {\n this.get_focus().set_linkID(this.selectDialog.get_id());\n }\n },\n\n _linkID_Click: function (sender, e) {\n this.selectDialog = new _util_js__WEBPACK_IMPORTED_MODULE_13__.SelectLink(this.get_focus().get_linkID());\n this.nextSlideCallback(this.selectDialog, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_linkSlideChosen', this));\n },\n\n _flipbookProperties_Click: function (sender, e) { },\n\n _animateMenu_Click: function (sender, e) {\n if (this.get_focus() != null) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(588, 'Animate'), this._tour));\n var animate = !this.get_focus().get_animate();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.set_animate(animate);\n }\n }\n },\n\n _url_Click: function (sender, e) {\n var $this = this;\n\n if (this.get_focus() != null) {\n var input = new _utilities_simple_input_js__WEBPACK_IMPORTED_MODULE_7__.SimpleInput(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(541, 'Edit Hyperlink'), _util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(542, 'Url'), this.get_focus().get_url(), 2048);\n input.show(_util_js__WEBPACK_IMPORTED_MODULE_13__.Cursor.get_position(), function () {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(541, 'Edit Hyperlink'), $this._tour));\n $this.get_focus().set_url(input.text);\n });\n }\n },\n\n _pickColor_Click: function (sender, e) {\n var $this = this;\n\n var picker = new _utilities_color_picker_js__WEBPACK_IMPORTED_MODULE_5__.ColorPicker();\n picker.color = this.get_focus().get_color();\n picker.callBack = function () {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(543, 'Edit Color'), $this._tour));\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate($this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.set_color(picker.color);\n }\n };\n picker.show(e);\n },\n\n _volume_Click: function (sender, e) {\n var vol = new _util_js__WEBPACK_IMPORTED_MODULE_13__.PopupVolume();\n vol.volume = (this.get_focus()).get_volume();\n vol.showDialog();\n (this.get_focus()).set_volume(vol.volume);\n },\n\n _deleteMenu_Click: function (sender, e) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(167, 'Delete'), this._tour));\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n this._tour.get_currentTourStop().removeOverlay(overlay);\n }\n this.set_focus(null);\n this.clearSelection();\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n },\n\n _properties_Click: function (sender, e) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(549, 'Properties Edit'), this._tour));\n var props = new _util_js__WEBPACK_IMPORTED_MODULE_13__.OverlayProperties();\n props.overlay = this.get_focus();\n props.showDialog();\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n },\n\n _bringForward_Click: function (sender, e) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(454, 'Bring Forward'), this._tour));\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._getSortedSelection(false));\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n this._tour.get_currentTourStop().bringForward(overlay);\n }\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n },\n\n _sendBackward_Click: function (sender, e) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(455, 'Send Backward'), this._tour));\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._getSortedSelection(true));\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n this._tour.get_currentTourStop().sendBackward(overlay);\n }\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n },\n\n _sendToBack_Click: function (sender, e) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(453, 'Send to Back'), this._tour));\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._getSortedSelection(true));\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n this._tour.get_currentTourStop().sendToBack(overlay);\n }\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n },\n\n _bringToFront_Click: function (sender, e) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(452, 'Bring to Front'), this._tour));\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._getSortedSelection(false));\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n this._tour.get_currentTourStop().bringToFront(overlay);\n }\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n },\n\n _getSortedSelection: function (reverse) {\n var sorted = [];\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var ov = $enum1.current;\n sorted.push(ov);\n }\n if (reverse) {\n sorted.sort(function (p1, p2) {\n return -_baseutil_js__WEBPACK_IMPORTED_MODULE_3__.Util.compare(p1.get_zOrder(), p2.get_zOrder());\n });\n } else {\n sorted.sort(function (p1, p2) {\n return _baseutil_js__WEBPACK_IMPORTED_MODULE_3__.Util.compare(p1.get_zOrder(), p2.get_zOrder());\n });\n }\n return sorted;\n },\n\n _copyMenu_Click: function (sender, e) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return;\n }\n var writer = new _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_8__.XmlTextWriter();\n writer._writeProcessingInstruction('xml', \"version='1.0' encoding='UTF-8'\");\n writer._writeStartElement('Overlays');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.saveToXml(writer, true);\n }\n writer._writeEndElement();\n this.clipboardData = writer.body;\n this.clipboardType = 'WorldWideTelescope.Overlay';\n },\n\n _cutMenu_Click: function (sender, e) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(427, 'Cut'), this._tour));\n this._copyMenu_Click(sender, e);\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n this._tour.get_currentTourStop().removeOverlay(overlay);\n }\n this.set_focus(null);\n this.clearSelection();\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n },\n\n _pasteMenu_Click: function (sender, e) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _undo_js__WEBPACK_IMPORTED_MODULE_16__.UndoTourSlidelistChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(544, 'Paste Object'), this._tour));\n if (this.clipboardType === 'WorldWideTelescope.Overlay') {\n var xParser = new DOMParser();\n var doc = xParser.parseFromString(this.clipboardData, 'text/xml');\n this.clearSelection();\n var parent = _baseutil_js__WEBPACK_IMPORTED_MODULE_3__.Util.selectSingleNode(doc, 'Overlays');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(parent.childNodes);\n while ($enum1.moveNext()) {\n var child = $enum1.current;\n if (child.nodeName === 'Overlay') {\n var copy = _overlay_js__WEBPACK_IMPORTED_MODULE_14__.Overlay._fromXml(this._tour.get_currentTourStop(), child);\n var found = false;\n var maxX = 0;\n var maxY = 0;\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._tour.get_currentTourStop().get_overlays());\n while ($enum2.moveNext()) {\n var item = $enum2.current;\n if (item.id === copy.id && _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.typeOf(item) === _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.typeOf(copy)) {\n found = true;\n if (maxY < item.get_y() || maxX < item.get_x()) {\n maxX = item.get_x();\n maxY = item.get_y();\n }\n }\n }\n if (found) {\n copy.set_x(maxX + 20);\n copy.set_y(maxY + 20);\n }\n this._tour.get_currentTourStop().addOverlay(copy);\n this.set_focus(copy);\n this.selection.addSelection(this.get_focus());\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n }\n }\n }\n },\n\n mouseClick: function (sender, e) {\n if (TourEditor.currentEditor != null) {\n if (TourEditor.currentEditor.mouseClick(sender, e)) {\n return true;\n }\n }\n return false;\n },\n\n click: function (sender, e) {\n if (TourEditor.currentEditor != null) {\n if (TourEditor.currentEditor.click(sender, e)) {\n return true;\n }\n }\n return false;\n },\n\n mouseDoubleClick: function (sender, e) {\n if (TourEditor.currentEditor != null) {\n if (TourEditor.currentEditor.mouseDoubleClick(sender, e)) {\n return true;\n }\n }\n if (this.get_focus() != null) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.typeOf(this.get_focus()) === _overlay_js__WEBPACK_IMPORTED_MODULE_14__.TextOverlay) {\n this._editText();\n return true;\n }\n }\n return true;\n },\n\n _doneEditing: function () {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(545, 'Text Edit'), this._tour));\n (this.get_focus()).set_width(0);\n (this.get_focus()).set_height(0);\n this.get_focus().set_color((this.get_focus()).textObject.foregroundColor);\n this.get_focus().cleanUp();\n },\n\n _editText: function () {\n var textObj = (this.get_focus()).textObject;\n this.editTextCallback(textObj, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_doneEditing', this));\n },\n\n keyDown: function (sender, e) {\n if (TourEditor.currentEditor != null) {\n if (TourEditor.currentEditor.keyDown(sender, e)) {\n return true;\n }\n }\n var increment = 1;\n if (e.ctrlKey) {\n increment = 10;\n }\n switch (e.keyCode) {\n case 65:\n if (e.ctrlKey) {\n this.clearSelection();\n this.selection.addSelectionRange(this._tour.get_currentTourStop().get_overlays());\n OverlayList._updateOverlayListSelection(this.selection);\n if (this._tour.get_currentTourStop().get_overlays().length > 0) {\n this.set_focus(this._tour.get_currentTourStop().get_overlays()[0]);\n }\n }\n break;\n case 90:\n if (e.ctrlKey) {\n if (_undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.peekAction()) {\n TourEdit._undoStep();\n }\n else {\n _ui_tools_js__WEBPACK_IMPORTED_MODULE_12__.UiTools._beep();\n }\n }\n break;\n case 89:\n if (e.ctrlKey) {\n if (_undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.peekRedoAction()) {\n TourEdit._redoStep();\n }\n else {\n _ui_tools_js__WEBPACK_IMPORTED_MODULE_12__.UiTools._beep();\n }\n }\n break;\n case 67:\n if (e.ctrlKey) {\n this._copyMenu_Click(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n break;\n case 86:\n if (e.ctrlKey) {\n this._pasteMenu_Click(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n break;\n case 88:\n if (e.ctrlKey) {\n this._cutMenu_Click(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n break;\n case 46:\n this._deleteMenu_Click(null, null);\n return true;\n case 9:\n if (e.shiftKey) {\n this._selectLast();\n }\n else {\n this._selectNext();\n }\n return true;\n case 37:\n if (this.get_focus() != null) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n if (e.shiftKey) {\n if (e.altKey) {\n if (overlay.get_width() > increment) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(537, 'Resize'), this._tour));\n overlay.set_width(overlay.get_width() - increment);\n }\n }\n else {\n var aspect = overlay.get_width() / overlay.get_height();\n if (overlay.get_width() > increment && overlay.get_height() > (increment * aspect)) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(537, 'Resize'), this._tour));\n overlay.set_width(overlay.get_width() - increment);\n overlay.set_height(overlay.get_height() - increment * aspect);\n }\n }\n }\n else if (e.altKey) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(538, 'Rotate'), this._tour));\n overlay.set_rotationAngle(overlay.get_rotationAngle() - increment);\n }\n else {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(540, 'Move'), this._tour));\n overlay.set_x(overlay.get_x() - increment);\n }\n }\n return true;\n }\n break;\n case 39:\n if (this.get_focus() != null) {\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum2.moveNext()) {\n var overlay = $enum2.current;\n if (e.shiftKey) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(537, 'Resize'), this._tour));\n if (e.altKey) {\n overlay.set_width(overlay.get_width() + increment);\n }\n else {\n var aspect = overlay.get_width() / overlay.get_height();\n overlay.set_width(overlay.get_width() + increment);\n overlay.set_height(overlay.get_height() + increment * aspect);\n }\n }\n else if (e.altKey) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(538, 'Rotate'), this._tour));\n overlay.set_rotationAngle(overlay.get_rotationAngle() + increment);\n }\n else {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(540, 'Move'), this._tour));\n overlay.set_x(overlay.get_x() + increment);\n }\n }\n return true;\n }\n break;\n case 38:\n if (this.get_focus() != null) {\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum3.moveNext()) {\n var overlay = $enum3.current;\n if (e.shiftKey) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(537, 'Resize'), this._tour));\n if (e.altKey) {\n overlay.set_height(overlay.get_height() + increment);\n }\n else {\n var aspect = overlay.get_width() / overlay.get_height();\n overlay.set_width(overlay.get_width() + increment);\n overlay.set_height(overlay.get_height() + increment * aspect);\n }\n }\n else if (!e.altKey) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(540, 'Move'), this._tour));\n overlay.set_y(overlay.get_y() - increment);\n }\n }\n return true;\n }\n break;\n case 40:\n if (this.get_focus() != null) {\n var $enum4 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.selection.selectionSet);\n while ($enum4.moveNext()) {\n var overlay = $enum4.current;\n if (e.shiftKey) {\n if (e.altKey) {\n if (overlay.get_height() > increment) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(537, 'Resize'), this._tour));\n overlay.set_height(overlay.get_height() - increment);\n }\n }\n else {\n var aspect = overlay.get_width() / overlay.get_height();\n if (overlay.get_width() > increment && overlay.get_height() > (increment * aspect)) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(537, 'Resize'), this._tour));\n overlay.set_width(overlay.get_width() - increment);\n overlay.set_height(overlay.get_height() - increment * aspect);\n }\n }\n }\n else if (!e.altKey) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(540, 'Move'), this._tour));\n overlay.set_y(overlay.get_y() + increment);\n }\n }\n return true;\n }\n break;\n case 34:\n // Next Slide\n if (e.altKey) {\n if (this._tour.get_currentTourstopIndex() < (this._tour.get_tourStops().length - 1)) {\n this._tour.set_currentTourstopIndex(this._tour.get_currentTourstopIndex() + 1) - 1;\n TourEdit._selectCurrent();\n TourEdit._ensureSelectedVisible();\n }\n return true;\n }\n break;\n case 33:\n // Prev Slide\n if (e.altKey) {\n if (this._tour.get_currentTourstopIndex() > 0) {\n this._tour.set_currentTourstopIndex(this._tour.get_currentTourstopIndex() - 1) + 1;\n TourEdit._selectCurrent();\n TourEdit._ensureSelectedVisible();\n }\n return true;\n }\n break;\n }\n return false;\n },\n\n _selectNext: function () {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return;\n }\n this.set_focus(this._tour.get_currentTourStop().getNextOverlay(this.get_focus()));\n this.selection.setSelection(this.get_focus());\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n },\n\n _selectLast: function () {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return;\n }\n this.set_focus(this._tour.get_currentTourStop().getPerviousOverlay(this.get_focus()));\n this.selection.setSelection(this.get_focus());\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n },\n\n keyUp: function (sender, e) {\n if (TourEditor.currentEditor != null) {\n if (TourEditor.currentEditor.keyUp(sender, e)) {\n return true;\n }\n }\n return false;\n },\n\n addPicture: function (file) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return false;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(546, 'Insert Picture'), this._tour));\n var bmp = _overlay_js__WEBPACK_IMPORTED_MODULE_14__.BitmapOverlay.create(this._tour.get_currentTourStop(), file);\n bmp.set_x(960);\n bmp.set_y(600);\n this._tour.get_currentTourStop().addOverlay(bmp);\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n return true;\n },\n\n addFlipbook: function (filename) {\n return false;\n },\n\n addAudio: function (file, music) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return false;\n }\n var audio = _overlay_js__WEBPACK_IMPORTED_MODULE_14__.AudioOverlay.create(this._tour.get_currentTourStop(), file);\n audio.set_x(900);\n audio.set_y(600);\n if (music) {\n this._tour.get_currentTourStop().set_musicTrack(audio);\n } else {\n this._tour.get_currentTourStop().set_voiceTrack(audio);\n }\n return true;\n },\n\n addVideo: function (filename) {\n return true;\n },\n\n addText: function (p, textObject) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return false;\n }\n var text = _overlay_js__WEBPACK_IMPORTED_MODULE_14__.TextOverlay.create(textObject);\n text.set_color(textObject.foregroundColor);\n text.set_x(960);\n text.set_y(600);\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(547, 'Insert Text'), this._tour));\n this._tour.get_currentTourStop().addOverlay(text);\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n return true;\n },\n\n addOverlay: function (ol) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return null;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.typeOf(ol) === _overlay_js__WEBPACK_IMPORTED_MODULE_14__.ShapeOverlay) {\n var srcShapeOverlay = ol;\n if (srcShapeOverlay != null) {\n var shape = _overlay_js__WEBPACK_IMPORTED_MODULE_14__.ShapeOverlay._create(this._tour.get_currentTourStop(), srcShapeOverlay.get_shapeType());\n shape.set_width(srcShapeOverlay.get_width());\n shape.set_height(srcShapeOverlay.get_height());\n shape.set_x(this._contextPoint.x);\n shape.set_y(this._contextPoint.y);\n shape.set_color(srcShapeOverlay.get_color());\n shape.set_rotationAngle(srcShapeOverlay.get_rotationAngle());\n this._tour.get_currentTourStop().addOverlay(shape);\n return shape;\n }\n } else if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.typeOf(ol) === _overlay_js__WEBPACK_IMPORTED_MODULE_14__.TextOverlay) {\n var srcTxtOverlay = ol;\n if (srcTxtOverlay != null) {\n var text = _overlay_js__WEBPACK_IMPORTED_MODULE_14__.TextOverlay.create(srcTxtOverlay.textObject);\n text.set_x(this._contextPoint.x);\n text.set_y(this._contextPoint.y);\n text.set_color(srcTxtOverlay.get_color());\n this._tour.get_currentTourStop().addOverlay(text);\n return text;\n }\n } else if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.typeOf(ol) === _overlay_js__WEBPACK_IMPORTED_MODULE_14__.BitmapOverlay) {\n var srcBmpOverlay = ol;\n if (srcBmpOverlay != null) {\n var bitmap = srcBmpOverlay.copy(this._tour.get_currentTourStop());\n bitmap.set_x(this._contextPoint.x);\n bitmap.set_y(this._contextPoint.y);\n this._tour.get_currentTourStop().addOverlay(bitmap);\n return bitmap;\n }\n } else if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.typeOf(ol) === _overlay_js__WEBPACK_IMPORTED_MODULE_14__.FlipbookOverlay) {\n var srcFlipbookOverlay = ol;\n if (srcFlipbookOverlay != null) {\n var bitmap = srcFlipbookOverlay.copy(this._tour.get_currentTourStop());\n bitmap.set_x(this._contextPoint.x);\n bitmap.set_y(this._contextPoint.y);\n this._tour.get_currentTourStop().addOverlay(bitmap);\n return bitmap;\n }\n }\n return null;\n },\n\n addShape: function (p, shapeType) {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return false;\n }\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.push(new _tour_stop_js__WEBPACK_IMPORTED_MODULE_17__.UndoTourStopChange(_util_js__WEBPACK_IMPORTED_MODULE_13__.Language.getLocalizedText(548, 'Insert Shape'), this._tour));\n var shape = _overlay_js__WEBPACK_IMPORTED_MODULE_14__.ShapeOverlay._create(this._tour.get_currentTourStop(), shapeType);\n shape.set_width(200);\n shape.set_height(200);\n if (shapeType === 4) {\n shape.set_height(shape.get_height() / 2);\n }\n if (shapeType === 5) {\n shape.set_height(12);\n }\n shape.set_x(960);\n shape.set_y(600);\n this._tour.get_currentTourStop().addOverlay(shape);\n this.set_focus(shape);\n this.selection.setSelection(this.get_focus());\n OverlayList._updateOverlayList(this._tour.get_currentTourStop(), this.selection);\n return true;\n },\n\n getCurrentColor: function () {\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return this._defaultColor;\n }\n if (this.get_focus() != null) {\n return this.get_focus().get_color();\n } else {\n return this._defaultColor;\n }\n },\n\n setCurrentColor: function (color) {\n this._defaultColor = color;\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return;\n }\n if (this.get_focus() != null) {\n this.get_focus().set_color(color);\n }\n },\n\n dispose: function () {\n if (this._contextMenu != null) {\n this._contextMenu._dispose();\n this._contextMenu = null;\n }\n },\n\n hover: function (pnt) {\n if (TourEditor.currentEditor != null) {\n if (TourEditor.currentEditor.hover(pnt)) {\n return true;\n }\n }\n return true;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TourEditor\", [TourEditor, TourEditor$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_9__.IUiController]);\n\n\n// wwtlib.OverlayList\n\nfunction OverlayList() { }\n\nOverlayList._updateOverlayList = function (currentTourStop, selection) { };\n\nOverlayList._updateOverlayListSelection = function (selection) { };\n\nvar OverlayList$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"OverlayList\", [OverlayList, OverlayList$, null]);\n\n\n// wwtlib.TourEdit\n\nfunction TourEdit() { }\n\nTourEdit._ensureSelectedVisible = function () { };\n\nTourEdit._selectCurrent = function () { };\n\nTourEdit._undoStep = function () {\n if (_undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.peekAction()) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.stepBack();\n }\n};\n\nTourEdit._redoStep = function () {\n if (_undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.peekRedoAction()) {\n _undo_js__WEBPACK_IMPORTED_MODULE_16__.Undo.stepForward();\n }\n};\n\nvar TourEdit$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TourEdit\", [TourEdit, TourEdit$, null]);\n\n\n// wwtlib.SoundEditor\n\nfunction SoundEditor() {\n this.target = null;\n}\n\nvar SoundEditor$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"SoundEditor\", [SoundEditor, SoundEditor$, null]);\n\n\n// wwtlib.TourStopList\n\nfunction TourStopList() {\n this.tour = null;\n this.showAddButton = false;\n this.selectedItems = null;\n this.selectedItem = -1;\n this.refreshCallback = null;\n this.multipleSelection = false;\n this.hitType = false;\n}\n\nvar TourStopList$ = {\n selectAll: function () {\n this.selectedItems = {};\n for (var i = 0; i < this.tour.get_tourStops().length; i++) {\n this.selectedItems[i] = this.tour.get_tourStops()[i];\n }\n },\n\n refresh: function () {\n if (this.refreshCallback != null) {\n this.refreshCallback();\n }\n },\n\n findItem: function (ts) {\n return -1;\n },\n\n ensureSelectedVisible: function () { },\n\n ensureAddVisible: function () { }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TourStopList\", [TourStopList, TourStopList$, null]);\n\n\n// wwtlib.TimeLine\n\nfunction TimeLine() { }\n\nTimeLine.refreshUi = function () { };\n\nvar TimeLine$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TimeLine\", [TimeLine, TimeLine$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/tours/tour_player.js\":\n/*!**********************************!*\\\n !*** ./esm/tours/tour_player.js ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MasterTime: () => (/* binding */ MasterTime),\n/* harmony export */ TourPlayer: () => (/* binding */ TourPlayer)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _blend_state_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../blend_state.js */ \"./esm/blend_state.js\");\n/* harmony import */ var _camera_parameters_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../camera_parameters.js */ \"./esm/camera_parameters.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _view_mover_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../view_mover.js */ \"./esm/view_mover.js\");\n/* harmony import */ var _overlay_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./overlay.js */ \"./esm/tours/overlay.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Infrastructure for playing back tours.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.TourPlayer\n\nfunction TourPlayer() {\n this._overlayBlend = _blend_state_js__WEBPACK_IMPORTED_MODULE_4__.BlendState.create(false, 1000);\n this._tour = null;\n this._onTarget = false;\n this._currentMasterSlide = null;\n this._callStack = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.Stack();\n this._leaveSettingsWhenStopped = false;\n}\n\nTourPlayer._playing = false;\nTourPlayer._switchedToFullScreen = false;\nTourPlayer.noRestoreUIOnStop = false;\n\nTourPlayer.get_playing = function () {\n return TourPlayer._playing;\n};\n\nTourPlayer.set_playing = function (value) {\n TourPlayer._playing = value;\n return value;\n};\n\nTourPlayer.add_tourEnded = function (value) {\n TourPlayer.__tourEnded = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(TourPlayer.__tourEnded, value);\n};\n\nTourPlayer.remove_tourEnded = function (value) {\n TourPlayer.__tourEnded = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(TourPlayer.__tourEnded, value);\n};\n\nvar TourPlayer$ = {\n render: function (renderContext) {\n if (this._tour == null || this._tour.get_currentTourStop() == null || !TourPlayer._playing) {\n return;\n }\n renderContext.save();\n this.updateSlideStates();\n if (!this._onTarget) {\n this._slideStartTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n if (renderContext.onTarget(this.get_tour().get_currentTourStop().get_target())) {\n this._onTarget = true;\n this._overlayBlend.set_state(!this.get_tour().get_currentTourStop().get_fadeInOverlays());\n this._overlayBlend.set_targetState(true);\n if (this._tour.get_currentTourStop().get_musicTrack() != null) {\n this._tour.get_currentTourStop().get_musicTrack().seek(0);\n this._tour.get_currentTourStop().get_musicTrack().play();\n }\n if (this._tour.get_currentTourStop().get_voiceTrack() != null) {\n this._tour.get_currentTourStop().get_voiceTrack().seek(0);\n this._tour.get_currentTourStop().get_voiceTrack().play();\n }\n var caption = '';\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._tour.get_currentTourStop().get_overlays());\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n if (overlay.get_name().toLowerCase() === 'caption') {\n var text = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(overlay, _overlay_js__WEBPACK_IMPORTED_MODULE_11__.TextOverlay);\n if (text != null) {\n caption = text.textObject.text;\n }\n }\n overlay.play();\n }\n (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_7__.setManagerVisibleLayerList)(this._tour.get_currentTourStop().layers);\n if (this._tour.get_currentTourStop().get_endTarget() != null && this._tour.get_currentTourStop().get_endTarget().get_zoomLevel() !== -1) {\n if (this._tour.get_currentTourStop().get_target().get_type() === 4) {\n // TODO fix this when Planets are implemented\n //tour.CurrentTourStop.Target.UpdatePlanetLocation(SpaceTimeController.UtcToJulian(tour.CurrentTourStop.StartTime));\n //tour.CurrentTourStop.EndTarget.UpdatePlanetLocation(SpaceTimeController.UtcToJulian(tour.CurrentTourStop.EndTime));\n }\n renderContext.viewMover = new _view_mover_js__WEBPACK_IMPORTED_MODULE_10__.ViewMoverKenBurnsStyle(this._tour.get_currentTourStop().get_target().get_camParams(), this._tour.get_currentTourStop().get_endTarget().get_camParams(), this._tour.get_currentTourStop().get_duration() / 1000, this._tour.get_currentTourStop().get_startTime(), this._tour.get_currentTourStop().get_endTime(), this._tour.get_currentTourStop().get_interpolationType());\n }\n _settings_js__WEBPACK_IMPORTED_MODULE_8__.Settings.tourSettings = this._tour.get_currentTourStop();\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__.SpaceTimeController.set_now(this._tour.get_currentTourStop().get_startTime());\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__.SpaceTimeController.set_syncToClock(false);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalScriptInterface._fireSlideChanged(caption);\n }\n }\n if (renderContext.gl != null) {\n renderContext.setupMatricesOverlays();\n if (this._currentMasterSlide != null) {\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._currentMasterSlide.get_overlays());\n while ($enum2.moveNext()) {\n var overlay = $enum2.current;\n overlay.set_tweenFactor(1);\n overlay.draw3D(renderContext, false);\n }\n }\n if (this._onTarget) {\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._tour.get_currentTourStop().get_overlays());\n while ($enum3.moveNext()) {\n var overlay = $enum3.current;\n if (overlay.get_name().toLowerCase() !== 'caption' || _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalScriptInterface.get_showCaptions()) {\n overlay.set_tweenFactor(_camera_parameters_js__WEBPACK_IMPORTED_MODULE_5__.CameraParameters.easeCurve(this._tour.get_currentTourStop().get_tweenPosition(), (overlay.get_interpolationType() === 5) ? this._tour.get_currentTourStop().get_interpolationType() : overlay.get_interpolationType()));\n overlay.draw3D(renderContext, false);\n }\n }\n }\n renderContext.restore();\n\n // There used to be code to draw on-screen tour player controls here.\n // In the web engine, that kind of work is now taken care of at higher levels.\n //DrawPlayerControls(renderContext);\n } else {\n renderContext.device.scale(renderContext.height / 1116, renderContext.height / 1116);\n var aspectOrig = 1920 / 1116;\n var aspectNow = renderContext.width / renderContext.height;\n renderContext.device.translate(-((1920 - (aspectNow * 1116)) / 2), 0);\n if (this._currentMasterSlide != null) {\n var $enum4 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._currentMasterSlide.get_overlays());\n while ($enum4.moveNext()) {\n var overlay = $enum4.current;\n overlay.set_tweenFactor(1);\n overlay.draw3D(renderContext, false);\n }\n }\n if (this._onTarget) {\n var $enum5 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._tour.get_currentTourStop().get_overlays());\n while ($enum5.moveNext()) {\n var overlay = $enum5.current;\n if (overlay.get_name().toLowerCase() !== 'caption' || _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalScriptInterface.get_showCaptions()) {\n overlay.set_tweenFactor(_camera_parameters_js__WEBPACK_IMPORTED_MODULE_5__.CameraParameters.easeCurve(this._tour.get_currentTourStop().get_tweenPosition(), (overlay.get_interpolationType() === 5) ? this._tour.get_currentTourStop().get_interpolationType() : overlay.get_interpolationType()));\n overlay.draw3D(renderContext, false);\n }\n }\n }\n else {\n var i = 0;\n }\n renderContext.restore();\n }\n },\n\n get_tour: function () {\n return this._tour;\n },\n\n set_tour: function (value) {\n this._tour = value;\n return value;\n },\n\n nextSlide: function () {\n if (this._tour.get_currentTourStop() != null) {\n if (!this._tour.get_currentTourStop().get_masterSlide()) {\n if (this._tour.get_currentTourStop().get_musicTrack() != null) {\n this._tour.get_currentTourStop().get_musicTrack().stop();\n }\n if (this._tour.get_currentTourStop().get_voiceTrack() != null) {\n this._tour.get_currentTourStop().get_voiceTrack().stop();\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._tour.get_currentTourStop().get_overlays());\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.stop();\n }\n }\n else {\n this._currentMasterSlide = this._tour.get_currentTourStop();\n }\n }\n if (this._tour.get_currentTourstopIndex() < (this._tour.get_tourStops().length - 1) || this._tour.get_currentTourStop().get_isLinked()) {\n if (this._tour.get_currentTourStop().get_endTarget() != null) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.gotoTargetFull(false, true, this._tour.get_currentTourStop().get_endTarget().get_camParams(), this._tour.get_currentTourStop().get_target().get_studyImageset(), this._tour.get_currentTourStop().get_target().get_backgroundImageset());\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.set__mover(null);\n }\n this._onTarget = false;\n if (this._tour.get_currentTourStop().get_isLinked()) {\n try {\n switch (this._tour.get_currentTourStop().get_nextSlide()) {\n case 'Return':\n if (this._callStack.count > 0) {\n this.playFromTourstop(this._tour.get_tourStops()[this._callStack.pop()]);\n }\n else {\n this._tour.set_currentTourstopIndex(this._tour.get_tourStops().length - 1);\n }\n break;\n default:\n this.playFromTourstop(this._tour.get_tourStops()[this._tour.getTourStopIndexByID(this._tour.get_currentTourStop().get_nextSlide())]);\n break;\n }\n }\n catch ($e2) {\n if (this._tour.get_currentTourstopIndex() < (this._tour.get_tourStops().length - 1)) {\n this._tour.set_currentTourstopIndex(this._tour.get_currentTourstopIndex() + 1) - 1;\n }\n }\n }\n else {\n this._tour.set_currentTourstopIndex(this._tour.get_currentTourstopIndex() + 1) - 1;\n }\n if (this._currentMasterSlide != null && this._tour.get_currentTourStop().get_masterSlide()) {\n this._stopCurrentMaster();\n }\n var instant = false;\n switch (this._tour.get_currentTourStop().get__transition()) {\n case 0:\n break;\n case 1:\n instant = true;\n break;\n case 2:\n instant = true;\n break;\n case 3:\n instant = true;\n break;\n case 5:\n instant = true;\n break;\n case 4:\n instant = true;\n break;\n default:\n break;\n }\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.gotoTarget(this._tour.get_currentTourStop().get_target(), false, instant, false);\n this._slideStartTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n // Move to new settings\n _settings_js__WEBPACK_IMPORTED_MODULE_8__.Settings.tourSettings = this._tour.get_currentTourStop();\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__.SpaceTimeController.set_now(this._tour.get_currentTourStop().get_startTime());\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__.SpaceTimeController.set_syncToClock(false);\n } else {\n this._stopCurrentMaster();\n TourPlayer._playing = false;\n if (_settings_js__WEBPACK_IMPORTED_MODULE_8__.Settings.get_current().autoRepeatTour) {\n this._tour.set_currentTourstopIndex(-1);\n this.play();\n }\n else {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl._freezeView();\n if (TourPlayer.__tourEnded != null) {\n TourPlayer.__tourEnded(this, new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.EventArgs());\n }\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl._hideUI(false);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalScriptInterface._fireTourEnded();\n }\n }\n },\n\n _stopCurrentMaster: function () {\n if (this._currentMasterSlide != null) {\n if (this._currentMasterSlide.get_musicTrack() != null) {\n this._currentMasterSlide.get_musicTrack().stop();\n }\n if (this._currentMasterSlide.get_voiceTrack() != null) {\n this._currentMasterSlide.get_voiceTrack().stop();\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._currentMasterSlide.get_overlays());\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.stop();\n }\n this._currentMasterSlide = null;\n }\n },\n\n get_leaveSettingsWhenStopped: function () {\n return this._leaveSettingsWhenStopped;\n },\n\n set_leaveSettingsWhenStopped: function (value) {\n this._leaveSettingsWhenStopped = value;\n return value;\n },\n\n play: function () {\n if (this._tour == null) {\n return;\n }\n if (TourPlayer._playing) {\n this.stop(true);\n } else {\n TourPlayer._playing = true;\n }\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl._hideUI(true);\n TourPlayer._playing = true;\n if (this._tour.get_tourStops().length > 0) {\n this._onTarget = false;\n if (this._tour.get_currentTourstopIndex() === -1) {\n this._tour.set_currentTourStop(this._tour.get_tourStops()[0]);\n }\n\n // Ensure that all multimedia elements are prepared. When\n // playing back a tour in a browser, restrictions on autoplay\n // mean that we have to ensure that all of our multimedia\n // elements are prepared for playback inside code that is\n // triggered by a user-initiated event. The PrepMultimedia\n // callback should do whatever's needed to make sure that media\n // files are all ready to go.\n\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._tour.get_tourStops());\n while ($enum1.moveNext()) {\n var stop = $enum1.current;\n if (stop.get_musicTrack() != null) {\n stop.get_musicTrack().prepMultimedia();\n }\n if (stop.get_voiceTrack() != null) {\n stop.get_voiceTrack().prepMultimedia();\n }\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(stop.get_overlays());\n while ($enum2.moveNext()) {\n var overlay = $enum2.current;\n overlay.prepMultimedia();\n }\n }\n if (this._tour.get_currentTourstopIndex() > 0) {\n this._playMasterForCurrent();\n }\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.gotoTarget(this._tour.get_currentTourStop().get_target(), false, true, false);\n }\n this._slideStartTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n TourPlayer._playing = true;\n },\n\n _playMasterForCurrent: function () {\n if (!this._tour.get_currentTourStop().get_masterSlide()) {\n var currentMaster = this._tour.elapsedTimeSinceLastMaster(this._tour.get_currentTourstopIndex());\n if (currentMaster != null) {\n var elapsed = currentMaster.duration;\n this._currentMasterSlide = currentMaster.master;\n if (this._currentMasterSlide.get_musicTrack() != null) {\n this._currentMasterSlide.get_musicTrack().seek(elapsed);\n this._currentMasterSlide.get_musicTrack().play();\n }\n if (this._currentMasterSlide.get_voiceTrack() != null) {\n this._currentMasterSlide.get_voiceTrack().seek(elapsed);\n this._currentMasterSlide.get_voiceTrack().play();\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._currentMasterSlide.get_overlays());\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.seek(elapsed);\n overlay.play();\n }\n }\n }\n },\n\n stop: function (noSwitchBackFullScreen) {\n if (TourPlayer._switchedToFullScreen && !noSwitchBackFullScreen) {\n }\n\n // By default, when you stop (or pause) a tour, the main WWT\n // settings become active again. However, this can cause a jarring\n // jump if, say, the tour has localHorizonMode active and the main\n // settings don't. If you activate this option, we'll leave the tour\n // settings lingering, preventing any dramatic changes.\n if (!this._leaveSettingsWhenStopped) {\n _settings_js__WEBPACK_IMPORTED_MODULE_8__.Settings.tourSettings = null;\n }\n TourPlayer._playing = false;\n if (this._tour.get_currentTourStop() != null) {\n if (this._tour.get_currentTourStop().get_musicTrack() != null) {\n this._tour.get_currentTourStop().get_musicTrack().stop();\n }\n if (this._tour.get_currentTourStop().get_voiceTrack() != null) {\n this._tour.get_currentTourStop().get_voiceTrack().stop();\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._tour.get_currentTourStop().get_overlays());\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.stop();\n }\n }\n if (this._currentMasterSlide != null) {\n if (this._currentMasterSlide.get_musicTrack() != null) {\n this._currentMasterSlide.get_musicTrack().stop();\n }\n if (this._currentMasterSlide.get_voiceTrack() != null) {\n this._currentMasterSlide.get_voiceTrack().stop();\n }\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._currentMasterSlide.get_overlays());\n while ($enum2.moveNext()) {\n var overlay = $enum2.current;\n overlay.stop();\n }\n }\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl._hideUI(TourPlayer.noRestoreUIOnStop);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalScriptInterface._fireTourEnded();\n },\n\n updateSlideStates: function () {\n var slideChanging = false;\n var slideElapsedTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now() - this._slideStartTime;\n if (slideElapsedTime > this._tour.get_currentTourStop().get_duration() && TourPlayer._playing) {\n this.nextSlide();\n slideChanging = true;\n }\n slideElapsedTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now() - this._slideStartTime;\n if (this._tour.get_currentTourStop() != null) {\n this._tour.get_currentTourStop().set_tweenPosition(Math.min(1, (slideElapsedTime / this._tour.get_currentTourStop().get_duration())));\n this._tour.get_currentTourStop().faderOpacity = 0;\n var elapsedSeconds = this._tour.get_currentTourStop().get_tweenPosition() * this._tour.get_currentTourStop().get_duration() / 1000;\n if (slideChanging) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.set_crossFadeFrame(false);\n }\n switch (this._tour.get_currentTourStop().get__transition()) {\n case 0:\n this._tour.get_currentTourStop().faderOpacity = 0;\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.set_crossFadeFrame(false);\n break;\n case 2:\n if (slideChanging) {\n }\n if (elapsedSeconds < (elapsedSeconds - this._tour.get_currentTourStop().get__transitionHoldTime())) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.set_crossFadeFrame(true);\n this._tour.get_currentTourStop().faderOpacity = 1;\n }\n else {\n this._tour.get_currentTourStop().faderOpacity = 0;\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.set_crossFadeFrame(false);\n }\n break;\n case 1:\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.set_crossFadeFrame(true);\n var opacity = Math.max(0, 1 - Math.min(1, (elapsedSeconds - this._tour.get_currentTourStop().get__transitionHoldTime()) / this._tour.get_currentTourStop().get__transitionTime()));\n this._tour.get_currentTourStop().faderOpacity = opacity;\n if (slideChanging) {\n }\n break;\n case 3:\n case 4:\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.set_crossFadeFrame(false);\n var opacity = Math.max(0, 1 - Math.max(0, elapsedSeconds - this._tour.get_currentTourStop().get__transitionHoldTime()) / this._tour.get_currentTourStop().get__transitionTime());\n this._tour.get_currentTourStop().faderOpacity = opacity;\n break;\n case 5:\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.set_crossFadeFrame(false);\n break;\n default:\n break;\n }\n if (!this._tour.get_currentTourStop().get_isLinked() && this._tour.get_currentTourstopIndex() < (this._tour.get_tourStops().length - 1)) {\n var nextTrans = this._tour.get_tourStops()[this._tour.get_currentTourstopIndex() + 1].get__transition();\n var nextTransTime = this._tour.get_tourStops()[this._tour.get_currentTourstopIndex() + 1].get__transitionOutTime();\n switch (nextTrans) {\n case 5:\n case 3:\n if (!this._tour.get_currentTourStop().faderOpacity) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.set_crossFadeFrame(false);\n var opacity = Math.max(0, 1 - Math.min(1, ((this._tour.get_currentTourStop().get_duration() / 1000) - elapsedSeconds) / nextTransTime));\n this._tour.get_currentTourStop().faderOpacity = opacity;\n }\n break;\n default:\n break;\n }\n }\n }\n },\n\n updateTweenPosition: function (tween) {\n var slideElapsedTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now() - this._slideStartTime;\n if (tween > -1) {\n return this._tour.get_currentTourStop().set_tweenPosition(Math.min(1, tween));\n } else {\n return this._tour.get_currentTourStop().set_tweenPosition(Math.min(1, (slideElapsedTime / this._tour.get_currentTourStop().get_duration())));\n }\n },\n\n close: function () {\n if (this._tour != null) {\n if (TourPlayer.get_playing()) {\n this.stop(TourPlayer._switchedToFullScreen);\n }\n this._tour = null;\n }\n },\n\n mouseDown: function (sender, e) {\n var location;\n location = this.pointToView(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(e.offsetX, e.offsetY));\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return false;\n }\n for (var i = this._tour.get_currentTourStop().get_overlays().length - 1; i >= 0; i--) {\n if (this._tour.get_currentTourStop().get_overlays()[i].hitTest(location)) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._tour.get_currentTourStop().get_overlays()[i].get_url())) {\n var linkItem = this._tour.get_currentTourStop().get_overlays()[i];\n _baseutil_js__WEBPACK_IMPORTED_MODULE_3__.Util._openUrl(linkItem.get_url());\n return true;\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._tour.get_currentTourStop().get_overlays()[i].get_linkID())) {\n this._callStack.push(this._tour.get_currentTourstopIndex());\n this.playFromTourstop(this._tour.get_tourStops()[this._tour.getTourStopIndexByID(this._tour.get_currentTourStop().get_overlays()[i].get_linkID())]);\n return true;\n }\n }\n }\n return false;\n },\n\n mouseUp: function (sender, e) {\n return false;\n },\n\n mouseMove: function (sender, e) {\n var location;\n try {\n location = this.pointToView(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(e.offsetX, e.offsetY));\n }\n catch ($e1) {\n return false;\n }\n if (this._tour == null || this._tour.get_currentTourStop() == null) {\n return false;\n }\n for (var i = this._tour.get_currentTourStop().get_overlays().length - 1; i >= 0; i--) {\n if (this._tour.get_currentTourStop().get_overlays()[i].hitTest(location) && (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._tour.get_currentTourStop().get_overlays()[i].get_url()) || !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._tour.get_currentTourStop().get_overlays()[i].get_linkID()))) {\n return true;\n }\n }\n return false;\n },\n\n mouseClick: function (sender, e) {\n return false;\n },\n\n click: function (sender, e) {\n return false;\n },\n\n mouseDoubleClick: function (sender, e) {\n return false;\n },\n\n keyDown: function (sender, e) {\n switch (e.keyCode) {\n case 27: // escape\n this.stop(TourPlayer._switchedToFullScreen);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl._closeTour();\n return true;\n case 32: // spacebar\n this.pauseTour();\n return true;\n case 39: // right arrow\n this._playNextSlide();\n return true;\n case 37: // left arrow\n this._playPreviousSlide();\n return true;\n case 35: // end key\n if (this._tour.get_tourStops().length > 0) {\n this.playFromTourstop(this._tour.get_tourStops()[this._tour.get_tourStops().length - 1]);\n }\n return true;\n case 36: // home key\n if (this._tour.get_tourStops().length > 0) {\n this.playFromTourstop(this._tour.get_tourStops()[0]);\n }\n return true;\n }\n return false;\n },\n\n _playNextSlide: function () {\n if ((this._tour.get_currentTourstopIndex() < this._tour.get_tourStops().length - 1) && this._tour.get_tourStops().length > 0) {\n this.playFromTourstop(this._tour.get_tourStops()[this._tour.get_currentTourstopIndex() + 1]);\n }\n },\n\n _playPreviousSlide: function () {\n if (this._tour.get_currentTourstopIndex() > 0) {\n this.playFromTourstop(this._tour.get_tourStops()[this._tour.get_currentTourstopIndex() - 1]);\n }\n },\n\n playFromTourstop: function (tourStop) {\n this.stop(true);\n this._tour.set_currentTourStop(tourStop);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.gotoTarget(this._tour.get_currentTourStop().get_target(), false, true, false);\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__.SpaceTimeController.set_now(this._tour.get_currentTourStop().get_startTime());\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__.SpaceTimeController.set_syncToClock(false);\n this.play();\n },\n\n pauseTour: function () {\n if (TourPlayer._playing) {\n this.stop(TourPlayer._switchedToFullScreen);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl._freezeView();\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalScriptInterface._fireTourPaused();\n } else {\n this.play();\n _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalScriptInterface._fireTourResume();\n }\n },\n\n keyUp: function (sender, e) {\n return false;\n },\n\n hover: function (pnt) {\n if (TourPlayer._playing) {\n return true;\n }\n return false;\n },\n\n pointToView: function (pnt) {\n var clientHeight = _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.canvas.height;\n var clientWidth = _data_globals_js__WEBPACK_IMPORTED_MODULE_7__.globalWWTControl.canvas.width;\n var viewWidth = (clientWidth / clientHeight) * 1116;\n var x = ((pnt.x) / (clientWidth) * viewWidth) - ((viewWidth - 1920) / 2);\n var y = (pnt.y) / clientHeight * 1116;\n return _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(x, y);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TourPlayer\", [TourPlayer, TourPlayer$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_6__.IUiController]);\n\n// wwtlib.MasterTime\n\nfunction MasterTime(master, duration) {\n this.duration = 0;\n this.master = master;\n this.duration = duration;\n}\n\nvar MasterTime$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"MasterTime\", [MasterTime, MasterTime$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/tours/tour_stop.js\":\n/*!********************************!*\\\n !*** ./esm/tours/tour_stop.js ***!\n \\********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LayerInfo: () => (/* binding */ LayerInfo),\n/* harmony export */ TourStop: () => (/* binding */ TourStop),\n/* harmony export */ TransitionType: () => (/* binding */ TransitionType),\n/* harmony export */ UndoTourStopChange: () => (/* binding */ UndoTourStopChange)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utilities/xml_text_writer.js */ \"./esm/utilities/xml_text_writer.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _constellation_filter_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../constellation_filter.js */ \"./esm/constellation_filter.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _place_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../place.js */ \"./esm/place.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n/* harmony import */ var _overlay_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./overlay.js */ \"./esm/tours/overlay.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A stop on a tour.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.TransitionType\n\nvar TransitionType = {\n slew: 0,\n crossFade: 1,\n crossCut: 2,\n fadeOutIn: 3,\n fadeIn: 4,\n fadeOut: 5\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TransitionType\", TransitionType);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"TransitionType\", TransitionType);\n\n\n// wwtlib.TourStop\n\nfunction TourStop() {\n this._tourStopType = 0;\n this._keyFramed = false;\n this._tweenPosition = 0;\n this.faderOpacity = 0;\n this._owner = null;\n this._transition = 0;\n this._transitionTime = 2;\n this._transitionHoldTime = 4;\n this._transitionOutTime = 2;\n this._nextSlide = 'Next';\n this._fadeInOverlays = false;\n this._masterSlide = false;\n this._id = '';\n this._description = '';\n this._name = '';\n this._duration = 10000;\n this._interpolationType = 0;\n this._hasLocation = true;\n this._hasTime = true;\n this._startTime = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_10__.SpaceTimeController.get_now();\n this._endTime = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_10__.SpaceTimeController.get_now();\n this._actualPlanetScale = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_actualPlanetScale();\n this._locationAltitude = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_locationAltitude();\n this._locationLat = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_locationLat();\n this._locationLng = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_locationLng();\n this._showClouds = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showClouds();\n this._showConstellationBoundries = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellationBoundries();\n this._showConstellationFigures = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellationFigures();\n this._showConstellationSelection = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellationSelection();\n this._showEcliptic = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEcliptic();\n this._showElevationModel = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showElevationModel();\n this._showFieldOfView = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showFieldOfView();\n this._showGrid = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showGrid();\n this._showHorizon = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showHorizon();\n this._showHorizonPanorama = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showHorizonPanorama();\n this._showMoonsAsPointSource = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showMoonsAsPointSource();\n this._showSolarSystem = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showSolarSystem();\n this._fovTelescope = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_fovTelescope();\n this._fovEyepiece = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_fovEyepiece();\n this._fovCamera = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_fovCamera();\n this._localHorizonMode = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_localHorizonMode();\n this._galacticMode = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_galacticMode();\n this._solarSystemStars = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemStars();\n this._solarSystemMilkyWay = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemMilkyWay();\n this._solarSystemCosmos = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemCosmos();\n this._solarSystemOrbits = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemOrbits();\n this._solarSystemOverlays = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemOverlays();\n this._solarSystemLighting = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemLighting();\n this._solarSystemScale = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemScale();\n this._solarSystemMultiRes = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemMultiRes();\n this._showEquatorialGridText = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEquatorialGridText();\n this._showGalacticGrid = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showGalacticGrid();\n this._showGalacticGridText = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showGalacticGridText();\n this._showEclipticGrid = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEclipticGrid();\n this._showEclipticGridText = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEclipticGridText();\n this._showEclipticOverviewText = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEclipticOverviewText();\n this._showAltAzGrid = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showAltAzGrid();\n this._showAltAzGridText = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showAltAzGridText();\n this._showPrecessionChart = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showPrecessionChart();\n this._showConstellationPictures = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellationPictures();\n this._showConstellationLabels = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellationLabels();\n this._solarSystemCMB = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemCMB();\n this._solarSystemMinorPlanets = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemMinorPlanets();\n this._solarSystemPlanets = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemPlanets();\n this._showEarthSky = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEarthSky();\n this._solarSystemMinorOrbits = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemMinorOrbits();\n this._constellationsEnabled = '';\n this._constellationFiguresFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_constellationFiguresFilter().clone();\n this._constellationBoundariesFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_constellationBoundariesFilter().clone();\n this._constellationNamesFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_constellationNamesFilter().clone();\n this._constellationArtFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_constellationArtFilter().clone();\n this._showSkyOverlays = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showSkyOverlays();\n this._showConstellations = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellations();\n this._showSkyNode = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showSkyNode();\n this._showSkyGrids = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showSkyGrids();\n this._showSkyOverlaysIn3d = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showSkyOverlaysIn3d();\n this._earthCutawayView = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_earthCutawayView();\n this._showISSModel = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showISSModel();\n this._milkyWayModel = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_milkyWayModel();\n this._minorPlanetsFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_minorPlanetsFilter();\n this._planetOrbitsFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_planetOrbitsFilter();\n this._thumbnailString = '';\n this._thumbnail = null;\n this.layers = {};\n this._overlays = [];\n this._musicTrack = null;\n this._voiceTrack = null;\n this._eclipticGridColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_green();\n this._galacticGridColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_cyan();\n this._altAzGridColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_magenta();\n this._precessionChartColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_orange();\n this._eclipticColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_blue();\n this._equatorialGridColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white();\n this._constellationLabelsHeight = 80;\n this._id = _util_js__WEBPACK_IMPORTED_MODULE_11__.Guid.newGuid().toString();\n}\n\nTourStop.clipboardFormat = 'WorldWideTelescope.Slide';\n\nTourStop.create = function (target) {\n var ts = new TourStop();\n ts._target = target;\n return ts;\n};\n\nTourStop.getXmlText = function (ts) {\n var writer = new _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_3__.XmlTextWriter();\n writer._writeProcessingInstruction('xml', \"version='1.0' encoding='UTF-8'\");\n ts._saveToXml(writer, true);\n writer._close();\n return writer.body;\n};\n\nTourStop._fromXml = function (owner, tourStop) {\n try {\n var newTourStop = new TourStop();\n newTourStop._owner = owner;\n newTourStop.set_id(tourStop.attributes.getNamedItem('Id').nodeValue);\n newTourStop.set_name(tourStop.attributes.getNamedItem('Name').nodeValue);\n newTourStop.set_description(tourStop.attributes.getNamedItem('Description').nodeValue);\n newTourStop._thumbnailString = tourStop.attributes.getNamedItem('Thumbnail').nodeValue;\n newTourStop._duration = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.parseTimeSpan(tourStop.attributes.getNamedItem('Duration').nodeValue);\n if (tourStop.attributes.getNamedItem('Master') != null) {\n newTourStop._masterSlide = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('Master').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('NextSlide') != null) {\n newTourStop._nextSlide = tourStop.attributes.getNamedItem('NextSlide').nodeValue;\n }\n if (tourStop.attributes.getNamedItem('InterpolationType') != null) {\n newTourStop.set_interpolationType(_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('InterpolationType', tourStop.attributes.getNamedItem('InterpolationType').nodeValue));\n }\n newTourStop._fadeInOverlays = true;\n if (tourStop.attributes.getNamedItem('FadeInOverlays') != null) {\n newTourStop._fadeInOverlays = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('FadeInOverlays').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('Transition') != null) {\n newTourStop._transition = _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.parse('TransitionType', tourStop.attributes.getNamedItem('Transition').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('HasLocation') != null) {\n newTourStop._hasLocation = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('HasLocation').nodeValue);\n }\n if (newTourStop._hasLocation) {\n if (tourStop.attributes.getNamedItem('LocationAltitude') != null) {\n newTourStop._locationAltitude = parseFloat(tourStop.attributes.getNamedItem('LocationAltitude').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('LocationLat') != null) {\n newTourStop._locationLat = parseFloat(tourStop.attributes.getNamedItem('LocationLat').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('LocationLng') != null) {\n newTourStop._locationLng = parseFloat(tourStop.attributes.getNamedItem('LocationLng').nodeValue);\n }\n }\n if (tourStop.attributes.getNamedItem('HasTime') != null) {\n newTourStop._hasTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('HasTime').nodeValue);\n if (newTourStop._hasTime) {\n if (tourStop.attributes.getNamedItem('StartTime') != null) {\n newTourStop._startTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.date(tourStop.attributes.getNamedItem('StartTime').nodeValue + ' UTC');\n }\n if (tourStop.attributes.getNamedItem('EndTime') != null) {\n newTourStop._endTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.date(tourStop.attributes.getNamedItem('EndTime').nodeValue + ' UTC');\n }\n }\n }\n if (tourStop.attributes.getNamedItem('ActualPlanetScale') != null) {\n newTourStop._actualPlanetScale = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ActualPlanetScale').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowClouds') != null) {\n newTourStop._showClouds = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowClouds').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowConstellationBoundries') != null) {\n newTourStop._showConstellationBoundries = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowConstellationBoundries').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowConstellationFigures') != null) {\n newTourStop._showConstellationFigures = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowConstellationFigures').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowConstellationSelection') != null) {\n newTourStop._showConstellationSelection = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowConstellationSelection').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowEcliptic') != null) {\n newTourStop._showEcliptic = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowEcliptic').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('EclipticColor') != null) {\n newTourStop._eclipticColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.load(tourStop.attributes.getNamedItem('EclipticColor').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowElevationModel') != null) {\n newTourStop._showElevationModel = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowElevationModel').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowFieldOfView') != null) {\n newTourStop._showFieldOfView = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowFieldOfView').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowGrid') != null) {\n newTourStop._showGrid = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowGrid').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowHorizon') != null) {\n newTourStop._showHorizon = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowHorizon').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowHorizonPanorama') != null) {\n newTourStop._showHorizonPanorama = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowHorizonPanorama').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowMoonsAsPointSource') != null) {\n newTourStop._showMoonsAsPointSource = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowMoonsAsPointSource').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowSolarSystem') != null) {\n newTourStop._showSolarSystem = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowSolarSystem').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('FovTelescope') != null) {\n newTourStop._fovTelescope = parseInt(tourStop.attributes.getNamedItem('FovTelescope').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('FovEyepiece') != null) {\n newTourStop._fovEyepiece = parseInt(tourStop.attributes.getNamedItem('FovEyepiece').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('FovCamera') != null) {\n newTourStop._fovCamera = parseInt(tourStop.attributes.getNamedItem('FovCamera').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('LocalHorizonMode') != null) {\n newTourStop._localHorizonMode = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('LocalHorizonMode').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('GalacticMode') != null) {\n newTourStop._galacticMode = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('GalacticMode').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemStars') != null) {\n newTourStop._solarSystemStars = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('SolarSystemStars').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemMilkyWay') != null) {\n newTourStop._solarSystemMilkyWay = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('SolarSystemMilkyWay').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemCosmos') != null) {\n newTourStop._solarSystemCosmos = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('SolarSystemCosmos').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemOrbits') != null) {\n newTourStop._solarSystemOrbits = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('SolarSystemOrbits').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemOverlays') != null) {\n newTourStop._solarSystemOverlays = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('SolarSystemOverlays').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemLighting') != null) {\n newTourStop._solarSystemLighting = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('SolarSystemLighting').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemScale') != null) {\n newTourStop._solarSystemScale = parseInt(tourStop.attributes.getNamedItem('SolarSystemScale').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemMultiRes') != null) {\n newTourStop._solarSystemMultiRes = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('SolarSystemMultiRes').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowEquatorialGridText') != null) {\n newTourStop._showEquatorialGridText = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowEquatorialGridText').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('EquatorialGridColor') != null) {\n newTourStop._equatorialGridColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.load(tourStop.attributes.getNamedItem('EquatorialGridColor').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowGalacticGrid') != null) {\n newTourStop._showGalacticGrid = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowGalacticGrid').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowGalacticGridText') != null) {\n newTourStop._showGalacticGridText = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowGalacticGridText').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('GalacticGridColor') != null) {\n newTourStop._galacticGridColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.load(tourStop.attributes.getNamedItem('GalacticGridColor').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowEclipticGrid') != null) {\n newTourStop._showEclipticGrid = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowEclipticGrid').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowEclipticGridText') != null) {\n newTourStop._showEclipticGridText = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowEclipticGridText').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('EclipticGridColor') != null) {\n newTourStop._eclipticGridColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.load(tourStop.attributes.getNamedItem('EclipticGridColor').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowEclipticOverviewText') != null) {\n newTourStop._showEclipticOverviewText = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowEclipticOverviewText').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowAltAzGrid') != null) {\n newTourStop._showAltAzGrid = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowAltAzGrid').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowAltAzGridText') != null) {\n newTourStop._showAltAzGridText = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowAltAzGridText').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('AltAzGridColor') != null) {\n newTourStop._altAzGridColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.load(tourStop.attributes.getNamedItem('AltAzGridColor').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowPrecessionChart') != null) {\n newTourStop._showPrecessionChart = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowPrecessionChart').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('PrecessionChartColor') != null) {\n newTourStop._precessionChartColor = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.load(tourStop.attributes.getNamedItem('PrecessionChartColor').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowConstellationPictures') != null) {\n newTourStop._showConstellationPictures = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowConstellationPictures').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowConstellationLabels') != null) {\n newTourStop._showConstellationLabels = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowConstellationLabels').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemCMB') != null) {\n newTourStop._solarSystemCMB = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('SolarSystemCMB').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemMinorPlanets') != null) {\n newTourStop._solarSystemMinorPlanets = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('SolarSystemMinorPlanets').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemPlanets') != null) {\n newTourStop._solarSystemPlanets = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('SolarSystemPlanets').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowEarthSky') != null) {\n newTourStop._showEarthSky = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowEarthSky').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('SolarSystemMinorOrbits') != null) {\n newTourStop._solarSystemMinorOrbits = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('SolarSystemMinorOrbits').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowSkyOverlays') != null) {\n newTourStop._showSkyOverlays = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowSkyOverlays').nodeValue);\n } else {\n newTourStop._showSkyOverlays = true;\n }\n if (tourStop.attributes.getNamedItem('ShowConstellations') != null) {\n newTourStop._showConstellations = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowConstellations').nodeValue);\n } else {\n newTourStop._showConstellations = true;\n }\n if (tourStop.attributes.getNamedItem('ShowSkyNode') != null) {\n newTourStop._showSkyNode = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowSkyNode').nodeValue);\n } else {\n newTourStop._showSkyNode = true;\n }\n if (tourStop.attributes.getNamedItem('ShowSkyGrids') != null) {\n newTourStop._showSkyGrids = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowSkyGrids').nodeValue);\n } else {\n newTourStop._showSkyGrids = true;\n }\n if (tourStop.attributes.getNamedItem('ShowSkyOverlaysIn3d') != null) {\n newTourStop._showSkyOverlaysIn3d = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowSkyOverlaysIn3d').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('EarthCutawayView') != null) {\n newTourStop._earthCutawayView = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('EarthCutawayView').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ShowISSModel') != null) {\n newTourStop._showISSModel = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('ShowISSModel').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('MilkyWayModel') != null) {\n newTourStop._milkyWayModel = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.boolean(tourStop.attributes.getNamedItem('MilkyWayModel').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('ConstellationBoundariesFilter') != null) {\n newTourStop._constellationBoundariesFilter = _constellation_filter_js__WEBPACK_IMPORTED_MODULE_6__.ConstellationFilter.parse(tourStop.attributes.getNamedItem('ConstellationBoundariesFilter').nodeValue);\n } else {\n newTourStop._constellationBoundariesFilter = _constellation_filter_js__WEBPACK_IMPORTED_MODULE_6__.ConstellationFilter.get_allConstellation();\n }\n if (tourStop.attributes.getNamedItem('ConstellationBoundariesFilter') != null) {\n newTourStop._constellationFiguresFilter = _constellation_filter_js__WEBPACK_IMPORTED_MODULE_6__.ConstellationFilter.parse(tourStop.attributes.getNamedItem('ConstellationBoundariesFilter').nodeValue);\n } else {\n newTourStop._constellationFiguresFilter = new _constellation_filter_js__WEBPACK_IMPORTED_MODULE_6__.ConstellationFilter();\n }\n if (tourStop.attributes.getNamedItem('ConstellationNamesFilter') != null) {\n newTourStop._constellationNamesFilter = _constellation_filter_js__WEBPACK_IMPORTED_MODULE_6__.ConstellationFilter.parse(tourStop.attributes.getNamedItem('ConstellationNamesFilter').nodeValue);\n } else {\n newTourStop._constellationNamesFilter = new _constellation_filter_js__WEBPACK_IMPORTED_MODULE_6__.ConstellationFilter();\n }\n if (tourStop.attributes.getNamedItem('ConstellationArtFilter') != null) {\n newTourStop._constellationArtFilter = _constellation_filter_js__WEBPACK_IMPORTED_MODULE_6__.ConstellationFilter.parse(tourStop.attributes.getNamedItem('ConstellationArtFilter').nodeValue);\n } else {\n newTourStop._constellationArtFilter = new _constellation_filter_js__WEBPACK_IMPORTED_MODULE_6__.ConstellationFilter();\n }\n if (tourStop.attributes.getNamedItem('MinorPlanetsFilter') != null) {\n newTourStop._minorPlanetsFilter = parseInt(tourStop.attributes.getNamedItem('MinorPlanetsFilter').nodeValue);\n }\n if (tourStop.attributes.getNamedItem('PlanetOrbitsFilter') != null) {\n newTourStop._planetOrbitsFilter = parseInt(tourStop.attributes.getNamedItem('PlanetOrbitsFilter').nodeValue);\n }\n var place = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(tourStop, 'Place');\n newTourStop._target = _place_js__WEBPACK_IMPORTED_MODULE_8__.Place._fromXml(place);\n var endTarget = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(tourStop, 'EndTarget');\n if (endTarget != null) {\n newTourStop._endTarget = _place_js__WEBPACK_IMPORTED_MODULE_8__.Place._fromXml(endTarget);\n }\n var overlays = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(tourStop, 'Overlays');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(overlays.childNodes);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n if (overlay.nodeName === 'Overlay') {\n newTourStop.addOverlay(_overlay_js__WEBPACK_IMPORTED_MODULE_12__.Overlay._fromXml(newTourStop, overlay));\n }\n }\n var musicNode = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(tourStop, 'MusicTrack');\n if (musicNode != null) {\n newTourStop._musicTrack = _overlay_js__WEBPACK_IMPORTED_MODULE_12__.Overlay._fromXml(newTourStop, _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(musicNode, 'Overlay'));\n }\n var voiceNode = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(tourStop, 'VoiceTrack');\n if (voiceNode != null) {\n newTourStop._voiceTrack = _overlay_js__WEBPACK_IMPORTED_MODULE_12__.Overlay._fromXml(newTourStop, _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(voiceNode, 'Overlay'));\n }\n var layerNode = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(tourStop, 'VisibleLayers');\n if (layerNode != null) {\n newTourStop._loadLayerList(layerNode);\n }\n newTourStop._thumbnail = owner.getCachedTexture(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0}.thumb.png', newTourStop._id), function () {\n var c = 0;\n });\n return newTourStop;\n }\n catch (ex) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalScriptInterface._fireTourError(ex);\n return null;\n }\n};\n\nvar TourStop$ = {\n get_keyFramed: function () {\n return this._keyFramed;\n },\n\n get_tourStopType: function () {\n if (this._target.get_backgroundImageset() != null) {\n return this._target.get_backgroundImageset().get_dataSetType();\n } else {\n return this._tourStopType;\n }\n },\n\n set_tourStopType: function (value) {\n if (this._target.get_backgroundImageset() != null) {\n if (this._target.get_backgroundImageset().get_dataSetType() !== value) {\n this._target.set_backgroundImageset(null);\n }\n }\n this._tourStopType = value;\n return value;\n },\n\n get_tweenPosition: function () {\n return this._tweenPosition;\n },\n\n set_tweenPosition: function (value) {\n if (this._tweenPosition !== value) {\n this._tweenPosition = Math.max(0, Math.min(1, value));\n this.updateTweenPosition();\n }\n return value;\n },\n\n updateTweenPosition: function () {\n if (this.get_keyFramed()) {\n }\n },\n\n copy: function () {\n var writer = new _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_3__.XmlTextWriter();\n writer._writeProcessingInstruction('xml', \"version='1.0' encoding='UTF-8'\");\n this._saveToXml(writer, true);\n try {\n var xParser = new DOMParser();\n var doc = xParser.parseFromString(writer.body, 'text/xml');\n var node = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(doc, 'TourStop');\n var ts = TourStop._fromXml(this.get_owner(), node);\n ts.set_id(_util_js__WEBPACK_IMPORTED_MODULE_11__.Guid.newGuid().toString());\n return ts;\n }\n catch ($e1) {\n }\n return null;\n },\n\n get_owner: function () {\n return this._owner;\n },\n\n set_owner: function (value) {\n this._owner = value;\n return value;\n },\n\n get__transition: function () {\n return this._transition;\n },\n\n set__transition: function (value) {\n if (this._transition !== value) {\n this._transition = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get__transitionTime: function () {\n return this._transitionTime;\n },\n\n set__transitionTime: function (value) {\n if (this._transitionTime !== value) {\n this._transitionTime = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get__transitionHoldTime: function () {\n return this._transitionHoldTime;\n },\n\n set__transitionHoldTime: function (value) {\n if (this._transitionHoldTime !== value) {\n this._transitionHoldTime = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get__transitionOutTime: function () {\n return this._transitionOutTime;\n },\n\n set__transitionOutTime: function (value) {\n if (this._transitionOutTime !== value) {\n this._transitionOutTime = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get_nextSlide: function () {\n return this._nextSlide;\n },\n\n set_nextSlide: function (value) {\n this._nextSlide = value;\n return value;\n },\n\n get_isLinked: function () {\n if (this._nextSlide == null || this._nextSlide === 'Next' || !this._nextSlide) {\n return false;\n }\n return true;\n },\n\n get_fadeInOverlays: function () {\n return this._fadeInOverlays;\n },\n\n set_fadeInOverlays: function (value) {\n this._fadeInOverlays = value;\n return value;\n },\n\n get_masterSlide: function () {\n return this._masterSlide;\n },\n\n set_masterSlide: function (value) {\n if (this._masterSlide !== value) {\n this._masterSlide = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get_id: function () {\n return this._id;\n },\n\n set_id: function (value) {\n this._id = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n return value;\n },\n\n toString: function () {\n if (this._target != null) {\n return this.get_target().get_name();\n } else {\n return this._description;\n }\n },\n\n get_description: function () {\n return this._description;\n },\n\n set_description: function (value) {\n if (this._description !== value) {\n this._description = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get_name: function () {\n if (this._target != null) {\n return this._target.get_name();\n }\n return this._name;\n },\n\n set_name: function (value) {\n if (this._name !== value) {\n this._name = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get_duration: function () {\n return this._duration;\n },\n\n set_duration: function (value) {\n if (this._duration !== value) {\n this._duration = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get_target: function () {\n return this._target;\n },\n\n set_target: function (value) {\n if (this._target !== value) {\n this._target = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get_endTarget: function () {\n return this._endTarget;\n },\n\n set_endTarget: function (value) {\n if (this._endTarget !== value) {\n this._endTarget = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get_interpolationType: function () {\n return this._interpolationType;\n },\n\n set_interpolationType: function (value) {\n this._interpolationType = value;\n return value;\n },\n\n get_hasLocation: function () {\n return this._hasTime;\n },\n\n set_hasLocation: function (value) {\n if (this._hasLocation !== value) {\n this._hasLocation = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get_hasTime: function () {\n return this._hasTime;\n },\n\n set_hasTime: function (value) {\n if (this._hasTime !== value) {\n this._hasTime = this._hasLocation = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get_startTime: function () {\n return this._startTime;\n },\n\n set_startTime: function (value) {\n this._startTime = value;\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.compareDates(this._startTime, value)) {\n this._startTime = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get_endTime: function () {\n return this._endTime;\n },\n\n set_endTime: function (value) {\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.compareDates(this._endTime, value)) {\n this._endTime = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n captureSettings: function () {\n this._startTime = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_10__.SpaceTimeController.get_now();\n this._actualPlanetScale = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_actualPlanetScale();\n this._locationAltitude = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_locationAltitude();\n this._locationLat = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_locationLat();\n this._locationLng = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_locationLng();\n this._showClouds = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showClouds();\n this._showConstellationBoundries = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellationBoundries();\n this._showConstellationFigures = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellationFigures();\n this._showConstellationSelection = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellationSelection();\n this._showEcliptic = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEcliptic();\n this._showElevationModel = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showElevationModel();\n this._showFieldOfView = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showFieldOfView();\n this._showGrid = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showGrid();\n this._showHorizon = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showHorizon();\n this._showHorizonPanorama = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showHorizonPanorama();\n this._showMoonsAsPointSource = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showMoonsAsPointSource();\n this._showSolarSystem = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showSolarSystem();\n this._fovTelescope = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_fovTelescope();\n this._fovEyepiece = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_fovEyepiece();\n this._fovCamera = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_fovCamera();\n this._localHorizonMode = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_localHorizonMode();\n this._galacticMode = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_galacticMode();\n this._solarSystemStars = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemStars();\n this._solarSystemMilkyWay = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemMilkyWay();\n this._solarSystemCosmos = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemCosmos();\n this._solarSystemOrbits = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemOrbits();\n this._solarSystemOverlays = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemOverlays();\n this._solarSystemLighting = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemLighting();\n this._solarSystemScale = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemScale();\n this._solarSystemMultiRes = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemMultiRes();\n this._showEquatorialGridText = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEquatorialGridText();\n this._showGalacticGrid = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showGalacticGrid();\n this._showGalacticGridText = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showGalacticGridText();\n this._showEclipticGrid = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEclipticGrid();\n this._showEclipticGridText = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEclipticGridText();\n this._showEclipticOverviewText = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEclipticOverviewText();\n this._showAltAzGrid = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showAltAzGrid();\n this._showAltAzGridText = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showAltAzGridText();\n this._showPrecessionChart = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showPrecessionChart();\n this._showConstellationPictures = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellationPictures();\n this._showConstellationLabels = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellationLabels();\n this._solarSystemCMB = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemCMB();\n this._solarSystemMinorPlanets = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemMinorPlanets();\n this._solarSystemPlanets = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemPlanets();\n this._showEarthSky = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showEarthSky();\n this._solarSystemMinorOrbits = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_solarSystemMinorOrbits();\n this._constellationFiguresFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_constellationFiguresFilter().clone();\n this._constellationBoundariesFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_constellationBoundariesFilter().clone();\n this._constellationNamesFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_constellationNamesFilter().clone();\n this._constellationArtFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_constellationArtFilter().clone();\n this._showSkyOverlays = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showSkyOverlays();\n this._showConstellations = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showConstellations();\n this._showSkyNode = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showSkyNode();\n this._showSkyGrids = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showSkyGrids();\n this._showSkyOverlaysIn3d = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showSkyOverlaysIn3d();\n this._earthCutawayView = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_earthCutawayView();\n this._showISSModel = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_showISSModel();\n this._milkyWayModel = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_milkyWayModel();\n this._minorPlanetsFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_minorPlanetsFilter();\n this._planetOrbitsFilter = _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_planetOrbitsFilter();\n },\n\n syncSettings: function () {\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_actualPlanetScale(this._actualPlanetScale);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_locationAltitude(this._locationAltitude);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_locationLat(this._locationLat);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_locationLng(this._locationLng);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_earthCutawayView(this._earthCutawayView);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showConstellationBoundries(this._showConstellationBoundries);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showConstellationFigures(this._showConstellationFigures);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showConstellationSelection(this._showConstellationSelection);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showEcliptic(this._showEcliptic);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showElevationModel(this._showElevationModel);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showGrid(this._showGrid);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showHorizon(this._showHorizon);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showSolarSystem(this._showSolarSystem);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_localHorizonMode(this._localHorizonMode);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_galacticMode(this._galacticMode);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_solarSystemStars(this._solarSystemStars);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_solarSystemMilkyWay(this._solarSystemMilkyWay);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_solarSystemCosmos(this._solarSystemCosmos);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_solarSystemCMB(this._solarSystemCMB);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_solarSystemOrbits(this._solarSystemOrbits);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_solarSystemMinorOrbits(this._solarSystemMinorOrbits);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_solarSystemMinorPlanets(this._solarSystemMinorPlanets);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_solarSystemOverlays(this._solarSystemOverlays);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_solarSystemLighting(this._solarSystemLighting);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showISSModel(this._showISSModel);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_solarSystemScale(this._solarSystemScale);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_solarSystemMultiRes(this._solarSystemMultiRes);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showEarthSky(this._showEarthSky);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_minorPlanetsFilter(this._minorPlanetsFilter);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_planetOrbitsFilter(this._planetOrbitsFilter);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showEquatorialGridText(this._showEquatorialGridText);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showGalacticGrid(this._showGalacticGrid);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showGalacticGridText(this._showGalacticGridText);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showEclipticGrid(this._showEclipticGrid);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showEclipticGridText(this._showEclipticGridText);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showEclipticOverviewText(this._showEclipticOverviewText);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showAltAzGrid(this._showAltAzGrid);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showAltAzGridText(this._showAltAzGridText);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showPrecessionChart(this._showPrecessionChart);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showConstellationPictures(this._showConstellationPictures);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_constellationsEnabled(this._constellationsEnabled);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showSkyOverlays(this._showSkyOverlays);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_constellations(this._showConstellations);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showSkyNode(this._showSkyNode);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_showSkyGrids(this._showSkyGrids);\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_constellationFiguresFilter(this._constellationFiguresFilter.clone());\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_constellationBoundariesFilter(this._constellationBoundariesFilter.clone());\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_constellationNamesFilter(this._constellationNamesFilter.clone());\n _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_globalSettings().set_constellationArtFilter(this._constellationArtFilter.clone());\n },\n\n get_solarSystemStars: function () {\n return this._solarSystemStars;\n },\n\n get_solarSystemMultiRes: function () {\n return this._solarSystemMultiRes;\n },\n\n get_solarSystemMilkyWay: function () {\n return this._solarSystemMilkyWay;\n },\n\n get_solarSystemCosmos: function () {\n return this._solarSystemCosmos;\n },\n\n get_solarSystemOrbits: function () {\n return this._solarSystemOrbits;\n },\n\n get_solarSystemOverlays: function () {\n return this._solarSystemOverlays;\n },\n\n get_solarSystemLighting: function () {\n return this._solarSystemLighting;\n },\n\n get_solarSystemScale: function () {\n return this._solarSystemScale;\n },\n\n get_actualPlanetScale: function () {\n return this._actualPlanetScale;\n },\n\n get_fovCamera: function () {\n return this._fovCamera;\n },\n\n get_fovEyepiece: function () {\n return this._fovEyepiece;\n },\n\n get_fovTelescope: function () {\n return this._fovTelescope;\n },\n\n get_locationAltitude: function () {\n if (this._hasLocation) {\n return this._locationAltitude;\n } else {\n return _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_locationAltitude();\n }\n },\n\n get_locationLat: function () {\n if (this._hasLocation) {\n return this._locationLat;\n } else {\n return _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_locationLat();\n }\n },\n\n get_locationLng: function () {\n if (this._hasLocation) {\n return this._locationLng;\n } else {\n return _settings_js__WEBPACK_IMPORTED_MODULE_9__.Settings.get_current().get_locationLng();\n }\n },\n\n get_showClouds: function () {\n return this._showClouds;\n },\n\n get_showConstellationBoundries: function () {\n return this._showConstellationBoundries;\n },\n\n get_showConstellationFigures: function () {\n return this._showConstellationFigures;\n },\n\n get_showConstellationSelection: function () {\n return this._showConstellationSelection;\n },\n\n get_showEcliptic: function () {\n return this._showEcliptic;\n },\n\n get_showElevationModel: function () {\n return this._showElevationModel;\n },\n\n get_showFieldOfView: function () {\n return this._showFieldOfView;\n },\n\n get_showGrid: function () {\n return this._showGrid;\n },\n\n get_showHorizon: function () {\n return this._showHorizon;\n },\n\n get_showHorizonPanorama: function () {\n return this._showHorizonPanorama;\n },\n\n get_showMoonsAsPointSource: function () {\n return this._showMoonsAsPointSource;\n },\n\n get_showSolarSystem: function () {\n return this._showSolarSystem;\n },\n\n get_localHorizonMode: function () {\n return this._localHorizonMode;\n },\n\n get_galacticMode: function () {\n return this._galacticMode;\n },\n\n get_thumbnail: function () {\n if (this._target != null && this._thumbnail == null) {\n return null;\n }\n return this._thumbnail;\n },\n\n set_thumbnail: function (value) {\n this._thumbnail = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n return value;\n },\n\n get_overlays: function () {\n return this._overlays;\n },\n\n get_musicTrack: function () {\n return this._musicTrack;\n },\n\n set_musicTrack: function (value) {\n if (this._musicTrack !== value) {\n this._musicTrack = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n get_voiceTrack: function () {\n return this._voiceTrack;\n },\n\n set_voiceTrack: function (value) {\n if (this._voiceTrack !== value) {\n this._voiceTrack = value;\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n }\n return value;\n },\n\n addOverlay: function (overlay) {\n if (overlay == null) {\n return;\n }\n overlay.set_owner(this);\n this._overlays.push(overlay);\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n },\n\n removeOverlay: function (overlay) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(this._overlays, overlay);\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n },\n\n cleanUp: function () {\n // \"todo this needs to be evaluated. Causes major pain in WebClient\"\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.get_overlays());\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.cleanUp();\n }\n if (this._voiceTrack != null) {\n this._voiceTrack.cleanUp();\n }\n if (this._musicTrack != null) {\n this._musicTrack.cleanUp();\n }\n },\n\n sendToBack: function (target) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(this._overlays, target);\n this._overlays.splice(0, 0, target);\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n },\n\n bringToFront: function (target) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(this._overlays, target);\n this._overlays.push(target);\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n },\n\n bringForward: function (target) {\n var index = this._overlays.indexOf(target);\n if (index < this._overlays.length - 1) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(this._overlays, target);\n this._overlays.splice(index + 1, 0, target);\n }\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n },\n\n sendBackward: function (target) {\n var index = this._overlays.indexOf(target);\n if (index > 0) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(this._overlays, target);\n this._overlays.splice(index - 1, 0, target);\n }\n if (this._owner != null) {\n this._owner.set_tourDirty(true);\n }\n },\n\n getNextOverlay: function (current) {\n if (current == null) {\n if (this._overlays.length > 0) {\n return this._overlays[0];\n }\n else {\n return null;\n }\n }\n var index = this._overlays.indexOf(current);\n if (index < this._overlays.length - 1) {\n return this._overlays[index + 1];\n } else {\n return this._overlays[0];\n }\n },\n\n getPerviousOverlay: function (current) {\n if (current == null) {\n if (this._overlays.length > 0) {\n return this._overlays[0];\n }\n else {\n return null;\n }\n }\n var index = this._overlays.indexOf(current);\n if (index > 0) {\n return this._overlays[index - 1];\n } else {\n return this._overlays[this._overlays.length - 1];\n }\n },\n\n getOverlayById: function (id) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._overlays);\n while ($enum1.moveNext()) {\n var ol = $enum1.current;\n if (ol.id === id) {\n return ol;\n }\n }\n return null;\n },\n\n get_tourStopThumbnailFilename: function () {\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0}.thumb.png', this._id);\n },\n\n _saveToXml: function (xmlWriter, saveContent) {\n if (saveContent) {\n if (this._thumbnail != null) {\n }\n }\n xmlWriter._writeStartElement('TourStop');\n xmlWriter._writeAttributeString('Id', this._id);\n xmlWriter._writeAttributeString('Name', this._name);\n xmlWriter._writeAttributeString('Description', this._description);\n xmlWriter._writeAttributeString('Thumbnail', this._thumbnailString);\n xmlWriter._writeAttributeString('Duration', _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.xmlDuration(this._duration));\n xmlWriter._writeAttributeString('Master', this._masterSlide.toString());\n xmlWriter._writeAttributeString('TransitionType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('TransitionType', this._transition));\n xmlWriter._writeAttributeString('TransitionTime', this._transitionTime.toString());\n xmlWriter._writeAttributeString('TransitionOutTime', this._transitionOutTime.toString());\n xmlWriter._writeAttributeString('TransitionHoldTime', this._transitionHoldTime.toString());\n xmlWriter._writeAttributeString('NextSlide', this._nextSlide);\n xmlWriter._writeAttributeString('InterpolationType', _typesystem_js__WEBPACK_IMPORTED_MODULE_1__.Enums.toXml('InterpolationType', this._interpolationType));\n xmlWriter._writeAttributeString('HasLocation', this._hasLocation.toString());\n if (this._hasLocation) {\n xmlWriter._writeAttributeString('LocationAltitude', this._locationAltitude.toString());\n xmlWriter._writeAttributeString('LocationLat', this._locationLat.toString());\n xmlWriter._writeAttributeString('LocationLng', this._locationLng.toString());\n }\n xmlWriter._writeAttributeString('HasTime', this._hasTime.toString());\n if (this._hasTime) {\n xmlWriter._writeAttributeString('StartTime', _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.xmlDate(this._startTime));\n xmlWriter._writeAttributeString('EndTime', _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.xmlDate(this._endTime));\n }\n xmlWriter._writeAttributeString('ActualPlanetScale', this._actualPlanetScale.toString());\n xmlWriter._writeAttributeString('ShowClouds', this._showClouds.toString());\n xmlWriter._writeAttributeString('EarthCutawayView', this._earthCutawayView.toString());\n xmlWriter._writeAttributeString('ShowConstellationBoundries', this._showConstellationBoundries.toString());\n xmlWriter._writeAttributeString('ShowConstellationFigures', this._showConstellationFigures.toString());\n xmlWriter._writeAttributeString('ShowConstellationSelection', this._showConstellationSelection.toString());\n xmlWriter._writeAttributeString('ShowEcliptic', this._showEcliptic.toString());\n xmlWriter._writeAttributeString('EclipticColor', this._eclipticColor.save());\n xmlWriter._writeAttributeString('ShowElevationModel', this._showElevationModel.toString());\n this._showFieldOfView = false;\n xmlWriter._writeAttributeString('ShowFieldOfView', this._showFieldOfView.toString());\n xmlWriter._writeAttributeString('ShowGrid', this._showGrid.toString());\n xmlWriter._writeAttributeString('ShowHorizon', this._showHorizon.toString());\n xmlWriter._writeAttributeString('ShowHorizonPanorama', this._showHorizonPanorama.toString());\n xmlWriter._writeAttributeString('ShowMoonsAsPointSource', this._showMoonsAsPointSource.toString());\n xmlWriter._writeAttributeString('ShowSolarSystem', this._showSolarSystem.toString());\n xmlWriter._writeAttributeString('FovTelescope', this._fovTelescope.toString());\n xmlWriter._writeAttributeString('FovEyepiece', this._fovEyepiece.toString());\n xmlWriter._writeAttributeString('FovCamera', this._fovCamera.toString());\n xmlWriter._writeAttributeString('LocalHorizonMode', this._localHorizonMode.toString());\n xmlWriter._writeAttributeString('GalacticMode', this._galacticMode.toString());\n xmlWriter._writeAttributeString('FadeInOverlays', this._fadeInOverlays.toString());\n xmlWriter._writeAttributeString('SolarSystemStars', this._solarSystemStars.toString());\n xmlWriter._writeAttributeString('SolarSystemMilkyWay', this._solarSystemMilkyWay.toString());\n xmlWriter._writeAttributeString('SolarSystemCosmos', this._solarSystemCosmos.toString());\n xmlWriter._writeAttributeString('SolarSystemCMB', this._solarSystemCMB.toString());\n xmlWriter._writeAttributeString('SolarSystemOrbits', this._solarSystemOrbits.toString());\n xmlWriter._writeAttributeString('SolarSystemMinorOrbits', this._solarSystemMinorOrbits.toString());\n xmlWriter._writeAttributeString('SolarSystemOverlays', this._solarSystemOverlays.toString());\n xmlWriter._writeAttributeString('SolarSystemLighting', this._solarSystemLighting.toString());\n xmlWriter._writeAttributeString('ShowISSModel', this._showISSModel.toString());\n xmlWriter._writeAttributeString('SolarSystemScale', this._solarSystemScale.toString());\n xmlWriter._writeAttributeString('MinorPlanetsFilter', this._minorPlanetsFilter.toString());\n xmlWriter._writeAttributeString('PlanetOrbitsFilter', this._planetOrbitsFilter.toString());\n xmlWriter._writeAttributeString('SolarSystemMultiRes', this._solarSystemMultiRes.toString());\n xmlWriter._writeAttributeString('SolarSystemMinorPlanets', this._solarSystemMinorPlanets.toString());\n xmlWriter._writeAttributeString('SolarSystemPlanets', this._solarSystemPlanets.toString());\n xmlWriter._writeAttributeString('ShowEarthSky', this._showEarthSky.toString());\n xmlWriter._writeAttributeString('ShowEquatorialGridText', this.get_showEquatorialGridText().toString());\n xmlWriter._writeAttributeString('EquatorialGridColor', this.get_equatorialGridColor().save());\n xmlWriter._writeAttributeString('ShowGalacticGrid', this.get_showGalacticGrid().toString());\n xmlWriter._writeAttributeString('ShowGalacticGridText', this.get_showGalacticGridText().toString());\n xmlWriter._writeAttributeString('GalacticGridColor', this.get_galacticGridColor().save());\n xmlWriter._writeAttributeString('ShowEclipticGrid', this.get_showEclipticGrid().toString());\n xmlWriter._writeAttributeString('ShowEclipticGridText', this.get_showEclipticGridText().toString());\n xmlWriter._writeAttributeString('EclipticGridColor', this.get_eclipticGridColor().save());\n xmlWriter._writeAttributeString('ShowEclipticOverviewText', this.get_showEclipticOverviewText().toString());\n xmlWriter._writeAttributeString('ShowAltAzGrid', this.get_showAltAzGrid().toString());\n xmlWriter._writeAttributeString('ShowAltAzGridText', this.get_showAltAzGridText().toString());\n xmlWriter._writeAttributeString('AltAzGridColor', this.get_altAzGridColor().save());\n xmlWriter._writeAttributeString('ShowPrecessionChart', this.get_showPrecessionChart().toString());\n xmlWriter._writeAttributeString('PrecessionChartColor', this.get_precessionChartColor().save());\n xmlWriter._writeAttributeString('ConstellationPictures', this.get_showConstellationPictures().toString());\n xmlWriter._writeAttributeString('ConstellationsEnabled', this.get_constellationsEnabled());\n xmlWriter._writeAttributeString('ShowConstellationLabels', this.get_showConstellationLabels().toString());\n xmlWriter._writeAttributeString('ShowSkyOverlays', this.get_showSkyOverlays().toString());\n xmlWriter._writeAttributeString('ShowConstellations', this.get_showConstellations().toString());\n xmlWriter._writeAttributeString('ShowSkyNode', this.get_showSkyNode().toString());\n xmlWriter._writeAttributeString('ShowSkyGrids', this.get_showSkyGrids().toString());\n xmlWriter._writeAttributeString('SkyOverlaysIn3d', this.get_showSkyOverlaysIn3d().toString());\n xmlWriter._writeAttributeString('ConstellationFiguresFilter', this._constellationFiguresFilter.toString());\n xmlWriter._writeAttributeString('ConstellationBoundariesFilter', this._constellationBoundariesFilter.toString());\n xmlWriter._writeAttributeString('ConstellationNamesFilter', this._constellationNamesFilter.toString());\n xmlWriter._writeAttributeString('ConstellationArtFilter', this._constellationArtFilter.toString());\n this._target._saveToXml(xmlWriter, 'Place');\n if (this._endTarget != null) {\n this._endTarget._saveToXml(xmlWriter, 'EndTarget');\n }\n xmlWriter._writeStartElement('Overlays');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._overlays);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.saveToXml(xmlWriter, false);\n }\n xmlWriter._writeEndElement();\n if (this._musicTrack != null) {\n xmlWriter._writeStartElement('MusicTrack');\n this._musicTrack.saveToXml(xmlWriter, false);\n xmlWriter._writeEndElement();\n }\n if (this._voiceTrack != null) {\n xmlWriter._writeStartElement('VoiceTrack');\n this._voiceTrack.saveToXml(xmlWriter, false);\n xmlWriter._writeEndElement();\n }\n this._writeLayerList(xmlWriter);\n xmlWriter._writeEndElement();\n },\n\n _writeLayerList: function (xmlWriter) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyCount(this.layers) > 0) {\n xmlWriter._writeStartElement('VisibleLayers');\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keys(this.layers));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n var info = this.layers[key];\n xmlWriter._writeStartElement('Layer');\n xmlWriter._writeAttributeString('StartOpacity', info.startOpacity.toString());\n xmlWriter._writeAttributeString('EndOpacity', info.endOpacity.toString());\n var len = info.startParams.length;\n xmlWriter._writeAttributeString('ParamCount', len.toString());\n for (var i = 0; i < len; i++) {\n xmlWriter._writeAttributeString(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('StartParam{0}', i), info.startParams[i].toString());\n xmlWriter._writeAttributeString(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('EndParam{0}', i), info.endParams[i].toString());\n }\n xmlWriter._writeValue(info.id.toString());\n xmlWriter._writeEndElement();\n }\n xmlWriter._writeEndElement();\n }\n },\n\n _addFilesToCabinet: function (fc, excludeAudio) {\n if (this._thumbnail != null) {\n var filename = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0}.thumb.png', this._id);\n var blob = this._owner.getFileBlob(filename);\n fc.addFile(this._owner.get_workingDirectory() + filename, blob);\n }\n if (!excludeAudio) {\n if (this._musicTrack != null) {\n this._musicTrack.addFilesToCabinet(fc);\n }\n if (this._voiceTrack != null) {\n this._voiceTrack.addFilesToCabinet(fc);\n }\n }\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._overlays);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n overlay.addFilesToCabinet(fc);\n }\n },\n\n getNextDefaultName: function (baseName) {\n var suffixId = 1;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._overlays);\n while ($enum1.moveNext()) {\n var overlay = $enum1.current;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.startsWith(overlay.get_name(), baseName)) {\n var id = 0;\n try {\n id = parseInt(overlay.get_name().substr(baseName.length));\n }\n catch ($e2) {\n }\n if (id >= suffixId) {\n suffixId = id + 1;\n }\n }\n }\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0} {1}', baseName, suffixId);\n },\n\n _loadLayerList: function (layersNode) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(layersNode.childNodes);\n while ($enum1.moveNext()) {\n var layer = $enum1.current;\n if (layer.nodeName === 'Layer') {\n var info = new LayerInfo();\n var id = layer.innerHTML;\n info.id = _util_js__WEBPACK_IMPORTED_MODULE_11__.Guid.fromString(id);\n info.startOpacity = parseFloat(layer.attributes.getNamedItem('StartOpacity').nodeValue);\n info.endOpacity = parseFloat(layer.attributes.getNamedItem('EndOpacity').nodeValue);\n var len = 0;\n if (layer.attributes.getNamedItem('ParamCount') != null) {\n len = parseInt(layer.attributes.getNamedItem('ParamCount').nodeValue);\n }\n info.startParams = new Array(len);\n info.endParams = new Array(len);\n info.frameParams = new Array(len);\n for (var i = 0; i < len; i++) {\n info.startParams[i] = parseFloat(layer.attributes.getNamedItem(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('StartParam{0}', i)).nodeValue);\n info.endParams[i] = parseFloat(layer.attributes.getNamedItem(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('EndParam{0}', i)).nodeValue);\n info.frameParams[i] = info.startParams[i];\n }\n this.layers[info.id] = info;\n }\n }\n },\n\n _updateLayerOpacity: function () {\n if (!this.get_keyFramed()) {\n } else {\n this.updateTweenPosition();\n }\n },\n\n get_showEquatorialGridText: function () {\n return this._showEquatorialGridText;\n },\n\n set_showEquatorialGridText: function (value) {\n this._showEquatorialGridText = value;\n return value;\n },\n\n get_showGalacticGrid: function () {\n return this._showGalacticGrid;\n },\n\n set_showGalacticGrid: function (value) {\n this._showGalacticGrid = value;\n return value;\n },\n\n get_showGalacticGridText: function () {\n return this._showGalacticGridText;\n },\n\n set_showGalacticGridText: function (value) {\n this._showGalacticGridText = value;\n return value;\n },\n\n get_showEclipticGrid: function () {\n return this._showEclipticGrid;\n },\n\n set_showEclipticGrid: function (value) {\n this._showEclipticGrid = value;\n return value;\n },\n\n get_showEclipticGridText: function () {\n return this._showEclipticGridText;\n },\n\n set_showEclipticGridText: function (value) {\n this._showEclipticGridText = value;\n return value;\n },\n\n get_showEclipticOverviewText: function () {\n return this._showEclipticOverviewText;\n },\n\n set_showEclipticOverviewText: function (value) {\n this._showEclipticOverviewText = value;\n return value;\n },\n\n get_showAltAzGrid: function () {\n return this._showAltAzGrid;\n },\n\n set_showAltAzGrid: function (value) {\n this._showAltAzGrid = value;\n return value;\n },\n\n get_showAltAzGridText: function () {\n return this._showAltAzGridText;\n },\n\n set_showAltAzGridText: function (value) {\n this._showAltAzGridText = value;\n return value;\n },\n\n get_showPrecessionChart: function () {\n return this._showPrecessionChart;\n },\n\n set_showPrecessionChart: function (value) {\n this._showPrecessionChart = value;\n return value;\n },\n\n get_showConstellationPictures: function () {\n return this._showConstellationPictures;\n },\n\n set_showConstellationPictures: function (value) {\n this._showConstellationPictures = value;\n return value;\n },\n\n get_showConstellationLabels: function () {\n return this._showConstellationLabels;\n },\n\n set_showConstellationLabels: function (value) {\n this._showConstellationLabels = value;\n return value;\n },\n\n get_solarSystemCMB: function () {\n return this._solarSystemCMB;\n },\n\n set_solarSystemCMB: function (value) {\n this._solarSystemCMB = value;\n return value;\n },\n\n get_solarSystemMinorPlanets: function () {\n return this._solarSystemMinorPlanets;\n },\n\n set_solarSystemMinorPlanets: function (value) {\n this._solarSystemMinorPlanets = value;\n return value;\n },\n\n get_solarSystemPlanets: function () {\n return this._solarSystemPlanets;\n },\n\n set_solarSystemPlanets: function (value) {\n this._solarSystemPlanets = value;\n return value;\n },\n\n get_showEarthSky: function () {\n return this._showEarthSky;\n },\n\n set_showEarthSky: function (value) {\n this._showEarthSky = value;\n return value;\n },\n\n get_solarSystemMinorOrbits: function () {\n return this._solarSystemMinorOrbits;\n },\n\n set_solarSystemMinorOrbits: function (value) {\n this._solarSystemMinorOrbits = value;\n return value;\n },\n\n get_constellationsEnabled: function () {\n return this._constellationsEnabled;\n },\n\n set_constellationsEnabled: function (value) {\n this._constellationsEnabled = value;\n return value;\n },\n\n get_constellationFiguresFilter: function () {\n return this._constellationFiguresFilter;\n },\n\n set_constellationFiguresFilter: function (value) {\n this._constellationFiguresFilter = value;\n return value;\n },\n\n get_constellationBoundariesFilter: function () {\n return this._constellationBoundariesFilter;\n },\n\n set_constellationBoundariesFilter: function (value) {\n this._constellationBoundariesFilter = value;\n return value;\n },\n\n get_constellationNamesFilter: function () {\n return this._constellationNamesFilter;\n },\n\n set_constellationNamesFilter: function (value) {\n this._constellationNamesFilter = value;\n return value;\n },\n\n get_constellationArtFilter: function () {\n return this._constellationArtFilter;\n },\n\n set_constellationArtFilter: function (value) {\n this._constellationArtFilter = value;\n return value;\n },\n\n get_showSkyOverlays: function () {\n return this._showSkyOverlays;\n },\n\n set_showSkyOverlays: function (value) {\n this._showSkyOverlays = value;\n return value;\n },\n\n get_showConstellations: function () {\n return this._showConstellations;\n },\n\n set_showConstellations: function (value) {\n this._showConstellations = value;\n return value;\n },\n\n get_showSkyNode: function () {\n return this._showSkyNode;\n },\n\n set_showSkyNode: function (value) {\n this._showSkyNode = value;\n return value;\n },\n\n get_showSkyGrids: function () {\n return this._showSkyGrids;\n },\n\n set_showSkyGrids: function (value) {\n this._showSkyGrids = value;\n return value;\n },\n\n get_showSkyOverlaysIn3d: function () {\n return this._showSkyOverlaysIn3d;\n },\n\n set_showSkyOverlaysIn3d: function (value) {\n this._showSkyOverlaysIn3d = value;\n return value;\n },\n\n get_earthCutawayView: function () {\n return this._earthCutawayView;\n },\n\n set_earthCutawayView: function (value) {\n this._earthCutawayView = value;\n return value;\n },\n\n get_showISSModel: function () {\n return this._showISSModel;\n },\n\n set_showISSModel: function (value) {\n this._showISSModel = value;\n return value;\n },\n\n get_milkyWayModel: function () {\n return this._milkyWayModel;\n },\n\n set_milkyWayModel: function (value) {\n this._milkyWayModel = value;\n return value;\n },\n\n get_minorPlanetsFilter: function () {\n return this._minorPlanetsFilter;\n },\n\n set_minorPlanetsFilter: function (value) {\n this._minorPlanetsFilter = value;\n return value;\n },\n\n get_planetOrbitsFilter: function () {\n return this._planetOrbitsFilter;\n },\n\n set_planetOrbitsFilter: function (value) {\n this._planetOrbitsFilter = value;\n return value;\n },\n\n getSetting: function (type) {\n if (type === 17) {\n return new _settings_js__WEBPACK_IMPORTED_MODULE_9__.SettingParameter(true, this.faderOpacity, !!this.faderOpacity, null);\n }\n return new _settings_js__WEBPACK_IMPORTED_MODULE_9__.SettingParameter(false, 1, false, null);\n },\n\n get_eclipticGridColor: function () {\n return this._eclipticGridColor;\n },\n\n set_eclipticGridColor: function (value) {\n this._eclipticGridColor = value;\n return value;\n },\n\n get_galacticGridColor: function () {\n return this._galacticGridColor;\n },\n\n set_galacticGridColor: function (value) {\n this._galacticGridColor = value;\n return value;\n },\n\n get_altAzGridColor: function () {\n return this._altAzGridColor;\n },\n\n set_altAzGridColor: function (value) {\n this._altAzGridColor = value;\n return value;\n },\n\n get_precessionChartColor: function () {\n return this._precessionChartColor;\n },\n\n set_precessionChartColor: function (value) {\n this._precessionChartColor = value;\n return value;\n },\n\n get_eclipticColor: function () {\n return this._eclipticColor;\n },\n\n set_eclipticColor: function (value) {\n this._eclipticColor = value;\n return value;\n },\n\n get_equatorialGridColor: function () {\n return this._equatorialGridColor;\n },\n\n set_equatorialGridColor: function (value) {\n this._equatorialGridColor = value;\n return value;\n },\n\n get_constellationLabelsHeight: function () {\n return this._constellationLabelsHeight;\n },\n\n set_constellationLabelsHeight: function (value) {\n this._constellationLabelsHeight = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"TourStop\", [TourStop, TourStop$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_7__.ISettings]);\n\n\n// wwtlib.LayerInfo\n\nfunction LayerInfo() {\n this.id = _util_js__WEBPACK_IMPORTED_MODULE_11__.Guid.newGuid();\n this.startOpacity = 1;\n this.endOpacity = 1;\n this.frameOpacity = 1;\n this.startParams = new Array(0);\n this.endParams = new Array(0);\n this.frameParams = new Array(0);\n}\n\nvar LayerInfo$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"LayerInfo\", [LayerInfo, LayerInfo$, null]);\n\n\n// wwtlib.UndoTourStopChange\n\nfunction UndoTourStopChange(text, tour) {\n this._undoXml = '';\n this._redoXml = '';\n this._currentIndex = 0;\n this._actionText = '';\n this._targetTour = null;\n this._currentIndex = tour.get_currentTourstopIndex();\n this._actionText = text;\n this._targetTour = tour;\n this._undoXml = TourStop.getXmlText(tour.get_currentTourStop());\n this._targetTour.set_tourDirty(true);\n}\n\nvar UndoTourStopChange$ = {\n get_actionText: function () {\n return this._actionText;\n },\n\n set_actionText: function (value) {\n this._actionText = value;\n return value;\n },\n\n undo: function () {\n var tsRedo = this._targetTour.get_tourStops()[this._currentIndex];\n var parser = new DOMParser();\n var doc = parser.parseFromString(this._undoXml, 'text/xml');\n var node = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(doc, 'TourStop');\n this._targetTour.get_tourStops()[this._currentIndex] = TourStop._fromXml(this._targetTour, node);\n this._targetTour.set_currentTourstopIndex(this._currentIndex);\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._redoXml)) {\n this._redoXml = TourStop.getXmlText(tsRedo);\n }\n this._targetTour.set_tourDirty(true);\n },\n\n redo: function () {\n var parser = new DOMParser();\n var doc = parser.parseFromString(this._redoXml, 'text/xml');\n var node = _baseutil_js__WEBPACK_IMPORTED_MODULE_4__.Util.selectSingleNode(doc, 'TourStop');\n this._targetTour.get_tourStops()[this._currentIndex] = TourStop._fromXml(this._targetTour, node);\n this._targetTour.set_currentTourstopIndex(this._currentIndex);\n this._targetTour.set_tourDirty(true);\n },\n\n toString: function () {\n return this._actionText;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"UndoTourStopChange\", [UndoTourStopChange, UndoTourStopChange$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_7__.IUndoStep]);\n\n\n/***/ }),\n\n/***/ \"./esm/tours/undo.js\":\n/*!***************************!*\\\n !*** ./esm/tours/undo.js ***!\n \\***************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Undo: () => (/* binding */ Undo),\n/* harmony export */ UndoStep: () => (/* binding */ UndoStep),\n/* harmony export */ UndoTourPropertiesChange: () => (/* binding */ UndoTourPropertiesChange),\n/* harmony export */ UndoTourSlidelistChange: () => (/* binding */ UndoTourSlidelistChange)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Managing undos of changes made in the tour editor.\n\n\n\n\n\n\n\n// wwtlib.Undo\n\nfunction Undo() { }\n\nUndo._undoStack = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.Stack();\nUndo._redoStack = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.Stack();\n\nUndo.clear = function () {\n Undo._undoStack = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.Stack();\n Undo._redoStack = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.Stack();\n};\n\nUndo.push = function (step) {\n Undo._undoStack.push(step);\n Undo._redoStack = new _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.Stack();\n};\n\nUndo.peekActionString = function () {\n if (Undo._undoStack.count > 0) {\n return Undo._undoStack.peek().toString();\n }\n else {\n return _util_js__WEBPACK_IMPORTED_MODULE_3__.Language.getLocalizedText(551, 'Nothing to Undo');\n }\n};\n\nUndo.peekRedoActionString = function () {\n if (Undo._redoStack.count > 0) {\n return Undo._redoStack.peek().toString();\n }\n else {\n return '';\n }\n};\n\nUndo.peekAction = function () {\n return (Undo._undoStack.count > 0);\n};\n\nUndo.peekRedoAction = function () {\n return (Undo._redoStack.count > 0);\n};\n\nUndo.stepBack = function () {\n var step = Undo._undoStack.pop();\n step.undo();\n Undo._redoStack.push(step);\n};\n\nUndo.stepForward = function () {\n var step = Undo._redoStack.pop();\n step.redo();\n Undo._undoStack.push(step);\n};\n\nvar Undo$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Undo\", [Undo, Undo$, null]);\n\n\n// wwtlib.UndoStep\n\nfunction UndoStep() { }\n\nvar UndoStep$ = {\n undo: function () { },\n\n redo: function () { },\n\n toString: function () {\n return _util_js__WEBPACK_IMPORTED_MODULE_3__.Language.getLocalizedText(551, 'Nothing to Undo');\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"UndoStep\", [UndoStep, UndoStep$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_2__.IUndoStep]);\n\n\n// wwtlib.UndoTourSlidelistChange\n\nfunction UndoTourSlidelistChange(text, tour) {\n this._currentIndex = 0;\n this._actionText = '';\n this._targetTour = null;\n this._undoList = [];\n for (var i = 0; i < tour.get_tourStops().length; i++) {\n this._undoList.push(tour.get_tourStops()[i]);\n }\n this._currentIndex = tour.get_currentTourstopIndex();\n this._actionText = text;\n this._targetTour = tour;\n this._targetTour.set_tourDirty(true);\n}\n\nvar UndoTourSlidelistChange$ = {\n get_actionText: function () {\n return this._actionText;\n },\n\n set_actionText: function (value) {\n this._actionText = value;\n return value;\n },\n\n undo: function () {\n this._redoList = this._targetTour.get_tourStops();\n this._targetTour.set_tourStops(this._undoList);\n this._targetTour.set_currentTourstopIndex(this._currentIndex);\n this._targetTour.set_tourDirty(true);\n },\n\n redo: function () {\n this._undoList = this._targetTour.get_tourStops();\n this._targetTour.set_tourStops(this._redoList);\n this._targetTour.set_currentTourstopIndex(this._currentIndex);\n this._targetTour.set_tourDirty(true);\n },\n\n toString: function () {\n return this._actionText;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"UndoTourSlidelistChange\", [UndoTourSlidelistChange, UndoTourSlidelistChange$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_2__.IUndoStep]);\n\n\n// wwtlib.UndoTourPropertiesChange\n\nfunction UndoTourPropertiesChange(text, tour) {\n this._actionText = '';\n this._targetTour = null;\n this._undoDomeMode = false;\n this._undoLevel = 0;\n this._redoDomeMode = false;\n this._redoLevel = 0;\n this._undoTitle = tour.get_title();\n this._undoAuthor = tour.get_author();\n this._undoAuthorEmail = tour.get_authorEmail();\n this._undoDescription = tour.get_description();\n this._undoAuthorImage = tour.get_authorImage();\n this._undoOrganizationUrl = tour.get_organizationUrl();\n this._undoOrgName = tour.get_orgName();\n this._undoKeywords = tour.get_keywords();\n this._undoTaxonomy = tour.get_taxonomy();\n this._undoLevel = tour.get_level();\n this._actionText = text;\n this._targetTour = tour;\n this._targetTour.set_tourDirty(true);\n}\n\nvar UndoTourPropertiesChange$ = {\n get_actionText: function () {\n return this._actionText;\n },\n\n set_actionText: function (value) {\n this._actionText = value;\n return value;\n },\n\n undo: function () {\n this._redoTitle = this._targetTour.get_title();\n this._redoAuthor = this._targetTour.get_author();\n this._redoAuthorEmail = this._targetTour.get_authorEmail();\n this._redoDescription = this._targetTour.get_description();\n this._redoAuthorImage = this._targetTour.get_authorImage();\n this._redoOrganizationUrl = this._targetTour.get_organizationUrl();\n this._redoOrgName = this._targetTour.get_orgName();\n this._redoKeywords = this._targetTour.get_keywords();\n this._redoTaxonomy = this._targetTour.get_taxonomy();\n this._redoLevel = this._targetTour.get_level();\n this._targetTour.set_title(this._undoTitle);\n this._targetTour.set_author(this._undoAuthor);\n this._targetTour.set_authorEmail(this._undoAuthorEmail);\n this._targetTour.set_description(this._undoDescription);\n this._targetTour.set_authorImage(this._undoAuthorImage);\n this._targetTour.set_organizationUrl(this._undoOrganizationUrl);\n this._targetTour.set_orgName(this._undoOrgName);\n this._targetTour.set_keywords(this._undoKeywords);\n this._targetTour.set_taxonomy(this._undoTaxonomy);\n this._targetTour.set_level(this._undoLevel);\n this._targetTour.set_tourDirty(true);\n },\n\n redo: function () {\n this._targetTour.set_title(this._redoTitle);\n this._targetTour.set_author(this._redoAuthor);\n this._targetTour.set_authorEmail(this._redoAuthorEmail);\n this._targetTour.set_description(this._redoDescription);\n this._targetTour.set_authorImage(this._redoAuthorImage);\n this._targetTour.set_organizationUrl(this._redoOrganizationUrl);\n this._targetTour.set_orgName(this._redoOrgName);\n this._targetTour.set_keywords(this._redoKeywords);\n this._targetTour.set_taxonomy(this._redoTaxonomy);\n this._targetTour.set_level(this._redoLevel);\n this._targetTour.set_tourDirty(true);\n },\n\n toString: function () {\n return this._actionText;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"UndoTourPropertiesChange\", [UndoTourPropertiesChange, UndoTourPropertiesChange$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_2__.IUndoStep]);\n\n\n/***/ }),\n\n/***/ \"./esm/triangle.js\":\n/*!*************************!*\\\n !*** ./esm/triangle.js ***!\n \\*************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Triangle: () => (/* binding */ Triangle)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A spherical triangle that can be subdivided.\n\n\n\n\n\n// wwtlib.Triangle\n\nfunction Triangle() {\n // Vertex Indices\n this.a = -1;\n this.b = -1;\n this.c = -1;\n}\n\nTriangle.create = function (a, b, c) {\n var temp = new Triangle();\n temp.a = a;\n temp.b = b;\n temp.c = c;\n return temp;\n};\n\nvar Triangle$ = {\n subDivide: function (triList, vertexList) {\n var a1 = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.lerp(vertexList[this.b].position, vertexList[this.c].position, 0.5);\n var b1 = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.lerp(vertexList[this.c].position, vertexList[this.a].position, 0.5);\n var c1 = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.lerp(vertexList[this.a].position, vertexList[this.b].position, 0.5);\n var a1uv = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.lerp(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.b].tu, vertexList[this.b].tv), _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.c].tu, vertexList[this.c].tv), 0.5);\n var b1uv = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.lerp(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.c].tu, vertexList[this.c].tv), _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.a].tu, vertexList[this.a].tv), 0.5);\n var c1uv = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.lerp(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.a].tu, vertexList[this.a].tv), _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.b].tu, vertexList[this.b].tv), 0.5);\n a1.normalize();\n b1.normalize();\n c1.normalize();\n var aIndex = vertexList.length;\n var bIndex = vertexList.length + 1;\n var cIndex = vertexList.length + 2;\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.PositionTexture.createPosRaw(a1, a1uv.x, a1uv.y));\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.PositionTexture.createPosRaw(b1, b1uv.x, b1uv.y));\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.PositionTexture.createPosRaw(c1, c1uv.x, c1uv.y));\n triList.push(Triangle.create(this.a, cIndex, bIndex));\n triList.push(Triangle.create(this.b, aIndex, cIndex));\n triList.push(Triangle.create(this.c, bIndex, aIndex));\n triList.push(Triangle.create(aIndex, bIndex, cIndex));\n },\n\n subDivideNoNormalize: function (triList, vertexList) {\n var a1 = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.lerp(vertexList[this.b].position, vertexList[this.c].position, 0.5);\n var b1 = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.lerp(vertexList[this.c].position, vertexList[this.a].position, 0.5);\n var c1 = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector3d.lerp(vertexList[this.a].position, vertexList[this.b].position, 0.5);\n var a1uv = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.lerp(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.b].tu, vertexList[this.b].tv), _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.c].tu, vertexList[this.c].tv), 0.5);\n var b1uv = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.lerp(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.c].tu, vertexList[this.c].tv), _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.a].tu, vertexList[this.a].tv), 0.5);\n var c1uv = _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.lerp(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.a].tu, vertexList[this.a].tv), _double3d_js__WEBPACK_IMPORTED_MODULE_1__.Vector2d.create(vertexList[this.b].tu, vertexList[this.b].tv), 0.5);\n var aIndex = vertexList.length;\n var bIndex = vertexList.length + 1;\n var cIndex = vertexList.length + 2;\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.PositionTexture.createPosRaw(a1, a1uv.x, a1uv.y));\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.PositionTexture.createPosRaw(b1, b1uv.x, b1uv.y));\n vertexList.push(_double3d_js__WEBPACK_IMPORTED_MODULE_1__.PositionTexture.createPosRaw(c1, c1uv.x, c1uv.y));\n triList.push(Triangle.create(this.a, cIndex, bIndex));\n triList.push(Triangle.create(this.b, aIndex, cIndex));\n triList.push(Triangle.create(this.c, bIndex, aIndex));\n triList.push(Triangle.create(aIndex, bIndex, cIndex));\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Triangle\", [Triangle, Triangle$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/typesystem.js\":\n/*!***************************!*\\\n !*** ./esm/typesystem.js ***!\n \\***************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Enums: () => (/* binding */ Enums),\n/* harmony export */ registerEnum: () => (/* binding */ registerEnum),\n/* harmony export */ registerType: () => (/* binding */ registerType)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Some small but helpful structures applied on top of the type system\n// provided by ScriptSharp.\n\n\n\nconst registry = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.createRegistry(\"wwtlib\");\nconst enumTypes = {};\n\n\n// Finish the creation and registration of a type that plugs into the\n// ScriptSharp type system. The return value is the new type object.\n//\n// The `typeinfo` argument has a complex structure and comes from the code\n// generated by ScriptSharp.\nfunction registerType(name, typeinfo) {\n // This function modifies the class object and returns it, but we can just\n // ignore the return value.\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.createType(name, typeinfo, registry);\n}\n\n\n// Register an enumeration with the type system.\n//\n// This is used to parse various enumerations from serialized formats.\nfunction registerEnum(name, type) {\n enumTypes[name] = type;\n}\n\n\n// The Enums helper \"class\". We could easily port this to a non-OO interface.\n\nfunction Enums() { }\n\nEnums.parse = function (enumType, value) {\n if (value === \"Default\") {\n value = \"DefaultV\";\n }\n\n if (value === \"0\") {\n return 0;\n }\n\n var val = value.substr(0, 1).toLowerCase() + value.substr(1);\n return enumTypes[enumType][val];\n};\n\nEnums.toXml = function (enumType, value) {\n var x = \"0\";\n var p = Object.keys(enumTypes[enumType]);\n\n for (var i in p) {\n if (enumTypes[enumType][p[i]] == value) {\n x = p[i];\n break;\n }\n }\n\n var val = x;\n var enumString = val.substr(0, 1).toUpperCase() + val.substr(1);\n if (enumString === \"DefaultV\") {\n enumString = \"Default\";\n }\n\n return enumString;\n};\n\nconst Enums$ = {};\n\nregisterType(\"Enums\", [Enums, Enums$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/ui_tools.js\":\n/*!*************************!*\\\n !*** ./esm/ui_tools.js ***!\n \\*************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ UiTools: () => (/* binding */ UiTools)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A tile in a pyramid that uses a HEALPix projection.\n\n\n\n\n\n// wwtlib.UiTools\n\nfunction UiTools() { }\n\nUiTools.kilometersPerAu = 149598000;\nUiTools.auPerParsec = 206264.806;\nUiTools.auPerLightYear = 63239.6717;\nUiTools.ssmUnitConversion = 370; // No idea where this fudge factor comes from\n\nUiTools.gamma = function (val, gamma) {\n return Math.min(255, _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((255 * Math.pow(val / 255, 1 / gamma)) + 0.5)));\n};\n\nUiTools.getNamesStringFromArray = function (array) {\n var names = '';\n var delim = '';\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(array);\n while ($enum1.moveNext()) {\n var name = $enum1.current;\n names += delim;\n names += name;\n delim = ';';\n }\n return names;\n};\n\nUiTools.solarSystemToMeters = function (SolarSystemCameraDistance) {\n return SolarSystemCameraDistance * 149598000 * 370;\n};\n\nUiTools.metersToSolarSystemDistance = function (meters) {\n return meters / 370 * 149598000;\n};\n\nUiTools.metersToZoom = function (meters) {\n return ((meters / 1000 / 370) - 1E-06) / 4 * 9;\n};\n\n// Distance is stored in AU in WWT but is displayed in KM AU, LY, MPC\nUiTools.formatDistance = function (distance) {\n if (distance < 0.1) {\n var km = (distance * 149598000);\n if (km < 10) {\n var m = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((km * 1000));\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0} m', m);\n } else {\n km = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(km);\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0} km', km);\n }\n }\n else if (distance < (10)) {\n var au = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((distance * 10)) / 10;\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0} au', au);\n }\n else if (distance < (63239.6717 / 10)) {\n var au = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(distance);\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0} au', au);\n }\n else if (distance < (63239.6717 * 10)) {\n var ly = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((distance * 10) / 63239.6717)) / 10;\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0} ly', ly);\n }\n else if (distance < (63239.6717 * 1000000)) {\n var ly = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((distance / 63239.6717));\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0} ly', ly);\n }\n else if (distance < (206264.806 * 10000000)) {\n var mpc = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((distance * 10) / (206264.806 * 1000000))) / 10;\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0} Mpc', mpc);\n }\n else if (distance < (206264.806 * 1000000000)) {\n var mpc = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((distance / (206264.806 * 1000000)));\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0} Mpc', mpc);\n }\n else {\n var mpc = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((distance * 10) / (206264.806 * 1000000000))) / 10;\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0} Gpc', mpc);\n }\n};\n\nUiTools.formatDecimalHours = function (dayFraction) {\n var today = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n var ts = today.getTimezoneOffset() / 60;\n ts = 0;\n var day = (dayFraction - ts) + 0.0083333334;\n while (day > 24) {\n day -= 24;\n }\n while (day < 0) {\n day += 24;\n }\n var hours = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(day);\n var minutes = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((day * 60) - (hours * 60)));\n var seconds = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(((day * 3600) - ((hours * 3600) + (minutes * 60))));\n return _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('{0}:{1}', hours, minutes, seconds);\n};\n\nUiTools.splitString = function (data, delimiter) {\n var output = [];\n var nestingLevel = 0;\n var current = 0;\n var count = 0;\n var start = 0;\n while (current < data.length) {\n if (data.substr(current, 1) === '(') {\n nestingLevel++;\n }\n if (data.substr(current, 1) === ')') {\n nestingLevel--;\n }\n if (current === (data.length - 1)) {\n if (data.substr(current, 1) === delimiter) {\n output.push(data.substr(start, count));\n output.push('');\n return output;\n }\n else {\n count++;\n }\n }\n if (current === (data.length - 1) || (data.substr(current, 1) === delimiter && delimiter === '\\t') || (!nestingLevel && data.substr(current, 1) === delimiter)) {\n output.push(data.substr(start, count));\n start = current + 1;\n count = 0;\n } else {\n count++;\n }\n current++;\n }\n return output;\n};\n\nUiTools.split = function (data, delimiters) {\n var output = [];\n var nestingLevel = 0;\n var current = 0;\n var count = 0;\n var start = 0;\n while (current < data.length) {\n if (current === (data.length - 1)) {\n count++;\n }\n if (current === (data.length - 1) || delimiters.indexOf(data.substr(current, 1)) > -1) {\n output.push(data.substr(start, count));\n start = current + 1;\n count = 0;\n } else {\n count++;\n }\n current++;\n }\n return output;\n};\n\nUiTools._beep = function () { };\n\nvar UiTools$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"UiTools\", [UiTools, UiTools$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/url_helpers.js\":\n/*!****************************!*\\\n !*** ./esm/url_helpers.js ***!\n \\****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ URLHelpers: () => (/* binding */ URLHelpers),\n/* harmony export */ URLRewriteMode: () => (/* binding */ URLRewriteMode)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The helper class for rewriting URLs. This gets complicated, because we might\n// need to proxy for CORS headers and/or HTTPS support, *and* we sometimes also\n// want to change the host and/or path to allow the engine or the webclient to\n// swap out the data backend or the frontend.\n\n\n\n\n\nvar DomainHandling = {\n wwtFlagship: 0, // this host is worldwidetelescope.org or an equivalent\n localhost: 1, // this host is localhost or an equivalent\n neverProxy: 2, // this host is known to never need proxying\n tryNoProxy: 3, // none of the above, and we hope that we can get data from it without needing to use our proxy\n proxy: 4, // none of the above, and we need to proxy it for HTTPS/CORS reasons\n}\n\n// wwtlib.URLRewriteMode\n\nvar URLRewriteMode = {\n asIfAbsolute: 0, // act as if this URL is absolute even if it is missing a domain\n originRelative: 1, // if this URL is relative, treat it as relative to the browser origin\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"URLRewriteMode\", URLRewriteMode);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerEnum)(\"URLRewriteMode\", URLRewriteMode);\n\n\n// wwtlib.URLHelpers\n\nfunction URLHelpers() {\n // this will be \"http:\" or \"https:\"\n this._origin_protocol = typeof window === \"undefined\" ? \"https:\" : window.location.protocol;\n this._force_https = (this._origin_protocol === 'https:');\n\n // host name, no port number\n this._origin_domain = typeof window === \"undefined\" ? \"\" : window.location.hostname;\n\n\n this._domain_handling = {};\n this._domain_handling['worldwidetelescope.org'] = DomainHandling.wwtFlagship;\n this._domain_handling['www.worldwidetelescope.org'] = DomainHandling.wwtFlagship;\n this._domain_handling['cdn.worldwidetelescope.org'] = DomainHandling.wwtFlagship;\n this._domain_handling['content.worldwidetelescope.org'] = DomainHandling.wwtFlagship;\n this._domain_handling['beta.worldwidetelescope.org'] = DomainHandling.wwtFlagship;\n this._domain_handling['beta-cdn.worldwidetelescope.org'] = DomainHandling.wwtFlagship;\n this._domain_handling['wwtstaging.azurewebsites.net'] = DomainHandling.wwtFlagship;\n this._domain_handling['wwtfiles.blob.core.windows.net'] = DomainHandling.neverProxy;\n this._domain_handling['wwttiles.blob.core.windows.net'] = DomainHandling.neverProxy;\n this._domain_handling['web.wwtassets.org'] = DomainHandling.neverProxy;\n this._domain_handling['data1.wwtassets.org'] = DomainHandling.neverProxy;\n this._domain_handling['localhost'] = DomainHandling.localhost;\n this._domain_handling['127.0.0.1'] = DomainHandling.localhost;\n\n switch (this._origin_domain) {\n case 'worldwidetelescope.org':\n case 'www.worldwidetelescope.org':\n case 'cdn.worldwidetelescope.org':\n this._core_static_baseurl = this._origin_protocol + '//cdn.worldwidetelescope.org';\n this._core_dynamic_baseurl = this._origin_protocol + '//worldwidetelescope.org';\n break;\n case 'beta.worldwidetelescope.org':\n case 'beta-cdn.worldwidetelescope.org':\n this._core_static_baseurl = this._origin_protocol + '//beta-cdn.worldwidetelescope.org';\n this._core_dynamic_baseurl = this._origin_protocol + '//beta.worldwidetelescope.org';\n break;\n default:\n this._core_static_baseurl = this._origin_protocol + '//cdn.worldwidetelescope.org';\n this._core_dynamic_baseurl = this._origin_protocol + '//worldwidetelescope.org';\n break;\n }\n\n this._engine_asset_baseurl = this._origin_protocol + '//web.wwtassets.org/engine/assets';\n\n // this should be a set, but ScriptSharp had trouble with that.\n this._flagship_static_lcpaths = {};\n this._flagship_static_lcpaths['/wwtweb/2massoct.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/bingdemtile.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/bingdemtile2.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/catalog.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/catalog2.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/dem.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/dembath.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/demmars.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/demtile.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/dss.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/dsstoast.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/dusttoast.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/earthblend.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/earthmerbath.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/fixedaltitudedemtile.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/g360.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/galex4far.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/galex4near.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/galextoast.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/gettile.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/gettour.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/gettourfile.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/gettours.aspx'] = true; // maybe not?\n this._flagship_static_lcpaths['/wwtweb/glimpse.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/halphatoast.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/hirise.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/hirisedem2.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/hirisedem3.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/jupiter.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/mandel.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/mandel1.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/mars.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/marsdem.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/marshirise.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/marsmoc.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/martiantile.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/martiantile2.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/mipsgal.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/moondem.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/moonoct.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/moontoast.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/moontoastdem.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/postmars.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/postmarsdem.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/postmarsdem2.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/rasstoast.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/sdsstoast.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/sdsstoast2.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/sdsstoast2.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/thumbnail.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/tiles.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/tiles2.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/tilesthumb.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/twomasstoast.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/tychooct.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/veblend.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/vlsstoast.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/wmap.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/wmsmoon.aspx'] = true;\n this._flagship_static_lcpaths['/wwtweb/wmstoast.aspx'] = true;\n}\n\nvar URLHelpers$ = {\n overrideAssetBaseurl: function (baseurl) {\n this._engine_asset_baseurl = baseurl;\n },\n\n rewrite: function (url, rwmode) {\n // Sadly, we can't take advantage of JS/browser URL parsing\n // because this function might be passed template URLs like\n // \"http://r{S:2}.ortho.tiles.virtualearth.net/...\" that won't\n // parse. So we have to split up the URL manually.\n var lc = url.toLowerCase();\n var lcproto;\n var url_no_protocol;\n\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lc, 'http://')) {\n lcproto = 'http:';\n url_no_protocol = url.substring(7);\n } else if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lc, 'https://')) {\n lcproto = 'https:';\n url_no_protocol = url.substring(8);\n } else if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lc, '//')) {\n lcproto = '';\n url_no_protocol = url.substring(2);\n } else if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lc, 'blob:')) {\n // The web client uses URL.createObjectURL() to ingest local\n // disk files into the web app. That function creates blob\n // URLs, and it turns out that we definitely don't want to\n // rewrite them!\n return url;\n } else {\n switch (rwmode) {\n case URLRewriteMode.asIfAbsolute:\n default:\n // Treat `foo/bar` as a domain name of `foo` and a\n // path of `/bar`. Really we should demand that the\n // caller always pass us an absolute URL, but URLs\n // will be coming from random data sources and we're\n // not currently rigorous enough to guarantee that\n // this function will get validated inputs -- and in\n // such cases, throwing exceptions won't help.\n lcproto = '';\n url_no_protocol = url;\n break;\n\n case URLRewriteMode.originRelative:\n // Treat `foo/bar` as a URL relative to the window\n // origin. Since it looks relative, any weird\n // templating stuff in the URL text *ought* not cause\n // problems for the browser URL parsing ...\n url = (new URL(url, window.location.href)).toString();\n return this.rewrite(url, 0);\n }\n }\n\n // If we're freestanding, we can't use the proxy and we don't want\n // to forcibly rewrite URLs to potentially point at any core WWT\n // domains, so there is nothing more to do (now that we've potentially\n // handled origin-relative URLs).\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.freestandingMode) {\n return url;\n }\n\n var domain;\n var rest; // potentially \"/foo/CASE/bar?q=1&b=1#fragment\"\n var slash_index = url_no_protocol.indexOf('/');\n\n if (slash_index < 0) {\n domain = url_no_protocol;\n rest = '/';\n } else {\n domain = url_no_protocol.substring(0, slash_index);\n rest = url_no_protocol.substring(slash_index); // starts with \"/\"\n }\n\n var lcdomain = domain.toLowerCase();\n var lcpath = rest.toLowerCase().split('?')[0];\n\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.keyExists(this._domain_handling, lcdomain)) {\n // Domains include nonstandard port specifications, so it's\n // possible that we could get here with a discernably\n // localhost-y domain.\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lcdomain, 'localhost:') || _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lcdomain, '127.0.0.1:')) {\n this._domain_handling[lcdomain] = DomainHandling.localhost;\n } else {\n this._domain_handling[lcdomain] = DomainHandling.tryNoProxy;\n }\n }\n\n var mode = this._domain_handling[lcdomain];\n\n switch (mode) {\n case DomainHandling.localhost:\n return url; // can't proxy, so we'll just have to hope it works\n\n case DomainHandling.neverProxy:\n case DomainHandling.tryNoProxy:\n default:\n if (this._force_https && lcproto !== 'https:') {\n // Force HTTPS and we'll see what happens. If downloading\n // fails, we'll set a flag and use our proxy to launder the\n // security.\n //\n // As a quasi-hack to work around some stuff emited by the\n // Azure backend, make sure to strip off an `:80` port\n // specification if we're upgrading. If there's a port\n // specification that's anything else, don't try HTTPS - it\n // won't work.\n //\n // NOTE: it is important that we use `domain` and not\n // `lcdomain`, even though domain names are\n // case-insensitive, because we might be processing a\n // template URL containing text like `{S}`, and WWT's\n // replacements *are* case-sensitive. Yes, I did learn this\n // the hard way.\n var rewrite_domain = domain;\n\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.endsWith(domain, \":80\")) {\n rewrite_domain = domain.substring(0, domain.length - 3);\n } else if (domain.indexOf(':') >= 0) {\n return url;\n }\n\n return 'https://' + rewrite_domain + rest;\n }\n return url;\n\n case DomainHandling.proxy:\n if (!lcproto) {\n // Make sure that we give the proxy a real absolute\n // URL. Guess http, and if the proxy is forced to\n // upgrade, so be it.\n url = 'http://' + url;\n }\n\n // We need to encode the URL as a query-string parameter\n // to pass to the proxy. However, the encoding will turn\n // \"{}\" into \"%7B%7D\", so that *if* this URL is then going\n // to be fed into the templating system,\n // search-and-replace for e.g. \"{0}\" will break. So we\n // un-encode those particular characters, since it ought\n // to be safe to do so anyway.\n url = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(encodeURIComponent(url), '%7B', '{'), '%7D', '}');\n return this._core_dynamic_baseurl + '/webserviceproxy.aspx?targeturl=' + url;\n\n case DomainHandling.wwtFlagship:\n // Rewrite \"flagship\"/core URLs to go through whatever our\n // core bases are. Assume that URLs are dynamic (=> are\n // not loaded through the CDN) unless proven otherwise.\n var is_static = false;\n\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lcpath, '/data/')) {\n is_static = true;\n } else if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.keyExists(this._flagship_static_lcpaths, lcpath)) {\n is_static = true;\n } else if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lcpath, '/content/')) {\n is_static = true;\n } else if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lcpath, '/engine/assets/')) {\n is_static = true;\n }\n\n if (is_static) {\n return this._core_static_baseurl + rest;\n }\n\n return this._core_dynamic_baseurl + rest;\n }\n },\n\n // Call this when you have tried to load a url via XMLHttpRequest or\n // something along those lines, and the attempt has failed. We will mark the\n // domain as needing proxying, and will return a new proxy-enabled URL to try.\n // The exception is for flagship website URLs, which we know that the proxy\n // won't help with. For those, null is returned.\n activateProxy: function (url) {\n // If we're freestanding, we never proxy.\n if (_data_globals_js__WEBPACK_IMPORTED_MODULE_2__.freestandingMode) {\n return null;\n }\n\n // Get the domain. XXX copy/pastey from the above.\n\n var lc = url.toLowerCase();\n var url_no_protocol;\n\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lc, 'http://')) {\n url_no_protocol = url.substring(7);\n } else if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lc, 'https://')) {\n url_no_protocol = url.substring(8);\n } else if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lc, '//')) {\n url_no_protocol = url.substring(2);\n } else {\n url_no_protocol = url;\n }\n\n var lcdomain;\n var slash_index = url_no_protocol.indexOf('/');\n\n if (slash_index < 0) {\n lcdomain = url_no_protocol;\n } else {\n lcdomain = url_no_protocol.substring(0, slash_index).toLowerCase();\n }\n\n // Is this a flagship or never-proxy URL? If so, don't bother proxying.\n\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.keyExists(this._domain_handling, lcdomain)) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lcdomain, 'localhost:') || _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.startsWith(lcdomain, '127.0.0.1:')) {\n this._domain_handling[lcdomain] = DomainHandling.localhost;\n }\n else {\n this._domain_handling[lcdomain] = DomainHandling.tryNoProxy;\n }\n }\n\n var mode = this._domain_handling[lcdomain];\n if (mode === DomainHandling.wwtFlagship || mode === DomainHandling.neverProxy || mode === DomainHandling.localhost) {\n return null;\n }\n\n // OK, we should try proxying. So:\n this._domain_handling[lcdomain] = DomainHandling.proxy;\n return this.rewrite(url, 0);\n },\n\n engineAssetUrl: function (subpath) {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0}/{1}', this._engine_asset_baseurl, subpath);\n },\n\n coreDynamicUrl: function (subpath) {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0}/{1}', this._core_dynamic_baseurl, subpath);\n },\n\n coreStaticUrl: function (subpath) {\n return _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('{0}/{1}', this._core_static_baseurl, subpath);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"URLHelpers\", [URLHelpers, URLHelpers$, null]);\n\nURLHelpers.singleton = new URLHelpers();\n\n\n/***/ }),\n\n/***/ \"./esm/util.js\":\n/*!*********************!*\\\n !*** ./esm/util.js ***!\n \\*********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Cursor: () => (/* binding */ Cursor),\n/* harmony export */ Cursors: () => (/* binding */ Cursors),\n/* harmony export */ DialogResult: () => (/* binding */ DialogResult),\n/* harmony export */ DistanceCalc: () => (/* binding */ DistanceCalc),\n/* harmony export */ Guid: () => (/* binding */ Guid),\n/* harmony export */ Keys: () => (/* binding */ Keys),\n/* harmony export */ Language: () => (/* binding */ Language),\n/* harmony export */ Mouse: () => (/* binding */ Mouse),\n/* harmony export */ OverlayProperties: () => (/* binding */ OverlayProperties),\n/* harmony export */ PopupColorPicker: () => (/* binding */ PopupColorPicker),\n/* harmony export */ PopupVolume: () => (/* binding */ PopupVolume),\n/* harmony export */ Rectangle: () => (/* binding */ Rectangle),\n/* harmony export */ SelectLink: () => (/* binding */ SelectLink),\n/* harmony export */ Util: () => (/* reexport safe */ _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util),\n/* harmony export */ getTileKey: () => (/* binding */ getTileKey)\n/* harmony export */ });\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! uuid */ \"../node_modules/uuid/dist/esm-browser/v5.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Miscellaneous utilities.\n\n\n\n\n\n\n\n\n\n\n// wwtlib.Rectangle\n\nfunction Rectangle() {\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n}\n\nRectangle.create = function (x, y, width, height) {\n var temp = new Rectangle();\n temp.x = x;\n temp.y = y;\n temp.width = width;\n temp.height = height;\n return temp;\n};\n\nvar Rectangle$ = {\n get_left: function () {\n return this.x;\n },\n\n get_right: function () {\n return this.x + this.width;\n },\n\n get_top: function () {\n return this.y;\n },\n\n get_bottom: function () {\n return this.y + this.height;\n },\n\n contains: function (point) {\n return (this._between(point.x, this.x, this.x + this.width) && this._between(point.y, this.y, this.y + this.height));\n },\n\n _between: function (n, n1, n2) {\n if (n1 > n2) {\n return !(n > n1) && !(n < n2);\n }\n else {\n return !(n < n1) && !(n > n2);\n }\n },\n\n copy: function () {\n var temp = new Rectangle();\n temp.x = this.x;\n temp.y = this.y;\n temp.width = this.width;\n temp.height = this.height;\n return temp;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Rectangle\", [Rectangle, Rectangle$, null]);\n\n\n// wwtlib.Guid\n\nfunction Guid() {\n this._guid = Guid.create();\n}\n\nGuid.newGuid = function () {\n return new Guid();\n};\n\nGuid.fromString = function (id) {\n var temp = new Guid();\n temp._guid = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.trim(id);\n return temp;\n};\n\nGuid.create = function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); });\n};\n\n// The value 1420736a-a637-40a7-813a-ba692e72204e is a UUID (generated using the uuid CLI)\n// that serves as a 'namespace' for our GUIDs\n// The key property here is that this function always yields the same result for a given input\n// See for example https://www.sohamkamani.com/uuid-versions-explained/\nGuid.createFrom = function (value) {\n var str = uuid__WEBPACK_IMPORTED_MODULE_5__[\"default\"](value, '1420736a-a637-40a7-813a-ba692e72204e');\n return Guid.fromString(str);\n};\n\nvar Guid$ = {\n toString: function () {\n return this._guid;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Guid\", [Guid, Guid$, null]);\n\n\n// The \"Enums\" typed lived here in the C#, but is now in `typesystem.js`.\n\n// wwtlib.Mouse\n\nfunction Mouse() { }\n\nMouse.offsetX = function (canvas, e) {\n var x = 0;\n var element = canvas;\n var me = e;\n if (element.offsetParent != null) {\n do {\n x += element.offsetLeft;\n } while ((element = element.offsetParent) != null);\n }\n return me.pageX - x;\n};\n\nMouse.offsetY = function (canvas, e) {\n var y = 0;\n var element = canvas;\n var me = e;\n if (element.offsetParent != null) {\n do {\n y += element.offsetTop;\n } while ((element = element.offsetParent) != null);\n }\n return me.pageY - y;\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Mouse\", [Mouse, null, null]);\n\n\n// wwtlib.Language\n\nfunction Language() { }\n\nLanguage.getLocalizedText = function (id, text) {\n return text;\n};\n\nvar Language$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Language\", [Language, Language$, null]);\n\n\n// wwtlib.Cursor\n\nfunction Cursor() { }\n\nCursor.get_position = function () {\n return new _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d();\n};\n\nCursor.get_current = function () {\n return document.body.style.cursor;\n};\n\nCursor.set_current = function (value) {\n document.body.style.cursor = value;\n return value;\n};\n\nvar Cursor$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Cursor\", [Cursor, Cursor$, null]);\n\n\n// wwtlib.Cursors\n\nfunction Cursors() { }\n\nCursors.get_arrow = function () {\n return 'default';\n};\n\nCursors.get_cross = function () {\n return 'crosshair';\n};\n\nCursors.get_defaultV = function () {\n return 'default';\n};\n\nCursors.get_hand = function () {\n return 'grab';\n};\n\nCursors.get_help = function () {\n return 'help';\n};\n\nCursors.get_hSplit = function () {\n return 'row-resize';\n};\n\nCursors.get_iBeam = function () {\n return 'text';\n};\n\nCursors.get_no = function () {\n return 'not-allowed';\n};\n\nCursors.get_sizeAll = function () {\n return 'help';\n};\n\nCursors.get_sizeNESW = function () {\n return 'nwse-resize';\n};\n\nCursors.get_sizeNS = function () {\n return 'ns-resize';\n};\n\nCursors.get_sizeNWSE = function () {\n return 'nwse-resize';\n};\n\nCursors.get_sizeWE = function () {\n return 'ew-resize';\n};\n\nCursors.get_upArrow = function () {\n return 'help';\n};\n\nCursors.get_vSplit = function () {\n return 'col-resize';\n};\n\nCursors.get_waitCursor = function () {\n return 'wait';\n};\n\nvar Cursors$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Cursors\", [Cursors, Cursors$, null]);\n\n\n// wwtlib.Keys\n\nvar Keys = {\n modifiers: -65536,\n none: 0,\n lButton: 1,\n rButton: 2,\n cancel: 3,\n mButton: 4,\n xButton1: 5,\n xButton2: 6,\n back: 8,\n tab: 9,\n lineFeed: 10,\n clearKey: 12,\n returnKey: 13,\n enter: 13,\n shiftKey: 16,\n controlKey: 17,\n menu: 18,\n pause: 19,\n capital: 20,\n capsLock: 20,\n kanaMode: 21,\n hanguelMode: 21,\n hangulMode: 21,\n junjaMode: 23,\n finalMode: 24,\n hanjaMode: 25,\n kanjiMode: 25,\n escape: 27,\n imeConvert: 28,\n imeNonconvert: 29,\n imeAccept: 30,\n imeAceept: 30,\n imeModeChange: 31,\n space: 32,\n prior: 33,\n pageUp: 33,\n next: 34,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n select: 41,\n print: 42,\n execute: 43,\n snapshot: 44,\n printScreen: 44,\n insertKey: 45,\n deleteKey: 46,\n help: 47,\n d0: 48,\n d1: 49,\n d2: 50,\n d3: 51,\n d4: 52,\n d5: 53,\n d6: 54,\n d7: 55,\n d8: 56,\n d9: 57,\n a: 65,\n b: 66,\n c: 67,\n d: 68,\n e: 69,\n f: 70,\n g: 71,\n h: 72,\n i: 73,\n j: 74,\n k: 75,\n l: 76,\n m: 77,\n n: 78,\n o: 79,\n p: 80,\n q: 81,\n r: 82,\n s: 83,\n t: 84,\n u: 85,\n v: 86,\n w: 87,\n x: 88,\n y: 89,\n z: 90,\n lWin: 91,\n rWin: 92,\n apps: 93,\n sleep: 95,\n numPad0: 96,\n numPad1: 97,\n numPad2: 98,\n numPad3: 99,\n numPad4: 100,\n numPad5: 101,\n numPad6: 102,\n numPad7: 103,\n numPad8: 104,\n numPad9: 105,\n multiply: 106,\n add: 107,\n separator: 108,\n subtract: 109,\n decimal: 110,\n divide: 111,\n f1: 112,\n f2: 113,\n f3: 114,\n f4: 115,\n f5: 116,\n f6: 117,\n f7: 118,\n f8: 119,\n f9: 120,\n f10: 121,\n f11: 122,\n f12: 123,\n f13: 124,\n f14: 125,\n f15: 126,\n f16: 127,\n f17: 128,\n f18: 129,\n f19: 130,\n f20: 131,\n f21: 132,\n f22: 133,\n f23: 134,\n f24: 135,\n numLock: 144,\n scroll: 145,\n lShiftKey: 160,\n rShiftKey: 161,\n lControlKey: 162,\n rControlKey: 163,\n lMenu: 164,\n rMenu: 165,\n browserBack: 166,\n browserForward: 167,\n browserRefresh: 168,\n browserStop: 169,\n browserSearch: 170,\n browserFavorites: 171,\n browserHome: 172,\n volumeMute: 173,\n volumeDown: 174,\n volumeUp: 175,\n mediaNextTrack: 176,\n mediaPreviousTrack: 177,\n mediaStop: 178,\n mediaPlayPause: 179,\n launchMail: 180,\n selectMedia: 181,\n launchApplication1: 182,\n launchApplication2: 183,\n oemSemicolon: 186,\n oem1: 186,\n oemplus: 187,\n oemcomma: 188,\n oemMinus: 189,\n oemPeriod: 190,\n oemQuestion: 191,\n oem2: 191,\n oemtilde: 192,\n oem3: 192,\n oemOpenBrackets: 219,\n oem4: 219,\n oemPipe: 220,\n oem5: 220,\n oemCloseBrackets: 221,\n oem6: 221,\n oemQuotes: 222,\n oem7: 222,\n oem8: 223,\n oemBackslash: 226,\n oem102: 226,\n processKey: 229,\n packet: 231,\n attn: 246,\n crsel: 247,\n exsel: 248,\n eraseEof: 249,\n play: 250,\n zoom: 251,\n noName: 252,\n pa1: 253,\n oemClear: 254,\n keyCode: 65535,\n shift: 65536,\n control: 131072,\n alt: 262144\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Keys\", Keys);\n\n\n// wwtlib.SelectLink\n\nfunction SelectLink(id) {\n this._return = false;\n this._next = true;\n this._linkSlide = false;\n this._slide = null;\n this._ok = false;\n if (id != null) {\n this.set_id(id);\n }\n else {\n this.set_next(true);\n }\n}\n\nvar SelectLink$ = {\n get_returnCaller: function () {\n return this._return;\n },\n\n set_returnCaller: function (value) {\n if (value) {\n this._slide = 'Return';\n }\n this._return = value;\n return value;\n },\n\n get_next: function () {\n return this._next;\n },\n\n set_next: function (value) {\n if (value) {\n this._slide = 'Next';\n }\n this._next = value;\n return value;\n },\n\n get_linkToSlide: function () {\n return this._linkSlide;\n },\n\n set_linkToSlide: function (value) {\n if (value) {\n this._slide = 'Next';\n }\n this._linkSlide = value;\n return value;\n },\n\n get_id: function () {\n return this._slide;\n },\n\n set_id: function (value) {\n this._return = false;\n this._next = false;\n this._linkSlide = true;\n this._slide = value;\n return value;\n },\n\n get_OK: function () {\n return this._ok;\n },\n\n set_OK: function (value) {\n this._ok = value;\n return value;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"SelectLink\", [SelectLink, SelectLink$, null]);\n\n\n// wwtlib.PopupVolume\n\nfunction PopupVolume() {\n this.volume = 0;\n}\n\nvar PopupVolume$ = {\n showDialog: function () {\n return 1;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PopupVolume\", [PopupVolume, PopupVolume$, null]);\n\n\n// wwtlib.PopupColorPicker\n\nfunction PopupColorPicker() {\n this.volume = 0;\n this.location = new _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d();\n this.color = new _color_js__WEBPACK_IMPORTED_MODULE_3__.Color();\n}\n\nvar PopupColorPicker$ = {\n showDialog: function () {\n return 1;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"PopupColorPicker\", [PopupColorPicker, PopupColorPicker$, null]);\n\n\n// wwtlib.OverlayProperties\n\nfunction OverlayProperties() {\n this.volume = 0;\n this.location = new _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d();\n this.overlay = null;\n}\n\nvar OverlayProperties$ = {\n showDialog: function () {\n return 1;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"OverlayProperties\", [OverlayProperties, OverlayProperties$, null]);\n\n\n// This used to be Imageset.getTileKey, but to break\n// circular dependencies, we move it here.\n\nfunction getTileKey(imageset, level, x, y, parent) {\n if (imageset.get_projection() === 7 && parent != null) {\n var ipix = (parent).ipix * 4 + y * 2 + x;\n return imageset.get_imageSetID().toString() + '\\\\' + level.toString() + '\\\\' + ipix.toString();\n }\n\n return imageset.get_imageSetID().toString() + '\\\\' + level.toString() + '\\\\' + y.toString() + '_' + x.toString();\n}\n\n\n// wwtlib.DistanceCalc\n//\n// This was originally defined in ToastTile.cs but we moved it to sort out the\n// dependency graph.\n\nfunction DistanceCalc() { }\n\nDistanceCalc.lineToPoint = function (l0, l1, p) {\n var v = _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d.subtractVectors(l1, l0);\n var w = _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d.subtractVectors(p, l0);\n var dist = _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector3d.cross(w, v).length() / v.length();\n return dist;\n};\n\nDistanceCalc.getUVFromInnerPoint = function (ul, ur, ll, lr, pnt) {\n ul.normalize();\n ur.normalize();\n ll.normalize();\n lr.normalize();\n pnt.normalize();\n var dUpper = DistanceCalc.lineToPoint(ul, ur, pnt);\n var dLower = DistanceCalc.lineToPoint(ll, lr, pnt);\n var dVert = dUpper + dLower;\n var dRight = DistanceCalc.lineToPoint(ur, lr, pnt);\n var dLeft = DistanceCalc.lineToPoint(ul, ll, pnt);\n var dHoriz = dRight + dLeft;\n return _double3d_js__WEBPACK_IMPORTED_MODULE_4__.Vector2d.create(dLeft / dHoriz, dUpper / dVert);\n};\n\nvar DistanceCalc$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"DistanceCalc\", [DistanceCalc, DistanceCalc$, null]);\n\n\n// wwtlib.DialogResult\n\nvar DialogResult = {\n OK: 1\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"DialogResult\", DialogResult);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerEnum)(\"DialogResult\", DialogResult);\n\n\n/***/ }),\n\n/***/ \"./esm/utilities/binary_reader.js\":\n/*!****************************************!*\\\n !*** ./esm/utilities/binary_reader.js ***!\n \\****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BinaryReader: () => (/* binding */ BinaryReader)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Reading binary data from a stream.\n\n\n\n\n// wwtlib.BinaryReader\n\nfunction BinaryReader(arraybuf) {\n this.position = 0;\n this._data = null;\n this._data = arraybuf;\n}\n\nBinaryReader.id = 1;\n\nvar BinaryReader$ = {\n get_position: function () {\n return this.position;\n },\n\n seek: function (pos) {\n this.position = pos;\n },\n\n seekRelative: function (pos) {\n this.position += pos;\n },\n\n get_length: function () {\n return this._data.length;\n },\n\n get_endOfStream: function () {\n return this.position >= this.get_length();\n },\n\n readByte: function () {\n var result;\n result = this._data[this.position];\n this.position += 1;\n return result;\n },\n\n readSByte: function () {\n var result;\n result = this._data[this.position];\n this.position += 1;\n return result;\n },\n\n readBytes: function (count) {\n var buf = new Array(count);\n for (var i = 0; i < count; i++) {\n buf[i] = this._data[this.position + i];\n }\n this.position += count;\n return buf;\n },\n\n readRemainingI16: function (i16Remaining) {\n var data = new Float32Array(i16Remaining);\n for (var i = 0; i < i16Remaining; i++) {\n data[i] = this.readInt16(true);\n }\n return data;\n },\n\n readByteString: function (count) {\n var data = '';\n for (var i = 0; i < count; i++) {\n data += String.fromCharCode(this._data[this.position + i]);\n }\n this.position += count;\n return data;\n },\n\n readSingle: function () {\n var tmp = new Uint8Array(4);\n tmp[0] = this._data[this.position];\n tmp[1] = this._data[this.position + 1];\n tmp[2] = this._data[this.position + 2];\n tmp[3] = this._data[this.position + 3];\n var result = new Float32Array(tmp.buffer, 0, 1)[0];\n this.position += 4;\n return result;\n },\n\n readUInt32: function () {\n var result = (this._data[this.position] + (this._data[this.position + 1] << 8) + (this._data[this.position + 2] << 16) + (this._data[this.position + 3] << 24));\n this.position += 4;\n return result;\n },\n\n readUInt16: function () {\n var result = (this._data[this.position] + (this._data[this.position + 1] << 8));\n this.position += 2;\n return result;\n },\n\n readUInt16LittleEndian: function () {\n var result = ((this._data[this.position] << 8) + this._data[this.position + 1]);\n this.position += 2;\n return result;\n },\n\n readInt16: function (littleEndian) {\n var result = (littleEndian) ? this.readUInt16LittleEndian() : this.readUInt16();\n if (!!(result & 0x8000)) {\n return (-((result - 1) ^ 0xFFFF));\n }\n return result;\n },\n\n readInt32: function () {\n var result = this.readUInt32();\n if (!!(result & 0x80000000)) {\n return (-((result - 1) ^ 0xFFFFFFFF));\n }\n return result;\n },\n\n readInt64: function () {\n this.position += 8;\n return BinaryReader.id++;\n },\n\n close: function () { }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"BinaryReader\", [BinaryReader, BinaryReader$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/utilities/bitmap.js\":\n/*!*********************************!*\\\n !*** ./esm/utilities/bitmap.js ***!\n \\*********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Bitmap: () => (/* binding */ Bitmap)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../graphics/webgl_constants.js */ \"./esm/graphics/webgl_constants.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../graphics/texture.js */ \"./esm/graphics/texture.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A basic bitmap class.\n\n\n\n\n\n\n\n// wwtlib.Bitmap\n\nfunction Bitmap() {\n this.width = 0;\n this.height = 0;\n}\n\nBitmap.create = function (width, height) {\n height = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_3__.Texture.fitPowerOfTwo(height);\n width = _graphics_texture_js__WEBPACK_IMPORTED_MODULE_3__.Texture.fitPowerOfTwo(width);\n var bmp = new Bitmap();\n bmp.height = height;\n bmp.width = width;\n bmp._buffer = new Uint8Array(width * height * 4);\n return bmp;\n};\n\nvar Bitmap$ = {\n setPixel: function (x, y, r, g, b, a) {\n var index = (x + y * this.width) * 4;\n this._buffer[index++] = r;\n this._buffer[index++] = g;\n this._buffer[index++] = b;\n this._buffer[index++] = a;\n },\n\n getTexture: function () {\n var tex = _render_globals_js__WEBPACK_IMPORTED_MODULE_1__.tilePrepDevice.createTexture();\n _render_globals_js__WEBPACK_IMPORTED_MODULE_1__.tilePrepDevice.bindTexture(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.TEXTURE_2D, tex);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_1__.tilePrepDevice.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.TEXTURE_WRAP_S, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.CLAMP_TO_EDGE);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_1__.tilePrepDevice.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.TEXTURE_WRAP_T, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.CLAMP_TO_EDGE);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_1__.tilePrepDevice.texImage2D(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.TEXTURE_2D, 0, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.RGBA, this.width, this.height, 0, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.RGBA, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.UNSIGNED_BYTE, this._buffer);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_1__.tilePrepDevice.texParameteri(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.TEXTURE_2D, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.TEXTURE_MIN_FILTER, _graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.LINEAR_MIPMAP_NEAREST);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_1__.tilePrepDevice.generateMipmap(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.TEXTURE_2D);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_1__.tilePrepDevice.bindTexture(_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__.WEBGL.TEXTURE_2D, null);\n return tex;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Bitmap\", [Bitmap, Bitmap$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/utilities/color_picker.js\":\n/*!***************************************!*\\\n !*** ./esm/utilities/color_picker.js ***!\n \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ColorPicker: () => (/* binding */ ColorPicker)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../color.js */ \"./esm/color.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../data_globals.js */ \"./esm/data_globals.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A color picker UI.\n\n\n\n\n\n\n// wwtlib.ColorPicker\n\nfunction ColorPicker() {\n this.callBack = null;\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_1__.Colors.get_white();\n}\n\nvar ColorPicker$ = {\n nonMenuClick: function (e) { },\n\n show: function (e) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalScriptInterface.showColorPicker(this, e);\n },\n\n getColorFromClick: function (e) {\n var image = document.getElementById('colorhex');\n var canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(image, 0, 0);\n var pixels = ctx.getImageData(e.offsetX, e.offsetY, 1, 1).data;\n this.color = _color_js__WEBPACK_IMPORTED_MODULE_1__.Color.fromArgb(pixels[3], pixels[0], pixels[1], pixels[2]);\n return this.color;\n },\n\n pickColor: function (e) {\n this.callBack(this.color);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ColorPicker\", [ColorPicker, ColorPicker$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/utilities/context_menu_strip.js\":\n/*!*********************************************!*\\\n !*** ./esm/utilities/context_menu_strip.js ***!\n \\*********************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ContextMenuStrip: () => (/* binding */ ContextMenuStrip),\n/* harmony export */ TagMe: () => (/* binding */ TagMe),\n/* harmony export */ ToolStripMenuItem: () => (/* binding */ ToolStripMenuItem),\n/* harmony export */ ToolStripSeparator: () => (/* binding */ ToolStripSeparator)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Context menu items\n\n\n\n\n\n\n// wwtlib.ContextMenuStrip\n\nfunction ContextMenuStrip() {\n this.items = [];\n}\n\nvar ContextMenuStrip$ = {\n _dispose: function () { },\n\n _nonMenuClick: function (e) {\n var menu = document.getElementById('contextmenu');\n menu.style.display = 'none';\n window.removeEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('_nonMenuClick', this), false);\n var popup = document.getElementById('popoutmenu');\n while (popup.firstChild != null) {\n popup.removeChild(popup.firstChild);\n }\n popup.style.display = 'none';\n },\n\n _menuItemClicked: function (e) {\n var me = e.currentTarget;\n me.itemTag.click(me.itemTag, new _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.EventArgs());\n },\n\n _show: function (position) {\n var menu = document.getElementById('contextmenu');\n while (menu.firstChild != null) {\n menu.removeChild(menu.firstChild);\n }\n menu.className = 'contextmenu';\n menu.style.display = 'block';\n menu.style.left = position.x.toString() + 'px';\n menu.style.top = position.y.toString() + 'px';\n window.addEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('_nonMenuClick', this), true);\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(this.items);\n while ($enum1.moveNext()) {\n var item = $enum1.current;\n if (item.visible) {\n var md = document.createElement('div');\n if (item.dropDownItems.length > 0) {\n md.className = 'contextmenuitem submenu';\n }\n else {\n if (item.checked) {\n md.className = 'contextmenuitem checkedmenu';\n }\n else {\n md.className = 'contextmenuitem';\n }\n }\n md.innerText = item.name;\n var it = md;\n it.itemTag = item;\n md.addEventListener('mouseover', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('_openSubMenu', this), false);\n if (item.click != null) {\n md.addEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('_menuItemClicked', this), false);\n }\n menu.appendChild(md);\n }\n }\n },\n\n _openSubMenu: function (e) {\n var me = e.currentTarget;\n var child = me.itemTag;\n var menu = document.getElementById('popoutmenu');\n while (menu.firstChild != null) {\n menu.removeChild(menu.firstChild);\n }\n menu.style.display = 'none';\n if (!child.dropDownItems.length) {\n return;\n }\n var position = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d();\n position.x = e.currentTarget.parentNode.offsetLeft + e.currentTarget.parentNode.clientWidth;\n position.y = e.currentTarget.parentNode.offsetTop + e.currentTarget.offsetTop;\n menu.className = 'contextmenu';\n menu.style.display = 'block';\n menu.style.left = position.x.toString() + 'px';\n menu.style.top = position.y.toString() + 'px';\n window.addEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('_nonMenuClick', this), true);\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(child.dropDownItems);\n while ($enum1.moveNext()) {\n var item = $enum1.current;\n if (item.visible) {\n var md = document.createElement('div');\n md.className = (item.checked) ? 'contextmenuitem checkedmenu' : 'contextmenuitem';\n md.innerText = item.name;\n var it = md;\n it.itemTag = item;\n md.addEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('_menuItemClicked', this), false);\n menu.appendChild(md);\n }\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ContextMenuStrip\", [ContextMenuStrip, ContextMenuStrip$, null]);\n\n\n// wwtlib.ToolStripMenuItem\n\nfunction ToolStripMenuItem() {\n this.tag = null;\n this.dropDownItems = [];\n this.checked = false;\n this.enabled = true;\n this.visible = true;\n}\n\nToolStripMenuItem.create = function (name) {\n var tsmi = new ToolStripMenuItem();\n tsmi.name = name;\n return tsmi;\n};\n\nvar ToolStripMenuItem$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ToolStripMenuItem\", [ToolStripMenuItem, ToolStripMenuItem$, null]);\n\n\n// wwtlib.ToolStripSeparator\n\nfunction ToolStripSeparator() {\n ToolStripMenuItem.call(this);\n this.name = '--------------------------------------';\n}\n\nvar ToolStripSeparator$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"ToolStripSeparator\", [ToolStripSeparator, ToolStripSeparator$, ToolStripMenuItem]);\n\n\n// wwtlib.TagMe\n\nfunction TagMe() { }\n\nvar TagMe$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"TagMe\", [TagMe, TagMe$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/utilities/dialog.js\":\n/*!*********************************!*\\\n !*** ./esm/utilities/dialog.js ***!\n \\*********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Dialog: () => (/* binding */ Dialog)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Types corresponding to popup dialog boxes.\n\n\n\n\n\n// wwtlib.Dialog\n\nfunction Dialog() { }\n\nvar Dialog$ = {\n add_showDialogHook: function (value) {\n this.__showDialogHook = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindAdd(this.__showDialogHook, value);\n },\n\n remove_showDialogHook: function (value) {\n this.__showDialogHook = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bindSub(this.__showDialogHook, value);\n },\n\n show: function (dialogArgs, e) {\n if (this.__showDialogHook != null) {\n this.__showDialogHook(dialogArgs, e);\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Dialog\", [Dialog, Dialog$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/utilities/histogram.js\":\n/*!************************************!*\\\n !*** ./esm/utilities/histogram.js ***!\n \\************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Histogram: () => (/* binding */ Histogram)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util.js */ \"./esm/util.js\");\n/* harmony import */ var _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../layers/fits_image_js.js */ \"./esm/layers/fits_image_js.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// UI for viewing and manipulating a data histogram.\n\n\n\n\n\n\n\n\n\n// wwtlib.Histogram\n\nfunction Histogram() {\n this.image = null;\n this.layer = null;\n this.tile = null;\n this._dropDown = null;\n this._downPosition = 0;\n this._lowPosition = 0;\n this._highPosition = 255;\n this._center = 127;\n this._ignoreNextClick = false;\n this._dragType = 4;\n this._updated = false;\n this.selectedCurveStyle = 0;\n}\n\nHistogram.updateImage = function (isl, z) {\n if (!_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGlVersion2) {\n var image = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(isl.get_imageSet().get_wcsImage(), _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_5__.FitsImageJs);\n var Tile = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheGetTile)(0, 0, 0, isl.get_imageSet(), null);\n Tile.texture2d = image.getBitmap().getTexture();\n }\n};\n\nHistogram.updateScale = function (isl, scale, low, hi) {\n isl.get_imageSet().get_fitsProperties().scaleType = scale;\n isl.get_imageSet().get_fitsProperties().lowerCut = low;\n isl.get_imageSet().get_fitsProperties().upperCut = hi;\n if (!_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGlVersion2) {\n var image = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(isl.get_imageSet().get_wcsImage(), _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_5__.FitsImageJs);\n var Tile = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheGetTile)(0, 0, 0, isl.get_imageSet(), null);\n Tile.texture2d = image.getBitmap().getTexture();\n }\n};\n\nHistogram.updateColorMapper = function (isl, colorMapperName) {\n isl.get_imageSet().get_fitsProperties().colorMapName = colorMapperName;\n if (!_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGlVersion2) {\n var image = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.safeCast(isl.get_imageSet().get_wcsImage(), _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_5__.FitsImageJs);\n var Tile = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheGetTile)(0, 0, 0, isl.get_imageSet(), null);\n Tile.texture2d = image.getBitmap().getTexture();\n }\n};\n\nvar Histogram$ = {\n close: function (e) {\n var menu = document.getElementById('histogram');\n var closeBtn = document.getElementById('histogramClose');\n menu.style.display = 'none';\n window.removeEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('close', this), true);\n var image = document.getElementById('graph');\n image.removeEventListener('mousedown', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onPointerDown', this), false);\n image.removeEventListener('mousemove', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onPointerMove', this), false);\n image.removeEventListener('mouseup', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onPointerUp', this), false);\n this._dropDown.removeEventListener('change', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('curveStyleSelected', this), false);\n this._dropDown.removeEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('ignoreMe', this), true);\n },\n\n show: function (position) {\n this.tile = (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.tileCacheGetTile)(0, 0, 0, this.layer.get_imageSet(), null);\n var picker = document.getElementById('histogram');\n var closeBtn = document.getElementById('histogramClose');\n picker.style.display = 'block';\n picker.style.left = position.x.toString() + 'px';\n picker.style.top = position.y.toString() + 'px';\n this.selectedCurveStyle = this.layer.get_imageSet().get_fitsProperties().scaleType;\n this._dropDown = document.getElementById('ScaleTypePicker');\n this._dropDown.addEventListener('change', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('curveStyleSelected', this), false);\n this._dropDown.addEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('ignoreMe', this), true);\n var canvas = document.getElementById('graph');\n canvas.addEventListener('pointerdown', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onPointerDown', this), false);\n canvas.addEventListener('pointermove', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onPointerMove', this), false);\n canvas.addEventListener('pointerup', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onPointerUp', this), false);\n closeBtn.addEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('close', this), true);\n this.draw();\n },\n\n ignoreMe: function (e) {\n this._ignoreNextClick = true;\n },\n\n curveStyleSelected: function (e) {\n this.selectedCurveStyle = this._dropDown.selectedIndex;\n this.setUpdateTimer();\n this.layer.get_imageSet().get_fitsProperties().scaleType = this.selectedCurveStyle;\n this.draw();\n this._ignoreNextClick = true;\n },\n\n onPointerDown: function (e) {\n var canvas = document.getElementById('graph');\n var x = _util_js__WEBPACK_IMPORTED_MODULE_4__.Mouse.offsetX(canvas, e);\n var y = _util_js__WEBPACK_IMPORTED_MODULE_4__.Mouse.offsetY(canvas, e);\n canvas.setPointerCapture(e.pointerId);\n if ((Math.abs(x - this._center) < 10) && Math.abs(y - 75) < 10) {\n this._dragType = 3;\n } else if (Math.abs(x - this._lowPosition) < 10) {\n this._dragType = 0;\n } else if (Math.abs(x - this._highPosition) < 10) {\n this._dragType = 1;\n } else {\n this._dragType = 2;\n this._downPosition = Math.min(255, Math.max(0, x));\n this.draw();\n }\n e.cancelBubble = true;\n },\n\n onPointerMove: function (e) {\n var canvas = document.getElementById('graph');\n var x = _util_js__WEBPACK_IMPORTED_MODULE_4__.Mouse.offsetX(canvas, e);\n var y = _util_js__WEBPACK_IMPORTED_MODULE_4__.Mouse.offsetY(canvas, e);\n switch (this._dragType) {\n case 0:\n this._lowPosition = Math.min(255, Math.max(0, x));\n break;\n case 1:\n this._highPosition = Math.min(255, Math.max(0, x));\n break;\n case 2:\n this._lowPosition = this._downPosition;\n this._highPosition = Math.min(255, Math.max(0, x));\n break;\n case 3:\n var hWidth = Math.abs(this._highPosition - this._lowPosition) / 2;\n var adCenter = Math.min(255 - hWidth, Math.max(hWidth, x));\n var moved = this._center - adCenter;\n this._lowPosition -= moved;\n this._highPosition -= moved;\n break;\n case 4:\n return;\n default:\n break;\n }\n this._center = (this._lowPosition + this._highPosition) / 2;\n this.draw();\n var factor = (this.layer.get_imageSet().get_fitsProperties().maxVal - this.layer.get_imageSet().get_fitsProperties().minVal) / 256;\n var low = this.layer.get_imageSet().get_fitsProperties().minVal + (this._lowPosition * factor);\n var hi = this.layer.get_imageSet().get_fitsProperties().minVal + (this._highPosition * factor);\n this.setUpdateTimer();\n this.layer.get_imageSet().get_fitsProperties().upperCut = hi;\n this.layer.get_imageSet().get_fitsProperties().lowerCut = low;\n this.layer.get_imageSet().get_fitsProperties().scaleType = this.selectedCurveStyle;\n e.cancelBubble = true;\n },\n\n onPointerUp: function (e) {\n e.srcElement.releasePointerCapture(e.pointerId);\n if (this._dragType !== 4) {\n this._dragType = 4;\n this.setUpdateTimer();\n this._ignoreNextClick = true;\n }\n e.cancelBubble = true;\n },\n\n setUpdateTimer: function () {\n var $this = this;\n\n if (!_render_globals_js__WEBPACK_IMPORTED_MODULE_3__.useGlVersion2) {\n setTimeout(function () {\n $this.update();\n }, 500);\n this._updated = false;\n }\n },\n\n update: function () {\n if (this._updated) {\n return;\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this.image, _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_5__.FitsImageJs)) {\n var factor = (this.layer.get_imageSet().get_fitsProperties().maxVal - this.layer.get_imageSet().get_fitsProperties().minVal) / 256;\n var low = this.layer.get_imageSet().get_fitsProperties().minVal + (this._lowPosition * factor);\n var hi = this.layer.get_imageSet().get_fitsProperties().minVal + (this._highPosition * factor);\n this.tile.texture2d = (this.image).getScaledBitmap(low, hi, this.selectedCurveStyle, 0, null).getTexture();\n }\n this._updated = true;\n },\n\n draw: function () {\n var canvas = document.getElementById('graph');\n var ctx = canvas.getContext('2d');\n if (this.image != null) {\n this.image.drawHistogram(ctx);\n }\n var red = 'rgba(255,0,0,255)';\n var green = 'rgba(0,255,0,255)';\n var blue = 'rgba(0,0,255,255)';\n ctx.strokeStyle = red;\n ctx.beginPath();\n ctx.moveTo(this._lowPosition, 0);\n ctx.lineTo(this._lowPosition, 150);\n ctx.stroke();\n ctx.strokeStyle = green;\n ctx.beginPath();\n ctx.moveTo(this._highPosition, 0);\n ctx.lineTo(this._highPosition, 150);\n ctx.stroke();\n ctx.strokeStyle = blue;\n ctx.beginPath();\n ctx.arc(this._center, 75, 10, 0, Math.PI * 2, false);\n ctx.closePath();\n ctx.stroke();\n var Curve = [];\n switch (this.selectedCurveStyle) {\n case 0: // linear\n Curve.length = 0;\n Curve.push(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(this._lowPosition, 150));\n Curve.push(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(this._highPosition, 0));\n break;\n case 1: // log\n Curve.length = 0;\n var factor = 150 / Math.log(255);\n var diff = (this._highPosition - this._lowPosition);\n var jump = (diff < 0) ? -1 : 1;\n var step = Math.abs(256 / ((!diff) ? 1E-06 : diff));\n var val = 1E-06;\n for (var i = this._lowPosition; i !== this._highPosition; i += jump) {\n Curve.push(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(i, (150 - (Math.log(val) * factor))));\n val += step;\n }\n break;\n case 2: // power 2\n Curve.length = 0;\n var factor = 150 / Math.pow(255, 2);\n var diff = (this._highPosition - this._lowPosition);\n var jump = (diff < 0) ? -1 : 1;\n var step = Math.abs(256 / ((!diff) ? 1E-06 : diff));\n var val = 1E-06;\n for (var i = this._lowPosition; i !== this._highPosition; i += jump) {\n Curve.push(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(i, (150 - (Math.pow(val, 2) * factor))));\n val += step;\n }\n break;\n case 3: // square root\n Curve.length = 0;\n var factor = 150 / Math.sqrt(255);\n var diff = (this._highPosition - this._lowPosition);\n var jump = (diff < 0) ? -1 : 1;\n var step = Math.abs(256 / ((!diff) ? 1E-06 : diff));\n var val = 1E-06;\n for (var i = this._lowPosition; i !== this._highPosition; i += jump) {\n Curve.push(_double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector2d.create(i, (150 - (Math.sqrt(val) * factor))));\n val += step;\n }\n break;\n }\n if (Curve.length > 1) {\n ctx.beginPath();\n ctx.strokeStyle = blue;\n ctx.moveTo(Curve[0].x, Curve[0].y);\n for (var i = 1; i < Curve.length; i++) {\n ctx.lineTo(Curve[i].x, Curve[i].y);\n }\n ctx.stroke();\n }\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Histogram\", [Histogram, Histogram$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/utilities/simple_input.js\":\n/*!***************************************!*\\\n !*** ./esm/utilities/simple_input.js ***!\n \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SimpleInput: () => (/* binding */ SimpleInput)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A manually-built HTML based input dialog.\n\n\n\n\n\n// wwtlib.SimpleInput\n\nfunction SimpleInput(title, label, text, v3) {\n this.title = 'Tile';\n this.label = 'Enter Text Below';\n this.text = '';\n this._textElement = null;\n this._ignoreNextClick = false;\n this.title = title;\n this.label = label;\n this.text = text;\n}\n\nvar SimpleInput$ = {\n showDialog: function () {\n return 1;\n },\n\n nonMenuClick: function (e) {\n if (!this._ignoreNextClick) {\n this._close();\n }\n this._ignoreNextClick = false;\n },\n\n show: function (position, callback) {\n var simpleInputElement = document.getElementById('simpleinput');\n var modalElement = document.getElementById('simplemodal');\n modalElement.style.display = 'block';\n simpleInputElement.style.display = 'block';\n simpleInputElement.style.marginLeft = position.x.toString() + 'px';\n simpleInputElement.style.marginTop = position.y.toString() + 'px';\n this._textElement = document.getElementById('inputtext');\n this._textElement.value = this.text;\n var titleDiv = document.getElementById('simpletitle');\n var labelDiv = document.getElementById('inputlabel');\n titleDiv.innerText = this.title;\n labelDiv.innerText = this.label;\n this._textElement.addEventListener('change', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('textChanged', this), false);\n this._textElement.addEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('ignoreMe', this), true);\n var okButton = document.getElementById('simpleinputok');\n var cancelButton = document.getElementById('simpleinputcancel');\n okButton.addEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('okClicked', this), false);\n cancelButton.addEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('cancelClicked', this), false);\n this._okCallback = callback;\n },\n\n okClicked: function (e) {\n this._close();\n if (this._okCallback != null) {\n this._okCallback();\n }\n },\n\n cancelClicked: function (e) {\n this._close();\n },\n\n _close: function () {\n var simpleInputElement = document.getElementById('simplemodal');\n simpleInputElement.style.display = 'none';\n this._textElement.removeEventListener('change', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('textChanged', this), false);\n var okButton = document.getElementById('simpleinputok');\n var cancelButton = document.getElementById('simpleinputcancel');\n okButton.removeEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('okClicked', this), false);\n cancelButton.removeEventListener('click', _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.bind('cancelClicked', this), false);\n },\n\n ignoreMe: function (e) {\n this._ignoreNextClick = true;\n },\n\n textChanged: function (e) {\n this.text = this._textElement.value;\n this._ignoreNextClick = true;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"SimpleInput\", [SimpleInput, SimpleInput$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/utilities/xml_text_writer.js\":\n/*!******************************************!*\\\n !*** ./esm/utilities/xml_text_writer.js ***!\n \\******************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Formatting: () => (/* binding */ Formatting),\n/* harmony export */ XmlTextWriter: () => (/* binding */ XmlTextWriter)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ss.js */ \"./esm/ss.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Writing XML.\n\n\n\n\n\n// wwtlib.Formatting\n\nvar Formatting = {\n indented: 1\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"Formatting\", Formatting);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerEnum)(\"Formatting\", Formatting);\n\n\n// wwtlib.XmlTextWriter\n\nfunction XmlTextWriter() {\n this.body = \"\\r\\n\";\n this.formatting = 1;\n this._elementStack = new _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.Stack();\n this._pending = false;\n this._currentName = '';\n this._attributes = {};\n this._value = '';\n}\n\nvar XmlTextWriter$ = {\n _pushNewElement: function (name) {\n //write pending element and attributes\n this._writePending(false);\n\n //Push new attribute on to stack\n this._elementStack.push(name);\n\n //setup pending structures\n this._pending = true;\n this._currentName = name;\n },\n\n _writePending: function (fullClose) {\n var closed = true;\n if (this._pending) {\n for (var i = 1; i < this._elementStack.count; i++) {\n this.body += ' ';\n }\n this.body += '<' + this._currentName;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.keyCount(this._attributes) > 0) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.enumerate(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.keys(this._attributes));\n while ($enum1.moveNext()) {\n var key = $enum1.current;\n this.body += _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format(' {0}=\"{1}\"', key, this._attributes[key]);\n }\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.emptyString(this._value)) {\n this.body += '>';\n closed = false;\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.emptyString(this._value)) {\n this.body += this._value;\n }\n }\n else {\n if (fullClose) {\n this.body += ' />\\r\\n';\n closed = true;\n }\n else {\n this.body += '>\\r\\n';\n }\n }\n this._pending = false;\n this._currentName = '';\n this._value = '';\n this._attributes = {};\n return closed;\n }\n return false;\n },\n\n _writeProcessingInstruction: function (v1, v2) { },\n\n _writeStartElement: function (name) {\n this._pushNewElement(name);\n },\n\n _writeAttributeString: function (key, value) {\n if (value != null) {\n this._attributes[key] = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(value.toString(), '&', '&');\n } else {\n this._attributes[key] = '';\n }\n },\n\n _writeEndElement: function () {\n if (!this._writePending(true)) {\n for (var i = 1; i < this._elementStack.count; i++) {\n this.body += ' ';\n }\n this.body += _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('\\r\\n', this._elementStack.pop());\n } else {\n this._elementStack.pop();\n }\n },\n\n _writeString: function (text) {\n this._value = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(text, '&', '&');\n },\n\n _writeFullEndElement: function () {\n this._writePending(false);\n for (var i = 1; i < this._elementStack.count; i++) {\n this.body += ' ';\n }\n this.body += _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('\\r\\n', this._elementStack.pop());\n },\n\n _close: function () { },\n\n _writeElementString: function (name, value) {\n this._writeStartElement(name);\n this._writeValue(_ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(value, '&', '&'));\n this._writeEndElement();\n },\n\n _writeValue: function (val) {\n this._value = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.replaceString(val, '&', '&');\n },\n\n _writeCData: function (htmlDescription) {\n this._value = _ss_js__WEBPACK_IMPORTED_MODULE_1__.ss.format('', htmlDescription);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"XmlTextWriter\", [XmlTextWriter, XmlTextWriter$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/video_output_type.js\":\n/*!**********************************!*\\\n !*** ./esm/video_output_type.js ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VideoOutputType: () => (/* binding */ VideoOutputType)\n/* harmony export */ });\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Specifications of a requested video output format.\n\n\n\n\n// wwtlib.VideoOutputType\n\nfunction VideoOutputType(width, height, fps, format, waitDownload) {\n this.fps = 0;\n this.width = 0;\n this.height = 0;\n this.totalFrames = 0;\n this.waitDownload = false;\n this.format = 'image/jpeg';\n this.width = width;\n this.height = height;\n this.fps = fps;\n this.format = format;\n this.waitDownload = waitDownload;\n}\n\nvar VideoOutputType$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_0__.registerType)(\"VideoOutputType\", [VideoOutputType, VideoOutputType$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/view_mover.js\":\n/*!***************************!*\\\n !*** ./esm/view_mover.js ***!\n \\***************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ViewMoverKenBurnsStyle: () => (/* binding */ ViewMoverKenBurnsStyle),\n/* harmony export */ ViewMoverSlew: () => (/* binding */ ViewMoverSlew)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _camera_parameters_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./camera_parameters.js */ \"./esm/camera_parameters.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./space_time_controller.js */ \"./esm/space_time_controller.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Moving the view around.\n//\n// These types were originally implemented in `IViewMover.cs`, but we merged the\n// `IViewMover` interface into `interfaces.js`, since currently in the JS\n// implementation the interfaces don't contain any content.\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.ViewMoverKenBurnsStyle\n//\n// This was defined in `IViewMover.cs`, which we've folded into `interfaces.js`.\n\nfunction ViewMoverKenBurnsStyle(from, to, time, fromDateTime, toDateTime, type) {\n this.interpolationType = 0;\n this.fastDirectionMove = false;\n this._toTargetTime = 0;\n this._dateTimeSpan = 0;\n this._complete = false;\n this._midpointFired = false;\n this.interpolationType = type;\n if (Math.abs(from.lng - to.lng) > 180) {\n if (from.lng > to.lng) {\n from.lng -= 360;\n } else {\n from.lng += 360;\n }\n }\n this._fromDateTime = fromDateTime;\n this._toDateTime = toDateTime;\n this._dateTimeSpan = toDateTime - fromDateTime;\n this._from = from.copy();\n this._to = to.copy();\n this._fromTime = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_7__.SpaceTimeController.get_metaNow();\n this._toTargetTime = time;\n}\n\nvar ViewMoverKenBurnsStyle$ = {\n get_complete: function () {\n return this._complete;\n },\n\n get_currentPosition: function () {\n var elapsed = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_7__.SpaceTimeController.get_metaNow() - this._fromTime;\n var elapsedSeconds = (elapsed) / 1000;\n var alpha = elapsedSeconds / this._toTargetTime;\n if (!this._midpointFired && alpha >= 0.5) {\n this._midpointFired = true;\n if (this._midpoint != null) {\n this._midpoint();\n }\n }\n if (alpha >= 1) {\n alpha = 1;\n this._complete = true;\n return this._to.copy();\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_6__.Settings.get_active().get_galacticMode() && _render_globals_js__WEBPACK_IMPORTED_MODULE_5__.globalRenderContext.space) {\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_3__.CameraParameters.interpolateGreatCircle(this._from, this._to, alpha, this.interpolationType, this.fastDirectionMove);\n }\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_3__.CameraParameters.interpolate(this._from, this._to, alpha, this.interpolationType, this.fastDirectionMove);\n },\n\n get_currentDateTime: function () {\n var elapsed = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_7__.SpaceTimeController.get_metaNow() - this._fromTime;\n var elapsedSeconds = (elapsed) / 1000;\n var alpha = elapsedSeconds / this._toTargetTime;\n var delta = this._dateTimeSpan * alpha;\n var retDate = new Date(this._fromDateTime.getTime() + _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(delta));\n return retDate;\n },\n\n get_midpoint: function () {\n return this._midpoint;\n },\n\n set_midpoint: function (value) {\n this._midpoint = value;\n return value;\n },\n\n get_moveTime: function () {\n return this._toTargetTime;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ViewMoverKenBurnsStyle\", [ViewMoverKenBurnsStyle, ViewMoverKenBurnsStyle$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_4__.IViewMover]);\n\n\n// wwtlib.ViewMoverSlew\n//\n// This was defined in `IViewMover.cs`, which we've folded into `interfaces.js`.\n\nfunction ViewMoverSlew() {\n this._upTargetTime = 0;\n this._downTargetTime = 0;\n this._toTargetTime = 0;\n this._upTimeFactor = 0.6;\n this._downTimeFactor = 0.6;\n this._travelTimeFactor = 7;\n this._midpointFired = false;\n this._complete = false;\n}\n\nViewMoverSlew.create = function (from, to) {\n var temp = new ViewMoverSlew();\n temp.init(from, to);\n return temp;\n};\n\nViewMoverSlew.createUpDown = function (from, to, upDowFactor) {\n var temp = new ViewMoverSlew();\n temp._upTimeFactor = temp._downTimeFactor = upDowFactor;\n temp.init(from.copy(), to.copy());\n return temp;\n};\n\nvar ViewMoverSlew$ = {\n init: function (from, to) {\n if (Math.abs(from.lng - to.lng) > 180) {\n if (from.lng > to.lng) {\n from.lng -= 360;\n }\n else {\n from.lng += 360;\n }\n }\n if (to.zoom <= 0) {\n to.zoom = 360;\n }\n if (from.zoom <= 0) {\n from.zoom = 360;\n }\n this._from = from;\n this._to = to;\n this._fromTime = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_7__.SpaceTimeController.get_metaNow();\n var zoomUpTarget = 360;\n var travelTime;\n var lngDist = Math.abs(from.lng - to.lng);\n var latDist = Math.abs(from.lat - to.lat);\n var distance = Math.sqrt(latDist * latDist + lngDist * lngDist);\n zoomUpTarget = (distance / 3) * 20;\n if (zoomUpTarget > 360) {\n zoomUpTarget = 360;\n }\n if (zoomUpTarget < from.zoom) {\n zoomUpTarget = from.zoom;\n }\n travelTime = (distance / 180) * (360 / zoomUpTarget) * this._travelTimeFactor;\n var rotateTime = Math.max(Math.abs(from.angle - to.angle), Math.abs(from.rotation - to.rotation));\n var logDistUp = Math.max(Math.abs(_baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.logN(zoomUpTarget, 2) - _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.logN(from.zoom, 2)), rotateTime);\n this._upTargetTime = this._upTimeFactor * logDistUp;\n this._downTargetTime = this._upTargetTime + travelTime;\n var logDistDown = Math.abs(_baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.logN(zoomUpTarget, 2) - _baseutil_js__WEBPACK_IMPORTED_MODULE_2__.Util.logN(to.zoom, 2));\n this._toTargetTime = this._downTargetTime + Math.max((this._downTimeFactor * logDistDown), rotateTime);\n this._fromTop = from.copy();\n this._fromTop.zoom = zoomUpTarget;\n this._fromTop.angle = (from.angle + to.angle) / 2;\n this._fromTop.rotation = (from.rotation + to.rotation) / 2;\n this._toTop = to.copy();\n this._toTop.zoom = this._fromTop.zoom;\n this._toTop.angle = this._fromTop.angle;\n this._toTop.rotation = this._fromTop.rotation;\n },\n\n get_complete: function () {\n return this._complete;\n },\n\n get_currentPosition: function () {\n var elapsed = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_7__.SpaceTimeController.get_metaNow() - this._fromTime;\n var elapsedSeconds = (elapsed) / 1000;\n if (elapsedSeconds < this._upTargetTime) {\n // Log interpolate from from to fromTop\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_3__.CameraParameters.interpolate(this._from, this._fromTop, elapsedSeconds / this._upTargetTime, 3, false);\n } else if (elapsedSeconds < this._downTargetTime) {\n elapsedSeconds -= this._upTargetTime;\n if (_settings_js__WEBPACK_IMPORTED_MODULE_6__.Settings.get_active().get_galacticMode() && _render_globals_js__WEBPACK_IMPORTED_MODULE_5__.globalRenderContext.space) {\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_3__.CameraParameters.interpolateGreatCircle(this._fromTop, this._toTop, elapsedSeconds / (this._downTargetTime - this._upTargetTime), 3, false);\n }\n // interpolate linear fromTop and toTop\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_3__.CameraParameters.interpolate(this._fromTop, this._toTop, elapsedSeconds / (this._downTargetTime - this._upTargetTime), 3, false);\n } else {\n if (!this._midpointFired) {\n this._midpointFired = true;\n if (this._midpoint != null) {\n this._midpoint();\n }\n }\n elapsedSeconds -= this._downTargetTime;\n // Interpolate log from toTop and to\n var alpha = elapsedSeconds / (this._toTargetTime - this._downTargetTime);\n if (alpha > 1) {\n alpha = 1;\n this._complete = true;\n return this._to.copy();\n }\n return _camera_parameters_js__WEBPACK_IMPORTED_MODULE_3__.CameraParameters.interpolate(this._toTop, this._to, alpha, 3, false);\n }\n },\n\n get_currentDateTime: function () {\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_7__.SpaceTimeController.updateClock();\n return _space_time_controller_js__WEBPACK_IMPORTED_MODULE_7__.SpaceTimeController.get_now();\n },\n\n get_midpoint: function () {\n return this._midpoint;\n },\n\n set_midpoint: function (value) {\n this._midpoint = value;\n return value;\n },\n\n get_moveTime: function () {\n return this._toTargetTime;\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"ViewMoverSlew\", [ViewMoverSlew, ViewMoverSlew$, null, _interfaces_js__WEBPACK_IMPORTED_MODULE_4__.IViewMover]);\n\n\n/***/ }),\n\n/***/ \"./esm/viz_layer.js\":\n/*!**************************!*\\\n !*** ./esm/viz_layer.js ***!\n \\**************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VizLayer: () => (/* binding */ VizLayer)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// A layer displaying catalog data? This type is unused in the WWT engine, but\n// we preserve it because it is exported in the API.\n\n\n\n\n\n\n\n\n\n// wwtlib.VizLayer\n\nfunction VizLayer() {\n this.table = [];\n this.items = [];\n this._imageReady = false;\n this._dateColumn = 0;\n this._latColumn = 1;\n this._lngColumn = 2;\n this._depthColumn = 3;\n this._magColumn = 4;\n}\n\nVizLayer.earthRadius = 6371000;\n\nvar VizLayer$ = {\n load: function (data) {\n var $this = this;\n\n var lines = data.split('\\r\\n');\n this._starProfile = document.createElement('img');\n this._starProfile.addEventListener('load', function (e) {\n $this._imageReady = true;\n }, false);\n this._starProfile.src = _url_helpers_js__WEBPACK_IMPORTED_MODULE_4__.URLHelpers.singleton.engineAssetUrl('StarProfileAlpha.png');\n var gotHeader = false;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(lines);\n while ($enum1.moveNext()) {\n var line = $enum1.current;\n if (gotHeader) {\n this.table.push(line.split('\\t'));\n }\n else {\n this.header = line.split('\\t');\n gotHeader = true;\n }\n }\n },\n\n prepare: function () {\n this._worldList = new Array(this.table.length);\n this._transformedList = new Array(this.table.length);\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.table);\n while ($enum1.moveNext()) {\n var row = $enum1.current;\n var item = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__.DataItem();\n item.eventTime = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.date(row[this._dateColumn]);\n var radius = (6371000 - parseFloat(row[this._depthColumn]) * 1000) / 6371000;\n item.location = _coordinates_js__WEBPACK_IMPORTED_MODULE_5__.Coordinates.geoTo3dRad(parseFloat(row[this._latColumn]), parseFloat(row[this._lngColumn]) + 180, radius);\n item.tranformed = new _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d();\n item.size = Math.pow(2, parseFloat(row[this._magColumn])) / 50;\n this._worldList[index] = item.location;\n this._transformedList[index] = item.tranformed;\n this.items.push(item);\n index++;\n }\n },\n\n draw: function (renderContext) {\n if (!this._imageReady) {\n return;\n }\n renderContext.device.save();\n renderContext.WVP.projectArrayToScreen(this._worldList, this._transformedList);\n var ctx = renderContext.device;\n ctx.globalAlpha = 0.4;\n var width = renderContext.width;\n var height = renderContext.height;\n var viewPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_2__.Vector3d.makeCopy(renderContext.get_viewPoint());\n var scaleFactor = renderContext.get_fovScale() / 100;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.items);\n while ($enum1.moveNext()) {\n var item = $enum1.current;\n if (item.tranformed.z < 1) {\n var x = item.tranformed.x;\n var y = item.tranformed.y;\n var size = 4 * item.size / scaleFactor;\n var half = size / 2;\n if (x > -half && x < width + half && y > -half && y < height + half) {\n ctx.drawImage(this._starProfile, x - size / 2, y - size / 2, size, size);\n }\n }\n }\n renderContext.device.restore();\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"VizLayer\", [VizLayer, VizLayer$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/web_file.js\":\n/*!*************************!*\\\n !*** ./esm/web_file.js ***!\n \\*************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StateType: () => (/* binding */ StateType),\n/* harmony export */ WebFile: () => (/* binding */ WebFile)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Files downloaded over the web.\n\n\n\n\n\n\n// wwtlib.StateType\n\nvar StateType = {\n pending: 0,\n received: 1,\n error: 2\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"StateType\", StateType);\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerEnum)(\"StateType\", StateType);\n\n\n// wwtlib.WebFile\n\nfunction WebFile(url) {\n this._state = 0;\n this.responseType = '';\n this._triedOnce = false;\n this._url = url;\n}\n\nvar WebFile$ = {\n send: function () {\n // There used to be code here to work with IE 8/9, but we're not\n // worrying about those anymore.\n if (typeof navigator === \"undefined\") { return; }\n this._CORS();\n this.set_state(StateType.pending);\n },\n\n get_message: function () {\n return this._message;\n },\n\n get_state: function () {\n return this._state;\n },\n\n set_state: function (value) {\n this._state = value;\n if (this.onStateChange != null) {\n this.onStateChange();\n }\n return value;\n },\n\n _loadData: function (textReceived) {\n // received data, set the state vars and send statechange\n this._data = textReceived;\n this.set_state(StateType.received);\n },\n\n _loadBlob: function (blob) {\n // received data, set the state vars and send statechange\n this._blobdata = blob;\n this.set_state(StateType.received);\n },\n\n _error: function () {\n this._message = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('Error encountered loading {0}', this._url);\n this.set_state(StateType.error);\n },\n\n _timeOut: function () {\n this._message = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.format('Timeout encountered loading {0}', this._url);\n this.set_state(StateType.error);\n },\n\n _CORS: function () {\n var $this = this;\n\n this._xhr = new XMLHttpRequest();\n try {\n this._xhr.open('GET', this._url);\n if (this.responseType != null) {\n this._xhr.responseType = this.responseType;\n }\n this._xhr.onreadystatechange = function () {\n if ($this._xhr.readyState === 4) {\n if (!$this._xhr.status) {\n if (!$this._triedOnce) {\n $this._triedOnce = true;\n $this._xhr.onreadystatechange = null;\n var new_url = _url_helpers_js__WEBPACK_IMPORTED_MODULE_2__.URLHelpers.singleton.activateProxy($this._url);\n\n // null => don't bother: we know that the proxy won't help\n if (new_url !== null) {\n $this._url = new_url;\n $this._CORS();\n } else {\n $this._message = $this._xhr.statusText;\n $this.set_state(StateType.error);\n }\n }\n } else {\n if ($this._xhr.status >= 400) {\n $this._message = $this._xhr.statusText;\n $this.set_state(StateType.error);\n } else {\n if (!$this.responseType) {\n $this._loadData($this._xhr.responseText);\n } else {\n $this._loadBlob($this._xhr.response);\n }\n }\n }\n }\n };\n this._xhr.send();\n } catch (err) {\n this._message = err.message;\n this.set_state(StateType.error);\n throw err;\n }\n },\n\n getText: function () {\n return this._data;\n },\n\n getBlob: function () {\n return this._blobdata;\n },\n\n getXml: function () {\n var xParser = new DOMParser();\n return xParser.parseFromString(this._data, 'text/xml');\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"WebFile\", [WebFile, WebFile$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/wtml.js\":\n/*!*********************!*\\\n !*** ./esm/wtml.js ***!\n \\*********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FolderDownloadAction: () => (/* binding */ FolderDownloadAction),\n/* harmony export */ Wtml: () => (/* binding */ Wtml)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./imageset.js */ \"./esm/imageset.js\");\n/* harmony import */ var _place_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./place.js */ \"./esm/place.js\");\n/* harmony import */ var _folder_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./folder.js */ \"./esm/folder.js\");\n/* harmony import */ var _wwt_control_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./wwt_control.js */ \"./esm/wwt_control.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// Global methods for dealing with WTML folders.\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.FolderDownloadAction\n\nfunction FolderDownloadAction(action, loadChildFolders) {\n this.loadChildFolders = false;\n this._numLoadingFolders = 0;\n this._onComplete = action;\n this.loadChildFolders = loadChildFolders;\n}\n\nvar FolderDownloadAction$ = {\n _folderLoaded: function () {\n this._numLoadingFolders--;\n if (!this._numLoadingFolders) {\n this._onComplete();\n }\n },\n\n startingNewFolderLoad: function (folder) {\n var $this = this;\n\n this._numLoadingFolders++;\n folder.childLoadCallback(function () {\n Wtml.loadImagesets(folder, $this);\n $this._folderLoaded();\n });\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"FolderDownloadAction\", [FolderDownloadAction, FolderDownloadAction$, null]);\n\n\n// wwtlib.Wtml\n\nfunction Wtml() { }\n\nWtml.getWtmlFile = function (url, complete, loadChildFolders) {\n if (loadChildFolders == null) {\n loadChildFolders = false;\n }\n var folder = new _folder_js__WEBPACK_IMPORTED_MODULE_6__.Folder();\n folder.set_url(url);\n var folderDownloadAction = new FolderDownloadAction(complete, loadChildFolders);\n folderDownloadAction.startingNewFolderLoad(folder);\n return folder;\n};\n\n(0,_data_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_loadWtmlFile)(Wtml.getWtmlFile);\n\nWtml.loadImagesets = function (folder, folderDownloadAction) {\n var children = folder.get_children();\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(children);\n\n while ($enum1.moveNext()) {\n var child = $enum1.current;\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(child, _imageset_js__WEBPACK_IMPORTED_MODULE_4__.Imageset)) {\n var imageSet = child;\n _wwt_control_js__WEBPACK_IMPORTED_MODULE_7__.WWTControl.addImageSetToRepository(imageSet);\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(child, _place_js__WEBPACK_IMPORTED_MODULE_5__.Place)) {\n var place = child;\n if (place.get_studyImageset() != null) {\n _wwt_control_js__WEBPACK_IMPORTED_MODULE_7__.WWTControl.addImageSetToRepository(place.get_studyImageset());\n }\n if (place.get_backgroundImageset() != null) {\n _wwt_control_js__WEBPACK_IMPORTED_MODULE_7__.WWTControl.addImageSetToRepository(place.get_backgroundImageset());\n }\n }\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(child, _folder_js__WEBPACK_IMPORTED_MODULE_6__.Folder) && folderDownloadAction.loadChildFolders) {\n folderDownloadAction.startingNewFolderLoad((child));\n }\n }\n\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(_wwt_control_js__WEBPACK_IMPORTED_MODULE_7__.WWTControl.imageSetName)) {\n var name = _wwt_control_js__WEBPACK_IMPORTED_MODULE_7__.WWTControl.imageSetName.toLowerCase();\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(_wwt_control_js__WEBPACK_IMPORTED_MODULE_7__.WWTControl.getImageSets());\n while ($enum2.moveNext()) {\n var imageset = $enum2.current;\n if (imageset.get_name().toLowerCase() === name) {\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.set_backgroundImageset(imageset);\n }\n }\n }\n};\n\nvar Wtml$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"Wtml\", [Wtml, Wtml$, null]);\n\n\n/***/ }),\n\n/***/ \"./esm/wwt_control.js\":\n/*!****************************!*\\\n !*** ./esm/wwt_control.js ***!\n \\****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WWTControl: () => (/* binding */ WWTControl),\n/* harmony export */ WWTControlBuilder: () => (/* binding */ WWTControlBuilder),\n/* harmony export */ WWTElementEvent: () => (/* binding */ WWTElementEvent)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n/* harmony import */ var _blend_state_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./blend_state.js */ \"./esm/blend_state.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n/* harmony import */ var _graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./graphics/sprite2d.js */ \"./esm/graphics/sprite2d.js\");\n/* harmony import */ var _annotation_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./annotation.js */ \"./esm/annotation.js\");\n/* harmony import */ var _camera_parameters_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./camera_parameters.js */ \"./esm/camera_parameters.js\");\n/* harmony import */ var _constellations_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./constellations.js */ \"./esm/constellations.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _grids_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./grids.js */ \"./esm/grids.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./imageset.js */ \"./esm/imageset.js\");\n/* harmony import */ var _minor_planets_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./minor_planets.js */ \"./esm/minor_planets.js\");\n/* harmony import */ var _place_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./place.js */ \"./esm/place.js\");\n/* harmony import */ var _planets_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./planets.js */ \"./esm/planets.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _render_triangle_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./render_triangle.js */ \"./esm/render_triangle.js\");\n/* harmony import */ var _tile_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./tile.js */ \"./esm/tile.js\");\n/* harmony import */ var _tile_cache_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./tile_cache.js */ \"./esm/tile_cache.js\");\n/* harmony import */ var _video_output_type_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./video_output_type.js */ \"./esm/video_output_type.js\");\n/* harmony import */ var _ui_tools_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./ui_tools.js */ \"./esm/ui_tools.js\");\n/* harmony import */ var _view_mover_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./view_mover.js */ \"./esm/view_mover.js\");\n/* harmony import */ var _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./tours/tour_player.js */ \"./esm/tours/tour_player.js\");\n/* harmony import */ var _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./layers/layer_manager.js */ \"./esm/layers/layer_manager.js\");\n/* harmony import */ var _tours_tour_document_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./tours/tour_document.js */ \"./esm/tours/tour_document.js\");\n/* harmony import */ var _tours_tour_edit_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./tours/tour_edit.js */ \"./esm/tours/tour_edit.js\");\n/* harmony import */ var _planets_3d_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./planets_3d.js */ \"./esm/planets_3d.js\");\n/* harmony import */ var _script_interface_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./script_interface.js */ \"./esm/script_interface.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The integrated WWT web engine application.\n//\n// This is named \"WWTControl\" due to its heritage of thinking of WWT as a \"web\n// control\" in Microsoft-ese.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// wwtlib.WWTControl\n\nfunction WWTControl() {\n // In \"freestanding\" mode, no worldwidetelescope.org resources are\n // relied upon. The default screen is black sky, and the 3D solar system\n // mode is unavailable because it relies on so many built-in assets. If\n // you want to see anything, you need to load it in yourself.\n this.freestandingMode = false;\n\n this.uiController = null;\n this._annotations = [];\n this._hoverText = '';\n this._hoverTextPoint = new _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d();\n this._lastMouseMove = new Date(1900, 1, 0, 0, 0, 0, 0);\n this.layers = [];\n this._frameCount = 0;\n this._zoomMax = 360;\n this._zoomMaxSolarSystem = 10000000000000000;\n this._zoomMin = 0.001373291015625;\n this._zoomMinSolarSystem = 1E-08;\n this.constellation = 'UMA';\n this._fadePoints = null;\n this.fader = _blend_state_js__WEBPACK_IMPORTED_MODULE_4__.BlendState.create(true, 2000);\n this._crossFadeFrame = false;\n this._crossFadeTexture = null;\n this._sprite = new _graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_10__.Sprite2d();\n this.renderType = 2;\n this._milkyWayBackground = null;\n this.capturingVideo = false;\n this._videoBlobReady = null;\n this.dumpFrameParams = null;\n this._videoBlobQueue = {};\n this._videoQueueIndex = 0;\n this._emptyFrames = [];\n\n // Mouse, touch, gesture controls -- lots of different event listeners for different\n // devices and browser support.\n this._beginZoom = 1;\n this._dragging = false;\n this._mouseDown = false;\n this._hasTwoTouches = false;\n this._lastX = 0;\n this._lastY = 0;\n this._pointerIds = new Array(2);\n this._pinchingZoomRect = new Array(2);\n this._moved = false;\n this._zooming = false;\n this._rotating = false;\n this._dragThreshold = 4;\n\n this._foregroundCanvas = null;\n this._fgDevice = null;\n this._tracking = false;\n this._trackingObject = null;\n this.sandboxMode = false;\n this._solarSystemTrack = 65536;\n this._moving = false;\n this._targetStudyImageset = null;\n this._targetBackgroundImageset = null;\n this.tour = null;\n this.tourEdit = null;\n this._crossHairs = null;\n}\n\n// Note: these fields must remain public because there is JS code in the\n// wild that accesses `WWTControl.imageSets`.\nWWTControl.imageSets = [];\nWWTControl.imageSetName = '';\nWWTControl.showDataLayers = false;\nWWTControl._renderNeeded = false;\nWWTControl.constellationsFigures = null;\nWWTControl.constellationsBoundries = null;\nWWTControl.solarSystemObjectsNames = ['Sun', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'Moon', 'Io', 'Europa', 'Ganymede', 'Callisto', 'IoShadow', 'EuropaShadow', 'GanymedeShadow', 'CallistoShadow', 'SunEclipsed', 'Earth', 'Custom', 'Undefined'];\n\nWWTControl.addImageSetToRepository = function (imagesetToAdd) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(WWTControl.imageSets);\n while ($enum1.moveNext()) {\n var imageset = $enum1.current;\n if (imageset.get_imageSetID() === imagesetToAdd.get_imageSetID()) {\n return imageset;\n }\n }\n WWTControl.imageSets.push(imagesetToAdd);\n return imagesetToAdd;\n};\n\nWWTControl.getImageSets = function () {\n return WWTControl.imageSets;\n};\n\n// This parameter does nothing. We keep it to maintain API compatibility.\nWWTControl.get_renderNeeded = function () {\n return WWTControl._renderNeeded;\n};\n\n// This parameter does nothing. We keep it to maintain API compatibility.\nWWTControl.set_renderNeeded = function (value) {\n WWTControl._renderNeeded = true;\n return value;\n};\n\n// Initialization\n\n// For backwards compatibility, we preserve the semantics that calling\n// this function kicks off the rendering loop.\nWWTControl.initControl = function (DivId) {\n return WWTControl.initControl2(DivId, true);\n};\n\n// This function had a parameter to choose whether to use WebGL or HTML5\n// canvas, but at some point the argument was defused. We preserve it\n// for backwards compatibility.\nWWTControl.initControlParam = function (DivId, webgl_ignored) {\n return WWTControl.initControl2(DivId, true);\n};\n\n// Prefer using WWTControlBuilder rather than this interface directly.\nWWTControl.initControl2 = function (DivId, startRenderLoop) {\n return WWTControl.initControl6(DivId, startRenderLoop, 0, 0, 360, 'Sky');\n};\n\n// Prefer using WWTControlBuilder rather than this interface directly.\nWWTControl.initControl6 = function (DivId, startRenderLoop, startLat, startLng, startZoom, startMode) {\n if (_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.device == null) {\n WWTControl.scriptInterface = new _script_interface_js__WEBPACK_IMPORTED_MODULE_33__.ScriptInterface();\n WWTControl.scriptInterface.settings = _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_current();\n (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_globalScriptInterface)(WWTControl.scriptInterface);\n var canvas = WWTControl._createCanvasElement(DivId);\n var gl = canvas.getContext('webgl2');\n\n if (gl != null) {\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.set_useGlVersion2)(true);\n } else {\n console.warn('This browser does not support WebGL 2.0. Some features will work suboptimally. To get the full WWT experience, consider using the latest version of Chrome, Firefox or Edge. In case you would like to use Safari, we recommend that you enable WebGL 2.0');\n gl = canvas.getContext('webgl');\n }\n\n if (gl == null) {\n gl = canvas.getContext('experimental-webgl');\n }\n\n if (gl == null) {\n var ctx = canvas.getContext('2d');\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.device = ctx;\n } else {\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.set_tilePrepDevice)(gl);\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.gl = gl;\n (0,_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.set_useGl)(true);\n }\n\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalWWTControl.canvas = canvas;\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.width = canvas.width;\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.height = canvas.height;\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalWWTControl.setup(canvas, startLat, startLng, startZoom);\n\n _constellations_js__WEBPACK_IMPORTED_MODULE_13__.Constellations.initializeConstellations();\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_29__.LayerManager.oneTimeInitialization();\n\n if (startMode === 'earth') {\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.set_backgroundImageset(\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.Imageset.create(\n 'Blue Marble', // name\n _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__.URLHelpers.singleton.coreStaticUrl('wwtweb/tiles.aspx?q={1},{2},{3},bm200407'),\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.ImageSetType.earth, // dataSetType\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.BandPass.visible, // bandPass\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.ProjectionType.toast, // projectionType\n 101, // imageSetID\n 0, // baseLevel\n 7, // levels\n 256, // tileSize (unused)\n 180, // basetileDegrees\n '.png', // extension\n false, // bottomsUp\n '', // quadTreeMap\n 0, // centerX\n 0, // centerY\n 0, // rotation\n false, // sparse\n _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__.URLHelpers.singleton.coreStaticUrl('wwtweb/thumbnail.aspx?name=bm200407'),\n true, // defaultSet\n false, // elevationModel\n 0, // widthFactor\n 0, // offsetX\n 0, // offsetY\n '', // creditsText\n '', // creditsUrl\n '', // demUrl\n '', // altUrl\n 6371000, // meanRadius\n 'Earth' // referenceFrame\n )\n );\n } else if (startMode === 'black') {\n // Black sky init -- probably because we are in freestanding mode\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.set_backgroundImageset(\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.Imageset.create(\n 'Black Sky Background', // name\n '', // url\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.ImageSetType.sky, // dataSetType\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.BandPass.visible, // bandPass\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.ProjectionType.toast, // projectionType\n 102, // imageSetID\n 0, // baseLevel\n 0, // levels\n 256, // tileSize (unused)\n 180, // baseTileDegrees\n '.png', // extension\n false, // bottomsUp\n '0123', // quadTreeMap\n 0, // centerX\n 0, // centerY\n 0, // rotation\n false, // sparse\n '', // thumbnailUrl\n false, // defaultSet\n false, // elevationModel\n 2, // widthFactor\n 0, // offsetX\n 0, // offsetY\n '', // creditsText\n '', // creditsUrl\n '', // demUrl\n '', // altUrl\n 1, // meanRadius\n 'Sky' // referenceFrame\n )\n );\n } else {\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.set_backgroundImageset(\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.Imageset.create(\n 'DSS', // name\n _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__.URLHelpers.singleton.coreStaticUrl('wwtweb/dss.aspx?q={1},{2},{3}'),\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.ImageSetType.sky, // dataSetTYpe\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.BandPass.visible, // bandPass\n _imageset_js__WEBPACK_IMPORTED_MODULE_16__.ProjectionType.toast, // projectionType\n 100, // imageSetId\n 0, // baseLevel\n 12, // levels\n 256, // tileSize (unused)\n 180, // baseTileDegrees\n '.png', // extension\n false, // bottomsUp\n '', // quadTreeMap\n 0, // centerX\n 0, // centerY\n 0, // rotation\n false, // sparse\n _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__.URLHelpers.singleton.coreStaticUrl('thumbnails/DSS.png'),\n true, // defaultSet\n false, // elevationModel\n 0, // widthFactor\n 0, // offsetX\n 0, // offsetY\n '', // creditsText\n '', // creditsUrl\n '', // demUrl\n '', // altUrl\n 1, // meanRadius\n 'Sky' // referenceFrame\n )\n );\n }\n }\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.viewCamera.lng += 0;\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext._initGL();\n if (startRenderLoop) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalWWTControl.render();\n }\n return _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalScriptInterface;\n};\n\nWWTControl._createCanvasElement = function (DivId) {\n var div = document.getElementById(DivId);\n var canvas = document.createElement('canvas');\n canvas.height = div.clientHeight;\n canvas.width = div.clientWidth;\n div.appendChild(canvas);\n return canvas;\n};\n\nWWTControl.useUserLocation = function () {\n navigator.geolocation.getCurrentPosition(WWTControl._getLocation, WWTControl._getLocationError);\n};\n\nWWTControl._getLocation = function (pos) {\n if (!!pos.coords.latitude) {\n _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_globalSettings().set_locationLat(pos.coords.latitude);\n }\n if (!!pos.coords.longitude) {\n _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_globalSettings().set_locationLng(pos.coords.longitude);\n }\n if (!!pos.coords.altitude) {\n _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_globalSettings().set_locationAltitude(pos.coords.altitude);\n }\n};\n\nWWTControl._getLocationError = function (pos) {\n if (pos != null && pos.coords != null) {\n var lat = pos.coords.latitude;\n var lng = pos.coords.longitude;\n }\n};\n\nWWTControl.setBackgroundImageName = function (name) {\n WWTControl.imageSetName = name;\n};\n\nWWTControl.setForegroundImageName = function (name) {\n WWTControl.imageSetName = name;\n};\n\nWWTControl.showLayers = function (show) {\n WWTControl.showDataLayers = show;\n};\n\nvar WWTControl$ = {\n _addAnnotation: function (annotation) {\n this._annotations.push(annotation);\n _annotation_js__WEBPACK_IMPORTED_MODULE_11__.Annotation.batchDirty = true;\n },\n\n _removeAnnotation: function (annotation) {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove(this._annotations, annotation);\n _annotation_js__WEBPACK_IMPORTED_MODULE_11__.Annotation.batchDirty = true;\n },\n\n _clearAnnotations: function () {\n this._annotations.length = 0;\n _annotation_js__WEBPACK_IMPORTED_MODULE_11__.Annotation.batchDirty = true;\n },\n\n _annotationclicked: function (ra, dec, x, y) {\n if (this._annotations != null && this._annotations.length > 0) {\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._annotations);\n while ($enum1.moveNext()) {\n var note = $enum1.current;\n if (note.hitTest(this.renderContext, ra, dec, x, y)) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalScriptInterface._fireAnnotationclicked(ra, dec, note.get_id());\n return true;\n }\n index++;\n }\n }\n return false;\n },\n\n _annotationHover: function (ra, dec, x, y) {\n if (this._annotations != null && this._annotations.length > 0) {\n var index = 0;\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._annotations);\n while ($enum1.moveNext()) {\n var note = $enum1.current;\n if (note.hitTest(this.renderContext, ra, dec, x, y)) {\n this._hoverText = note.get_label();\n this._hoverTextPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(x, y);\n return true;\n }\n index++;\n }\n }\n return false;\n },\n\n get_zoomMax: function () {\n if (this.renderContext.get_backgroundImageset() != null && this.renderContext.get_backgroundImageset().get_dataSetType() == _imageset_js__WEBPACK_IMPORTED_MODULE_16__.ImageSetType.solarSystem) {\n return this._zoomMaxSolarSystem;\n } else {\n return this._zoomMax;\n }\n },\n\n set_zoomMax: function (value) {\n this._zoomMax = value;\n return value;\n },\n\n setSolarSystemMaxZoom: function (value) {\n this._zoomMaxSolarSystem = value;\n },\n\n get_zoomMin: function () {\n if (this.renderContext.get_backgroundImageset() != null && this.renderContext.get_backgroundImageset().get_dataSetType() == _imageset_js__WEBPACK_IMPORTED_MODULE_16__.ImageSetType.solarSystem) {\n return this._zoomMinSolarSystem;\n } else {\n return this._zoomMin;\n }\n },\n\n set_zoomMin: function (value) {\n this._zoomMin = value;\n return value;\n },\n\n setSolarSystemMinZoom: function (value) {\n this._zoomMinSolarSystem = value;\n },\n\n _notifyMoveComplete: function () { },\n\n get_crossFadeFrame: function () {\n return this._crossFadeFrame;\n },\n\n set_crossFadeFrame: function (value) {\n if (value && this._crossFadeFrame !== value) {\n if (this._crossFadeTexture != null) {\n }\n this._crossFadeTexture = this.renderContext._getScreenTexture();\n }\n this._crossFadeFrame = value;\n if (!value) {\n if (this._crossFadeTexture != null) {\n this._crossFadeTexture = null;\n }\n }\n return value;\n },\n\n _fadeFrame: function () {\n if (this.renderContext.gl != null) {\n var sp = _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().getSetting(17);\n if ((sp.opacity > 0)) {\n var color = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color._fromArgbColor(255 - _ui_tools_js__WEBPACK_IMPORTED_MODULE_26__.UiTools.gamma(255 - _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((sp.opacity * 255)), 1 / 2.2), _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_black());\n if (!(sp.opacity > 0)) {\n color = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color._fromArgbColor(255 - _ui_tools_js__WEBPACK_IMPORTED_MODULE_26__.UiTools.gamma(255 - _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((sp.opacity * 255)), 1 / 2.2), _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_black());\n }\n if (this._crossFadeFrame) {\n color = _color_js__WEBPACK_IMPORTED_MODULE_5__.Color._fromArgbColor(_ui_tools_js__WEBPACK_IMPORTED_MODULE_26__.UiTools.gamma(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((sp.opacity * 255)), 1 / 2.2), _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_white());\n }\n else {\n if (this._crossFadeTexture != null) {\n this._crossFadeTexture = null;\n }\n }\n if (this._fadePoints == null) {\n this._fadePoints = new Array(4);\n for (var i = 0; i < 4; i++) {\n this._fadePoints[i] = new _double3d_js__WEBPACK_IMPORTED_MODULE_8__.PositionColoredTextured();\n }\n }\n this._fadePoints[0].position.x = -this.renderContext.width / 2;\n this._fadePoints[0].position.y = this.renderContext.height / 2;\n this._fadePoints[0].position.z = 1347;\n this._fadePoints[0].tu = 0;\n this._fadePoints[0].tv = 1;\n this._fadePoints[0].color = color;\n this._fadePoints[1].position.x = -this.renderContext.width / 2;\n this._fadePoints[1].position.y = -this.renderContext.height / 2;\n this._fadePoints[1].position.z = 1347;\n this._fadePoints[1].tu = 0;\n this._fadePoints[1].tv = 0;\n this._fadePoints[1].color = color;\n this._fadePoints[2].position.x = this.renderContext.width / 2;\n this._fadePoints[2].position.y = this.renderContext.height / 2;\n this._fadePoints[2].position.z = 1347;\n this._fadePoints[2].tu = 1;\n this._fadePoints[2].tv = 1;\n this._fadePoints[2].color = color;\n this._fadePoints[3].position.x = this.renderContext.width / 2;\n this._fadePoints[3].position.y = -this.renderContext.height / 2;\n this._fadePoints[3].position.z = 1347;\n this._fadePoints[3].tu = 1;\n this._fadePoints[3].tv = 0;\n this._fadePoints[3].color = color;\n this._sprite.draw(this.renderContext, this._fadePoints, 4, this._crossFadeTexture, true, 1);\n }\n }\n },\n\n captureVideo: function (VideoBlobReady, Width, Height, FramesPerSecond, TotalFrames, Format) {\n this.capturingVideo = true;\n this._videoBlobReady = VideoBlobReady;\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.clearKeys(this._videoBlobQueue);\n this._videoQueueIndex = 0;\n this._emptyFrames.length = 0;\n this.dumpFrameParams = new _video_output_type_js__WEBPACK_IMPORTED_MODULE_25__.VideoOutputType(Width, Height, FramesPerSecond, Format, true);\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.frameDumping = true;\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.framesPerSecond = FramesPerSecond;\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.totalFrames = TotalFrames;\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.currentFrameNumber = 0;\n },\n\n // To preserve semantic backwards compatibility, this function must requeue itself\n // to be called again in a timeout.\n render: function () {\n var $this = this;\n\n this.renderOneFrame();\n setTimeout(function () {\n $this.render();\n }, 10);\n },\n\n renderOneFrame: function () {\n if (this.renderContext.get_backgroundImageset() != null) {\n this.renderType = this.renderContext.get_backgroundImageset().get_dataSetType();\n } else {\n this.renderType = 2;\n }\n var sizeChange = false;\n if (this.canvas.width !== this.canvas.parentNode.clientWidth) {\n this.canvas.width = this.canvas.parentNode.clientWidth;\n sizeChange = true;\n }\n if (this.canvas.height !== this.canvas.parentNode.clientHeight) {\n this.canvas.height = this.canvas.parentNode.clientHeight;\n sizeChange = true;\n }\n if (sizeChange && this.explorer != null) {\n this.explorer.refresh();\n }\n\n if (this.canvas.width < 1 || this.canvas.height < 1) {\n // This can happen during initialization if perhaps some\n // HTML/JavaScript interaction hasn't happened to set the canvas\n // size correctly. If we don't exit this function early, we get\n // NaNs in our transformation matrices that lead IsTileBigEnough\n // to say \"no\" for everything so that we spin out of control\n // downloading maximum-resolution DSS tiles for an enormous\n // viewport. That's bad!\n return;\n }\n\n if (sizeChange) {\n // In GL, the crosshairs are in viewport coordinates\n // ([0,1]x[0,1]), so a size change alters their perceived aspect\n // ratio.\n this._crossHairs = null;\n }\n\n _tile_js__WEBPACK_IMPORTED_MODULE_23__.Tile.lastDeepestLevel = _tile_js__WEBPACK_IMPORTED_MODULE_23__.Tile.deepestLevel;\n _render_triangle_js__WEBPACK_IMPORTED_MODULE_22__.RenderTriangle.width = this.renderContext.width = this.canvas.width;\n _render_triangle_js__WEBPACK_IMPORTED_MODULE_22__.RenderTriangle.height = this.renderContext.height = this.canvas.height;\n _tile_js__WEBPACK_IMPORTED_MODULE_23__.Tile.tilesInView = 0;\n _tile_js__WEBPACK_IMPORTED_MODULE_23__.Tile.tilesTouched = 0;\n _tile_js__WEBPACK_IMPORTED_MODULE_23__.Tile.deepestLevel = 0;\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.set_metaNow(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now());\n if (this.get__mover() != null) {\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.set_now(this.get__mover().get_currentDateTime());\n _planets_js__WEBPACK_IMPORTED_MODULE_19__.Planets.updatePlanetLocations(this.get_solarSystemMode());\n if (this.get__mover() != null) {\n var newCam = this.get__mover().get_currentPosition();\n this.renderContext.targetCamera = newCam.copy();\n this.renderContext.viewCamera = newCam.copy();\n if (this.renderContext.space && _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_galacticMode()) {\n var gPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.j2000toGalactic(newCam.get_RA() * 15, newCam.get_dec());\n this.renderContext.targetAlt = this.renderContext.alt = gPoint[1];\n this.renderContext.targetAz = this.renderContext.az = gPoint[0];\n }\n else if (this.renderContext.space && _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_localHorizonMode()) {\n var currentAltAz = _coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.equitorialToHorizon(_coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.fromRaDec(newCam.get_RA(), newCam.get_dec()), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.get_location(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.get_now());\n this.renderContext.targetAlt = this.renderContext.alt = currentAltAz.get_alt();\n this.renderContext.targetAz = this.renderContext.az = currentAltAz.get_az();\n }\n if (this.get__mover().get_complete()) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalScriptInterface._fireArrived(this.get__mover().get_currentPosition().get_RA(), this.get__mover().get_currentPosition().get_dec(), _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.viewCamera.zoom);\n this.set__mover(null);\n this._notifyMoveComplete();\n }\n }\n } else {\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.updateClock();\n _planets_js__WEBPACK_IMPORTED_MODULE_19__.Planets.updatePlanetLocations(this.get_solarSystemMode());\n this._updateViewParameters();\n }\n this.renderContext.clear();\n if (this.renderType === 4) {\n if (this._solarSystemTrack < 20) {\n var radius = _planets_js__WEBPACK_IMPORTED_MODULE_19__.Planets.getAdjustedPlanetRadius(this._solarSystemTrack);\n var distance = this.renderContext.get_solarSystemCameraDistance();\n var camAngle = this.renderContext.get_fovLocal();\n }\n if (this._trackingObject == null) {\n }\n this.renderContext.setupMatricesSolarSystem(true);\n var zoom = this.renderContext.viewCamera.zoom;\n var milkyWayBlend = Math.min(1, Math.max(0, (Math.log(zoom) - 8.4)) / 4.2);\n var milkyWayBlendIn = Math.min(1, Math.max(0, (Math.log(zoom) - 17.9)) / 2.3);\n var matOldMW = this.renderContext.get_world();\n var matLocalMW = this.renderContext.get_world().clone();\n matLocalMW._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_8__.Matrix3d._scaling(100000, 100000, 100000));\n matLocalMW._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_8__.Matrix3d._rotationX(23.5 / 180 * Math.PI));\n matLocalMW._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.translation(this.renderContext.cameraPosition));\n this.renderContext.set_world(matLocalMW);\n this.renderContext.set_worldBase(matLocalMW);\n this.renderContext.space = true;\n this.renderContext.makeFrustum();\n var lighting = this.renderContext.lighting;\n this.renderContext.lighting = false;\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_solarSystemMilkyWay()) {\n if (milkyWayBlend < 1) {\n if (this._milkyWayBackground == null) {\n this._milkyWayBackground = this.getImagesetByName('Digitized Sky Survey (Color)');\n }\n if (this._milkyWayBackground != null) {\n _render_triangle_js__WEBPACK_IMPORTED_MODULE_22__.RenderTriangle.cullInside = true;\n var c = (1 - milkyWayBlend) / 2;\n this.renderContext.drawImageSet(this._milkyWayBackground, c * 100);\n _render_triangle_js__WEBPACK_IMPORTED_MODULE_22__.RenderTriangle.cullInside = false;\n }\n }\n }\n this._drawSkyOverlays();\n this.renderContext.lighting = lighting;\n this.renderContext.space = false;\n this.renderContext.set_world(matOldMW);\n this.renderContext.set_worldBase(matOldMW);\n this.renderContext.makeFrustum();\n var oldCamera = this.renderContext.cameraPosition;\n var matOld = this.renderContext.get_world();\n var matLocal = this.renderContext.get_world();\n matLocal._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.translation(this.renderContext.viewCamera.viewTarget));\n this.renderContext.cameraPosition = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector3d.subtractVectors(this.renderContext.cameraPosition, this.renderContext.viewCamera.viewTarget);\n this.renderContext.set_world(matLocal);\n this.renderContext.makeFrustum();\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_solarSystemCosmos()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawCosmos3D(this.renderContext, 1);\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_solarSystemMilkyWay() && milkyWayBlendIn > 0) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawGalaxyImage(this.renderContext, milkyWayBlendIn);\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_solarSystemStars()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawStars3D(this.renderContext, 1);\n }\n matLocal = matOld;\n var pnt = this.renderContext.viewCamera.viewTarget;\n var vt = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector3d.create(-pnt.x, -pnt.y, -pnt.z);\n this.renderContext.cameraPosition = oldCamera;\n matLocal._multiply(_double3d_js__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.translation(vt));\n this.renderContext.set_world(matLocal);\n this.renderContext.makeFrustum();\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_29__.LayerManager._draw(this.renderContext, 1, true, 'Sky', true, false);\n this.renderContext.set_world(matOld);\n this.renderContext.makeFrustum();\n if (this.renderContext.get_solarSystemCameraDistance() < 15000) {\n this.renderContext.setupMatricesSolarSystem(false);\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_solarSystemMinorPlanets()) {\n _minor_planets_js__WEBPACK_IMPORTED_MODULE_17__.MinorPlanets.drawMPC3D(this.renderContext, 1, this.renderContext.viewCamera.viewTarget);\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_solarSystemPlanets()) {\n _planets_3d_js__WEBPACK_IMPORTED_MODULE_32__.Planets3d.drawPlanets3D(this.renderContext, 1, this.renderContext.viewCamera.viewTarget);\n }\n }\n } else {\n // RenderType is not SolarSystem\n if (!this.renderType || this.renderType === 1) {\n this.renderContext._setupMatricesLand3d();\n }\n else {\n this.renderContext.setupMatricesSpace3d(this.renderContext.width, this.renderContext.height);\n }\n this.renderContext.drawImageSet(this.renderContext.get_backgroundImageset(), 100);\n if (this.renderContext.get_foregroundImageset() != null) {\n if (this.renderContext.get_foregroundImageset().get_dataSetType() !== this.renderContext.get_backgroundImageset().get_dataSetType()) {\n this.renderContext.set_foregroundImageset(null);\n }\n else {\n if (this.renderContext.viewCamera.opacity !== 100 && this.renderContext.gl == null) {\n if (this._foregroundCanvas.width !== this.renderContext.width || this._foregroundCanvas.height !== this.renderContext.height) {\n this._foregroundCanvas.width = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(this.renderContext.width);\n this._foregroundCanvas.height = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(this.renderContext.height);\n }\n var saveDevice = this.renderContext.device;\n this._fgDevice.clearRect(0, 0, this.renderContext.width, this.renderContext.height);\n this.renderContext.device = this._fgDevice;\n this.renderContext.drawImageSet(this.renderContext.get_foregroundImageset(), 100);\n this.renderContext.device = saveDevice;\n this.renderContext.device.save();\n this.renderContext.device.globalAlpha = this.renderContext.viewCamera.opacity / 100;\n this.renderContext.device.drawImage(this._foregroundCanvas, 0, 0);\n this.renderContext.device.restore();\n }\n else {\n this.renderContext.drawImageSet(this.renderContext.get_foregroundImageset(), this.renderContext.viewCamera.opacity);\n }\n }\n }\n if (this.renderType === 2) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this.renderContext.get_catalogHipsImagesets());\n while ($enum1.moveNext()) {\n var imageset = $enum1.current;\n if (imageset.get_hipsProperties().get_catalogSpreadSheetLayer().enabled && imageset.get_hipsProperties().get_catalogSpreadSheetLayer().lastVersion === imageset.get_hipsProperties().get_catalogSpreadSheetLayer().get_version()) {\n this.renderContext.drawImageSet(imageset, 100);\n }\n }\n }\n if (this.renderType === 2 && _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showSolarSystem()) {\n _planets_js__WEBPACK_IMPORTED_MODULE_19__.Planets.drawPlanets(this.renderContext, 1);\n this.constellation = _constellations_js__WEBPACK_IMPORTED_MODULE_13__.Constellations.containment.findConstellationForPoint(this.renderContext.viewCamera.get_RA(), this.renderContext.viewCamera.get_dec());\n this._drawSkyOverlays();\n }\n if (this.get_planetLike() || this.get_space()) {\n if (!this.get_space()) {\n var angle = _coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.mstFromUTC2(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.get_now(), 0) / 180 * Math.PI;\n this.renderContext.set_worldBaseNonRotating(_double3d_js__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.multiplyMatrix(_double3d_js__WEBPACK_IMPORTED_MODULE_8__.Matrix3d._rotationY(angle), this.renderContext.get_worldBase()));\n if (this._targetBackgroundImageset != null) {\n this.renderContext.set_nominalRadius(this._targetBackgroundImageset.get_meanRadius());\n }\n }\n else {\n this.renderContext.set_worldBaseNonRotating(this.renderContext.get_world());\n if (this._targetBackgroundImageset != null) {\n this.renderContext.set_nominalRadius(this._targetBackgroundImageset.get_meanRadius());\n }\n }\n var referenceFrame = this.getCurrentReferenceFrame();\n _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_29__.LayerManager._draw(this.renderContext, 1, this.get_space(), referenceFrame, true, this.get_space());\n }\n }\n var worldSave = this.renderContext.get_world();\n var viewSave = this.renderContext.get_view();\n var projSave = this.renderContext.get_projection();\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_current().get_showCrosshairs()) {\n this._drawCrosshairs(this.renderContext);\n }\n if (this.uiController != null) {\n this.uiController.render(this.renderContext);\n } else {\n var index = 0;\n _annotation_js__WEBPACK_IMPORTED_MODULE_11__.Annotation.prepBatch(this.renderContext);\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(this._annotations);\n while ($enum2.moveNext()) {\n var item = $enum2.current;\n item.draw(this.renderContext);\n index++;\n }\n _annotation_js__WEBPACK_IMPORTED_MODULE_11__.Annotation.drawBatch(this.renderContext);\n if ((_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now() - this._lastMouseMove) > 400) {\n var raDecDown = this.getCoordinatesForScreenPoint(this._hoverTextPoint.x, this._hoverTextPoint.y);\n this._annotationHover(raDecDown.x, raDecDown.y, this._hoverTextPoint.x, this._hoverTextPoint.y);\n this._lastMouseMove = new Date(2100, 1, 1);\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this._hoverText)) {\n this._drawHoverText(this.renderContext);\n }\n }\n var tilesAllLoaded = !_tile_cache_js__WEBPACK_IMPORTED_MODULE_24__.TileCache.get_queueCount();\n this.renderContext.setupMatricesOverlays();\n this._fadeFrame();\n this._frameCount++;\n _tile_cache_js__WEBPACK_IMPORTED_MODULE_24__.TileCache.decimateQueue();\n _tile_cache_js__WEBPACK_IMPORTED_MODULE_24__.TileCache.processQueue(this.renderContext);\n _tile_js__WEBPACK_IMPORTED_MODULE_23__.Tile.currentRenderGeneration++;\n if (!_tours_tour_player_js__WEBPACK_IMPORTED_MODULE_28__.TourPlayer.get_playing()) {\n this.set_crossFadeFrame(false);\n }\n\n // Restore Matrices for Finder Scope and such to map points\n this.renderContext.set_world(worldSave);\n this.renderContext.set_view(viewSave);\n this.renderContext.set_projection(projSave);\n var now = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n var ms = now - this._lastUpdate;\n if (ms > 1000) {\n this._lastUpdate = now;\n this._frameCount = 0;\n _render_triangle_js__WEBPACK_IMPORTED_MODULE_22__.RenderTriangle.trianglesRendered = 0;\n _render_triangle_js__WEBPACK_IMPORTED_MODULE_22__.RenderTriangle.trianglesCulled = 0;\n }\n if (this.capturingVideo) {\n if ((this.dumpFrameParams != null) && (!this.dumpFrameParams.waitDownload || tilesAllLoaded)) {\n this.captureFrameForVideo(this._videoBlobReady, this.dumpFrameParams.width, this.dumpFrameParams.height, this.dumpFrameParams.format);\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.nextFrame();\n }\n if (_space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.get_doneDumping()) {\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.frameDumping = false;\n _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.cancelFrameDump = false;\n this.capturingVideo = false;\n }\n }\n },\n\n getCurrentReferenceFrame: function () {\n if (this.renderContext.get_backgroundImageset() == null) {\n return 'Sun';\n }\n if (!_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this.renderContext.get_backgroundImageset().get_referenceFrame())) {\n return this.renderContext.get_backgroundImageset().get_referenceFrame();\n }\n if (!this.renderContext.get_backgroundImageset().get_dataSetType()) {\n return 'Earth';\n }\n if (this.renderContext.get_backgroundImageset().get_name() === 'Visible Imagery' && this.renderContext.get_backgroundImageset().get_url().toLowerCase().indexOf('mars') > -1) {\n this.renderContext.get_backgroundImageset().set_referenceFrame('Mars');\n return this.renderContext.get_backgroundImageset().get_referenceFrame();\n }\n if (this.renderContext.get_backgroundImageset().get_dataSetType() === 1) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(WWTControl.solarSystemObjectsNames);\n while ($enum1.moveNext()) {\n var name = $enum1.current;\n if (this.renderContext.get_backgroundImageset().get_name().toLowerCase().indexOf(name.toLowerCase()) > -1) {\n this.renderContext.get_backgroundImageset().set_referenceFrame(name);\n return name;\n }\n }\n }\n if (this.renderContext.get_backgroundImageset().get_dataSetType() === 2) {\n return 'Sky';\n }\n return '';\n },\n\n get_planetLike: function () {\n if (this.renderContext.get_backgroundImageset() != null) {\n return !this.renderContext.get_backgroundImageset().get_dataSetType() || this.renderContext.get_backgroundImageset().get_dataSetType() === 1;\n } else {\n return true;\n }\n },\n\n get_space: function () {\n if (this.renderContext.get_backgroundImageset() != null) {\n return this.renderContext.get_backgroundImageset().get_dataSetType() === 2;\n } else {\n return true;\n }\n },\n\n _drawSkyOverlays: function () {\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showConstellationPictures() && !this.freestandingMode) {\n _constellations_js__WEBPACK_IMPORTED_MODULE_13__.Constellations.drawArtwork(this.renderContext);\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showConstellationFigures()) {\n if (WWTControl.constellationsFigures == null) {\n WWTControl.constellationsFigures = _constellations_js__WEBPACK_IMPORTED_MODULE_13__.Constellations.create(\n 'Constellations',\n _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__.URLHelpers.singleton.engineAssetUrl('figures.txt'),\n false, // \"boundry\"\n false, // \"noInterpollation\"\n false, // \"resource\"\n );\n }\n WWTControl.constellationsFigures.draw(this.renderContext, false, 'UMA', false);\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showEclipticGrid()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawEclipticGrid(this.renderContext, 1, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_eclipticGridColor());\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showEclipticGridText()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawEclipticGridText(this.renderContext, 1, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_eclipticGridColor());\n }\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showGalacticGrid()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawGalacticGrid(this.renderContext, 1, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_galacticGridColor());\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showGalacticGridText()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawGalacticGridText(this.renderContext, 1, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_galacticGridColor());\n }\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showAltAzGrid()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawAltAzGrid(this.renderContext, 1, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_altAzGridColor());\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showAltAzGridText()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawAltAzGridText(this.renderContext, 1, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_altAzGridColor());\n }\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showPrecessionChart()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawPrecessionChart(this.renderContext, 1, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_precessionChartColor());\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showEcliptic()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawEcliptic(this.renderContext, 1, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_eclipticColor());\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showEclipticOverviewText()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawEclipticText(this.renderContext, 1, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_eclipticColor());\n }\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showGrid()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawEquitorialGrid(this.renderContext, 1, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_equatorialGridColor());\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showEquatorialGridText()) {\n _grids_js__WEBPACK_IMPORTED_MODULE_15__.Grids.drawEquitorialGridText(this.renderContext, 1, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_equatorialGridColor());\n }\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showConstellationBoundries()) {\n if (WWTControl.constellationsBoundries == null) {\n WWTControl.constellationsBoundries = _constellations_js__WEBPACK_IMPORTED_MODULE_13__.Constellations.create(\n 'Constellations',\n _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__.URLHelpers.singleton.engineAssetUrl('constellations.txt'),\n true, // \"boundry\"\n false, // \"noInterpollation\"\n false, // \"resource\"\n );\n }\n WWTControl.constellationsBoundries.draw(this.renderContext, _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showConstellationSelection(), this.constellation, false);\n }\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_showConstellationLabels()) {\n _constellations_js__WEBPACK_IMPORTED_MODULE_13__.Constellations.drawConstellationNames(this.renderContext, 1, _color_js__WEBPACK_IMPORTED_MODULE_5__.Colors.get_yellow());\n }\n },\n\n _drawHoverText: function (RenderContext) {\n if (RenderContext.gl == null) {\n var ctx = RenderContext.device;\n ctx.save();\n ctx.fillStyle = 'White';\n ctx.font = '15px Arial';\n ctx.fillText(this._hoverText, this._hoverTextPoint.x, this._hoverTextPoint.y);\n ctx.restore();\n }\n },\n\n rAtoViewLng: function (ra) {\n return (((180 - (ra / 24 * 360) - 180) + 540) % 360) - 180;\n },\n\n _updateViewParameters: function () {\n if (this.renderContext.space && this._tracking && this._trackingObject != null) {\n if (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_galacticMode() && this.renderContext.space) {\n var gPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.j2000toGalactic(this._trackingObject.get_RA() * 15, this._trackingObject.get_dec());\n this.renderContext.targetAlt = this.renderContext.alt = gPoint[1];\n this.renderContext.targetAz = this.renderContext.az = gPoint[0];\n }\n else if (this.renderContext.space && _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_localHorizonMode()) {\n var currentAltAz = _coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.equitorialToHorizon(_coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.fromRaDec(this._trackingObject.get_RA(), this._trackingObject.get_dec()), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.get_location(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.get_now());\n this.renderContext.targetAlt = this.renderContext.alt = currentAltAz.get_alt();\n this.renderContext.targetAz = this.renderContext.az = currentAltAz.get_az();\n }\n else {\n this.renderContext.viewCamera.lng = this.renderContext.targetCamera.lng = this.rAtoViewLng(this._trackingObject.get_RA());\n this.renderContext.viewCamera.lat = this.renderContext.targetCamera.lat = this._trackingObject.get_dec();\n }\n } else if (!this.get_solarSystemMode()) {\n this._tracking = false;\n this._trackingObject = null;\n }\n var oneMinusDragCoefficient = 1 - 0.8;\n var dc = 0.8;\n if (!this._tracking) {\n var minDelta = (this.renderContext.viewCamera.zoom / 4000);\n if (this.renderContext.viewCamera.zoom > 360) {\n minDelta = (360 / 40000);\n }\n if (this.renderContext.space && (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_localHorizonMode() || _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_galacticMode())) {\n if ((((Math.abs(this.renderContext.targetAlt - this.renderContext.alt) >= minDelta) | (Math.abs(this.renderContext.targetAz - this.renderContext.az) >= minDelta)) === 1)) {\n this.renderContext.alt += (this.renderContext.targetAlt - this.renderContext.alt) / 10;\n if (Math.abs(this.renderContext.targetAz - this.renderContext.az) > 170) {\n if (this.renderContext.targetAz > this.renderContext.az) {\n this.renderContext.az += (this.renderContext.targetAz - (360 + this.renderContext.az)) / 10;\n }\n else {\n this.renderContext.az += ((360 + this.renderContext.targetAz) - this.renderContext.az) / 10;\n }\n }\n else {\n this.renderContext.az += (this.renderContext.targetAz - this.renderContext.az) / 10;\n }\n this.renderContext.az = ((this.renderContext.az + 720) % 360);\n }\n }\n else {\n if ((((Math.abs(this.renderContext.targetCamera.lat - this.renderContext.viewCamera.lat) >= minDelta) | (Math.abs(this.renderContext.targetCamera.lng - this.renderContext.viewCamera.lng) >= minDelta)) === 1)) {\n this.renderContext.viewCamera.lat += (this.renderContext.targetCamera.lat - this.renderContext.viewCamera.lat) / 10;\n if (Math.abs(this.renderContext.targetCamera.lng - this.renderContext.viewCamera.lng) > 170) {\n if (this.renderContext.targetCamera.lng > this.renderContext.viewCamera.lng) {\n this.renderContext.viewCamera.lng += (this.renderContext.targetCamera.lng - (360 + this.renderContext.viewCamera.lng)) / 10;\n }\n else {\n this.renderContext.viewCamera.lng += ((360 + this.renderContext.targetCamera.lng) - this.renderContext.viewCamera.lng) / 10;\n }\n }\n else {\n this.renderContext.viewCamera.lng += (this.renderContext.targetCamera.lng - this.renderContext.viewCamera.lng) / 10;\n }\n this.renderContext.viewCamera.lng = ((this.renderContext.viewCamera.lng + 720) % 360);\n }\n else {\n if (this.renderContext.viewCamera.lat !== this.renderContext.targetCamera.lat || this.renderContext.viewCamera.lng !== this.renderContext.targetCamera.lng) {\n this.renderContext.viewCamera.lat = this.renderContext.targetCamera.lat;\n this.renderContext.viewCamera.lng = this.renderContext.targetCamera.lng;\n }\n }\n }\n }\n this.renderContext.viewCamera.zoom = dc * this.renderContext.viewCamera.zoom + oneMinusDragCoefficient * this.renderContext.targetCamera.zoom;\n this.renderContext.viewCamera.rotation = dc * this.renderContext.viewCamera.rotation + oneMinusDragCoefficient * this.renderContext.targetCamera.rotation;\n this.renderContext.viewCamera.angle = dc * this.renderContext.viewCamera.angle + oneMinusDragCoefficient * this.renderContext.targetCamera.angle;\n },\n\n move: function (x, y) {\n // Emulate MoveView() in the Windows client -- rotate the x and y\n // offsets if the view is rotated. Our signs are the opposite of\n // the Windows client.\n\n var angle = Math.atan2(y, x);\n var distance = Math.sqrt(x * x + y * y);\n if (this.get_solarSystemMode() || this.get_planetLike()) {\n x = Math.cos(angle + this.renderContext.viewCamera.rotation) * distance;\n y = Math.sin(angle + this.renderContext.viewCamera.rotation) * distance;\n } else {\n x = Math.cos(angle - this.renderContext.viewCamera.rotation) * distance;\n y = Math.sin(angle - this.renderContext.viewCamera.rotation) * distance;\n }\n\n // Apply the rotated offsets. The following merges up GetPixelScale{X,Y}()\n // and MoveViewNative() of the Windows client.\n\n var scaleY = this.renderContext.get_fovScale() / 3600;\n if (this.renderContext.get_backgroundImageset().get_dataSetType() == _imageset_js__WEBPACK_IMPORTED_MODULE_16__.ImageSetType.solarSystem) {\n scaleY = 0.06;\n }\n var scaleX = scaleY / Math.max(0.2, Math.cos(this.renderContext.viewCamera.lat / 180 * Math.PI));\n if (!this.renderContext.get_backgroundImageset().get_dataSetType() || this.renderContext.get_backgroundImageset().get_dataSetType() === 1 || this.renderContext.get_backgroundImageset().get_dataSetType() == _imageset_js__WEBPACK_IMPORTED_MODULE_16__.ImageSetType.solarSystem) {\n scaleX *= 6.3; // XXX don't know where this magic number comes from\n scaleY *= 6.3;\n }\n if (this.renderContext.space && (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_galacticMode() || _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_localHorizonMode())) {\n x = (_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_localHorizonMode()) ? -x : x;\n this.renderContext.targetAz += x * scaleX;\n this.renderContext.targetAz = ((this.renderContext.targetAz + 720) % 360);\n this.renderContext.targetAlt += y * scaleY;\n if (this.renderContext.targetAlt > 90) {\n this.renderContext.targetAlt = 90;\n }\n if (this.renderContext.targetAlt < -90) {\n this.renderContext.targetAlt = -90;\n }\n } else {\n this.renderContext.targetCamera.lng -= x * scaleX;\n this.renderContext.targetCamera.lng = ((this.renderContext.targetCamera.lng + 720) % 360);\n this.renderContext.targetCamera.lat += y * scaleY;\n if (this.renderContext.targetCamera.lat > 90) {\n this.renderContext.targetCamera.lat = 90;\n }\n if (this.renderContext.targetCamera.lat < -90) {\n this.renderContext.targetCamera.lat = -90;\n }\n }\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_globalSettings().get_smoothPan()) {\n this.renderContext.viewCamera = this.renderContext.targetCamera.copy();\n }\n if (!!x && !!y) {\n this._tracking = false;\n this._trackingObject = null;\n }\n },\n\n zoom: function (factor) {\n this.renderContext.targetCamera.zoom *= factor;\n if (this.renderContext.targetCamera.zoom > this.get_zoomMax()) {\n this.renderContext.targetCamera.zoom = this.get_zoomMax();\n }\n if (this.renderContext.targetCamera.zoom < this.get_zoomMin()) {\n this.renderContext.targetCamera.zoom = this.get_zoomMin();\n }\n if (!_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_globalSettings().get_smoothPan()) {\n this.renderContext.viewCamera = this.renderContext.targetCamera.copy();\n }\n },\n\n roll: function (angle) {\n this.renderContext.targetCamera.rotation += angle;\n },\n\n // Gesture events\n\n onGestureStart: function (e) {\n this._mouseDown = false;\n this._beginZoom = this.renderContext.viewCamera.zoom;\n },\n\n onGestureChange: function (e) {\n var g = e;\n this._mouseDown = false;\n this.renderContext.targetCamera.zoom = this.renderContext.viewCamera.zoom = Math.min(360, this._beginZoom * (1 / g.scale));\n },\n\n onGestureEnd: function (e) {\n var g = e;\n this._mouseDown = false;\n },\n\n // Touch events\n\n onTouchStart: function (e) {\n var ev = e;\n ev.preventDefault();\n ev.stopPropagation();\n this._lastX = ev.targetTouches[0].pageX;\n this._lastY = ev.targetTouches[0].pageY;\n if (ev.targetTouches.length === 2) {\n this._hasTwoTouches = true;\n return;\n }\n if (this.uiController != null) {\n var ee = new WWTElementEvent(this._lastX, this._lastY);\n if (this.uiController.mouseDown(this, ee)) {\n this._mouseDown = false;\n this._dragging = false;\n return;\n }\n }\n this._mouseDown = true;\n },\n\n onTouchMove: function (e) {\n var ev = e;\n\n if (this._hasTwoTouches) {\n var t0 = ev.touches[0];\n var t1 = ev.touches[1];\n var newRect = new Array(2);\n newRect[0] = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(t0.pageX, t0.pageY);\n newRect[1] = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(t1.pageX, t1.pageY);\n\n if (!this._dragging && this._pinchingZoomRect[0] != null && this._pinchingZoomRect[1] != null) {\n var centerPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(this.renderContext.width / 2, this.renderContext.height / 2);\n var delta1 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.subtract(newRect[0], this._pinchingZoomRect[0]);\n var delta2 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.subtract(newRect[1], this._pinchingZoomRect[1]);\n var radialDirection1 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.subtract(this._pinchingZoomRect[0], centerPoint);\n var radialDirection2 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.subtract(this._pinchingZoomRect[1], centerPoint);\n radialDirection1.normalize();\n radialDirection2.normalize();\n var radialDot1 = delta1.x * radialDirection1.x + delta1.y * radialDirection1.y;\n var radialDot2 = delta2.x * radialDirection2.x + delta2.y * radialDirection2.y;\n var radialComponent1 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(radialDot1 * radialDirection1.x, radialDot1 * radialDirection1.y);\n var radialComponent2 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(radialDot2 * radialDirection2.x, radialDot2 * radialDirection2.y);\n var angularComponent1 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.subtract(delta1, radialComponent1);\n var angularComponent2 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.subtract(delta2, radialComponent2);\n var radialMagnitude = radialComponent1.get_length() + radialComponent2.get_length();\n var angularMagnitude = angularComponent1.get_length() + angularComponent2.get_length();\n\n if (radialMagnitude >= 0.5 * angularMagnitude && !this._rotating) {\n var oldDist = this.getDistance(this._pinchingZoomRect[0], this._pinchingZoomRect[1]);\n var newDist = this.getDistance(newRect[0], newRect[1]);\n var ratio = oldDist / newDist;\n this.zoom(ratio);\n this._zooming = true;\n } else if (!this._zooming) {\n var oldCenterDelta1 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.subtract(this._pinchingZoomRect[0], centerPoint);\n var oldCenterDelta2 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.subtract(this._pinchingZoomRect[1], centerPoint);\n var newCenterDelta1 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.subtract(newRect[0], centerPoint);\n var newCenterDelta2 = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.subtract(newRect[1], centerPoint);\n var cross1 = this.crossProductZ(oldCenterDelta1, newCenterDelta1);\n var cross2 = this.crossProductZ(oldCenterDelta2, newCenterDelta2);\n var angle1 = Math.asin(cross1 / (oldCenterDelta1.get_length() * newCenterDelta1.get_length()));\n var angle2 = Math.asin(cross2 / (oldCenterDelta2.get_length() * newCenterDelta2.get_length()));\n\n if (angle1 * angle2 >= 0) {\n var angle = angle1 + angle2;\n if (this.get_planetLike() || this.get_solarSystemMode()) {\n angle *= -1;\n }\n this.roll(angle);\n this._rotating = true;\n }\n }\n }\n\n this._pinchingZoomRect = newRect;\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n\n ev.preventDefault();\n ev.stopPropagation();\n\n if (this._mouseDown && !(this._rotating || this._zooming)) {\n var curX = ev.targetTouches[0].pageX - this._lastX;\n var curY = ev.targetTouches[0].pageY - this._lastY;\n this._dragging = this._dragging || (Math.sqrt(curX * curX + curY * curY) > this._dragThreshold);\n this.move(curX, curY);\n this._lastX = ev.targetTouches[0].pageX;\n this._lastY = ev.targetTouches[0].pageY;\n } else {\n //todo fix this to use syntheszed touch events.\n if (this.uiController != null) {\n if (this.uiController.mouseMove(this, e)) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n }\n }\n },\n\n onTouchEnd: function (e) {\n var ev = e;\n ev.preventDefault();\n ev.stopPropagation();\n this._pinchingZoomRect[0] = null;\n this._pinchingZoomRect[1] = null;\n if (this._hasTwoTouches) {\n if (ev.touches.length < 2) {\n this._hasTwoTouches = false;\n }\n return;\n }\n if (this.uiController != null) {\n var ee = new WWTElementEvent(this._lastX, this._lastY);\n if (this.uiController.mouseUp(this, ee)) {\n this._mouseDown = false;\n this._dragging = false;\n return;\n }\n }\n this._mouseDown = false;\n this._dragging = false;\n this._zooming = false;\n this._rotating = false;\n },\n\n // Pointer events\n\n onPointerDown: function (e) {\n var pe = e;\n var index = 0;\n var evt = arguments[0], cnv = arguments[0].target; if (cnv.setPointerCapture) { cnv.setPointerCapture(evt.pointerId); } else if (cnv.msSetPointerCapture) { cnv.msSetPointerCapture(evt.pointerId); }\n\n // Check for this pointer already being in the list because as of July\n // 2020, Chrome/Mac sometimes fails to deliver the pointerUp event.\n\n if (this._pointerIds[0] === pe.pointerId) {\n index = 0;\n } else if (this._pointerIds[1] === pe.pointerId) {\n index = 1;\n } else if (!this._pointerIds[0]) {\n index = 0;\n } else if (!this._pointerIds[1]) {\n index = 1;\n } else {\n return; // only attempt to track two pointers at once\n }\n this._pointerIds[index] = pe.pointerId;\n this._pinchingZoomRect[index] = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(e.offsetX, e.offsetY);\n },\n\n onPointerMove: function (e) {\n var pe = e;\n var index = 0;\n\n // Our pointerIds infrastructure is meant to track adjustments during a\n // pinch motion. However, as seen in Firefox circa v81 on Linux and\n // Android, in some cases the browser can just *lie* and swap pointerIds\n // for the two fingers during a pinch gesture, leading to catastrophic\n // failures. Therefore, ignore the pointerId information and infer which\n // location is being updated from whichever change is smaller.\n\n if (this._pointerIds[0] === pe.pointerId) {\n index = 0;\n } else if (this._pointerIds[1] === pe.pointerId) {\n index = 1;\n } else {\n return;\n }\n if (this._pinchingZoomRect[0] != null && this._pinchingZoomRect[1] != null) {\n var oldDist = this.getDistance(this._pinchingZoomRect[0], this._pinchingZoomRect[1]);\n var newRect = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(e.offsetX, e.offsetY);\n var newDist0 = this.getDistance(newRect, this._pinchingZoomRect[0]);\n var ratio0 = oldDist / newDist0;\n var abslog0 = Math.abs(Math.log(ratio0));\n if (!isFinite(abslog0)) {\n abslog0 = 1000;\n }\n var newDist1 = this.getDistance(newRect, this._pinchingZoomRect[1]);\n var ratio1 = oldDist / newDist1;\n var abslog1 = Math.abs(Math.log(ratio1));\n if (!isFinite(abslog1)) {\n abslog1 = 1000;\n }\n if (abslog1 < abslog0) {\n this._pinchingZoomRect[0] = newRect;\n this.zoom(ratio1);\n }\n else {\n this._pinchingZoomRect[1] = newRect;\n this.zoom(ratio0);\n }\n } else {\n // Before two fingers are available, just trust.\n this._pinchingZoomRect[index] = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(e.offsetX, e.offsetY);\n }\n\n // There doesn't seem to be a particular reason to call these\n // but there also doesn't seem to be a reason NOT to\n // and doing so hasn't caused any issues to this point\n e.stopPropagation();\n e.preventDefault();\n },\n\n // NOTE! As of July 2020, Chrome on Macs seems to sometimes fail to\n // deliver this event. So our pinch-detection code needs to be robust to\n // that.\n onPointerUp: function (e) {\n var pe = e;\n\n // The -2 here is intended to indicate \"no pointer ID\"\n // with the hope being that no browser will use this value.\n // Note that -1 is reserved by the W3 spec for\n // \"events generated by something other than a pointing device\"\n // which is why we don't use -1\n // (https://www.w3.org/TR/pointerevents3/#pointerevent-interface)\n\n if (this._pointerIds[0] === pe.pointerId) {\n this._pointerIds[0] = -2;\n this._pinchingZoomRect[0] = null;\n }\n\n if (this._pointerIds[1] === pe.pointerId) {\n this._pointerIds[1] = -2;\n this._pinchingZoomRect[1] = null;\n }\n },\n\n // Mouse events\n\n onMouseDown: function (e) {\n document.addEventListener('mousemove', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseMove', this), false);\n document.addEventListener('mouseup', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseUp', this), false);\n if (this.uiController != null) {\n if (this.uiController.mouseDown(this, e)) {\n return;\n }\n }\n this._mouseDown = true;\n this._lastX = _util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetX(this.canvas, e);\n this._lastY = _util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetY(this.canvas, e);\n },\n\n onMouseMove: function (e) {\n this._lastMouseMove = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n this._hoverTextPoint = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(_util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetX(this.canvas, e), _util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetY(this.canvas, e));\n this._hoverText = '';\n if (this._mouseDown) {\n e.preventDefault();\n e.stopPropagation();\n this._moved = true;\n if (e.ctrlKey) {\n this._tilt(_util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetX(this.canvas, e) - this._lastX, _util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetY(this.canvas, e) - this._lastY);\n }\n else {\n this.move(_util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetX(this.canvas, e) - this._lastX, _util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetY(this.canvas, e) - this._lastY);\n }\n this._lastX = _util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetX(this.canvas, e);\n this._lastY = _util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetY(this.canvas, e);\n } else {\n if (this.uiController != null) {\n if (this.uiController.mouseMove(this, e)) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n }\n }\n },\n\n onMouseUp: function (e) {\n document.removeEventListener('mousemove', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseMove', this), false);\n document.removeEventListener('mouseup', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseUp', this), false);\n if (this.uiController != null) {\n if (this.uiController.mouseUp(this, e)) {\n this._mouseDown = false;\n e.preventDefault();\n return;\n }\n }\n if (this._mouseDown && !this._moved) {\n var raDecDown = this.getCoordinatesForScreenPoint(_util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetX(this.canvas, e), _util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetY(this.canvas, e));\n if (!this._annotationclicked(raDecDown.x, raDecDown.y, _util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetX(this.canvas, e), _util_js__WEBPACK_IMPORTED_MODULE_7__.Mouse.offsetY(this.canvas, e))) {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalScriptInterface._fireClick(raDecDown.x, raDecDown.y);\n }\n }\n this._mouseDown = false;\n this._moved = false;\n },\n\n // WheelEvent is a WWT-specific name that we use to abstract across the\n // different wheel-motion events that browsers provide: \"wheel\",\n // \"mousewheel\", \"DOMMouseScroll\".\n onMouseWheel: function (e) {\n var ev = e;\n var delta;\n if (!!ev.deltaY) {\n delta = -ev.deltaY;\n } else if (!!ev.detail) {\n delta = ev.detail * -1;\n } else {\n delta = ev.wheelDelta;\n }\n if (delta > 0) {\n this.zoom(0.9);\n } else {\n this.zoom(1.1);\n }\n e.stopPropagation();\n e.preventDefault();\n },\n\n onDoubleClick: function (e) {\n WWTControl.showDataLayers = true;\n },\n\n onKeyDown: function (e) {\n if (this.uiController != null) {\n this.uiController.keyDown(this, e);\n }\n },\n\n getDistance: function (a, b) {\n var x;\n var y;\n x = a.x - b.x;\n y = a.y - b.y;\n return Math.sqrt(x * x + y * y);\n },\n\n crossProductZ: function (a, b) {\n return a.x * b.y - a.y * b.x;\n },\n\n onContextMenu: function (e) {\n e.preventDefault();\n e.stopPropagation();\n },\n\n _tilt: function (x, y) {\n this.renderContext.targetCamera.rotation += x * 0.001;\n this.renderContext.targetCamera.angle += y * 0.001;\n if (this.renderContext.targetCamera.angle < -1.52) {\n this.renderContext.targetCamera.angle = -1.52;\n }\n if (this.renderContext.targetCamera.angle > 0) {\n this.renderContext.targetCamera.angle = 0;\n }\n },\n\n getCoordinatesForScreenPoint: function (x, y) {\n var pt = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(x, y);\n var PickRayDir = this.transformPickPointToWorldSpace(pt, this.renderContext.width, this.renderContext.height);\n return _coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.cartesianToSphericalSky(PickRayDir);\n },\n\n transformPickPointToWorldSpace: function (ptCursor, backBufferWidth, backBufferHeight) {\n var vPickRayDir = new _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector3d();\n\n // It is possible for this function to be called before the RenderContext is\n // set up, in which case the Projection is null. In that case we'll leave the\n // vector at its 0,0,0 default.\n\n if (this.renderContext.get_projection() != null) {\n\n // We start with an (x, y) point in screen space\n // This next block converts its to a point [vx, vy, 1] where vx, vy are in [-1, 1]\n // i.e. clip space\n // We're also accounting for the fact that pixel coordinates run down the screen,\n // but clip space goes upwards (like we're used to for y).\n // We also take projection scaling into account here.\n var v = new _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector3d();\n v.x = (((2 * ptCursor.x) / backBufferWidth) - 1) / this.renderContext.get_projection().get_m11();\n v.y = -(((2 * ptCursor.y) / backBufferHeight) - 1) / this.renderContext.get_projection().get_m22();\n v.z = 1;\n\n var m = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.multiplyMatrix(this.renderContext.get_world(), this.renderContext.get_view());\n m.invert();\n\n // Transform the screen space pick ray into 3D space\n // The last column (offsets) should be zero, which is why we've been able to ignore w\n vPickRayDir.x = v.x * m.get_m11() + v.y * m.get_m21() + v.z * m.get_m31();\n vPickRayDir.y = v.x * m.get_m12() + v.y * m.get_m22() + v.z * m.get_m32();\n vPickRayDir.z = v.x * m.get_m13() + v.y * m.get_m23() + v.z * m.get_m33();\n vPickRayDir.normalize();\n }\n return vPickRayDir;\n },\n\n transformWorldPointToPickSpace: function (worldPoint, backBufferWidth, backBufferHeight) {\n var m = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Matrix3d.multiplyMatrix(this.renderContext.get_world(), this.renderContext.get_view());\n var p = new _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d();\n var vz = worldPoint.x * m.get_m13() + worldPoint.y * m.get_m23() + worldPoint.z * m.get_m33();\n var vx = (worldPoint.x * m.get_m11() + worldPoint.y * m.get_m21() + worldPoint.z * m.get_m31()) / vz;\n var vy = -(worldPoint.x * m.get_m12() + worldPoint.y * m.get_m22() + worldPoint.z * m.get_m32()) / vz;\n p.x = Math.round((1 + this.renderContext.get_projection().get_m11() * vx) * (backBufferWidth / 2));\n p.y = Math.round((1 + this.renderContext.get_projection().get_m22() * vy) * (backBufferHeight / 2));\n return p;\n },\n\n getScreenPointForCoordinates: function (ra, dec) {\n var pt = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector2d.create(ra, dec);\n var cartesian = _coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.sphericalSkyToCartesian(pt);\n var result = this.transformWorldPointToPickSpace(cartesian, this.renderContext.width, this.renderContext.height);\n return result;\n },\n\n // Note that due to limitations of ScriptSharp, this method was public even\n // though it should really have been private.\n setup: function (canvas, startLat, startLng, startZoom) {\n var $this = this;\n\n window.addEventListener('contextmenu', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onContextMenu', this), false);\n document.body.addEventListener('keydown', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onKeyDown', this), false);\n canvas.addEventListener('dblclick', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onDoubleClick', this), false);\n canvas.addEventListener('mousedown', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseDown', this), false);\n canvas.addEventListener('wheel', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseWheel', this), false);\n canvas.addEventListener('mousewheel', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseWheel', this), false);\n canvas.addEventListener('DOMMouseScroll', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onMouseWheel', this), false); // old Firefox\n canvas.addEventListener('touchstart', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onTouchStart', this), false);\n canvas.addEventListener('touchmove', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onTouchMove', this), false);\n canvas.addEventListener('touchend', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onTouchEnd', this), false);\n canvas.addEventListener('gesturechange', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onGestureChange', this), false);\n canvas.addEventListener('gesturestart', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onGestureStart', this), false);\n canvas.addEventListener('gestureend', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onGestureEnd', this), false);\n canvas.addEventListener('pointerdown', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onPointerDown', this), false);\n canvas.addEventListener('pointermove', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onPointerMove', this), false);\n canvas.addEventListener('pointerup', _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('onPointerUp', this), false);\n this.renderContext.viewCamera.lat = startLat;\n this.renderContext.viewCamera.lng = startLng;\n this.renderContext.viewCamera.zoom = startZoom;\n this.renderContext.targetCamera = this.renderContext.viewCamera.copy();\n if (this.renderContext.gl == null) {\n this._foregroundCanvas = document.createElement('canvas');\n this._foregroundCanvas.width = canvas.width;\n this._foregroundCanvas.height = canvas.height;\n this._fgDevice = this._foregroundCanvas.getContext('2d');\n }\n if (this.freestandingMode) {\n setTimeout(function () {\n $this._setupComplete();\n }, 0);\n } else {\n // To line up with Windows client history, this uses `X=` when `W=`\n // would be more appropriate.\n (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_3__.loadWtmlFile)(_url_helpers_js__WEBPACK_IMPORTED_MODULE_6__.URLHelpers.singleton.coreDynamicUrl('wwtweb/catalog.aspx?X=ImageSets6'), _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_setupComplete', this), true);\n }\n },\n\n _setupComplete: function () {\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalScriptInterface._fireReady();\n },\n\n gotoRADecZoom: function (ra, dec, zoom, instant, roll) {\n this._tracking = false;\n this._trackingObject = null;\n this.gotoTargetFull(\n false, // noZoom\n instant,\n this._cameraParametersFromRADecZoom(ra, dec, zoom, roll),\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.get_foregroundImageset(),\n _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.get_backgroundImageset()\n );\n },\n\n _cameraParametersFromRADecZoom: function (ra, dec, zoom, roll) {\n while (ra > 24) {\n ra -= 24;\n }\n while (ra < 0) {\n ra += 24;\n }\n dec = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.DoubleUtilities.clamp(dec, -90, 90);\n zoom = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.DoubleUtilities.clamp(zoom, this.get_zoomMin(), this.get_zoomMax());\n var rotation = (roll == null) ? _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.viewCamera.rotation : roll;\n var cameraParams = _camera_parameters_js__WEBPACK_IMPORTED_MODULE_12__.CameraParameters.create(dec, _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.rAtoViewLng(ra), zoom, rotation, _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.viewCamera.angle, _render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.viewCamera.opacity);\n return cameraParams;\n },\n\n timeToRADecZoom: function (ra, dec, zoom, roll) {\n var cameraParams = this._cameraParametersFromRADecZoom(ra, dec, zoom, roll);\n return this.timeToTargetFull(cameraParams, false);\n },\n\n get_solarSystemMode: function () {\n if (this.renderContext.get_backgroundImageset() == null) {\n return false;\n }\n return this.renderContext.get_backgroundImageset().get_dataSetType() == _imageset_js__WEBPACK_IMPORTED_MODULE_16__.ImageSetType.solarSystem;\n },\n\n gotoTarget: function (place, noZoom, instant, trackObject) {\n if (place == null) {\n return;\n }\n if ((trackObject && this.get_solarSystemMode())) {\n if ((place.get_classification() === 536870912 && place.get_type() !== 4) || (place.get_classification() === 1) || (place.get_classification() === 1048576) && place.get_distance() > 0) {\n var target = 65536;\n if (place.get_classification() === 1 || place.get_classification() === 1048576) {\n target = 20;\n }\n else {\n try {\n if (place.get_target() !== 65536) {\n target = place.get_target();\n }\n else {\n target = _planets_js__WEBPACK_IMPORTED_MODULE_19__.Planets.getPlanetIDFromName(place.get_name());\n }\n }\n catch ($e1) {\n }\n }\n if (target !== 65536) {\n this._trackingObject = place;\n if (target === this._solarSystemTrack && !(place.get_classification() === 1 || place.get_classification() === 1048576)) {\n this.gotoTarget3(place.get_camParams(), noZoom, instant);\n return;\n }\n var jumpTime = 4;\n if (target === 20) {\n jumpTime = 17;\n }\n else {\n jumpTime += 13 * (101 - _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_solarSystemScale()) / 100;\n }\n if (instant) {\n jumpTime = 1;\n }\n var camTo = this.renderContext.viewCamera.copy();\n camTo.targetReferenceFrame = '';\n camTo.target = target;\n var zoom = 10;\n if (target === 20) {\n if (place.get_classification() === _place_js__WEBPACK_IMPORTED_MODULE_18__.Classification.galaxy) {\n zoom = 1404946007758;\n }\n else {\n zoom = 63239.6717 * 100;\n }\n\n // Star or something outside of SS\n var vect = _coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.raDecTo3dAu(place.get_RA(), place.get_dec(), place.get_distance());\n var ecliptic = _coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.meanObliquityOfEcliptic(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.get_jNow()) / 180 * Math.PI;\n vect.rotateX(ecliptic);\n camTo.viewTarget = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector3d.negate(camTo.viewTarget);\n }\n else {\n camTo.viewTarget = _planets_js__WEBPACK_IMPORTED_MODULE_19__.Planets.getPlanet3dLocationJD(target, _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.getJNowForFutureTime(jumpTime));\n switch (target) {\n case 0:\n zoom = 0.6;\n break;\n case 1:\n zoom = 0.0004;\n break;\n case 2:\n zoom = 0.0004;\n break;\n case 3:\n zoom = 0.0004;\n break;\n case 4:\n zoom = 0.007;\n break;\n case 5:\n zoom = 0.007;\n break;\n case 6:\n zoom = 0.004;\n break;\n case 7:\n zoom = 0.004;\n break;\n case 8:\n zoom = 0.0004;\n break;\n case 9:\n zoom = 0.0004;\n break;\n case 10:\n zoom = 0.0004;\n break;\n case 11:\n zoom = 0.0004;\n break;\n case 12:\n zoom = 0.0004;\n break;\n case 13:\n zoom = 0.0004;\n break;\n case 19:\n zoom = 0.0004;\n break;\n case 20:\n zoom = 10;\n break;\n default:\n break;\n }\n zoom = zoom * _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_solarSystemScale();\n }\n var fromParams = this.renderContext.viewCamera.copy();\n if (this._solarSystemTrack === 20 && !_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.emptyString(this.renderContext.get_trackingFrame())) {\n fromParams = this.renderContext.customTrackingParams;\n this.renderContext.set_trackingFrame('');\n }\n camTo.zoom = zoom;\n var toVector = camTo.viewTarget;\n toVector.subtract(fromParams.viewTarget);\n if (place.get_classification() === 1) {\n toVector = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector3d.negate(toVector);\n }\n if (!!toVector.length()) {\n var raDec = toVector.toRaDec();\n if (target === 20) {\n camTo.lat = -raDec.y;\n }\n else {\n camTo.lat = raDec.y;\n }\n camTo.lng = raDec.x * 15 - 90;\n }\n else {\n camTo.lat = this.renderContext.viewCamera.lat;\n camTo.lng = this.renderContext.viewCamera.lng;\n }\n if (target !== _camera_parameters_js__WEBPACK_IMPORTED_MODULE_12__.SolarSystemObjects.custom) {\n // replace with planet surface\n camTo.viewTarget = _planets_js__WEBPACK_IMPORTED_MODULE_19__.Planets.getPlanetTargetPoint(target, camTo.lat, camTo.lng, _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.getJNowForFutureTime(jumpTime));\n }\n var solarMover = new _view_mover_js__WEBPACK_IMPORTED_MODULE_27__.ViewMoverKenBurnsStyle(fromParams, camTo, jumpTime, _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.get_now(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.getTimeForFutureTime(jumpTime), 3);\n solarMover.fastDirectionMove = true;\n this.set__mover(solarMover);\n return;\n }\n }\n }\n this._tracking = false;\n this._trackingObject = null;\n var camParams = place.get_camParams().copy();\n if (this.renderContext.get_backgroundImageset() != null && place.get_type() !== this.renderContext.get_backgroundImageset().get_dataSetType()) {\n this.renderContext.targetCamera = place.get_camParams().copy();\n this.renderContext.viewCamera = this.renderContext.targetCamera.copy();\n this.renderContext.set_backgroundImageset(this.getDefaultImageset(place.get_type(), 3));\n instant = true;\n } else if (this.get_solarSystemMode() && place.get_target() !== this._solarSystemTrack) {\n this.renderContext.targetCamera = place.get_camParams().copy();\n this.renderContext.viewCamera = this.renderContext.targetCamera.copy();\n this._solarSystemTrack = place.get_target();\n instant = true;\n }\n if (place.get_classification() === 128) {\n camParams.zoom = this.get_zoomMax();\n this.gotoTargetFull(false, instant, camParams, null, null);\n } else {\n this._solarSystemTrack = place.get_target();\n this.gotoTargetFull(noZoom, instant, camParams, place.get_studyImageset(), place.get_backgroundImageset());\n if (trackObject) {\n this._tracking = true;\n this._trackingObject = place;\n }\n }\n },\n\n gotoTarget3: function (camParams, noZoom, instant) {\n this._tracking = false;\n this._trackingObject = null;\n this.gotoTargetFull(noZoom, instant, camParams, this.renderContext.get_foregroundImageset(), this.renderContext.get_backgroundImageset());\n },\n\n _tooCloseForSlewMove: function (cameraParams) {\n return Math.abs(this.renderContext.viewCamera.lat - cameraParams.lat) < 1E-12 && Math.abs(this.renderContext.viewCamera.lng - cameraParams.lng) < 1E-12 && Math.abs(this.renderContext.viewCamera.zoom - cameraParams.zoom) < 1E-12 && Math.abs(this.renderContext.viewCamera.rotation - cameraParams.rotation) < 1E-12;\n },\n\n gotoTargetFull: function (noZoom, instant, cameraParams, studyImageSet, backgroundImageSet) {\n this._tracking = false;\n this._trackingObject = null;\n this._targetStudyImageset = studyImageSet;\n this._targetBackgroundImageset = backgroundImageSet;\n if (noZoom) {\n cameraParams.zoom = this.renderContext.viewCamera.zoom;\n cameraParams.angle = this.renderContext.viewCamera.angle;\n cameraParams.rotation = this.renderContext.viewCamera.rotation;\n } else {\n if (cameraParams.zoom === -1 || !cameraParams.zoom) {\n if (this.renderContext.space) {\n cameraParams.zoom = 1.40625;\n }\n else {\n cameraParams.zoom = 0.09;\n }\n }\n }\n if (instant || this._tooCloseForSlewMove(cameraParams)) {\n this.set__mover(null);\n this.renderContext.targetCamera = cameraParams.copy();\n this.renderContext.viewCamera = this.renderContext.targetCamera.copy();\n if (this.renderContext.space && _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_galacticMode()) {\n var gPoint = _coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.j2000toGalactic(this.renderContext.viewCamera.get_RA() * 15, this.renderContext.viewCamera.get_dec());\n this.renderContext.targetAlt = this.renderContext.alt = gPoint[1];\n this.renderContext.targetAz = this.renderContext.az = gPoint[0];\n }\n else if (this.renderContext.space && _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_active().get_localHorizonMode()) {\n var currentAltAz = _coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.equitorialToHorizon(_coordinates_js__WEBPACK_IMPORTED_MODULE_14__.Coordinates.fromRaDec(this.renderContext.viewCamera.get_RA(), this.renderContext.viewCamera.get_dec()), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.get_location(), _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.get_now());\n this.renderContext.targetAlt = this.renderContext.alt = currentAltAz.get_alt();\n this.renderContext.targetAz = this.renderContext.az = currentAltAz.get_az();\n }\n this._mover_Midpoint();\n } else {\n this.set__mover(_view_mover_js__WEBPACK_IMPORTED_MODULE_27__.ViewMoverSlew.create(this.renderContext.viewCamera, cameraParams));\n this.get__mover().set_midpoint(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.bind('_mover_Midpoint', this));\n }\n },\n\n _slewTimeBetweenTargets: function (from, to) {\n var mover = _view_mover_js__WEBPACK_IMPORTED_MODULE_27__.ViewMoverSlew.create(from, to);\n return mover.get_moveTime();\n },\n\n timeToTargetFull: function (cameraParams, noZoom) {\n if (noZoom) {\n cameraParams.zoom = this.renderContext.viewCamera.zoom;\n cameraParams.angle = this.renderContext.viewCamera.angle;\n cameraParams.rotation = this.renderContext.viewCamera.rotation;\n }\n if (this._tooCloseForSlewMove(cameraParams)) {\n return 0;\n }\n return this._slewTimeBetweenTargets(_render_globals_js__WEBPACK_IMPORTED_MODULE_2__.globalRenderContext.viewCamera, cameraParams);\n },\n\n _freezeView: function () {\n this.renderContext.viewCamera = this.renderContext.targetCamera.copy();\n this.set__mover(null);\n },\n\n get__mover: function () {\n return this.renderContext.viewMover;\n },\n\n set__mover: function (value) {\n this.renderContext.viewMover = value;\n return value;\n },\n\n fadeInImageSet: function (newImageSet) {\n if (this.renderContext.get_backgroundImageset() != null && newImageSet.get_dataSetType() !== this.renderContext.get_backgroundImageset().get_dataSetType()) {\n _tile_cache_js__WEBPACK_IMPORTED_MODULE_24__.TileCache.purgeQueue();\n _tile_cache_js__WEBPACK_IMPORTED_MODULE_24__.TileCache.clearCache();\n }\n this.renderContext.set_backgroundImageset(newImageSet);\n },\n\n _mover_Midpoint: function () {\n if ((this._targetStudyImageset != null && this.renderContext.get_foregroundImageset() == null) || (this.renderContext.get_foregroundImageset() != null && !this.renderContext.get_foregroundImageset().equals(this._targetStudyImageset))) {\n this.renderContext.set_foregroundImageset(this._targetStudyImageset);\n }\n if (this.renderContext.get_backgroundImageset() != null && (this._targetBackgroundImageset != null && !this.renderContext.get_backgroundImageset().equals(this._targetBackgroundImageset))) {\n if (this._targetBackgroundImageset != null && this._targetBackgroundImageset.get_generic()) {\n this.fadeInImageSet(this._getRealImagesetFromGeneric(this._targetBackgroundImageset));\n }\n else {\n this.fadeInImageSet(this._targetBackgroundImageset);\n }\n }\n },\n\n getDefaultImageset: function (imageSetType, bandPass) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(WWTControl.imageSets);\n while ($enum1.moveNext()) {\n var imageset = $enum1.current;\n if (imageset.get_defaultSet() && imageset.get_bandPass() === bandPass && imageset.get_dataSetType() === imageSetType) {\n return imageset;\n }\n }\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(WWTControl.imageSets);\n while ($enum2.moveNext()) {\n var imageset = $enum2.current;\n if (imageset.get_bandPass() === bandPass && imageset.get_dataSetType() === imageSetType) {\n return imageset;\n }\n }\n var $enum3 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(WWTControl.imageSets);\n while ($enum3.moveNext()) {\n var imageset = $enum3.current;\n if (imageset.get_dataSetType() === imageSetType) {\n return imageset;\n }\n }\n return WWTControl.imageSets[0];\n },\n\n _getRealImagesetFromGeneric: function (generic) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(WWTControl.imageSets);\n while ($enum1.moveNext()) {\n var imageset = $enum1.current;\n if (imageset.get_defaultSet() && imageset.get_bandPass() === generic.get_bandPass() && imageset.get_dataSetType() === generic.get_dataSetType()) {\n return imageset;\n }\n }\n var $enum2 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(WWTControl.imageSets);\n while ($enum2.moveNext()) {\n var imageset = $enum2.current;\n if (imageset.get_bandPass() === generic.get_bandPass() && imageset.get_dataSetType() === generic.get_dataSetType()) {\n return imageset;\n }\n }\n return WWTControl.imageSets[0];\n },\n\n _hideUI: function (p) { },\n\n createTour: function (name) {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this.uiController, _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_28__.TourPlayer)) {\n var player = this.uiController;\n player.stop(false);\n }\n this.tour = new _tours_tour_document_js__WEBPACK_IMPORTED_MODULE_30__.TourDocument();\n this.tour.set_title(name);\n this.setupTour();\n this.tour.set_editMode(true);\n return this.tour;\n },\n\n setupTour: function () {\n this.tourEdit = new _tours_tour_edit_js__WEBPACK_IMPORTED_MODULE_31__.TourEditTab();\n this.tourEdit.set_tour(this.tour);\n this.tour.set_currentTourstopIndex(0);\n this.tour.set_editMode(false);\n this.uiController = this.tourEdit.tourEditorUI;\n },\n\n loadTour: function (url) {\n var $this = this;\n\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this.uiController, _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_28__.TourPlayer)) {\n var player = this.uiController;\n player.stop(false);\n }\n this.tour = _tours_tour_document_js__WEBPACK_IMPORTED_MODULE_30__.TourDocument.fromUrl(url, function () {\n $this.setupTour();\n var player = new _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_28__.TourPlayer();\n player.set_tour($this.tour);\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalWWTControl.uiController = player;\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalScriptInterface._fireTourReady();\n });\n },\n\n playTour: function (url) {\n var $this = this;\n\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this.uiController, _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_28__.TourPlayer)) {\n var player = this.uiController;\n player.stop(false);\n }\n this.tour = _tours_tour_document_js__WEBPACK_IMPORTED_MODULE_30__.TourDocument.fromUrl(url, function () {\n $this.setupTour();\n $this.tourEdit.playNow(true); // fromStart\n _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalScriptInterface._fireTourReady();\n });\n },\n\n playCurrentTour: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this.uiController, _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_28__.TourPlayer)) {\n var player = this.uiController;\n player.play();\n }\n },\n\n pauseCurrentTour: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this.uiController, _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_28__.TourPlayer)) {\n var player = this.uiController;\n player.pauseTour();\n }\n },\n\n stopCurrentTour: function () {\n if (_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.canCast(this.uiController, _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_28__.TourPlayer)) {\n var player = this.uiController;\n player.stop(false);\n }\n },\n\n _closeTour: function () { },\n\n getImagesetByName: function (name) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(WWTControl.imageSets);\n while ($enum1.moveNext()) {\n var imageset = $enum1.current;\n if (imageset.get_name().toLowerCase().indexOf(name.toLowerCase()) > -1) {\n return imageset;\n }\n }\n return null;\n },\n\n getImageSetByUrl: function (url) {\n var $enum1 = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.enumerate(WWTControl.imageSets);\n while ($enum1.moveNext()) {\n var imageset = $enum1.current;\n if (imageset.get_url() === url) {\n return imageset;\n }\n }\n return null;\n },\n\n setBackgroundImageByName: function (name) {\n var newBackground = this.getImagesetByName(name);\n if (newBackground != null) {\n this.renderContext.set_backgroundImageset(newBackground);\n }\n },\n\n setForegroundImageByName: function (name) {\n var newForeground = this.getImagesetByName(name);\n if (newForeground != null) {\n this.renderContext.set_foregroundImageset(newForeground);\n }\n },\n\n addCatalogHips: function (catalogHips) {\n this.renderContext.addCatalogHips(catalogHips, null);\n },\n\n addCatalogHipsByName: function (name) {\n this.addCatalogHipsByNameWithCallback(name, null);\n },\n\n addCatalogHipsByNameWithCallback: function (name, onLoad) {\n var catalogHips = this.getImagesetByName(name);\n if (catalogHips != null) {\n this.renderContext.addCatalogHips(catalogHips, onLoad);\n }\n },\n\n removeCatalogHipsByName: function (name) {\n var catalogHips = this.getImagesetByName(name);\n if (catalogHips != null) {\n this.renderContext.removeCatalogHips(catalogHips);\n }\n },\n\n getCatalogHipsByName: function (name) {\n return this.renderContext.getCatalogHipsByName(name);\n },\n\n getCatalogHipsDataInView: function (name, limit, onComplete) {\n var catalogHips = this.getImagesetByName(name);\n if (catalogHips != null) {\n this.renderContext.getCatalogHipsDataInView(catalogHips, limit, onComplete);\n }\n },\n\n setCutsForFits: function (imagesetName, min, max) {\n var imageset = this.getImagesetByName(imagesetName);\n if (imageset != null && imageset.get_fitsProperties() != null) {\n imageset.get_fitsProperties().lowerCut = min;\n imageset.get_fitsProperties().upperCut = max;\n } else {\n console.log(imagesetName + ' not found');\n }\n },\n\n setColorMapForFits: function (imagesetName, colorMapName) {\n var imageset = this.getImagesetByName(imagesetName);\n if (imageset != null && imageset.get_fitsProperties() != null) {\n imageset.get_fitsProperties().colorMapName = colorMapName;\n } else {\n console.log(imagesetName + ' not found');\n }\n },\n\n setScaleTypeForFits: function (imagesetName, scaleType) {\n var imageset = this.getImagesetByName(imagesetName);\n if (imageset != null && imageset.get_fitsProperties() != null) {\n imageset.get_fitsProperties().scaleType = scaleType;\n } else {\n console.log(imagesetName + ' not found');\n }\n },\n\n _drawCrosshairs: function (context) {\n if (context.gl == null) {\n var ctx = context.device;\n ctx.save();\n ctx.beginPath();\n ctx.strokeStyle = _settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_current().get_crosshairsColor();\n ctx.lineWidth = 2;\n var x = context.width / 2, y = context.height / 2;\n var halfLength = 5;\n ctx.moveTo(x, y + halfLength);\n ctx.lineTo(x, y - halfLength);\n ctx.moveTo(x + halfLength, y);\n ctx.lineTo(x - halfLength, y);\n ctx.stroke();\n ctx.restore();\n } else {\n if (this._crossHairs == null) {\n // These coordinates are in clip space where the shape of the\n // viewport is 1x1, so to get the crosshairs to appear square on\n // the screen we have to apply the aspect ratio.\n var halfHeight = 0.03;\n var halfWidth = halfHeight * context.height / context.width;\n this._crossHairs = new _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_9__.SimpleLineList();\n this._crossHairs.set_depthBuffered(false);\n this._crossHairs.pure2D = true;\n this._crossHairs.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector3d.create(-halfWidth, 0, 0), _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector3d.create(halfWidth, 0, 0));\n this._crossHairs.addLine(_double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector3d.create(0, -halfHeight, 0), _double3d_js__WEBPACK_IMPORTED_MODULE_8__.Vector3d.create(0, halfHeight, 0));\n }\n this._crossHairs.drawLines(context, 1, _color_js__WEBPACK_IMPORTED_MODULE_5__.Color.load(_settings_js__WEBPACK_IMPORTED_MODULE_20__.Settings.get_current().get_crosshairsColor()));\n }\n },\n\n captureThumbnail: function (blobReady) {\n this.captureFrame(blobReady, 96, 45, 'image/jpeg', true);\n },\n\n captureCurrentFrame: function (blobReady, width, height, format) {\n this.captureFrame(blobReady, width, height, format, false);\n },\n\n captureFrameForVideo: function (blobReady, width, height, format) {\n var $this = this;\n\n var frameNumber = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.currentFrameNumber;\n var forVideo = function (blob) {\n var containsIndex;\n if (frameNumber === $this._videoQueueIndex) {\n blobReady(blob);\n $this._videoQueueIndex += 1;\n\n // Keep moving forward until we hit the next index that we're still waiting on\n while ((containsIndex = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.keyExists($this._videoBlobQueue, $this._videoQueueIndex)) || ($this._emptyFrames.indexOf($this._videoQueueIndex) >= 0)) {\n if (containsIndex) {\n blobReady($this._videoBlobQueue[$this._videoQueueIndex]);\n $this._videoBlobQueue[$this._videoQueueIndex] = null;\n }\n else {\n _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.remove($this._emptyFrames, $this._videoQueueIndex);\n }\n $this._videoQueueIndex += 1;\n }\n }\n else {\n if (blob != null) {\n $this._videoBlobQueue[frameNumber] = blob;\n }\n else {\n $this._emptyFrames.push(frameNumber);\n }\n }\n if ($this._videoQueueIndex >= _space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__.SpaceTimeController.totalFrames) {\n $this._videoBlobReady = null;\n $this._videoBlobQueue = null;\n $this._videoQueueIndex = 0;\n $this._emptyFrames.length = 0;\n }\n };\n this.captureCurrentFrame(forVideo, width, height, format);\n },\n\n captureFrame: function (blobReady, width, height, format, needRender) {\n if (needRender) {\n this.renderOneFrame(); // NB: this used to be Render() but that was almost surely not what we want\n }\n var image = document.createElement('img');\n image.addEventListener('load', function (e) {\n var imageAspect = (image.width) / image.height;\n var clientAspect = width / height;\n var cw = width;\n var ch = height;\n if (imageAspect < clientAspect) {\n ch = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((cw / imageAspect));\n }\n else {\n cw = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate((ch * imageAspect));\n }\n var cx = (width - cw) / 2;\n var cy = (height - ch) / 2;\n var temp = document.createElement('canvas');\n temp.height = height;\n temp.width = width;\n var ctx = temp.getContext('2d');\n ctx.drawImage(image, cx, cy, cw, ch);\n if (typeof temp.msToBlob == 'function') { var blob = temp.msToBlob(); blobReady(blob); } else { temp.toBlob(blobReady, format); }\n }, false);\n image.src = _data_globals_js__WEBPACK_IMPORTED_MODULE_3__.globalWWTControl.canvas.toDataURL();\n },\n\n clampZooms: function (rc) {\n rc.viewCamera.zoom = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.DoubleUtilities.clamp(rc.viewCamera.zoom, this.get_zoomMin(), this.get_zoomMax());\n rc.targetCamera.zoom = _double3d_js__WEBPACK_IMPORTED_MODULE_8__.DoubleUtilities.clamp(rc.targetCamera.zoom, this.get_zoomMin(), this.get_zoomMax());\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"WWTControl\", [WWTControl, WWTControl$, null]);\n\n// wwtlib.WWTControlBuilder\n\nfunction WWTControlBuilder(divId) {\n this._divId = null;\n this._startRenderLoop = false;\n this._startLat = 0;\n this._startLng = 0;\n this._startZoom = 360;\n this._freestandingAssetBaseurl = '';\n this._startMode = '';\n this._divId = divId;\n}\n\nvar WWTControlBuilder$ = {\n startRenderLoop: function (value) {\n this._startRenderLoop = value;\n },\n\n initialView: function (lat, lng, zoom) {\n this._startLat = lat;\n this._startLng = lng;\n this._startZoom = zoom;\n },\n\n freestandingMode: function (asset_baseurl) {\n this._freestandingAssetBaseurl = asset_baseurl;\n },\n\n initialMode: function (value) {\n this._startMode = value;\n },\n\n create: function () {\n var freestandingMode = !!this._freestandingAssetBaseurl;\n var trueStartMode;\n if (!!this._startMode) {\n trueStartMode = this._startMode;\n } else if (freestandingMode) {\n trueStartMode = 'black';\n } else {\n trueStartMode = 'sky';\n }\n (0,_data_globals_js__WEBPACK_IMPORTED_MODULE_3__.set_freestandingMode)(freestandingMode);\n if (freestandingMode) {\n _url_helpers_js__WEBPACK_IMPORTED_MODULE_6__.URLHelpers.singleton.overrideAssetBaseurl(this._freestandingAssetBaseurl);\n }\n return WWTControl.initControl6(this._divId, this._startRenderLoop, this._startLat, this._startLng, this._startZoom, trueStartMode);\n }\n};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"WWTControlBuilder\", [WWTControlBuilder, WWTControlBuilder$, null]);\n\n// wwtlib.WWTElementEvent\n\nfunction WWTElementEvent(x, y) {\n this.offsetX = 0;\n this.offsetY = 0;\n this.offsetX = x;\n this.offsetY = y;\n}\n\nvar WWTElementEvent$ = {};\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_1__.registerType)(\"WWTElementEvent\", [WWTElementEvent, WWTElementEvent$, null]);\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/index.js\":\n/*!*************************************!*\\\n !*** ../node_modules/pako/index.js ***!\n \\*************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n// Top level file is just a mixin of submodules & constants\n\n\nvar assign = (__webpack_require__(/*! ./lib/utils/common */ \"../node_modules/pako/lib/utils/common.js\").assign);\n\nvar deflate = __webpack_require__(/*! ./lib/deflate */ \"../node_modules/pako/lib/deflate.js\");\nvar inflate = __webpack_require__(/*! ./lib/inflate */ \"../node_modules/pako/lib/inflate.js\");\nvar constants = __webpack_require__(/*! ./lib/zlib/constants */ \"../node_modules/pako/lib/zlib/constants.js\");\n\nvar pako = {};\n\nassign(pako, deflate, inflate, constants);\n\nmodule.exports = pako;\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/deflate.js\":\n/*!*******************************************!*\\\n !*** ../node_modules/pako/lib/deflate.js ***!\n \\*******************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\n\n\nvar zlib_deflate = __webpack_require__(/*! ./zlib/deflate */ \"../node_modules/pako/lib/zlib/deflate.js\");\nvar utils = __webpack_require__(/*! ./utils/common */ \"../node_modules/pako/lib/utils/common.js\");\nvar strings = __webpack_require__(/*! ./utils/strings */ \"../node_modules/pako/lib/utils/strings.js\");\nvar msg = __webpack_require__(/*! ./zlib/messages */ \"../node_modules/pako/lib/zlib/messages.js\");\nvar ZStream = __webpack_require__(/*! ./zlib/zstream */ \"../node_modules/pako/lib/zlib/zstream.js\");\n\nvar toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nvar Z_NO_FLUSH = 0;\nvar Z_FINISH = 4;\n\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_SYNC_FLUSH = 2;\n\nvar Z_DEFAULT_COMPRESSION = -1;\n\nvar Z_DEFAULT_STRATEGY = 0;\n\nvar Z_DEFLATED = 8;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array|Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Deflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate(options) {\n if (!(this instanceof Deflate)) return new Deflate(options);\n\n this.options = utils.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = zlib_deflate.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n zlib_deflate.deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n var dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = zlib_deflate.deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this._dict_set = true;\n }\n}\n\n/**\n * Deflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the compression context.\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * array format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function (data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n\n if (this.ended) { return false; }\n\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n status = zlib_deflate.deflate(strm, _mode); /* no bad return value */\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {\n if (this.options.to === 'string') {\n this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n // Finalize on the last chunk.\n if (_mode === Z_FINISH) {\n status = zlib_deflate.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === Z_SYNC_FLUSH) {\n this.onEnd(Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , data = Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n var deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate(input, options);\n}\n\n\nexports.Deflate = Deflate;\nexports.deflate = deflate;\nexports.deflateRaw = deflateRaw;\nexports.gzip = gzip;\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/inflate.js\":\n/*!*******************************************!*\\\n !*** ../node_modules/pako/lib/inflate.js ***!\n \\*******************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\n\n\nvar zlib_inflate = __webpack_require__(/*! ./zlib/inflate */ \"../node_modules/pako/lib/zlib/inflate.js\");\nvar utils = __webpack_require__(/*! ./utils/common */ \"../node_modules/pako/lib/utils/common.js\");\nvar strings = __webpack_require__(/*! ./utils/strings */ \"../node_modules/pako/lib/utils/strings.js\");\nvar c = __webpack_require__(/*! ./zlib/constants */ \"../node_modules/pako/lib/zlib/constants.js\");\nvar msg = __webpack_require__(/*! ./zlib/messages */ \"../node_modules/pako/lib/zlib/messages.js\");\nvar ZStream = __webpack_require__(/*! ./zlib/zstream */ \"../node_modules/pako/lib/zlib/zstream.js\");\nvar GZheader = __webpack_require__(/*! ./zlib/gzheader */ \"../node_modules/pako/lib/zlib/gzheader.js\");\n\nvar toString = Object.prototype.toString;\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Inflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate(options) {\n if (!(this instanceof Inflate)) return new Inflate(options);\n\n this.options = utils.assign({\n chunkSize: 16384,\n windowBits: 0,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new GZheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = strings.string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n }\n }\n}\n\n/**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the decompression context.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function (data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var dictionary = this.options.dictionary;\n var status, _mode;\n var next_out_utf8, tail, utf8str;\n\n // Flag to properly process Z_BUF_ERROR on testing inflate call\n // when we check that all output data was flushed.\n var allowBufError = false;\n\n if (this.ended) { return false; }\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // Only binary strings can be decompressed on practice\n strm.input = strings.binstring2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */\n\n if (status === c.Z_NEED_DICT && dictionary) {\n status = zlib_inflate.inflateSetDictionary(this.strm, dictionary);\n }\n\n if (status === c.Z_BUF_ERROR && allowBufError === true) {\n status = c.Z_OK;\n allowBufError = false;\n }\n\n if (status !== c.Z_STREAM_END && status !== c.Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {\n\n if (this.options.to === 'string') {\n\n next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n tail = strm.next_out - next_out_utf8;\n utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n this.onData(utf8str);\n\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n }\n\n // When no more input data, we should check that internal inflate buffers\n // are flushed. The only way to do it when avail_out = 0 - run one more\n // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.\n // Here we set flag to process this error properly.\n //\n // NOTE. Deflate does not return error in this case and does not needs such\n // logic.\n if (strm.avail_in === 0 && strm.avail_out === 0) {\n allowBufError = true;\n }\n\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);\n\n if (status === c.Z_STREAM_END) {\n _mode = c.Z_FINISH;\n }\n\n // Finalize on the last chunk.\n if (_mode === c.Z_FINISH) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === c.Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === c.Z_SYNC_FLUSH) {\n this.onEnd(c.Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function (chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function (status) {\n // On success - join\n if (status === c.Z_OK) {\n if (this.options.to === 'string') {\n // Glue & convert here, until we teach pako to send\n // utf8 aligned strings to onData\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n * , output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err)\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n var inflator = new Inflate(options);\n\n inflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) { throw inflator.msg || msg[inflator.err]; }\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nexports.Inflate = Inflate;\nexports.inflate = inflate;\nexports.inflateRaw = inflateRaw;\nexports.ungzip = inflate;\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/utils/common.js\":\n/*!************************************************!*\\\n !*** ../node_modules/pako/lib/utils/common.js ***!\n \\************************************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\n\nvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\nfunction _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n};\n\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n }\n};\n\nvar fnUntyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n return [].concat.apply([], chunks);\n }\n};\n\n\n// Enable/Disable typed arrays use, for testing\n//\nexports.setTyped = function (on) {\n if (on) {\n exports.Buf8 = Uint8Array;\n exports.Buf16 = Uint16Array;\n exports.Buf32 = Int32Array;\n exports.assign(exports, fnTyped);\n } else {\n exports.Buf8 = Array;\n exports.Buf16 = Array;\n exports.Buf32 = Array;\n exports.assign(exports, fnUntyped);\n }\n};\n\nexports.setTyped(TYPED_OK);\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/utils/strings.js\":\n/*!*************************************************!*\\\n !*** ../node_modules/pako/lib/utils/strings.js ***!\n \\*************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n// String encode/decode helpers\n\n\n\nvar utils = __webpack_require__(/*! ./common */ \"../node_modules/pako/lib/utils/common.js\");\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nvar STR_APPLY_OK = true;\nvar STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new utils.Buf8(256);\nfor (var q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nexports.string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new utils.Buf8(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper (used in 2 places)\nfunction buf2binstring(buf, len) {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n for (var i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n}\n\n\n// Convert byte array to binary string\nexports.buf2binstring = function (buf) {\n return buf2binstring(buf, buf.length);\n};\n\n\n// Convert binary string (typed, when possible)\nexports.binstring2buf = function (str) {\n var buf = new utils.Buf8(str.length);\n for (var i = 0, len = buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n};\n\n\n// convert array to string\nexports.buf2string = function (buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nexports.utf8border = function (buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/zlib/adler32.js\":\n/*!************************************************!*\\\n !*** ../node_modules/pako/lib/zlib/adler32.js ***!\n \\************************************************/\n/***/ ((module) => {\n\n\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/zlib/constants.js\":\n/*!**************************************************!*\\\n !*** ../node_modules/pako/lib/zlib/constants.js ***!\n \\**************************************************/\n/***/ ((module) => {\n\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/zlib/crc32.js\":\n/*!**********************************************!*\\\n !*** ../node_modules/pako/lib/zlib/crc32.js ***!\n \\**********************************************/\n/***/ ((module) => {\n\n\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/zlib/deflate.js\":\n/*!************************************************!*\\\n !*** ../node_modules/pako/lib/zlib/deflate.js ***!\n \\************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = __webpack_require__(/*! ../utils/common */ \"../node_modules/pako/lib/utils/common.js\");\nvar trees = __webpack_require__(/*! ./trees */ \"../node_modules/pako/lib/zlib/trees.js\");\nvar adler32 = __webpack_require__(/*! ./adler32 */ \"../node_modules/pako/lib/zlib/adler32.js\");\nvar crc32 = __webpack_require__(/*! ./crc32 */ \"../node_modules/pako/lib/zlib/crc32.js\");\nvar msg = __webpack_require__(/*! ./messages */ \"../node_modules/pako/lib/zlib/messages.js\");\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\n//var Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\n//var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\n//var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only(s, last) {\n trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n// put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// var curr = s.strstart + s.lookahead;\n// var init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nvar configuration_table;\n\nconfiguration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new utils.Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new utils.Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n trees._tr_init(s);\n return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n s = strm.state;\n wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n tmpDict = new utils.Buf8(s.w_size);\n utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n}\n\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/zlib/gzheader.js\":\n/*!*************************************************!*\\\n !*** ../node_modules/pako/lib/zlib/gzheader.js ***!\n \\*************************************************/\n/***/ ((module) => {\n\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/zlib/inffast.js\":\n/*!************************************************!*\\\n !*** ../node_modules/pako/lib/zlib/inffast.js ***!\n \\************************************************/\n/***/ ((module) => {\n\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/zlib/inflate.js\":\n/*!************************************************!*\\\n !*** ../node_modules/pako/lib/zlib/inflate.js ***!\n \\************************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = __webpack_require__(/*! ../utils/common */ \"../node_modules/pako/lib/utils/common.js\");\nvar adler32 = __webpack_require__(/*! ./adler32 */ \"../node_modules/pako/lib/zlib/adler32.js\");\nvar crc32 = __webpack_require__(/*! ./crc32 */ \"../node_modules/pako/lib/zlib/crc32.js\");\nvar inflate_fast = __webpack_require__(/*! ./inffast */ \"../node_modules/pako/lib/zlib/inffast.js\");\nvar inflate_table = __webpack_require__(/*! ./inftrees */ \"../node_modules/pako/lib/zlib/inftrees.js\");\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n this.work = new utils.Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new utils.Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n utils.arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n utils.arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var state;\n var dictid;\n var ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n}\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/zlib/inftrees.js\":\n/*!*************************************************!*\\\n !*** ../node_modules/pako/lib/zlib/inftrees.js ***!\n \\*************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = __webpack_require__(/*! ../utils/common */ \"../node_modules/pako/lib/utils/common.js\");\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/zlib/messages.js\":\n/*!*************************************************!*\\\n !*** ../node_modules/pako/lib/zlib/messages.js ***!\n \\*************************************************/\n/***/ ((module) => {\n\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/zlib/trees.js\":\n/*!**********************************************!*\\\n !*** ../node_modules/pako/lib/zlib/trees.js ***!\n \\**********************************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\nvar utils = __webpack_require__(/*! ../utils/common */ \"../node_modules/pako/lib/utils/common.js\");\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */\n [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];\n\nvar extra_dbits = /* extra bits for each distance code */\n [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n\n\n/***/ }),\n\n/***/ \"../node_modules/pako/lib/zlib/zstream.js\":\n/*!************************************************!*\\\n !*** ../node_modules/pako/lib/zlib/zstream.js ***!\n \\************************************************/\n/***/ ((module) => {\n\n\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n\n\n/***/ }),\n\n/***/ \"../node_modules/uuid/dist/esm-browser/parse.js\":\n/*!******************************************************!*\\\n !*** ../node_modules/uuid/dist/esm-browser/parse.js ***!\n \\******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"../node_modules/uuid/dist/esm-browser/validate.js\");\n\n\nfunction parse(uuid) {\n if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (parse);\n\n/***/ }),\n\n/***/ \"../node_modules/uuid/dist/esm-browser/regex.js\":\n/*!******************************************************!*\\\n !*** ../node_modules/uuid/dist/esm-browser/regex.js ***!\n \\******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i);\n\n/***/ }),\n\n/***/ \"../node_modules/uuid/dist/esm-browser/sha1.js\":\n/*!*****************************************************!*\\\n !*** ../node_modules/uuid/dist/esm-browser/sha1.js ***!\n \\*****************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (sha1);\n\n/***/ }),\n\n/***/ \"../node_modules/uuid/dist/esm-browser/stringify.js\":\n/*!**********************************************************!*\\\n !*** ../node_modules/uuid/dist/esm-browser/stringify.js ***!\n \\**********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"../node_modules/uuid/dist/esm-browser/validate.js\");\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stringify);\n\n/***/ }),\n\n/***/ \"../node_modules/uuid/dist/esm-browser/v35.js\":\n/*!****************************************************!*\\\n !*** ../node_modules/uuid/dist/esm-browser/v35.js ***!\n \\****************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DNS: () => (/* binding */ DNS),\n/* harmony export */ URL: () => (/* binding */ URL),\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stringify.js */ \"../node_modules/uuid/dist/esm-browser/stringify.js\");\n/* harmony import */ var _parse_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parse.js */ \"../node_modules/uuid/dist/esm-browser/parse.js\");\n\n\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nvar DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nvar URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0,_parse_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}\n\n/***/ }),\n\n/***/ \"../node_modules/uuid/dist/esm-browser/v5.js\":\n/*!***************************************************!*\\\n !*** ../node_modules/uuid/dist/esm-browser/v5.js ***!\n \\***************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _v35_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./v35.js */ \"../node_modules/uuid/dist/esm-browser/v35.js\");\n/* harmony import */ var _sha1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sha1.js */ \"../node_modules/uuid/dist/esm-browser/sha1.js\");\n\n\nvar v5 = (0,_v35_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('v5', 0x50, _sha1_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v5);\n\n/***/ }),\n\n/***/ \"../node_modules/uuid/dist/esm-browser/validate.js\":\n/*!*********************************************************!*\\\n !*** ../node_modules/uuid/dist/esm-browser/validate.js ***!\n \\*********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./regex.js */ \"../node_modules/uuid/dist/esm-browser/regex.js\");\n\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].test(uuid);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validate);\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t(() => {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = (module) => {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\t() => (module['default']) :\n/******/ \t\t\t\t() => (module);\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\n/*!**********************!*\\\n !*** ./esm/index.js ***!\n \\**********************/\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ABR: () => (/* reexport safe */ _astrocalc_aberration_js__WEBPACK_IMPORTED_MODULE_18__.ABR),\n/* harmony export */ ACFT: () => (/* reexport safe */ _astrocalc_aberration_js__WEBPACK_IMPORTED_MODULE_18__.ACFT),\n/* harmony export */ ASEP: () => (/* reexport safe */ _astrocalc_angular_separation_js__WEBPACK_IMPORTED_MODULE_4__.ASEP),\n/* harmony export */ Alignment: () => (/* reexport safe */ _sky_text_js__WEBPACK_IMPORTED_MODULE_91__.Alignment),\n/* harmony export */ AltTypes: () => (/* reexport safe */ _layers_time_series_layer_js__WEBPACK_IMPORTED_MODULE_126__.AltTypes),\n/* harmony export */ AltUnits: () => (/* reexport safe */ _layers_layer_js__WEBPACK_IMPORTED_MODULE_107__.AltUnits),\n/* harmony export */ Annotation: () => (/* reexport safe */ _annotation_js__WEBPACK_IMPORTED_MODULE_66__.Annotation),\n/* harmony export */ AnnotationClickEventArgs: () => (/* reexport safe */ _script_interface_js__WEBPACK_IMPORTED_MODULE_138__.AnnotationClickEventArgs),\n/* harmony export */ ArrivedEventArgs: () => (/* reexport safe */ _script_interface_js__WEBPACK_IMPORTED_MODULE_138__.ArrivedEventArgs),\n/* harmony export */ AstroCalc: () => (/* reexport safe */ _astrocalc_js__WEBPACK_IMPORTED_MODULE_47__.AstroCalc),\n/* harmony export */ AstroRaDec: () => (/* reexport safe */ _astrocalc_js__WEBPACK_IMPORTED_MODULE_47__.AstroRaDec),\n/* harmony export */ AudioOverlay: () => (/* reexport safe */ _tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__.AudioOverlay),\n/* harmony export */ AudioType: () => (/* reexport safe */ _tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__.AudioType),\n/* harmony export */ BandPass: () => (/* reexport safe */ _imageset_js__WEBPACK_IMPORTED_MODULE_88__.BandPass),\n/* harmony export */ BinaryReader: () => (/* reexport safe */ _utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_56__.BinaryReader),\n/* harmony export */ Bitmap: () => (/* reexport safe */ _utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_54__.Bitmap),\n/* harmony export */ BitmapOverlay: () => (/* reexport safe */ _tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__.BitmapOverlay),\n/* harmony export */ BlendState: () => (/* reexport safe */ _blend_state_js__WEBPACK_IMPORTED_MODULE_42__.BlendState),\n/* harmony export */ BodyAngles: () => (/* reexport safe */ _planets_js__WEBPACK_IMPORTED_MODULE_94__.BodyAngles),\n/* harmony export */ C3D: () => (/* reexport safe */ _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__.C3D),\n/* harmony export */ CAAEarth: () => (/* reexport safe */ _astrocalc_earth_js__WEBPACK_IMPORTED_MODULE_5__.CAAEarth),\n/* harmony export */ CAAEclipticalElementDetails: () => (/* reexport safe */ _astrocalc_ecliptical_elements_js__WEBPACK_IMPORTED_MODULE_20__.CAAEclipticalElementDetails),\n/* harmony export */ CAAEclipticalElements: () => (/* reexport safe */ _astrocalc_ecliptical_elements_js__WEBPACK_IMPORTED_MODULE_20__.CAAEclipticalElements),\n/* harmony export */ CAAFK5: () => (/* reexport safe */ _astrocalc_fk5_js__WEBPACK_IMPORTED_MODULE_6__.CAAFK5),\n/* harmony export */ CAAGlobe: () => (/* reexport safe */ _astrocalc_globe_js__WEBPACK_IMPORTED_MODULE_25__.CAAGlobe),\n/* harmony export */ CAAJupiter: () => (/* reexport safe */ _astrocalc_jupiter_js__WEBPACK_IMPORTED_MODULE_12__.CAAJupiter),\n/* harmony export */ CAAKepler: () => (/* reexport safe */ _astrocalc_kepler_js__WEBPACK_IMPORTED_MODULE_17__.CAAKepler),\n/* harmony export */ CAAMars: () => (/* reexport safe */ _astrocalc_mars_js__WEBPACK_IMPORTED_MODULE_11__.CAAMars),\n/* harmony export */ CAAMercury: () => (/* reexport safe */ _astrocalc_mercury_js__WEBPACK_IMPORTED_MODULE_9__.CAAMercury),\n/* harmony export */ CAAMoon: () => (/* reexport safe */ _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_28__.CAAMoon),\n/* harmony export */ CAAMoonNodes: () => (/* reexport safe */ _astrocalc_moon_nodes_js__WEBPACK_IMPORTED_MODULE_30__.CAAMoonNodes),\n/* harmony export */ CAAMoonPerigeeApogee: () => (/* reexport safe */ _astrocalc_moon_perigee_apogee_js__WEBPACK_IMPORTED_MODULE_31__.CAAMoonPerigeeApogee),\n/* harmony export */ CAAMoonPhases: () => (/* reexport safe */ _astrocalc_moon_phases_js__WEBPACK_IMPORTED_MODULE_32__.CAAMoonPhases),\n/* harmony export */ CAANeptune: () => (/* reexport safe */ _astrocalc_neptune_js__WEBPACK_IMPORTED_MODULE_15__.CAANeptune),\n/* harmony export */ CAANutation: () => (/* reexport safe */ _astrocalc_nutation_js__WEBPACK_IMPORTED_MODULE_7__.CAANutation),\n/* harmony export */ CAAParallax: () => (/* reexport safe */ _astrocalc_parallax_js__WEBPACK_IMPORTED_MODULE_33__.CAAParallax),\n/* harmony export */ CAAPhysicalJupiter: () => (/* reexport safe */ _astrocalc_physical_jupiter_js__WEBPACK_IMPORTED_MODULE_35__.CAAPhysicalJupiter),\n/* harmony export */ CAAPhysicalJupiterDetails: () => (/* reexport safe */ _astrocalc_physical_jupiter_js__WEBPACK_IMPORTED_MODULE_35__.CAAPhysicalJupiterDetails),\n/* harmony export */ CAAPhysicalMars: () => (/* reexport safe */ _astrocalc_physical_mars_js__WEBPACK_IMPORTED_MODULE_36__.CAAPhysicalMars),\n/* harmony export */ CAAPhysicalMarsDetails: () => (/* reexport safe */ _astrocalc_physical_mars_js__WEBPACK_IMPORTED_MODULE_36__.CAAPhysicalMarsDetails),\n/* harmony export */ CAAPhysicalSun: () => (/* reexport safe */ _astrocalc_physical_sun_js__WEBPACK_IMPORTED_MODULE_37__.CAAPhysicalSun),\n/* harmony export */ CAAPhysicalSunDetails: () => (/* reexport safe */ _astrocalc_physical_sun_js__WEBPACK_IMPORTED_MODULE_37__.CAAPhysicalSunDetails),\n/* harmony export */ CAAPluto: () => (/* reexport safe */ _astrocalc_pluto_js__WEBPACK_IMPORTED_MODULE_16__.CAAPluto),\n/* harmony export */ CAAPrecession: () => (/* reexport safe */ _astrocalc_precession_js__WEBPACK_IMPORTED_MODULE_38__.CAAPrecession),\n/* harmony export */ CAARiseTransitSet: () => (/* reexport safe */ _astrocalc_rise_transit_set_js__WEBPACK_IMPORTED_MODULE_39__.CAARiseTransitSet),\n/* harmony export */ CAARiseTransitSetDetails: () => (/* reexport safe */ _astrocalc_rise_transit_set_js__WEBPACK_IMPORTED_MODULE_39__.CAARiseTransitSetDetails),\n/* harmony export */ CAASaturn: () => (/* reexport safe */ _astrocalc_saturn_js__WEBPACK_IMPORTED_MODULE_13__.CAASaturn),\n/* harmony export */ CAASaturnRingDetails: () => (/* reexport safe */ _astrocalc_saturn_rings_js__WEBPACK_IMPORTED_MODULE_40__.CAASaturnRingDetails),\n/* harmony export */ CAASaturnRings: () => (/* reexport safe */ _astrocalc_saturn_rings_js__WEBPACK_IMPORTED_MODULE_40__.CAASaturnRings),\n/* harmony export */ CAASidereal: () => (/* reexport safe */ _astrocalc_sidereal_js__WEBPACK_IMPORTED_MODULE_34__.CAASidereal),\n/* harmony export */ CAAStellarMagnitudes: () => (/* reexport safe */ _astrocalc_stellar_magnitudes_js__WEBPACK_IMPORTED_MODULE_41__.CAAStellarMagnitudes),\n/* harmony export */ CAASun: () => (/* reexport safe */ _astrocalc_sun_js__WEBPACK_IMPORTED_MODULE_8__.CAASun),\n/* harmony export */ CAATopocentricEclipticDetails: () => (/* reexport safe */ _astrocalc_parallax_js__WEBPACK_IMPORTED_MODULE_33__.CAATopocentricEclipticDetails),\n/* harmony export */ CAAUranus: () => (/* reexport safe */ _astrocalc_uranus_js__WEBPACK_IMPORTED_MODULE_14__.CAAUranus),\n/* harmony export */ CAAVenus: () => (/* reexport safe */ _astrocalc_venus_js__WEBPACK_IMPORTED_MODULE_10__.CAAVenus),\n/* harmony export */ COR: () => (/* reexport safe */ _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__.COR),\n/* harmony export */ CT: () => (/* reexport safe */ _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__.CT),\n/* harmony export */ CalD: () => (/* reexport safe */ _astrocalc_date_js__WEBPACK_IMPORTED_MODULE_2__.CalD),\n/* harmony export */ CameraParameters: () => (/* reexport safe */ _camera_parameters_js__WEBPACK_IMPORTED_MODULE_67__.CameraParameters),\n/* harmony export */ CatalogSpreadSheetLayer: () => (/* reexport safe */ _layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_127__.CatalogSpreadSheetLayer),\n/* harmony export */ Circle: () => (/* reexport safe */ _annotation_js__WEBPACK_IMPORTED_MODULE_66__.Circle),\n/* harmony export */ Classification: () => (/* reexport safe */ _place_js__WEBPACK_IMPORTED_MODULE_95__.Classification),\n/* harmony export */ CollectionLoadedEventArgs: () => (/* reexport safe */ _script_interface_js__WEBPACK_IMPORTED_MODULE_138__.CollectionLoadedEventArgs),\n/* harmony export */ Color: () => (/* reexport safe */ _color_js__WEBPACK_IMPORTED_MODULE_43__.Color),\n/* harmony export */ ColorMapContainer: () => (/* reexport safe */ _layers_color_map_container_js__WEBPACK_IMPORTED_MODULE_73__.ColorMapContainer),\n/* harmony export */ ColorMaps: () => (/* reexport safe */ _layers_time_series_layer_js__WEBPACK_IMPORTED_MODULE_126__.ColorMaps),\n/* harmony export */ ColorPicker: () => (/* reexport safe */ _utilities_color_picker_js__WEBPACK_IMPORTED_MODULE_104__.ColorPicker),\n/* harmony export */ Colors: () => (/* reexport safe */ _color_js__WEBPACK_IMPORTED_MODULE_43__.Colors),\n/* harmony export */ ConstellationFilter: () => (/* reexport safe */ _constellation_filter_js__WEBPACK_IMPORTED_MODULE_68__.ConstellationFilter),\n/* harmony export */ Constellations: () => (/* reexport safe */ _constellations_js__WEBPACK_IMPORTED_MODULE_92__.Constellations),\n/* harmony export */ ContextMenuStrip: () => (/* reexport safe */ _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_55__.ContextMenuStrip),\n/* harmony export */ ConvexHull: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.ConvexHull),\n/* harmony export */ Coordinates: () => (/* reexport safe */ _coordinates_js__WEBPACK_IMPORTED_MODULE_59__.Coordinates),\n/* harmony export */ CoordinatesTypes: () => (/* reexport safe */ _layers_time_series_layer_js__WEBPACK_IMPORTED_MODULE_126__.CoordinatesTypes),\n/* harmony export */ CullMode: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.CullMode),\n/* harmony export */ Cursor: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.Cursor),\n/* harmony export */ Cursors: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.Cursors),\n/* harmony export */ DAY_OF_WEEK: () => (/* reexport safe */ _astrocalc_date_js__WEBPACK_IMPORTED_MODULE_2__.DAY_OF_WEEK),\n/* harmony export */ DT: () => (/* reexport safe */ _astrocalc_date_js__WEBPACK_IMPORTED_MODULE_2__.DT),\n/* harmony export */ DYT: () => (/* reexport safe */ _astrocalc_dynamical_time_js__WEBPACK_IMPORTED_MODULE_19__.DYT),\n/* harmony export */ DataItem: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.DataItem),\n/* harmony export */ DataTypes: () => (/* reexport safe */ _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_76__.DataTypes),\n/* harmony export */ DataVizWizard: () => (/* reexport safe */ _layers_manager_dialogs_js__WEBPACK_IMPORTED_MODULE_131__.DataVizWizard),\n/* harmony export */ Dates: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.Dates),\n/* harmony export */ Dialog: () => (/* reexport safe */ _utilities_dialog_js__WEBPACK_IMPORTED_MODULE_105__.Dialog),\n/* harmony export */ DialogResult: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.DialogResult),\n/* harmony export */ DomainValue: () => (/* reexport safe */ _layers_layer_js__WEBPACK_IMPORTED_MODULE_107__.DomainValue),\n/* harmony export */ DoubleUtilities: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.DoubleUtilities),\n/* harmony export */ ELL: () => (/* reexport safe */ _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_22__.ELL),\n/* harmony export */ EO: () => (/* reexport safe */ _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_22__.EO),\n/* harmony export */ EOD: () => (/* reexport safe */ _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_22__.EOD),\n/* harmony export */ EOE: () => (/* reexport safe */ _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_22__.EOE),\n/* harmony export */ EOT: () => (/* reexport safe */ _astrocalc_equation_of_time_js__WEBPACK_IMPORTED_MODULE_23__.EOT),\n/* harmony export */ EPD: () => (/* reexport safe */ _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_22__.EPD),\n/* harmony export */ EPO: () => (/* reexport safe */ _astrocalc_elements_planetary_orbit_js__WEBPACK_IMPORTED_MODULE_21__.EPO),\n/* harmony export */ EllipseRenderer: () => (/* reexport safe */ _layers_orbit_js__WEBPACK_IMPORTED_MODULE_113__.EllipseRenderer),\n/* harmony export */ EllipseShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.EllipseShader),\n/* harmony export */ EquirectangularTile: () => (/* reexport safe */ _equirectangular_tile_js__WEBPACK_IMPORTED_MODULE_81__.EquirectangularTile),\n/* harmony export */ FadeType: () => (/* reexport safe */ _layers_layer_js__WEBPACK_IMPORTED_MODULE_107__.FadeType),\n/* harmony export */ FastMath: () => (/* reexport safe */ _fast_math_js__WEBPACK_IMPORTED_MODULE_60__.FastMath),\n/* harmony export */ FileCabinet: () => (/* reexport safe */ _tours_file_cabinet_js__WEBPACK_IMPORTED_MODULE_118__.FileCabinet),\n/* harmony export */ FileEntry: () => (/* reexport safe */ _tours_file_cabinet_js__WEBPACK_IMPORTED_MODULE_118__.FileEntry),\n/* harmony export */ FitsImage: () => (/* reexport safe */ _layers_fits_image_js__WEBPACK_IMPORTED_MODULE_75__.FitsImage),\n/* harmony export */ FitsImageJs: () => (/* reexport safe */ _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_76__.FitsImageJs),\n/* harmony export */ FitsImageTile: () => (/* reexport safe */ _layers_fits_image_tile_js__WEBPACK_IMPORTED_MODULE_77__.FitsImageTile),\n/* harmony export */ FitsProperties: () => (/* reexport safe */ _fits_properties_js__WEBPACK_IMPORTED_MODULE_69__.FitsProperties),\n/* harmony export */ FitsShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.FitsShader),\n/* harmony export */ FlipbookOverlay: () => (/* reexport safe */ _tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__.FlipbookOverlay),\n/* harmony export */ Folder: () => (/* reexport safe */ _folder_js__WEBPACK_IMPORTED_MODULE_134__.Folder),\n/* harmony export */ FolderBrowser: () => (/* reexport safe */ _folder_browser_js__WEBPACK_IMPORTED_MODULE_135__.FolderBrowser),\n/* harmony export */ FolderDownloadAction: () => (/* reexport safe */ _wtml_js__WEBPACK_IMPORTED_MODULE_140__.FolderDownloadAction),\n/* harmony export */ FolderGroup: () => (/* reexport safe */ _folder_js__WEBPACK_IMPORTED_MODULE_134__.FolderGroup),\n/* harmony export */ FolderRefreshType: () => (/* reexport safe */ _folder_js__WEBPACK_IMPORTED_MODULE_134__.FolderRefreshType),\n/* harmony export */ FolderType: () => (/* reexport safe */ _folder_js__WEBPACK_IMPORTED_MODULE_134__.FolderType),\n/* harmony export */ FolderUp: () => (/* reexport safe */ _folder_up_js__WEBPACK_IMPORTED_MODULE_96__.FolderUp),\n/* harmony export */ Formatting: () => (/* reexport safe */ _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_58__.Formatting),\n/* harmony export */ FrameTarget: () => (/* reexport safe */ _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_129__.FrameTarget),\n/* harmony export */ FrameWizard: () => (/* reexport safe */ _layers_manager_dialogs_js__WEBPACK_IMPORTED_MODULE_131__.FrameWizard),\n/* harmony export */ Fxyf: () => (/* reexport safe */ _fxyf_js__WEBPACK_IMPORTED_MODULE_64__.Fxyf),\n/* harmony export */ GFX: () => (/* binding */ GFX),\n/* harmony export */ GM: () => (/* reexport safe */ _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_24__.GM),\n/* harmony export */ GMD: () => (/* reexport safe */ _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_24__.GMD),\n/* harmony export */ GMDS: () => (/* reexport safe */ _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_24__.GMDS),\n/* harmony export */ Galaxy: () => (/* reexport safe */ _star_js__WEBPACK_IMPORTED_MODULE_70__.Galaxy),\n/* harmony export */ GlyphCache: () => (/* reexport safe */ _sky_text_js__WEBPACK_IMPORTED_MODULE_91__.GlyphCache),\n/* harmony export */ GlyphItem: () => (/* reexport safe */ _sky_text_js__WEBPACK_IMPORTED_MODULE_91__.GlyphItem),\n/* harmony export */ GreatCircleDialog: () => (/* reexport safe */ _layers_manager_dialogs_js__WEBPACK_IMPORTED_MODULE_131__.GreatCircleDialog),\n/* harmony export */ GreatCirlceRouteLayer: () => (/* reexport safe */ _layers_great_circle_route_layer_js__WEBPACK_IMPORTED_MODULE_109__.GreatCirlceRouteLayer),\n/* harmony export */ GridLayer: () => (/* reexport safe */ _layers_grid_layer_js__WEBPACK_IMPORTED_MODULE_110__.GridLayer),\n/* harmony export */ Grids: () => (/* reexport safe */ _grids_js__WEBPACK_IMPORTED_MODULE_97__.Grids),\n/* harmony export */ GroundOverlayLayer: () => (/* reexport safe */ _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_129__.GroundOverlayLayer),\n/* harmony export */ Group: () => (/* reexport safe */ _layers_object3d_js__WEBPACK_IMPORTED_MODULE_112__.Group),\n/* harmony export */ Guid: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.Guid),\n/* harmony export */ HealpixTables: () => (/* reexport safe */ _healpix_tables_js__WEBPACK_IMPORTED_MODULE_61__.HealpixTables),\n/* harmony export */ HealpixTile: () => (/* reexport safe */ _healpix_tile_js__WEBPACK_IMPORTED_MODULE_82__.HealpixTile),\n/* harmony export */ HealpixUtils: () => (/* reexport safe */ _healpix_utils_js__WEBPACK_IMPORTED_MODULE_62__.HealpixUtils),\n/* harmony export */ HipsProperties: () => (/* reexport safe */ _hips_properties_js__WEBPACK_IMPORTED_MODULE_136__.HipsProperties),\n/* harmony export */ Histogram: () => (/* reexport safe */ _utilities_histogram_js__WEBPACK_IMPORTED_MODULE_106__.Histogram),\n/* harmony export */ HistogramEqualization: () => (/* reexport safe */ _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_76__.HistogramEqualization),\n/* harmony export */ Hploc: () => (/* reexport safe */ _hploc_js__WEBPACK_IMPORTED_MODULE_63__.Hploc),\n/* harmony export */ IFR: () => (/* reexport safe */ _astrocalc_illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_26__.IFR),\n/* harmony export */ INTP: () => (/* reexport safe */ _astrocalc_interpolate_js__WEBPACK_IMPORTED_MODULE_27__.INTP),\n/* harmony export */ IPlace: () => (/* reexport safe */ _interfaces_js__WEBPACK_IMPORTED_MODULE_65__.IPlace),\n/* harmony export */ ISSLayer: () => (/* reexport safe */ _layers_iss_layer_js__WEBPACK_IMPORTED_MODULE_125__.ISSLayer),\n/* harmony export */ ISettings: () => (/* reexport safe */ _interfaces_js__WEBPACK_IMPORTED_MODULE_65__.ISettings),\n/* harmony export */ IThumbnail: () => (/* reexport safe */ _interfaces_js__WEBPACK_IMPORTED_MODULE_65__.IThumbnail),\n/* harmony export */ IUIServicesCallbacks: () => (/* reexport safe */ _interfaces_js__WEBPACK_IMPORTED_MODULE_65__.IUIServicesCallbacks),\n/* harmony export */ IUiController: () => (/* reexport safe */ _interfaces_js__WEBPACK_IMPORTED_MODULE_65__.IUiController),\n/* harmony export */ IUndoStep: () => (/* reexport safe */ _interfaces_js__WEBPACK_IMPORTED_MODULE_65__.IUndoStep),\n/* harmony export */ IViewMover: () => (/* reexport safe */ _interfaces_js__WEBPACK_IMPORTED_MODULE_65__.IViewMover),\n/* harmony export */ ImageSetLayer: () => (/* reexport safe */ _layers_imageset_layer_js__WEBPACK_IMPORTED_MODULE_111__.ImageSetLayer),\n/* harmony export */ ImageSetType: () => (/* reexport safe */ _imageset_js__WEBPACK_IMPORTED_MODULE_88__.ImageSetType),\n/* harmony export */ ImageShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.ImageShader),\n/* harmony export */ ImageShader2: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.ImageShader2),\n/* harmony export */ Imageset: () => (/* reexport safe */ _imageset_js__WEBPACK_IMPORTED_MODULE_88__.Imageset),\n/* harmony export */ InViewReturnMessage: () => (/* reexport safe */ _render_context_js__WEBPACK_IMPORTED_MODULE_137__.InViewReturnMessage),\n/* harmony export */ IndexBuffer: () => (/* reexport safe */ _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_48__.IndexBuffer),\n/* harmony export */ InterpolationType: () => (/* reexport safe */ _camera_parameters_js__WEBPACK_IMPORTED_MODULE_67__.InterpolationType),\n/* harmony export */ KeplerPointSpriteShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.KeplerPointSpriteShader),\n/* harmony export */ KeplerVertex: () => (/* reexport safe */ _kepler_vertex_js__WEBPACK_IMPORTED_MODULE_98__.KeplerVertex),\n/* harmony export */ KeplerianElements: () => (/* reexport safe */ _planets_js__WEBPACK_IMPORTED_MODULE_94__.KeplerianElements),\n/* harmony export */ Keys: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.Keys),\n/* harmony export */ KmlCoordinate: () => (/* reexport safe */ _layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_127__.KmlCoordinate),\n/* harmony export */ KmlLineList: () => (/* reexport safe */ _layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_127__.KmlLineList),\n/* harmony export */ Language: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.Language),\n/* harmony export */ LatLngEdges: () => (/* reexport safe */ _tangent_tile_js__WEBPACK_IMPORTED_MODULE_85__.LatLngEdges),\n/* harmony export */ Layer: () => (/* reexport safe */ _layers_layer_js__WEBPACK_IMPORTED_MODULE_107__.Layer),\n/* harmony export */ LayerInfo: () => (/* reexport safe */ _tours_tour_stop_js__WEBPACK_IMPORTED_MODULE_121__.LayerInfo),\n/* harmony export */ LayerManager: () => (/* reexport safe */ _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_129__.LayerManager),\n/* harmony export */ LayerMap: () => (/* reexport safe */ _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_129__.LayerMap),\n/* harmony export */ LayerUI: () => (/* reexport safe */ _layers_layer_ui_js__WEBPACK_IMPORTED_MODULE_108__.LayerUI),\n/* harmony export */ LayerUIMenuItem: () => (/* reexport safe */ _layers_layer_ui_js__WEBPACK_IMPORTED_MODULE_108__.LayerUIMenuItem),\n/* harmony export */ LayerUITreeNode: () => (/* reexport safe */ _layers_layer_ui_js__WEBPACK_IMPORTED_MODULE_108__.LayerUITreeNode),\n/* harmony export */ LineList: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.LineList),\n/* harmony export */ LineShaderNormalDates: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.LineShaderNormalDates),\n/* harmony export */ Linepoint: () => (/* reexport safe */ _constellations_js__WEBPACK_IMPORTED_MODULE_92__.Linepoint),\n/* harmony export */ Lineset: () => (/* reexport safe */ _constellations_js__WEBPACK_IMPORTED_MODULE_92__.Lineset),\n/* harmony export */ LocationHint: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.LocationHint),\n/* harmony export */ LoopTypes: () => (/* reexport safe */ _tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__.LoopTypes),\n/* harmony export */ MIFR: () => (/* reexport safe */ _astrocalc_moon_illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_29__.MIFR),\n/* harmony export */ MPAC: () => (/* reexport safe */ _astrocalc_moon_perigee_apogee_js__WEBPACK_IMPORTED_MODULE_31__.MPAC),\n/* harmony export */ MarkerMixes: () => (/* reexport safe */ _layers_time_series_layer_js__WEBPACK_IMPORTED_MODULE_126__.MarkerMixes),\n/* harmony export */ MarkerScales: () => (/* reexport safe */ _layers_time_series_layer_js__WEBPACK_IMPORTED_MODULE_126__.MarkerScales),\n/* harmony export */ MasterTime: () => (/* reexport safe */ _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_124__.MasterTime),\n/* harmony export */ Material: () => (/* reexport safe */ _layers_object3d_js__WEBPACK_IMPORTED_MODULE_112__.Material),\n/* harmony export */ Matrix2d: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.Matrix2d),\n/* harmony export */ Matrix3d: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.Matrix3d),\n/* harmony export */ MercatorTile: () => (/* reexport safe */ _mercator_tile_js__WEBPACK_IMPORTED_MODULE_83__.MercatorTile),\n/* harmony export */ Mesh: () => (/* reexport safe */ _layers_object3d_js__WEBPACK_IMPORTED_MODULE_112__.Mesh),\n/* harmony export */ ModelShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.ModelShader),\n/* harmony export */ ModelShaderTan: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.ModelShaderTan),\n/* harmony export */ MoonCoefficient1: () => (/* reexport safe */ _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_28__.MoonCoefficient1),\n/* harmony export */ MoonCoefficient2: () => (/* reexport safe */ _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_28__.MoonCoefficient2),\n/* harmony export */ Mouse: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.Mouse),\n/* harmony export */ NUC: () => (/* reexport safe */ _astrocalc_nutation_js__WEBPACK_IMPORTED_MODULE_7__.NUC),\n/* harmony export */ Object3d: () => (/* reexport safe */ _layers_object3d_js__WEBPACK_IMPORTED_MODULE_112__.Object3d),\n/* harmony export */ Object3dLayer: () => (/* reexport safe */ _layers_object3d_js__WEBPACK_IMPORTED_MODULE_112__.Object3dLayer),\n/* harmony export */ Object3dLayerUI: () => (/* reexport safe */ _layers_object3d_js__WEBPACK_IMPORTED_MODULE_112__.Object3dLayerUI),\n/* harmony export */ ObjectNode: () => (/* reexport safe */ _layers_object3d_js__WEBPACK_IMPORTED_MODULE_112__.ObjectNode),\n/* harmony export */ Orbit: () => (/* reexport safe */ _layers_orbit_js__WEBPACK_IMPORTED_MODULE_113__.Orbit),\n/* harmony export */ OrbitLayer: () => (/* reexport safe */ _layers_orbit_layer_js__WEBPACK_IMPORTED_MODULE_115__.OrbitLayer),\n/* harmony export */ OrbitLayerUI: () => (/* reexport safe */ _layers_orbit_layer_js__WEBPACK_IMPORTED_MODULE_115__.OrbitLayerUI),\n/* harmony export */ OrbitLineList: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.OrbitLineList),\n/* harmony export */ OrbitLineShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.OrbitLineShader),\n/* harmony export */ Overlay: () => (/* reexport safe */ _tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__.Overlay),\n/* harmony export */ OverlayAnchor: () => (/* reexport safe */ _tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__.OverlayAnchor),\n/* harmony export */ OverlayList: () => (/* reexport safe */ _tours_tour_editor_js__WEBPACK_IMPORTED_MODULE_123__.OverlayList),\n/* harmony export */ OverlayProperties: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.OverlayProperties),\n/* harmony export */ Place: () => (/* reexport safe */ _place_js__WEBPACK_IMPORTED_MODULE_95__.Place),\n/* harmony export */ PlaneD: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.PlaneD),\n/* harmony export */ Planets: () => (/* reexport safe */ _planets_js__WEBPACK_IMPORTED_MODULE_94__.Planets),\n/* harmony export */ PlotTile: () => (/* reexport safe */ _plot_tile_js__WEBPACK_IMPORTED_MODULE_84__.PlotTile),\n/* harmony export */ PlotTypes: () => (/* reexport safe */ _layers_time_series_layer_js__WEBPACK_IMPORTED_MODULE_126__.PlotTypes),\n/* harmony export */ PlutoCoefficient1: () => (/* reexport safe */ _astrocalc_pluto_js__WEBPACK_IMPORTED_MODULE_16__.PlutoCoefficient1),\n/* harmony export */ PlutoCoefficient2: () => (/* reexport safe */ _astrocalc_pluto_js__WEBPACK_IMPORTED_MODULE_16__.PlutoCoefficient2),\n/* harmony export */ PointList: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.PointList),\n/* harmony export */ PointScaleTypes: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.PointScaleTypes),\n/* harmony export */ PointType: () => (/* reexport safe */ _constellations_js__WEBPACK_IMPORTED_MODULE_92__.PointType),\n/* harmony export */ Pointing: () => (/* reexport safe */ _pointing_js__WEBPACK_IMPORTED_MODULE_99__.Pointing),\n/* harmony export */ Poly: () => (/* reexport safe */ _annotation_js__WEBPACK_IMPORTED_MODULE_66__.Poly),\n/* harmony export */ PolyLine: () => (/* reexport safe */ _annotation_js__WEBPACK_IMPORTED_MODULE_66__.PolyLine),\n/* harmony export */ PopupColorPicker: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.PopupColorPicker),\n/* harmony export */ PopupVolume: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.PopupVolume),\n/* harmony export */ PositionColored: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.PositionColored),\n/* harmony export */ PositionColoredTextured: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.PositionColoredTextured),\n/* harmony export */ PositionNormalTextured: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.PositionNormalTextured),\n/* harmony export */ PositionNormalTexturedTangent: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.PositionNormalTexturedTangent),\n/* harmony export */ PositionNormalTexturedTangentVertexBuffer: () => (/* reexport safe */ _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_48__.PositionNormalTexturedTangentVertexBuffer),\n/* harmony export */ PositionNormalTexturedVertexBuffer: () => (/* reexport safe */ _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_48__.PositionNormalTexturedVertexBuffer),\n/* harmony export */ PositionNormalTexturedX2: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.PositionNormalTexturedX2),\n/* harmony export */ PositionTexture: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.PositionTexture),\n/* harmony export */ PositionVertexBuffer: () => (/* reexport safe */ _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_48__.PositionVertexBuffer),\n/* harmony export */ Primitives: () => (/* reexport safe */ _layers_vo_table_js__WEBPACK_IMPORTED_MODULE_117__.Primitives),\n/* harmony export */ ProjectionType: () => (/* reexport safe */ _imageset_js__WEBPACK_IMPORTED_MODULE_88__.ProjectionType),\n/* harmony export */ PushPin: () => (/* reexport safe */ _layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_127__.PushPin),\n/* harmony export */ RAUnits: () => (/* reexport safe */ _layers_time_series_layer_js__WEBPACK_IMPORTED_MODULE_126__.RAUnits),\n/* harmony export */ Rectangle: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.Rectangle),\n/* harmony export */ ReferenceFrame: () => (/* reexport safe */ _layers_reference_frame_js__WEBPACK_IMPORTED_MODULE_114__.ReferenceFrame),\n/* harmony export */ ReferenceFrameProps: () => (/* reexport safe */ _layers_manager_dialogs_js__WEBPACK_IMPORTED_MODULE_131__.ReferenceFrameProps),\n/* harmony export */ ReferenceFrameTypes: () => (/* reexport safe */ _layers_reference_frame_js__WEBPACK_IMPORTED_MODULE_114__.ReferenceFrameTypes),\n/* harmony export */ ReferenceFrames: () => (/* reexport safe */ _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_129__.ReferenceFrames),\n/* harmony export */ RenderContext: () => (/* reexport safe */ _render_context_js__WEBPACK_IMPORTED_MODULE_137__.RenderContext),\n/* harmony export */ RenderTriangle: () => (/* reexport safe */ _render_triangle_js__WEBPACK_IMPORTED_MODULE_80__.RenderTriangle),\n/* harmony export */ RiseSetDetails: () => (/* reexport safe */ _astrocalc_js__WEBPACK_IMPORTED_MODULE_47__.RiseSetDetails),\n/* harmony export */ ScaleLinear: () => (/* reexport safe */ _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_76__.ScaleLinear),\n/* harmony export */ ScaleLog: () => (/* reexport safe */ _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_76__.ScaleLog),\n/* harmony export */ ScaleMap: () => (/* reexport safe */ _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_76__.ScaleMap),\n/* harmony export */ ScalePow: () => (/* reexport safe */ _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_76__.ScalePow),\n/* harmony export */ ScaleSqrt: () => (/* reexport safe */ _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_76__.ScaleSqrt),\n/* harmony export */ ScaleTypes: () => (/* reexport safe */ _fits_properties_js__WEBPACK_IMPORTED_MODULE_69__.ScaleTypes),\n/* harmony export */ ScriptInterface: () => (/* reexport safe */ _script_interface_js__WEBPACK_IMPORTED_MODULE_138__.ScriptInterface),\n/* harmony export */ SelectLink: () => (/* reexport safe */ _util_js__WEBPACK_IMPORTED_MODULE_46__.SelectLink),\n/* harmony export */ Selection: () => (/* reexport safe */ _tours_selection_js__WEBPACK_IMPORTED_MODULE_120__.Selection),\n/* harmony export */ SelectionAnchor: () => (/* reexport safe */ _tours_selection_js__WEBPACK_IMPORTED_MODULE_120__.SelectionAnchor),\n/* harmony export */ SettingParameter: () => (/* reexport safe */ _settings_js__WEBPACK_IMPORTED_MODULE_89__.SettingParameter),\n/* harmony export */ Settings: () => (/* reexport safe */ _settings_js__WEBPACK_IMPORTED_MODULE_89__.Settings),\n/* harmony export */ ShapeOverlay: () => (/* reexport safe */ _tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__.ShapeOverlay),\n/* harmony export */ ShapeSpriteShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.ShapeSpriteShader),\n/* harmony export */ ShapeType: () => (/* reexport safe */ _tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__.ShapeType),\n/* harmony export */ ShortIndexBuffer: () => (/* reexport safe */ _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_48__.ShortIndexBuffer),\n/* harmony export */ SimpleInput: () => (/* reexport safe */ _utilities_simple_input_js__WEBPACK_IMPORTED_MODULE_57__.SimpleInput),\n/* harmony export */ SimpleLineList: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.SimpleLineList),\n/* harmony export */ SimpleLineShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.SimpleLineShader),\n/* harmony export */ SimpleLineShader2D: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.SimpleLineShader2D),\n/* harmony export */ SkyImageTile: () => (/* reexport safe */ _sky_image_tile_js__WEBPACK_IMPORTED_MODULE_86__.SkyImageTile),\n/* harmony export */ SkyOverlays: () => (/* reexport safe */ _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_129__.SkyOverlays),\n/* harmony export */ SlideChangedEventArgs: () => (/* reexport safe */ _script_interface_js__WEBPACK_IMPORTED_MODULE_138__.SlideChangedEventArgs),\n/* harmony export */ SolarSystemObjects: () => (/* reexport safe */ _camera_parameters_js__WEBPACK_IMPORTED_MODULE_67__.SolarSystemObjects),\n/* harmony export */ SoundEditor: () => (/* reexport safe */ _tours_tour_editor_js__WEBPACK_IMPORTED_MODULE_123__.SoundEditor),\n/* harmony export */ SpaceTimeController: () => (/* reexport safe */ _space_time_controller_js__WEBPACK_IMPORTED_MODULE_93__.SpaceTimeController),\n/* harmony export */ SphereHull: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.SphereHull),\n/* harmony export */ SpreadSheetLayer: () => (/* reexport safe */ _layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_127__.SpreadSheetLayer),\n/* harmony export */ SpriteShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.SpriteShader),\n/* harmony export */ Star: () => (/* reexport safe */ _star_js__WEBPACK_IMPORTED_MODULE_70__.Star),\n/* harmony export */ StateType: () => (/* reexport safe */ _web_file_js__WEBPACK_IMPORTED_MODULE_72__.StateType),\n/* harmony export */ StockSkyOverlayTypes: () => (/* reexport safe */ _settings_js__WEBPACK_IMPORTED_MODULE_89__.StockSkyOverlayTypes),\n/* harmony export */ Table: () => (/* reexport safe */ _layers_table_js__WEBPACK_IMPORTED_MODULE_116__.Table),\n/* harmony export */ TagMe: () => (/* reexport safe */ _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_55__.TagMe),\n/* harmony export */ TangentTile: () => (/* reexport safe */ _tangent_tile_js__WEBPACK_IMPORTED_MODULE_85__.TangentTile),\n/* harmony export */ Tessellator: () => (/* reexport safe */ _graphics_tessellator_js__WEBPACK_IMPORTED_MODULE_50__.Tessellator),\n/* harmony export */ Text3d: () => (/* reexport safe */ _sky_text_js__WEBPACK_IMPORTED_MODULE_91__.Text3d),\n/* harmony export */ Text3dBatch: () => (/* reexport safe */ _sky_text_js__WEBPACK_IMPORTED_MODULE_91__.Text3dBatch),\n/* harmony export */ TextBorderStyle: () => (/* reexport safe */ _tours_text_object_js__WEBPACK_IMPORTED_MODULE_90__.TextBorderStyle),\n/* harmony export */ TextObject: () => (/* reexport safe */ _tours_text_object_js__WEBPACK_IMPORTED_MODULE_90__.TextObject),\n/* harmony export */ TextOverlay: () => (/* reexport safe */ _tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__.TextOverlay),\n/* harmony export */ TextShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.TextShader),\n/* harmony export */ Texture: () => (/* reexport safe */ _graphics_texture_js__WEBPACK_IMPORTED_MODULE_49__.Texture),\n/* harmony export */ ThumbnailSize: () => (/* reexport safe */ _folder_browser_js__WEBPACK_IMPORTED_MODULE_135__.ThumbnailSize),\n/* harmony export */ Tile: () => (/* reexport safe */ _tile_js__WEBPACK_IMPORTED_MODULE_78__.Tile),\n/* harmony export */ TileCache: () => (/* reexport safe */ _tile_cache_js__WEBPACK_IMPORTED_MODULE_79__.TileCache),\n/* harmony export */ TileShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.TileShader),\n/* harmony export */ TimeLine: () => (/* reexport safe */ _tours_tour_editor_js__WEBPACK_IMPORTED_MODULE_123__.TimeLine),\n/* harmony export */ TimeSeriesLayer: () => (/* reexport safe */ _layers_time_series_layer_js__WEBPACK_IMPORTED_MODULE_126__.TimeSeriesLayer),\n/* harmony export */ TimeSeriesLineVertex: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.TimeSeriesLineVertex),\n/* harmony export */ TimeSeriesPointSpriteShader: () => (/* reexport safe */ _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__.TimeSeriesPointSpriteShader),\n/* harmony export */ TimeSeriesPointVertex: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.TimeSeriesPointVertex),\n/* harmony export */ ToastTile: () => (/* reexport safe */ _toast_tile_js__WEBPACK_IMPORTED_MODULE_87__.ToastTile),\n/* harmony export */ ToolStripMenuItem: () => (/* reexport safe */ _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_55__.ToolStripMenuItem),\n/* harmony export */ ToolStripSeparator: () => (/* reexport safe */ _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_55__.ToolStripSeparator),\n/* harmony export */ Tour: () => (/* reexport safe */ _tour_js__WEBPACK_IMPORTED_MODULE_100__.Tour),\n/* harmony export */ TourDocument: () => (/* reexport safe */ _tours_tour_document_js__WEBPACK_IMPORTED_MODULE_132__.TourDocument),\n/* harmony export */ TourEdit: () => (/* reexport safe */ _tours_tour_editor_js__WEBPACK_IMPORTED_MODULE_123__.TourEdit),\n/* harmony export */ TourEditTab: () => (/* reexport safe */ _tours_tour_edit_js__WEBPACK_IMPORTED_MODULE_133__.TourEditTab),\n/* harmony export */ TourEditor: () => (/* reexport safe */ _tours_tour_editor_js__WEBPACK_IMPORTED_MODULE_123__.TourEditor),\n/* harmony export */ TourPlayer: () => (/* reexport safe */ _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_124__.TourPlayer),\n/* harmony export */ TourStop: () => (/* reexport safe */ _tours_tour_stop_js__WEBPACK_IMPORTED_MODULE_121__.TourStop),\n/* harmony export */ TourStopList: () => (/* reexport safe */ _tours_tour_editor_js__WEBPACK_IMPORTED_MODULE_123__.TourStopList),\n/* harmony export */ TransitionType: () => (/* reexport safe */ _tours_tour_stop_js__WEBPACK_IMPORTED_MODULE_121__.TransitionType),\n/* harmony export */ TriangleFanList: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.TriangleFanList),\n/* harmony export */ TriangleList: () => (/* reexport safe */ _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__.TriangleList),\n/* harmony export */ URLHelpers: () => (/* reexport safe */ _url_helpers_js__WEBPACK_IMPORTED_MODULE_44__.URLHelpers),\n/* harmony export */ URLRewriteMode: () => (/* reexport safe */ _url_helpers_js__WEBPACK_IMPORTED_MODULE_44__.URLRewriteMode),\n/* harmony export */ UiTools: () => (/* reexport safe */ _ui_tools_js__WEBPACK_IMPORTED_MODULE_71__.UiTools),\n/* harmony export */ Undo: () => (/* reexport safe */ _tours_undo_js__WEBPACK_IMPORTED_MODULE_122__.Undo),\n/* harmony export */ UndoStep: () => (/* reexport safe */ _tours_undo_js__WEBPACK_IMPORTED_MODULE_122__.UndoStep),\n/* harmony export */ UndoTourPropertiesChange: () => (/* reexport safe */ _tours_undo_js__WEBPACK_IMPORTED_MODULE_122__.UndoTourPropertiesChange),\n/* harmony export */ UndoTourSlidelistChange: () => (/* reexport safe */ _tours_undo_js__WEBPACK_IMPORTED_MODULE_122__.UndoTourSlidelistChange),\n/* harmony export */ UndoTourStopChange: () => (/* reexport safe */ _tours_tour_stop_js__WEBPACK_IMPORTED_MODULE_121__.UndoTourStopChange),\n/* harmony export */ UserLevel: () => (/* reexport safe */ _tours_tour_document_js__WEBPACK_IMPORTED_MODULE_132__.UserLevel),\n/* harmony export */ Util: () => (/* reexport safe */ _baseutil_js__WEBPACK_IMPORTED_MODULE_1__.Util),\n/* harmony export */ VSC: () => (/* reexport safe */ _astrocalc_earth_js__WEBPACK_IMPORTED_MODULE_5__.VSC),\n/* harmony export */ Vector2d: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.Vector2d),\n/* harmony export */ Vector3d: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.Vector3d),\n/* harmony export */ Vector4d: () => (/* reexport safe */ _double3d_js__WEBPACK_IMPORTED_MODULE_45__.Vector4d),\n/* harmony export */ VertexBufferBase: () => (/* reexport safe */ _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_48__.VertexBufferBase),\n/* harmony export */ VideoOutputType: () => (/* reexport safe */ _video_output_type_js__WEBPACK_IMPORTED_MODULE_101__.VideoOutputType),\n/* harmony export */ ViewMoverKenBurnsStyle: () => (/* reexport safe */ _view_mover_js__WEBPACK_IMPORTED_MODULE_102__.ViewMoverKenBurnsStyle),\n/* harmony export */ VizLayer: () => (/* reexport safe */ _viz_layer_js__WEBPACK_IMPORTED_MODULE_103__.VizLayer),\n/* harmony export */ VoColumn: () => (/* reexport safe */ _layers_vo_table_js__WEBPACK_IMPORTED_MODULE_117__.VoColumn),\n/* harmony export */ VoRow: () => (/* reexport safe */ _layers_vo_table_js__WEBPACK_IMPORTED_MODULE_117__.VoRow),\n/* harmony export */ VoTable: () => (/* reexport safe */ _layers_vo_table_js__WEBPACK_IMPORTED_MODULE_117__.VoTable),\n/* harmony export */ VoTableLayer: () => (/* reexport safe */ _layers_vo_table_layer_js__WEBPACK_IMPORTED_MODULE_128__.VoTableLayer),\n/* harmony export */ WWTControl: () => (/* reexport safe */ _wwt_control_js__WEBPACK_IMPORTED_MODULE_139__.WWTControl),\n/* harmony export */ WWTControlBuilder: () => (/* reexport safe */ _wwt_control_js__WEBPACK_IMPORTED_MODULE_139__.WWTControlBuilder),\n/* harmony export */ WWTElementEvent: () => (/* reexport safe */ _wwt_control_js__WEBPACK_IMPORTED_MODULE_139__.WWTElementEvent),\n/* harmony export */ WcsImage: () => (/* reexport safe */ _layers_wcs_image_js__WEBPACK_IMPORTED_MODULE_74__.WcsImage),\n/* harmony export */ WebFile: () => (/* reexport safe */ _web_file_js__WEBPACK_IMPORTED_MODULE_72__.WebFile),\n/* harmony export */ Wtml: () => (/* reexport safe */ _wtml_js__WEBPACK_IMPORTED_MODULE_140__.Wtml),\n/* harmony export */ XmlTextWriter: () => (/* reexport safe */ _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_58__.XmlTextWriter),\n/* harmony export */ Xyf: () => (/* reexport safe */ _healpix_tile_js__WEBPACK_IMPORTED_MODULE_82__.Xyf),\n/* harmony export */ set_tilePrepDevice: () => (/* reexport safe */ _render_globals_js__WEBPACK_IMPORTED_MODULE_53__.set_tilePrepDevice),\n/* harmony export */ set_useGlVersion2: () => (/* reexport safe */ _render_globals_js__WEBPACK_IMPORTED_MODULE_53__.set_useGlVersion2),\n/* harmony export */ ss: () => (/* reexport safe */ _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss)\n/* harmony export */ });\n/* harmony import */ var _ss_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ss.js */ \"./esm/ss.js\");\n/* harmony import */ var _baseutil_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./baseutil.js */ \"./esm/baseutil.js\");\n/* harmony import */ var _astrocalc_date_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./astrocalc/date.js */ \"./esm/astrocalc/date.js\");\n/* harmony import */ var _astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./astrocalc/coordinate_transformation.js */ \"./esm/astrocalc/coordinate_transformation.js\");\n/* harmony import */ var _astrocalc_angular_separation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./astrocalc/angular_separation.js */ \"./esm/astrocalc/angular_separation.js\");\n/* harmony import */ var _astrocalc_earth_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./astrocalc/earth.js */ \"./esm/astrocalc/earth.js\");\n/* harmony import */ var _astrocalc_fk5_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./astrocalc/fk5.js */ \"./esm/astrocalc/fk5.js\");\n/* harmony import */ var _astrocalc_nutation_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./astrocalc/nutation.js */ \"./esm/astrocalc/nutation.js\");\n/* harmony import */ var _astrocalc_sun_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./astrocalc/sun.js */ \"./esm/astrocalc/sun.js\");\n/* harmony import */ var _astrocalc_mercury_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./astrocalc/mercury.js */ \"./esm/astrocalc/mercury.js\");\n/* harmony import */ var _astrocalc_venus_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./astrocalc/venus.js */ \"./esm/astrocalc/venus.js\");\n/* harmony import */ var _astrocalc_mars_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./astrocalc/mars.js */ \"./esm/astrocalc/mars.js\");\n/* harmony import */ var _astrocalc_jupiter_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./astrocalc/jupiter.js */ \"./esm/astrocalc/jupiter.js\");\n/* harmony import */ var _astrocalc_saturn_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./astrocalc/saturn.js */ \"./esm/astrocalc/saturn.js\");\n/* harmony import */ var _astrocalc_uranus_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./astrocalc/uranus.js */ \"./esm/astrocalc/uranus.js\");\n/* harmony import */ var _astrocalc_neptune_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./astrocalc/neptune.js */ \"./esm/astrocalc/neptune.js\");\n/* harmony import */ var _astrocalc_pluto_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./astrocalc/pluto.js */ \"./esm/astrocalc/pluto.js\");\n/* harmony import */ var _astrocalc_kepler_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./astrocalc/kepler.js */ \"./esm/astrocalc/kepler.js\");\n/* harmony import */ var _astrocalc_aberration_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./astrocalc/aberration.js */ \"./esm/astrocalc/aberration.js\");\n/* harmony import */ var _astrocalc_dynamical_time_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./astrocalc/dynamical_time.js */ \"./esm/astrocalc/dynamical_time.js\");\n/* harmony import */ var _astrocalc_ecliptical_elements_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./astrocalc/ecliptical_elements.js */ \"./esm/astrocalc/ecliptical_elements.js\");\n/* harmony import */ var _astrocalc_elements_planetary_orbit_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./astrocalc/elements_planetary_orbit.js */ \"./esm/astrocalc/elements_planetary_orbit.js\");\n/* harmony import */ var _astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./astrocalc/elliptical.js */ \"./esm/astrocalc/elliptical.js\");\n/* harmony import */ var _astrocalc_equation_of_time_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./astrocalc/equation_of_time.js */ \"./esm/astrocalc/equation_of_time.js\");\n/* harmony import */ var _astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./astrocalc/galilean_moons.js */ \"./esm/astrocalc/galilean_moons.js\");\n/* harmony import */ var _astrocalc_globe_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./astrocalc/globe.js */ \"./esm/astrocalc/globe.js\");\n/* harmony import */ var _astrocalc_illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./astrocalc/illuminated_fraction.js */ \"./esm/astrocalc/illuminated_fraction.js\");\n/* harmony import */ var _astrocalc_interpolate_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./astrocalc/interpolate.js */ \"./esm/astrocalc/interpolate.js\");\n/* harmony import */ var _astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./astrocalc/moon.js */ \"./esm/astrocalc/moon.js\");\n/* harmony import */ var _astrocalc_moon_illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./astrocalc/moon_illuminated_fraction.js */ \"./esm/astrocalc/moon_illuminated_fraction.js\");\n/* harmony import */ var _astrocalc_moon_nodes_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./astrocalc/moon_nodes.js */ \"./esm/astrocalc/moon_nodes.js\");\n/* harmony import */ var _astrocalc_moon_perigee_apogee_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./astrocalc/moon_perigee_apogee.js */ \"./esm/astrocalc/moon_perigee_apogee.js\");\n/* harmony import */ var _astrocalc_moon_phases_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./astrocalc/moon_phases.js */ \"./esm/astrocalc/moon_phases.js\");\n/* harmony import */ var _astrocalc_parallax_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./astrocalc/parallax.js */ \"./esm/astrocalc/parallax.js\");\n/* harmony import */ var _astrocalc_sidereal_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./astrocalc/sidereal.js */ \"./esm/astrocalc/sidereal.js\");\n/* harmony import */ var _astrocalc_physical_jupiter_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./astrocalc/physical_jupiter.js */ \"./esm/astrocalc/physical_jupiter.js\");\n/* harmony import */ var _astrocalc_physical_mars_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./astrocalc/physical_mars.js */ \"./esm/astrocalc/physical_mars.js\");\n/* harmony import */ var _astrocalc_physical_sun_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./astrocalc/physical_sun.js */ \"./esm/astrocalc/physical_sun.js\");\n/* harmony import */ var _astrocalc_precession_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./astrocalc/precession.js */ \"./esm/astrocalc/precession.js\");\n/* harmony import */ var _astrocalc_rise_transit_set_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./astrocalc/rise_transit_set.js */ \"./esm/astrocalc/rise_transit_set.js\");\n/* harmony import */ var _astrocalc_saturn_rings_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./astrocalc/saturn_rings.js */ \"./esm/astrocalc/saturn_rings.js\");\n/* harmony import */ var _astrocalc_stellar_magnitudes_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./astrocalc/stellar_magnitudes.js */ \"./esm/astrocalc/stellar_magnitudes.js\");\n/* harmony import */ var _blend_state_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./blend_state.js */ \"./esm/blend_state.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./color.js */ \"./esm/color.js\");\n/* harmony import */ var _url_helpers_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./url_helpers.js */ \"./esm/url_helpers.js\");\n/* harmony import */ var _double3d_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./double3d.js */ \"./esm/double3d.js\");\n/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./util.js */ \"./esm/util.js\");\n/* harmony import */ var _astrocalc_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./astrocalc.js */ \"./esm/astrocalc.js\");\n/* harmony import */ var _graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./graphics/gl_buffers.js */ \"./esm/graphics/gl_buffers.js\");\n/* harmony import */ var _graphics_texture_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./graphics/texture.js */ \"./esm/graphics/texture.js\");\n/* harmony import */ var _graphics_tessellator_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./graphics/tessellator.js */ \"./esm/graphics/tessellator.js\");\n/* harmony import */ var _graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./graphics/shaders.js */ \"./esm/graphics/shaders.js\");\n/* harmony import */ var _graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./graphics/primitives3d.js */ \"./esm/graphics/primitives3d.js\");\n/* harmony import */ var _render_globals_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./render_globals.js */ \"./esm/render_globals.js\");\n/* harmony import */ var _utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./utilities/bitmap.js */ \"./esm/utilities/bitmap.js\");\n/* harmony import */ var _utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./utilities/context_menu_strip.js */ \"./esm/utilities/context_menu_strip.js\");\n/* harmony import */ var _utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./utilities/binary_reader.js */ \"./esm/utilities/binary_reader.js\");\n/* harmony import */ var _utilities_simple_input_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./utilities/simple_input.js */ \"./esm/utilities/simple_input.js\");\n/* harmony import */ var _utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./utilities/xml_text_writer.js */ \"./esm/utilities/xml_text_writer.js\");\n/* harmony import */ var _coordinates_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./coordinates.js */ \"./esm/coordinates.js\");\n/* harmony import */ var _fast_math_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ./fast_math.js */ \"./esm/fast_math.js\");\n/* harmony import */ var _healpix_tables_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./healpix_tables.js */ \"./esm/healpix_tables.js\");\n/* harmony import */ var _healpix_utils_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./healpix_utils.js */ \"./esm/healpix_utils.js\");\n/* harmony import */ var _hploc_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./hploc.js */ \"./esm/hploc.js\");\n/* harmony import */ var _fxyf_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./fxyf.js */ \"./esm/fxyf.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ./interfaces.js */ \"./esm/interfaces.js\");\n/* harmony import */ var _annotation_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./annotation.js */ \"./esm/annotation.js\");\n/* harmony import */ var _camera_parameters_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./camera_parameters.js */ \"./esm/camera_parameters.js\");\n/* harmony import */ var _constellation_filter_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./constellation_filter.js */ \"./esm/constellation_filter.js\");\n/* harmony import */ var _fits_properties_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ./fits_properties.js */ \"./esm/fits_properties.js\");\n/* harmony import */ var _star_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ./star.js */ \"./esm/star.js\");\n/* harmony import */ var _ui_tools_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ./ui_tools.js */ \"./esm/ui_tools.js\");\n/* harmony import */ var _web_file_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ./web_file.js */ \"./esm/web_file.js\");\n/* harmony import */ var _layers_color_map_container_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ./layers/color_map_container.js */ \"./esm/layers/color_map_container.js\");\n/* harmony import */ var _layers_wcs_image_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ./layers/wcs_image.js */ \"./esm/layers/wcs_image.js\");\n/* harmony import */ var _layers_fits_image_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ./layers/fits_image.js */ \"./esm/layers/fits_image.js\");\n/* harmony import */ var _layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ./layers/fits_image_js.js */ \"./esm/layers/fits_image_js.js\");\n/* harmony import */ var _layers_fits_image_tile_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ./layers/fits_image_tile.js */ \"./esm/layers/fits_image_tile.js\");\n/* harmony import */ var _tile_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ./tile.js */ \"./esm/tile.js\");\n/* harmony import */ var _tile_cache_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ./tile_cache.js */ \"./esm/tile_cache.js\");\n/* harmony import */ var _render_triangle_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ./render_triangle.js */ \"./esm/render_triangle.js\");\n/* harmony import */ var _equirectangular_tile_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ./equirectangular_tile.js */ \"./esm/equirectangular_tile.js\");\n/* harmony import */ var _healpix_tile_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ./healpix_tile.js */ \"./esm/healpix_tile.js\");\n/* harmony import */ var _mercator_tile_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ./mercator_tile.js */ \"./esm/mercator_tile.js\");\n/* harmony import */ var _plot_tile_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ./plot_tile.js */ \"./esm/plot_tile.js\");\n/* harmony import */ var _tangent_tile_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ./tangent_tile.js */ \"./esm/tangent_tile.js\");\n/* harmony import */ var _sky_image_tile_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ./sky_image_tile.js */ \"./esm/sky_image_tile.js\");\n/* harmony import */ var _toast_tile_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ./toast_tile.js */ \"./esm/toast_tile.js\");\n/* harmony import */ var _imageset_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ./imageset.js */ \"./esm/imageset.js\");\n/* harmony import */ var _settings_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ./settings.js */ \"./esm/settings.js\");\n/* harmony import */ var _tours_text_object_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ./tours/text_object.js */ \"./esm/tours/text_object.js\");\n/* harmony import */ var _sky_text_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ./sky_text.js */ \"./esm/sky_text.js\");\n/* harmony import */ var _constellations_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ./constellations.js */ \"./esm/constellations.js\");\n/* harmony import */ var _space_time_controller_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ./space_time_controller.js */ \"./esm/space_time_controller.js\");\n/* harmony import */ var _planets_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ./planets.js */ \"./esm/planets.js\");\n/* harmony import */ var _place_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ./place.js */ \"./esm/place.js\");\n/* harmony import */ var _folder_up_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ./folder_up.js */ \"./esm/folder_up.js\");\n/* harmony import */ var _grids_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ./grids.js */ \"./esm/grids.js\");\n/* harmony import */ var _kepler_vertex_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ./kepler_vertex.js */ \"./esm/kepler_vertex.js\");\n/* harmony import */ var _pointing_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ./pointing.js */ \"./esm/pointing.js\");\n/* harmony import */ var _tour_js__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ./tour.js */ \"./esm/tour.js\");\n/* harmony import */ var _video_output_type_js__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ./video_output_type.js */ \"./esm/video_output_type.js\");\n/* harmony import */ var _view_mover_js__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ./view_mover.js */ \"./esm/view_mover.js\");\n/* harmony import */ var _viz_layer_js__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(/*! ./viz_layer.js */ \"./esm/viz_layer.js\");\n/* harmony import */ var _utilities_color_picker_js__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(/*! ./utilities/color_picker.js */ \"./esm/utilities/color_picker.js\");\n/* harmony import */ var _utilities_dialog_js__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(/*! ./utilities/dialog.js */ \"./esm/utilities/dialog.js\");\n/* harmony import */ var _utilities_histogram_js__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(/*! ./utilities/histogram.js */ \"./esm/utilities/histogram.js\");\n/* harmony import */ var _layers_layer_js__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(/*! ./layers/layer.js */ \"./esm/layers/layer.js\");\n/* harmony import */ var _layers_layer_ui_js__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(/*! ./layers/layer_ui.js */ \"./esm/layers/layer_ui.js\");\n/* harmony import */ var _layers_great_circle_route_layer_js__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(/*! ./layers/great_circle_route_layer.js */ \"./esm/layers/great_circle_route_layer.js\");\n/* harmony import */ var _layers_grid_layer_js__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(/*! ./layers/grid_layer.js */ \"./esm/layers/grid_layer.js\");\n/* harmony import */ var _layers_imageset_layer_js__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(/*! ./layers/imageset_layer.js */ \"./esm/layers/imageset_layer.js\");\n/* harmony import */ var _layers_object3d_js__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(/*! ./layers/object3d.js */ \"./esm/layers/object3d.js\");\n/* harmony import */ var _layers_orbit_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(/*! ./layers/orbit.js */ \"./esm/layers/orbit.js\");\n/* harmony import */ var _layers_reference_frame_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(/*! ./layers/reference_frame.js */ \"./esm/layers/reference_frame.js\");\n/* harmony import */ var _layers_orbit_layer_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(/*! ./layers/orbit_layer.js */ \"./esm/layers/orbit_layer.js\");\n/* harmony import */ var _layers_table_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(/*! ./layers/table.js */ \"./esm/layers/table.js\");\n/* harmony import */ var _layers_vo_table_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(/*! ./layers/vo_table.js */ \"./esm/layers/vo_table.js\");\n/* harmony import */ var _tours_file_cabinet_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(/*! ./tours/file_cabinet.js */ \"./esm/tours/file_cabinet.js\");\n/* harmony import */ var _tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(/*! ./tours/overlay.js */ \"./esm/tours/overlay.js\");\n/* harmony import */ var _tours_selection_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(/*! ./tours/selection.js */ \"./esm/tours/selection.js\");\n/* harmony import */ var _tours_tour_stop_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(/*! ./tours/tour_stop.js */ \"./esm/tours/tour_stop.js\");\n/* harmony import */ var _tours_undo_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(/*! ./tours/undo.js */ \"./esm/tours/undo.js\");\n/* harmony import */ var _tours_tour_editor_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(/*! ./tours/tour_editor.js */ \"./esm/tours/tour_editor.js\");\n/* harmony import */ var _tours_tour_player_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(/*! ./tours/tour_player.js */ \"./esm/tours/tour_player.js\");\n/* harmony import */ var _layers_iss_layer_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(/*! ./layers/iss_layer.js */ \"./esm/layers/iss_layer.js\");\n/* harmony import */ var _layers_time_series_layer_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(/*! ./layers/time_series_layer.js */ \"./esm/layers/time_series_layer.js\");\n/* harmony import */ var _layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(/*! ./layers/spreadsheet_layer.js */ \"./esm/layers/spreadsheet_layer.js\");\n/* harmony import */ var _layers_vo_table_layer_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(/*! ./layers/vo_table_layer.js */ \"./esm/layers/vo_table_layer.js\");\n/* harmony import */ var _layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(/*! ./layers/layer_manager.js */ \"./esm/layers/layer_manager.js\");\n/* harmony import */ var _layers_from_xml_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(/*! ./layers/from_xml.js */ \"./esm/layers/from_xml.js\");\n/* harmony import */ var _layers_manager_dialogs_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(/*! ./layers/manager_dialogs.js */ \"./esm/layers/manager_dialogs.js\");\n/* harmony import */ var _tours_tour_document_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(/*! ./tours/tour_document.js */ \"./esm/tours/tour_document.js\");\n/* harmony import */ var _tours_tour_edit_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(/*! ./tours/tour_edit.js */ \"./esm/tours/tour_edit.js\");\n/* harmony import */ var _folder_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(/*! ./folder.js */ \"./esm/folder.js\");\n/* harmony import */ var _folder_browser_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(/*! ./folder_browser.js */ \"./esm/folder_browser.js\");\n/* harmony import */ var _hips_properties_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(/*! ./hips_properties.js */ \"./esm/hips_properties.js\");\n/* harmony import */ var _render_context_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(/*! ./render_context.js */ \"./esm/render_context.js\");\n/* harmony import */ var _script_interface_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(/*! ./script_interface.js */ \"./esm/script_interface.js\");\n/* harmony import */ var _wwt_control_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(/*! ./wwt_control.js */ \"./esm/wwt_control.js\");\n/* harmony import */ var _wtml_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(/*! ./wtml.js */ \"./esm/wtml.js\");\n/* harmony import */ var _typesystem_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(/*! ./typesystem.js */ \"./esm/typesystem.js\");\n/* harmony import */ var _data_globals_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(/*! ./data_globals.js */ \"./esm/data_globals.js\");\n// Copyright 2023 the .NET Foundation\n// Licensed under the MIT License\n\n// The toplevel WorldWide Telescope WebGL engine API module.\n//\n// To maintain compatibility with a *lot* of legacy code, we export way more\n// types and interfaces than we would if we were starting from scratch, often\n// with confusing or misspelled names. So it goes.\n//\n// The import/exports here are in rough dependency order throughout the\n// codebase, although there are numerous places where circular references sneak\n// in.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// These are new, post-C# APIs that we wouldn't normally expose, but they\n// support the test suite.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// To keep API compatibility, we can't fix this typo.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// When we import this module, we install the `Layer.fromXml()` function, which\n// depends on the specific layer types established above. I am probably being\n// too conservative about circular module dependencies but there are worse ways\n// to be.\n\n\n// And when we import *this* module, we also attach some instances to the\n// LayerManager class. I'm not sure if they're even used in the webclient, which\n// would be the only place that reasonably would.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// GFX\n//\n// This was a global holder for constants used in the AstroCalc component. We've\n// moved those constants into their specific modules, but still expose the name\n// just in case someone actually referenced it. Since we've removed all of the\n// constants that it contains, though, if someone was reckless enough to try to\n// use this variable their usage would almost surely be broken by now.\n\n\n\nfunction GFX() { }\n\n(0,_typesystem_js__WEBPACK_IMPORTED_MODULE_141__.registerType)(\"GFX\", [GFX, null, null]);\n\n\n// Nontrivial initializations.\n\n\n\n\n\n\n\n\n\n\n_wwt_control_js__WEBPACK_IMPORTED_MODULE_139__.WWTControl.exploreRoot = new _folder_js__WEBPACK_IMPORTED_MODULE_134__.Folder();\n_wwt_control_js__WEBPACK_IMPORTED_MODULE_139__.WWTControl.singleton = new _wwt_control_js__WEBPACK_IMPORTED_MODULE_139__.WWTControl();\n_wwt_control_js__WEBPACK_IMPORTED_MODULE_139__.WWTControl.singleton.renderContext = new _render_context_js__WEBPACK_IMPORTED_MODULE_137__.RenderContext();\n(0,_data_globals_js__WEBPACK_IMPORTED_MODULE_142__.set_globalWWTControl)(_wwt_control_js__WEBPACK_IMPORTED_MODULE_139__.WWTControl.singleton);\n(0,_render_globals_js__WEBPACK_IMPORTED_MODULE_53__.set_globalRenderContext)(_wwt_control_js__WEBPACK_IMPORTED_MODULE_139__.WWTControl.singleton.renderContext);\n\n_space_time_controller_js__WEBPACK_IMPORTED_MODULE_93__.SpaceTimeController._metaNow = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n_space_time_controller_js__WEBPACK_IMPORTED_MODULE_93__.SpaceTimeController._now = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now();\n_space_time_controller_js__WEBPACK_IMPORTED_MODULE_93__.SpaceTimeController.last = _space_time_controller_js__WEBPACK_IMPORTED_MODULE_93__.SpaceTimeController.get_metaNow();\n_space_time_controller_js__WEBPACK_IMPORTED_MODULE_93__.SpaceTimeController.updateClock();\n\n_kepler_vertex_js__WEBPACK_IMPORTED_MODULE_98__.KeplerVertex.baseDate = _ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.truncate(_space_time_controller_js__WEBPACK_IMPORTED_MODULE_93__.SpaceTimeController.utcToJulian(_ss_js__WEBPACK_IMPORTED_MODULE_0__.ss.now()));\n\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=index.js.map","/* eslint-disable no-unused-vars */\nimport { __values } from \"tslib\";\n// Copyright 2020-2021 the .NET Foundation\n// Licensed under the MIT License\n//\n// Based types used in the WWT WebGL engine.\n//\n// Try to keep everything alphabetized.\nexport var AltTypes;\n(function (AltTypes) {\n AltTypes[AltTypes[\"depth\"] = 0] = \"depth\";\n AltTypes[AltTypes[\"altitude\"] = 1] = \"altitude\";\n AltTypes[AltTypes[\"distance\"] = 2] = \"distance\";\n AltTypes[AltTypes[\"seaLevel\"] = 3] = \"seaLevel\";\n AltTypes[AltTypes[\"terrain\"] = 4] = \"terrain\";\n})(AltTypes || (AltTypes = {}));\nexport var AltUnits;\n(function (AltUnits) {\n AltUnits[AltUnits[\"meters\"] = 1] = \"meters\";\n AltUnits[AltUnits[\"feet\"] = 2] = \"feet\";\n AltUnits[AltUnits[\"inches\"] = 3] = \"inches\";\n AltUnits[AltUnits[\"miles\"] = 4] = \"miles\";\n AltUnits[AltUnits[\"kilometers\"] = 5] = \"kilometers\";\n AltUnits[AltUnits[\"astronomicalUnits\"] = 6] = \"astronomicalUnits\";\n AltUnits[AltUnits[\"lightYears\"] = 7] = \"lightYears\";\n AltUnits[AltUnits[\"parsecs\"] = 8] = \"parsecs\";\n AltUnits[AltUnits[\"megaParsecs\"] = 9] = \"megaParsecs\";\n AltUnits[AltUnits[\"custom\"] = 10] = \"custom\";\n})(AltUnits || (AltUnits = {}));\nexport var BandPass;\n(function (BandPass) {\n BandPass[BandPass[\"gamma\"] = 0] = \"gamma\";\n BandPass[BandPass[\"xRay\"] = 1] = \"xRay\";\n BandPass[BandPass[\"ultraviolet\"] = 2] = \"ultraviolet\";\n BandPass[BandPass[\"visible\"] = 3] = \"visible\";\n BandPass[BandPass[\"hydrogenAlpha\"] = 4] = \"hydrogenAlpha\";\n BandPass[BandPass[\"IR\"] = 4] = \"IR\";\n BandPass[BandPass[\"microwave\"] = 5] = \"microwave\";\n BandPass[BandPass[\"radio\"] = 6] = \"radio\";\n BandPass[BandPass[\"visibleNight\"] = 6] = \"visibleNight\";\n})(BandPass || (BandPass = {}));\nexport var Classification;\n(function (Classification) {\n Classification[Classification[\"star\"] = 1] = \"star\";\n Classification[Classification[\"supernova\"] = 2] = \"supernova\";\n Classification[Classification[\"blackHole\"] = 4] = \"blackHole\";\n Classification[Classification[\"neutronStar\"] = 8] = \"neutronStar\";\n Classification[Classification[\"doubleStar\"] = 16] = \"doubleStar\";\n Classification[Classification[\"multipleStars\"] = 32] = \"multipleStars\";\n Classification[Classification[\"asterism\"] = 64] = \"asterism\";\n Classification[Classification[\"constellation\"] = 128] = \"constellation\";\n Classification[Classification[\"openCluster\"] = 256] = \"openCluster\";\n Classification[Classification[\"globularCluster\"] = 512] = \"globularCluster\";\n Classification[Classification[\"nebulousCluster\"] = 1024] = \"nebulousCluster\";\n Classification[Classification[\"nebula\"] = 2048] = \"nebula\";\n Classification[Classification[\"emissionNebula\"] = 4096] = \"emissionNebula\";\n Classification[Classification[\"planetaryNebula\"] = 8192] = \"planetaryNebula\";\n Classification[Classification[\"reflectionNebula\"] = 16384] = \"reflectionNebula\";\n Classification[Classification[\"darkNebula\"] = 32768] = \"darkNebula\";\n Classification[Classification[\"giantMolecularCloud\"] = 65536] = \"giantMolecularCloud\";\n Classification[Classification[\"supernovaRemnant\"] = 131072] = \"supernovaRemnant\";\n Classification[Classification[\"interstellarDust\"] = 262144] = \"interstellarDust\";\n Classification[Classification[\"quasar\"] = 524288] = \"quasar\";\n Classification[Classification[\"galaxy\"] = 1048576] = \"galaxy\";\n Classification[Classification[\"spiralGalaxy\"] = 2097152] = \"spiralGalaxy\";\n Classification[Classification[\"irregularGalaxy\"] = 4194304] = \"irregularGalaxy\";\n Classification[Classification[\"ellipticalGalaxy\"] = 8388608] = \"ellipticalGalaxy\";\n Classification[Classification[\"knot\"] = 16777216] = \"knot\";\n Classification[Classification[\"plateDefect\"] = 33554432] = \"plateDefect\";\n Classification[Classification[\"clusterOfGalaxies\"] = 67108864] = \"clusterOfGalaxies\";\n Classification[Classification[\"otherNGC\"] = 134217728] = \"otherNGC\";\n Classification[Classification[\"unidentified\"] = 268435456] = \"unidentified\";\n Classification[Classification[\"solarSystem\"] = 536870912] = \"solarSystem\";\n Classification[Classification[\"unfiltered\"] = 1073741823] = \"unfiltered\";\n Classification[Classification[\"stellar\"] = 63] = \"stellar\";\n Classification[Classification[\"stellarGroupings\"] = 2032] = \"stellarGroupings\";\n Classification[Classification[\"nebulae\"] = 523264] = \"nebulae\";\n Classification[Classification[\"galactic\"] = 133693440] = \"galactic\";\n Classification[Classification[\"other\"] = 436207616] = \"other\";\n})(Classification || (Classification = {}));\nexport var CoordinatesType;\n(function (CoordinatesType) {\n CoordinatesType[CoordinatesType[\"spherical\"] = 0] = \"spherical\";\n CoordinatesType[CoordinatesType[\"rectangular\"] = 1] = \"rectangular\";\n CoordinatesType[CoordinatesType[\"orbital\"] = 2] = \"orbital\";\n})(CoordinatesType || (CoordinatesType = {}));\nexport var DataTypes;\n(function (DataTypes) {\n DataTypes[DataTypes[\"byteT\"] = 0] = \"byteT\";\n DataTypes[DataTypes[\"int16T\"] = 1] = \"int16T\";\n DataTypes[DataTypes[\"int32T\"] = 2] = \"int32T\";\n DataTypes[DataTypes[\"floatT\"] = 3] = \"floatT\";\n DataTypes[DataTypes[\"doubleT\"] = 4] = \"doubleT\";\n DataTypes[DataTypes[\"none\"] = 5] = \"none\";\n})(DataTypes || (DataTypes = {}));\nexport var FadeType;\n(function (FadeType) {\n FadeType[FadeType[\"fadeIn\"] = 1] = \"fadeIn\";\n FadeType[FadeType[\"fadeOut\"] = 2] = \"fadeOut\";\n FadeType[FadeType[\"both\"] = 3] = \"both\";\n FadeType[FadeType[\"none\"] = 4] = \"none\";\n})(FadeType || (FadeType = {}));\nexport var FolderGroup;\n(function (FolderGroup) {\n FolderGroup[FolderGroup[\"explorer\"] = 0] = \"explorer\";\n FolderGroup[FolderGroup[\"tour\"] = 1] = \"tour\";\n FolderGroup[FolderGroup[\"search\"] = 2] = \"search\";\n FolderGroup[FolderGroup[\"constellation\"] = 3] = \"constellation\";\n FolderGroup[FolderGroup[\"view\"] = 4] = \"view\";\n FolderGroup[FolderGroup[\"goTo\"] = 5] = \"goTo\";\n FolderGroup[FolderGroup[\"community\"] = 6] = \"community\";\n FolderGroup[FolderGroup[\"context\"] = 7] = \"context\";\n FolderGroup[FolderGroup[\"voTable\"] = 8] = \"voTable\";\n FolderGroup[FolderGroup[\"imageStack\"] = 9] = \"imageStack\";\n})(FolderGroup || (FolderGroup = {}));\nexport var FolderRefreshType;\n(function (FolderRefreshType) {\n FolderRefreshType[FolderRefreshType[\"interval\"] = 0] = \"interval\";\n FolderRefreshType[FolderRefreshType[\"conditionalGet\"] = 1] = \"conditionalGet\";\n FolderRefreshType[FolderRefreshType[\"viewChange\"] = 2] = \"viewChange\";\n})(FolderRefreshType || (FolderRefreshType = {}));\nexport var FolderType;\n(function (FolderType) {\n FolderType[FolderType[\"earth\"] = 0] = \"earth\";\n FolderType[FolderType[\"planet\"] = 1] = \"planet\";\n FolderType[FolderType[\"sky\"] = 2] = \"sky\";\n FolderType[FolderType[\"panorama\"] = 3] = \"panorama\";\n})(FolderType || (FolderType = {}));\nexport var ImageSetType;\n(function (ImageSetType) {\n ImageSetType[ImageSetType[\"earth\"] = 0] = \"earth\";\n ImageSetType[ImageSetType[\"planet\"] = 1] = \"planet\";\n ImageSetType[ImageSetType[\"sky\"] = 2] = \"sky\";\n ImageSetType[ImageSetType[\"panorama\"] = 3] = \"panorama\";\n ImageSetType[ImageSetType[\"solarSystem\"] = 4] = \"solarSystem\";\n ImageSetType[ImageSetType[\"sandbox\"] = 5] = \"sandbox\";\n})(ImageSetType || (ImageSetType = {}));\nexport var MarkerScales;\n(function (MarkerScales) {\n MarkerScales[MarkerScales[\"screen\"] = 0] = \"screen\";\n MarkerScales[MarkerScales[\"world\"] = 1] = \"world\";\n})(MarkerScales || (MarkerScales = {}));\nexport var PlotTypes;\n(function (PlotTypes) {\n PlotTypes[PlotTypes[\"gaussian\"] = 0] = \"gaussian\";\n PlotTypes[PlotTypes[\"point\"] = 1] = \"point\";\n PlotTypes[PlotTypes[\"circle\"] = 2] = \"circle\";\n PlotTypes[PlotTypes[\"square\"] = 3] = \"square\";\n PlotTypes[PlotTypes[\"pushPin\"] = 4] = \"pushPin\";\n PlotTypes[PlotTypes[\"custom\"] = 5] = \"custom\";\n})(PlotTypes || (PlotTypes = {}));\nexport var PointScaleTypes;\n(function (PointScaleTypes) {\n PointScaleTypes[PointScaleTypes[\"linear\"] = 0] = \"linear\";\n PointScaleTypes[PointScaleTypes[\"power\"] = 1] = \"power\";\n PointScaleTypes[PointScaleTypes[\"log\"] = 2] = \"log\";\n PointScaleTypes[PointScaleTypes[\"constant\"] = 3] = \"constant\";\n PointScaleTypes[PointScaleTypes[\"stellarMagnitude\"] = 4] = \"stellarMagnitude\";\n})(PointScaleTypes || (PointScaleTypes = {}));\nexport var ProjectionType;\n(function (ProjectionType) {\n ProjectionType[ProjectionType[\"mercator\"] = 0] = \"mercator\";\n ProjectionType[ProjectionType[\"equirectangular\"] = 1] = \"equirectangular\";\n ProjectionType[ProjectionType[\"tangent\"] = 2] = \"tangent\";\n ProjectionType[ProjectionType[\"tan\"] = 2] = \"tan\";\n ProjectionType[ProjectionType[\"toast\"] = 3] = \"toast\";\n ProjectionType[ProjectionType[\"spherical\"] = 4] = \"spherical\";\n ProjectionType[ProjectionType[\"skyImage\"] = 5] = \"skyImage\";\n ProjectionType[ProjectionType[\"plotted\"] = 6] = \"plotted\";\n})(ProjectionType || (ProjectionType = {}));\nexport var RAUnits;\n(function (RAUnits) {\n RAUnits[RAUnits[\"hours\"] = 0] = \"hours\";\n RAUnits[RAUnits[\"degrees\"] = 1] = \"degrees\";\n})(RAUnits || (RAUnits = {}));\nexport var ReferenceFrames;\n(function (ReferenceFrames) {\n ReferenceFrames[ReferenceFrames[\"sky\"] = 0] = \"sky\";\n ReferenceFrames[ReferenceFrames[\"ecliptic\"] = 1] = \"ecliptic\";\n ReferenceFrames[ReferenceFrames[\"galactic\"] = 2] = \"galactic\";\n ReferenceFrames[ReferenceFrames[\"sun\"] = 3] = \"sun\";\n ReferenceFrames[ReferenceFrames[\"mercury\"] = 4] = \"mercury\";\n ReferenceFrames[ReferenceFrames[\"venus\"] = 5] = \"venus\";\n ReferenceFrames[ReferenceFrames[\"earth\"] = 6] = \"earth\";\n ReferenceFrames[ReferenceFrames[\"mars\"] = 7] = \"mars\";\n ReferenceFrames[ReferenceFrames[\"jupiter\"] = 8] = \"jupiter\";\n ReferenceFrames[ReferenceFrames[\"saturn\"] = 9] = \"saturn\";\n ReferenceFrames[ReferenceFrames[\"uranus\"] = 10] = \"uranus\";\n ReferenceFrames[ReferenceFrames[\"neptune\"] = 11] = \"neptune\";\n ReferenceFrames[ReferenceFrames[\"pluto\"] = 12] = \"pluto\";\n ReferenceFrames[ReferenceFrames[\"moon\"] = 13] = \"moon\";\n ReferenceFrames[ReferenceFrames[\"io\"] = 14] = \"io\";\n ReferenceFrames[ReferenceFrames[\"europa\"] = 15] = \"europa\";\n ReferenceFrames[ReferenceFrames[\"ganymede\"] = 16] = \"ganymede\";\n ReferenceFrames[ReferenceFrames[\"callisto\"] = 17] = \"callisto\";\n ReferenceFrames[ReferenceFrames[\"custom\"] = 18] = \"custom\";\n ReferenceFrames[ReferenceFrames[\"identity\"] = 19] = \"identity\";\n ReferenceFrames[ReferenceFrames[\"sandbox\"] = 20] = \"sandbox\";\n})(ReferenceFrames || (ReferenceFrames = {}));\nexport var ReferenceFrameTypes;\n(function (ReferenceFrameTypes) {\n ReferenceFrameTypes[ReferenceFrameTypes[\"fixedSherical\"] = 0] = \"fixedSherical\";\n ReferenceFrameTypes[ReferenceFrameTypes[\"orbital\"] = 1] = \"orbital\";\n ReferenceFrameTypes[ReferenceFrameTypes[\"trajectory\"] = 2] = \"trajectory\";\n ReferenceFrameTypes[ReferenceFrameTypes[\"synodic\"] = 3] = \"synodic\";\n})(ReferenceFrameTypes || (ReferenceFrameTypes = {}));\nexport var ScaleTypes;\n(function (ScaleTypes) {\n ScaleTypes[ScaleTypes[\"linear\"] = 0] = \"linear\";\n ScaleTypes[ScaleTypes[\"log\"] = 1] = \"log\";\n ScaleTypes[ScaleTypes[\"power\"] = 2] = \"power\";\n ScaleTypes[ScaleTypes[\"squareRoot\"] = 3] = \"squareRoot\";\n ScaleTypes[ScaleTypes[\"histogramEqualization\"] = 4] = \"histogramEqualization\";\n})(ScaleTypes || (ScaleTypes = {}));\nexport var SolarSystemObjects;\n(function (SolarSystemObjects) {\n SolarSystemObjects[SolarSystemObjects[\"sun\"] = 0] = \"sun\";\n SolarSystemObjects[SolarSystemObjects[\"mercury\"] = 1] = \"mercury\";\n SolarSystemObjects[SolarSystemObjects[\"venus\"] = 2] = \"venus\";\n SolarSystemObjects[SolarSystemObjects[\"mars\"] = 3] = \"mars\";\n SolarSystemObjects[SolarSystemObjects[\"jupiter\"] = 4] = \"jupiter\";\n SolarSystemObjects[SolarSystemObjects[\"saturn\"] = 5] = \"saturn\";\n SolarSystemObjects[SolarSystemObjects[\"uranus\"] = 6] = \"uranus\";\n SolarSystemObjects[SolarSystemObjects[\"neptune\"] = 7] = \"neptune\";\n SolarSystemObjects[SolarSystemObjects[\"pluto\"] = 8] = \"pluto\";\n SolarSystemObjects[SolarSystemObjects[\"moon\"] = 9] = \"moon\";\n SolarSystemObjects[SolarSystemObjects[\"io\"] = 10] = \"io\";\n SolarSystemObjects[SolarSystemObjects[\"europa\"] = 11] = \"europa\";\n SolarSystemObjects[SolarSystemObjects[\"ganymede\"] = 12] = \"ganymede\";\n SolarSystemObjects[SolarSystemObjects[\"callisto\"] = 13] = \"callisto\";\n SolarSystemObjects[SolarSystemObjects[\"ioShadow\"] = 14] = \"ioShadow\";\n SolarSystemObjects[SolarSystemObjects[\"europaShadow\"] = 15] = \"europaShadow\";\n SolarSystemObjects[SolarSystemObjects[\"ganymedeShadow\"] = 16] = \"ganymedeShadow\";\n SolarSystemObjects[SolarSystemObjects[\"callistoShadow\"] = 17] = \"callistoShadow\";\n SolarSystemObjects[SolarSystemObjects[\"sunEclipsed\"] = 18] = \"sunEclipsed\";\n SolarSystemObjects[SolarSystemObjects[\"earth\"] = 19] = \"earth\";\n SolarSystemObjects[SolarSystemObjects[\"custom\"] = 20] = \"custom\";\n SolarSystemObjects[SolarSystemObjects[\"undefined\"] = 65536] = \"undefined\";\n})(SolarSystemObjects || (SolarSystemObjects = {}));\n// I'm not aware of any smart TypeScripty way to automate the construction of this table :-(\nvar baseEngineSettingTypeInfo = {\n \"actualPlanetScale/boolean\": true,\n \"constellations/boolean\": true,\n \"constellationBoundryColor/string\": true,\n \"constellationFigureColor/string\": true,\n \"constellationsEnabled/string\": true,\n \"constellationSelectionColor/string\": true,\n \"crosshairsColor/string\": true,\n \"earthCutawayView/boolean\": true,\n //\"fovCamera/number\": true, // skipping because not settable\n //\"fovEyepiece/number\": true, // skipping because not settable\n //\"fovTelescope/number\": true, // skipping because not settable\n \"localHorizonMode/boolean\": true,\n \"galacticMode/boolean\": true,\n \"locationAltitude/number\": true,\n \"locationLat/number\": true,\n \"locationLng/number\": true,\n \"milkyWayModel/boolean\": true,\n \"showAltAzGrid/boolean\": true,\n \"showAltAzGridText/boolean\": true,\n //\"showClouds/boolean\": true, // skipping because not settable\n \"showConstellations/boolean\": true,\n \"showConstellationBoundries/boolean\": true,\n \"showConstellationFigures/boolean\": true,\n \"showConstellationLabels/boolean\": true,\n \"showConstellationPictures/boolean\": true,\n \"showConstellationSelection/boolean\": true,\n \"showCrosshairs/boolean\": true,\n \"showEarthSky/boolean\": true,\n \"showEcliptic/boolean\": true,\n \"showEclipticGrid/boolean\": true,\n \"showEclipticGridText/boolean\": true,\n \"showEclipticOverviewText/boolean\": true,\n \"showElevationModel/boolean\": true,\n \"showEquatorialGridText/boolean\": true,\n //\"showFieldOfView/boolean\": true, // skipping because not settable\n \"showGalacticGrid/boolean\": true,\n \"showGalacticGridText/boolean\": true,\n \"showGrid/boolean\": true,\n \"showHorizon/boolean\": true,\n //\"showHorizonPanorama/boolean\": true, // skipping because not settable\n \"showISSModel/boolean\": true,\n //\"showMoonsAsPointSource/boolean\": true, // skipping because not settable\n \"showPrecessionChart/boolean\": true,\n \"showSkyGrids/boolean\": true,\n \"showSkyNode/boolean\": true,\n \"showSkyOverlays/boolean\": true,\n \"showSkyOverlaysIn3d/boolean\": true,\n \"showSolarSystem/boolean\": true,\n \"smoothPan/boolean\": true,\n \"solarSystemCMB/boolean\": true,\n \"solarSystemCosmos/boolean\": true,\n \"solarSystemMilkyWay/boolean\": true,\n \"solarSystemOrbits/boolean\": true,\n \"solarSystemOverlays/boolean\": true,\n \"solarSystemLighting/boolean\": true,\n \"solarSystemMultiRes/boolean\": true,\n \"solarSystemMinorPlanets/boolean\": true,\n \"solarSystemMinorOrbits/boolean\": true,\n \"solarSystemPlanets/boolean\": true,\n \"solarSystemStars/boolean\": true,\n \"minorPlanetsFilter/number\": true,\n \"planetOrbitsFilter/number\": true,\n \"solarSystemScale/number\": true,\n};\n/** Type guard function for BaseEngineSetting. */\nexport function isBaseEngineSetting(obj) {\n var key = obj[0] + \"/\" + typeof obj[1];\n return (key in baseEngineSettingTypeInfo);\n}\nvar baseLayerSettingTypeInfo = {\n \"astronomical/boolean\": true,\n \"enabled/boolean\": true,\n \"fadeSpan/number\": true,\n \"name/string\": true,\n \"opacity/number\": true,\n \"opened/boolean\": true,\n \"referenceFrame/string\": true,\n \"version/number\": true,\n};\n/** Type guard function for BaseLayerSetting. */\nexport function isBaseLayerSetting(obj) {\n var key = obj[0] + \"/\" + typeof obj[1];\n return key in baseLayerSettingTypeInfo;\n}\nvar baseImageSetLayerSettingTypeInfo = {\n \"colorMapperName/string\": true,\n \"overrideDefaultLayer/boolean\": true,\n};\n/** Type guard function for BaseImageSetLayerSetting. */\nexport function isBaseImageSetLayerSetting(obj) {\n var key = obj[0] + \"/\" + typeof obj[1];\n return (key in baseImageSetLayerSettingTypeInfo) || isBaseLayerSetting(obj);\n}\n// See implementation below -- we need to handle enums specially\n// to make sure that inputs are in-range.\nvar baseSpreadSheetLayerSettingTypeInfo = {\n \"altColumn/number\": \"\",\n \"altType/number\": \"AltTypes\",\n \"altUnit/number\": \"AltUnits\",\n \"barChartBitmask/number\": \"\",\n \"beginRange/Date\": \"\",\n \"cartesianCustomScale/number\": \"\",\n \"cartesianScale/number\": \"AltUnits\",\n \"colorMapColumn/number\": \"\",\n \"colorMapperName/string\": \"\",\n \"coordinatesType/number\": \"CoordinatesType\",\n \"decay/number\": \"\",\n \"dynamicColor/boolean\": \"\",\n \"dynamicData/boolean\": \"\",\n \"endDateColumn/number\": \"\",\n \"endRange/Date\": \"\",\n \"geometryColumn/number\": \"\",\n \"hyperlinkColumn/number\": \"\",\n \"hyperlinkFormat/string\": \"\",\n \"latColumn/number\": \"\",\n \"lngColumn/number\": \"\",\n \"markerColumn/number\": \"\",\n \"markerIndex/number\": \"\",\n \"markerScale/number\": \"\",\n \"nameColumn/number\": \"\",\n \"normalizeColorMap/boolean\": \"\",\n \"normalizeColorMapMax/number\": \"\",\n \"normalizeColorMapMin/number\": \"\",\n \"normalizeSize/boolean\": \"\",\n \"normalizeSizeClip/boolean\": \"\",\n \"normalizeSizeMax/number\": \"\",\n \"normalizeSizeMin/number\": \"\",\n \"plotType/number\": \"PlotTypes\",\n \"pointScaleType/number\": \"PointScaleTypes\",\n \"raUnits/number\": \"RAUnits\",\n \"scaleFactor/number\": \"\",\n \"showFarSide/boolean\": \"\",\n \"sizeColumn/number\": \"\",\n \"startDateColumn/number\": \"\",\n \"timeSeries/boolean\": \"\",\n \"xAxisColumn/number\": \"\",\n \"xAxisReverse/boolean\": \"\",\n \"yAxisColumn/number\": \"\",\n \"yAxisReverse/boolean\": \"\",\n \"zAxisColumn/number\": \"\",\n \"zAxisReverse/boolean\": \"\",\n};\n/** Type guard function for BaseSpreadSheetLayerSetting. */\nexport function isBaseSpreadSheetLayerSetting(obj) {\n if (isBaseLayerSetting(obj))\n return true;\n // We want to be able to properly recognize Date objects\n var type = obj[1] instanceof Date ? 'Date' : typeof obj[1];\n var key = obj[0] + \"/\" + type;\n var enumType = baseSpreadSheetLayerSettingTypeInfo[key];\n if (enumType === undefined) {\n return false;\n }\n else if (enumType == \"\") {\n return true;\n }\n else if (enumType == \"AltTypes\") {\n return obj[1] in AltTypes;\n }\n else if (enumType == \"AltUnits\") {\n return obj[1] in AltUnits;\n }\n else if (enumType == \"CoordinatesType\") {\n return obj[1] in CoordinatesType;\n }\n else if (enumType == \"PlotTypes\") {\n return obj[1] in PlotTypes;\n }\n else if (enumType == \"PointScaleTypes\") {\n return obj[1] in PointScaleTypes;\n }\n else if (enumType == \"RAUnits\") {\n return obj[1] in RAUnits;\n }\n else {\n throw new Error('internal bug isBaseSpreadSheetLayerSetting');\n }\n}\n// See implementation below -- we need to handle enums specially\n// to make sure that inputs are in-range.\nvar baseVoTableLayerSettingTypeInfo = {\n \"altColumn/number\": \"\",\n \"altType/number\": \"AltTypes\",\n \"altUnit/number\": \"AltUnits\",\n \"beginRange/Date\": \"\",\n \"cartesianCustomScale/number\": \"\",\n \"cartesianScale/number\": \"AltUnits\",\n \"colorMapColumn/number\": \"\",\n \"coordinatesType/number\": \"CoordinatesType\",\n \"dataSourceUrl/string\": \"\",\n \"decay/number\": \"\",\n \"dynamicData/boolean\": \"\",\n \"endDateColumn/number\": \"\",\n \"endRange/Date\": \"\",\n \"hyperlinkColumn/number\": \"\",\n \"hyperlinkFormat/string\": \"\",\n \"latColumn/number\": \"\",\n \"lngColumn/number\": \"\",\n \"markerColumn/number\": \"\",\n \"markerIndex/number\": \"\",\n \"markerScale/number\": \"\",\n \"nameColumn/number\": \"\",\n \"plotType/number\": \"PlotTypes\",\n \"pointScaleType/number\": \"PointScaleTypes\",\n \"raUnits/number\": \"RAUnits\",\n \"scaleFactor/number\": \"\",\n \"showFarSide/boolean\": \"\",\n \"sizeColumn/number\": \"\",\n \"startDateColumn/number\": \"\",\n \"timeSeries/boolean\": \"\",\n \"xAxisColumn/number\": \"\",\n \"xAxisReverse/boolean\": \"\",\n \"yAxisColumn/number\": \"\",\n \"yAxisReverse/boolean\": \"\",\n \"zAxisColumn/number\": \"\",\n \"zAxisReverse/boolean\": \"\",\n};\n/** Type guard function for BaseVoTableLayerSetting. */\nexport function isBaseVoTableLayerSetting(obj) {\n if (isBaseLayerSetting(obj))\n return true;\n var key = obj[0] + \"/\" + typeof obj[1];\n var enumType = baseVoTableLayerSettingTypeInfo[key];\n if (enumType === undefined) {\n return false;\n }\n else if (enumType == \"\") {\n return true;\n }\n else if (enumType == \"AltTypes\") {\n return obj[1] in AltTypes;\n }\n else if (enumType == \"AltUnits\") {\n return obj[1] in AltUnits;\n }\n else if (enumType == \"CoordinatesType\") {\n return obj[1] in CoordinatesType;\n }\n else if (enumType == \"PlotTypes\") {\n return obj[1] in PlotTypes;\n }\n else if (enumType == \"PointScaleTypes\") {\n return obj[1] in PointScaleTypes;\n }\n else if (enumType == \"RAUnits\") {\n return obj[1] in RAUnits;\n }\n else {\n throw new Error('internal bug isBaseVoTableLayerSetting');\n }\n}\nfunction keysOf(o) { return Object.keys(o); } // eslint-disable-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/no-explicit-any\nexport function enumLookup(stringEnum, s) {\n var e_1, _a;\n try {\n for (var _b = __values(keysOf(stringEnum)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var enumKey = _c.value;\n if (stringEnum[enumKey] === s) {\n return stringEnum[enumKey];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return undefined;\n}\n//# sourceMappingURL=index.js.map","// Copyright 2020 the .NET Foundation\n// Licensed under the MIT License\nimport { __read, __values } from \"tslib\";\nimport { enumLookup } from \"@wwtelescope/engine-types\";\nexport var PlanetaryBodies;\n(function (PlanetaryBodies) {\n PlanetaryBodies[\"Sun\"] = \"sun\";\n PlanetaryBodies[\"Mercury\"] = \"mercury\";\n PlanetaryBodies[\"Venus\"] = \"venus\";\n PlanetaryBodies[\"Earth\"] = \"earth\";\n PlanetaryBodies[\"Mars\"] = \"mars\";\n PlanetaryBodies[\"Jupiter\"] = \"jupiter\";\n PlanetaryBodies[\"Saturn\"] = \"saturn\";\n PlanetaryBodies[\"Uranus\"] = \"uranus\";\n PlanetaryBodies[\"Neptune\"] = \"neptune\";\n PlanetaryBodies[\"Pluto\"] = \"pluto\";\n PlanetaryBodies[\"Moon\"] = \"moon\";\n PlanetaryBodies[\"Io\"] = \"io\";\n PlanetaryBodies[\"Europa\"] = \"europa\";\n PlanetaryBodies[\"Ganymede\"] = \"ganymede\";\n PlanetaryBodies[\"Callisto\"] = \"callisto\";\n})(PlanetaryBodies || (PlanetaryBodies = {}));\nexport var CreditMode;\n(function (CreditMode) {\n CreditMode[\"Default\"] = \"default\";\n CreditMode[\"None\"] = \"no\";\n})(CreditMode || (CreditMode = {}));\nvar EmbedSettings = /** @class */ (function () {\n function EmbedSettings() {\n this.backgroundImagesetName = \"\";\n this.foregroundImagesetName = \"\";\n this.creditMode = CreditMode.Default;\n this.showCoordinateReadout = false;\n this.showCrosshairs = false;\n this.tourUrl = \"\";\n this.wtmlUrl = \"\";\n this.wtmlPlace = \"\";\n }\n EmbedSettings.fromQueryParams = function (qp) {\n var e_1, _a;\n var s = new EmbedSettings();\n try {\n for (var qp_1 = __values(qp), qp_1_1 = qp_1.next(); !qp_1_1.done; qp_1_1 = qp_1.next()) {\n var _b = __read(qp_1_1.value, 2), key = _b[0], value = _b[1];\n switch (key) {\n case \"bg\":\n s.backgroundImagesetName = value;\n break;\n case \"ch\":\n s.showCrosshairs = true;\n break;\n case \"cro\":\n s.showCoordinateReadout = true;\n break;\n case \"cred\":\n {\n var m = enumLookup(CreditMode, value);\n if (m !== undefined)\n s.creditMode = m;\n }\n break;\n case \"fg\":\n s.foregroundImagesetName = value;\n break;\n case \"p\":\n s.wtmlPlace = value;\n break;\n case \"planet\":\n if (value == \"mars\") {\n // Gnarly historical thing that the default Mars imageset\n // is named thusly:\n s.backgroundImagesetName = \"Visible Imagery\";\n s.foregroundImagesetName = \"Visible Imagery\";\n }\n else if (value == \"earth\") {\n s.backgroundImagesetName = \"Bing Maps Aerial\";\n s.foregroundImagesetName = \"Bing Maps Aerial\";\n }\n else if (value == \"pluto\") {\n s.backgroundImagesetName = \"Pluto (New Horizons)\";\n s.foregroundImagesetName = \"Pluto (New Horizons)\";\n }\n else {\n s.backgroundImagesetName = value;\n s.foregroundImagesetName = value;\n }\n break;\n case \"threed\":\n s.backgroundImagesetName = \"3D Solar System View\";\n s.foregroundImagesetName = \"\";\n break;\n case \"tour\":\n s.tourUrl = value;\n break;\n case \"wtml\":\n s.wtmlUrl = value;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (qp_1_1 && !qp_1_1.done && (_a = qp_1.return)) _a.call(qp_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return s;\n };\n /** Return a set of\n * [`BaseEngineSetting`](../../engine-types/types/BaseEngineSetting.html)\n * values implied by this configuration. (The `BaseEngineSetting` type is\n * defined in the `@wwtelescope/engine-types` module.)\n *\n * @returns A list of setting values.\n */\n EmbedSettings.prototype.asSettings = function () {\n var s = [];\n s.push([\"showCrosshairs\", this.showCrosshairs]);\n return s;\n };\n return EmbedSettings;\n}());\nexport { EmbedSettings };\n/** A class to help building query strings that get parsed into EmbedSettings\n * objects. There are a few shorthands for setups where the \"implementation\n * details\" are a bit weird or might change.\n */\nvar EmbedQueryStringBuilder = /** @class */ (function () {\n function EmbedQueryStringBuilder() {\n this.s = new EmbedSettings();\n this.threeDMode = false;\n this.planetaryBody = null;\n }\n EmbedQueryStringBuilder.prototype.toQueryItems = function () {\n var result = [];\n var defaults = new EmbedSettings();\n if (this.threeDMode) {\n result.push([\"threed\", \"\"]);\n }\n else if (this.planetaryBody !== null) {\n result.push([\"planet\", this.planetaryBody]);\n }\n else {\n if (this.s.backgroundImagesetName.length && this.s.backgroundImagesetName != defaults.backgroundImagesetName)\n result.push([\"bg\", this.s.backgroundImagesetName]);\n if (this.s.foregroundImagesetName.length && this.s.foregroundImagesetName != defaults.foregroundImagesetName)\n result.push([\"fg\", this.s.foregroundImagesetName]);\n }\n if (this.s.creditMode && this.s.creditMode != CreditMode.Default) {\n result.push([\"cred\", this.s.creditMode]);\n }\n if (this.s.showCoordinateReadout) {\n result.push([\"cro\", \"\"]);\n }\n if (this.s.showCrosshairs) {\n result.push([\"ch\", \"\"]);\n }\n if (this.s.tourUrl.length) {\n result.push([\"tour\", this.s.tourUrl]);\n }\n if (this.s.wtmlPlace.length) {\n result.push([\"p\", this.s.wtmlPlace]);\n }\n if (this.s.wtmlUrl.length) {\n result.push([\"wtml\", this.s.wtmlUrl]);\n }\n return result;\n };\n return EmbedQueryStringBuilder;\n}());\nexport { EmbedQueryStringBuilder };\n//# sourceMappingURL=index.js.map","import { resolveComponent as _resolveComponent, normalizeStyle as _normalizeStyle, createVNode as _createVNode, createElementVNode as _createElementVNode, vShow as _vShow, withDirectives as _withDirectives, Transition as _Transition, withCtx as _withCtx, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, vModelText as _vModelText, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, vModelSelect as _vModelSelect, createStaticVNode as _createStaticVNode } from \"vue\"\nimport _imports_0 from './assets/logo_wwt.png'\nimport _imports_1 from './assets/logo_nf.png'\n\n\nconst _hoisted_1 = { id: \"app\" }\nconst _hoisted_2 = {\n class: \"modal\",\n id: \"modal-loading\"\n}\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"container\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"spinner\" }),\n /*#__PURE__*/_createElementVNode(\"p\", null, \"Loading …\")\n], -1)\nconst _hoisted_4 = [\n _hoisted_3\n]\nconst _hoisted_5 = { id: \"overlays\" }\nconst _hoisted_6 = { id: \"controls\" }\nconst _hoisted_7 = { class: \"tooltip-content tool-menu\" }\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = [\"onClick\"]\nconst _hoisted_10 = [\"onClick\"]\nconst _hoisted_11 = { id: \"tools\" }\nconst _hoisted_12 = { class: \"tool-container\" }\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"span\", null, \"Foreground opacity:\", -1)\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"span\", null, \"Background imagery:\", -1)\nconst _hoisted_15 = [\"value\"]\nconst _hoisted_16 = {\n key: 2,\n class: \"playback-controls\"\n}\nconst _hoisted_17 = { id: \"credits\" }\nconst _hoisted_18 = /*#__PURE__*/_createStaticVNode(\"

Powered by WorldWide Telescope\\\"WWT\\\"NumFOCUS

\", 1)\nconst _hoisted_19 = [\n _hoisted_18\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_WorldWideTelescope = _resolveComponent(\"WorldWideTelescope\")!\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_Popper = _resolveComponent(\"Popper\")!\n const _component_vue_slider = _resolveComponent(\"vue-slider\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_WorldWideTelescope, {\n \"wwt-namespace\": \"wwt-embed\",\n style: _normalizeStyle({\n height: _ctx.wwtComponentLayout.height,\n top: _ctx.wwtComponentLayout.top,\n })\n }, null, 8, [\"style\"]),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"div\", _hoisted_2, _hoisted_4, 512), [\n [_vShow, _ctx.isLoadingState]\n ])\n ]),\n _: 1\n }),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"div\", {\n class: \"modal\",\n id: \"modal-readytostart\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.startInteractive()))\n }, [\n _createElementVNode(\"div\", null, [\n _createVNode(_component_font_awesome_icon, {\n class: \"icon\",\n icon: \"play\"\n })\n ])\n ], 512), [\n [_vShow, _ctx.isReadyToStartState]\n ])\n ]),\n _: 1\n }),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_5, [\n _withDirectives(_createElementVNode(\"p\", null, _toDisplayString(_ctx.coordText), 513), [\n [_vShow, _ctx.embedSettings.showCoordinateReadout]\n ])\n ])\n ]),\n _: 1\n }),\n _createElementVNode(\"ul\", _hoisted_6, [\n _withDirectives(_createElementVNode(\"li\", null, [\n _createVNode(_component_Popper, {\n placement: \"left\",\n arrow: true,\n interactive: true\n }, {\n content: _withCtx((props) => [\n _createElementVNode(\"ul\", _hoisted_7, [\n _withDirectives(_createElementVNode(\"li\", null, [\n _createElementVNode(\"a\", {\n href: \"#\",\n onClick: ($event: any) => {\n _ctx.selectTool('crossfade');\n props.close()\n }\n }, [\n _createVNode(_component_font_awesome_icon, { icon: \"adjust\" }),\n _createTextVNode(\" Crossfade\")\n ], 8, _hoisted_8)\n ], 512), [\n [_vShow, _ctx.showCrossfader]\n ]),\n _withDirectives(_createElementVNode(\"li\", null, [\n _createElementVNode(\"a\", {\n href: \"#\",\n onClick: ($event: any) => {\n _ctx.selectTool('choose-background');\n props.close()\n }\n }, [\n _createVNode(_component_font_awesome_icon, { icon: \"mountain\" }),\n _createTextVNode(\" Choose background\")\n ], 8, _hoisted_9)\n ], 512), [\n [_vShow, _ctx.showBackgroundChooser]\n ]),\n _withDirectives(_createElementVNode(\"li\", null, [\n _createElementVNode(\"a\", {\n href: \"#\",\n onClick: ($event: any) => {_ctx.selectTool('playback-controls');\n props.close()\n }\n }, [\n _createVNode(_component_font_awesome_icon, { icon: \"redo\" }),\n _createTextVNode(\" Tour player controls\")\n ], 8, _hoisted_10)\n ], 512), [\n [_vShow, _ctx.showPlaybackControls]\n ])\n ])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_font_awesome_icon, {\n class: \"tooltip-target\",\n icon: \"sliders-h\",\n size: \"lg\"\n })\n ]),\n _: 1\n })\n ], 512), [\n [_vShow, _ctx.showToolMenu]\n ]),\n _withDirectives(_createElementVNode(\"li\", null, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"search-plus\",\n size: \"lg\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.doZoom(true)))\n })\n ], 512), [\n [_vShow, !_ctx.wwtIsTourPlaying]\n ]),\n _withDirectives(_createElementVNode(\"li\", null, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"search-minus\",\n size: \"lg\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.doZoom(false)))\n })\n ], 512), [\n [_vShow, !_ctx.wwtIsTourPlaying]\n ]),\n _withDirectives(_createElementVNode(\"li\", null, [\n _createVNode(_component_font_awesome_icon, {\n icon: _ctx.fullscreenModeActive ? 'compress' : 'expand',\n size: \"lg\",\n class: \"nudgeright1\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.toggleFullscreen()))\n }, null, 8, [\"icon\"])\n ], 512), [\n [_vShow, _ctx.fullscreenAvailable]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n (_ctx.currentTool == 'crossfade')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _hoisted_13,\n _withDirectives(_createElementVNode(\"input\", {\n class: \"opacity-range\",\n type: \"range\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.foregroundOpacity) = $event))\n }, null, 512), [\n [_vModelText, _ctx.foregroundOpacity]\n ])\n ], 64))\n : (_ctx.currentTool == 'choose-background')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _hoisted_14,\n _withDirectives(_createElementVNode(\"select\", {\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.curBackgroundImagesetName) = $event))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.backgroundImagesets, (bg) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: bg.imagesetName,\n key: bg.imagesetName\n }, _toDisplayString(bg.displayName), 9, _hoisted_15))\n }), 128))\n ], 512), [\n [_vModelSelect, _ctx.curBackgroundImagesetName]\n ])\n ], 64))\n : (_ctx.currentTool == 'playback-controls')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createVNode(_component_font_awesome_icon, {\n icon: _ctx.tourPlaybackIcon,\n size: \"lg\",\n class: \"clickable\",\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.tourPlaybackButtonClicked()))\n }, null, 8, [\"icon\"]),\n _createVNode(_component_vue_slider, {\n class: \"scrubber\",\n modelValue: _ctx.twoWayTourTimecode,\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((_ctx.twoWayTourTimecode) = $event)),\n max: _ctx.wwtTourRunTime,\n marks: _ctx.wwtTourStopStartTimes,\n \"tooltip-formatter\": _ctx.formatTimecode,\n adsorb: true,\n duration: 0,\n interval: 0.001,\n contained: true,\n \"hide-label\": true,\n \"use-keyboard\": false\n }, null, 8, [\"modelValue\", \"max\", \"marks\", \"tooltip-formatter\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _withDirectives(_createElementVNode(\"div\", _hoisted_17, _hoisted_19, 512), [\n [_vShow, _ctx.embedSettings.creditMode == _ctx.CreditMode.Default]\n ])\n ]))\n}","\n\n\n\n\n","// Copyright 2020 the .NET Foundation\n// Licensed under the MIT License\n/** The mathematical constant pi, around 3.14. */\nexport var PI = 3.14159265358979;\n/** Two times the mathematical constan pi, around 6.28. */\nexport var TWOPI = 2 * PI;\n/** Radians-to-degrees conversion factor.\n *\n * ```\n * let degrees = radians * R2D;\n * ```\n */\nexport var R2D = 180 / PI;\n/** Degrees-to-radians conversion factor.\n *\n * ```\n * let radians = degrees * D2R;\n * ```\n */\nexport var D2R = PI / 180;\n/** Radians-to-hours conversion factor.\n *\n * ```\n * let hours = radians * R2H;\n * ```\n */\nexport var R2H = 12 / PI;\n/** Hours-to-radians conversion factor.\n *\n * ```\n * let radians = hours * H2R;\n * ```\n */\nexport var H2R = PI / 12;\n/** Degrees-to-hours conversion factor.\n *\n * ```\n * let hours = degrees * D2H;\n * ```\n */\nexport var D2H = 12. / 180;\n/** Hours-to-degrees conversion factor.\n *\n * ```\n * let degrees = hours * H2D;\n * ```\n */\nexport var H2D = 15;\n/** Normalize an angle in radians to lie between 0 and 2pi.\n *\n * @param angleRad The input angle, in radians.\n * @returns An equivalent angle, also in radians.\n */\nexport function angnorm(angleRad) {\n while (angleRad < 0)\n angleRad += TWOPI;\n while (angleRad >= TWOPI)\n angleRad -= TWOPI;\n return angleRad;\n}\n/**\n * Find the great-circle distance between two points\n *\n * This implementation uses a special case of the Vincenty formula\n * See the last formula in https://en.wikipedia.org/wiki/Great-circle_distance#Computational_formulas\n *\n * @param ra1 The right ascension of the first point, in radians\n * @param dec1 The declination of the first point, in radians\n * @param ra2 The right ascension of the second point, in radians\n * @param dec2 The declination of the second point, in radians\n * @returns The great-circle distance\n */\nexport function distance(ra1, dec1, ra2, dec2) {\n var dAbsRA = Math.abs(ra1 - ra2);\n var nt1 = Math.pow((Math.cos(dec2) * Math.sin(dAbsRA)), 2);\n var nt2 = Math.pow((Math.cos(dec1) * Math.sin(dec2) - Math.sin(dec1) * Math.cos(dec2) * Math.cos(dAbsRA)), 2);\n var num = Math.sqrt(nt1 + nt2);\n var den = Math.sin(dec1) * Math.sin(dec2) + Math.cos(dec1) * Math.cos(dec2) * Math.cos(dAbsRA);\n return Math.atan2(num, den);\n}\nfunction _formatSexagesimal(value, showPlus, padWhole, sep1, sep2, precision) {\n var prefix = \"\";\n if (value < 0) {\n value = -value;\n prefix = \"-\";\n }\n else if (showPlus) {\n prefix = \"+\";\n }\n var whole = Math.floor(value);\n value = (value - whole) * 60;\n var minutes = Math.floor(value);\n value = (value - minutes) * 60;\n var seconds = Math.floor(value);\n var remainder = value - seconds;\n var wText = String(whole).padStart(padWhole, '0');\n var mText = String(minutes).padStart(2, '0');\n var sText = String(seconds).padStart(2, '0');\n var rText = remainder.toFixed(precision).slice(1); // drop the leading \"0\"\n return \"\".concat(prefix).concat(wText).concat(sep1).concat(mText).concat(sep2).concat(sText).concat(rText);\n}\n/** Format an angle, measured in radians, as sexagesimal hours.\n *\n * Before formatting, the angle is normalized to lie within 0-2pi.\n *\n * @param angleRad The angle in radians.\n * @param sep1 The text to put between the hours and the minutes. Defaults to\n * `\":\"`.\n * @param sep2 The text to put between the minutes and the seconds. Defaults to\n * `\":\"`.\n * @param precision The number of places of decimal precision to include in the\n * result. Defaults to 0.\n * @returns The formatted angle.\n */\nexport function fmtHours(angleRad, sep1, sep2, precision) {\n if (sep1 === void 0) { sep1 = \":\"; }\n if (sep2 === void 0) { sep2 = \":\"; }\n if (precision === void 0) { precision = 0; }\n return _formatSexagesimal(angnorm(angleRad) * R2H, false, 2, sep1, sep2, precision);\n}\n/** Format a latitudinal angle, measured in radians, as sexagesimal degrees.\n *\n * If the number is not in the range [-pi, pi], `\" ??${sep1}??${sep2}??\"` is\n * returned.\n *\n * @param angleRad The latitude in radians.\n * @param sep1 The text to put between the degrees and the arcminutes. Defaults\n * to `\":\"`.\n * @param sep2 The text to put between the arcminutes and the arcseconds.\n * Defaults to `\":\"`.\n * @param precision The number of places of decimal precision to include in the\n * result. Defaults to 0.\n * @returns The formatted angle.\n */\nexport function fmtDegLat(angleRad, sep1, sep2, precision) {\n if (sep1 === void 0) { sep1 = \":\"; }\n if (sep2 === void 0) { sep2 = \":\"; }\n if (precision === void 0) { precision = 0; }\n if (angleRad < -PI || angleRad > PI)\n return \" ??\".concat(sep1, \"??\").concat(sep2, \"??\");\n return _formatSexagesimal(angleRad * R2D, true, 2, sep1, sep2, precision);\n}\n/** Format a longitudinal angle, measured in radians, as sexagesimal degrees.\n *\n * Before formatting, the angle is normalized to lie within 0-2pi. The output\n * will be zero-padded to three digits, e.g. `\"000:01:30\"` or `\"359:59:59.123\"`.\n *\n * @param angleRad The longitude in radians.\n * @param sep1 The text to put between the degrees and the arcminutes. Defaults\n * to `\":\"`.\n * @param sep2 The text to put between the arcminutes and the arcseconds.\n * Defaults to `\":\"`.\n * @param precision The number of places of decimal precision to include in the\n * result. Defaults to 0.\n * @returns The formatted angle.\n */\nexport function fmtDegLon(angleRad, sep1, sep2, precision) {\n if (sep1 === void 0) { sep1 = \":\"; }\n if (sep2 === void 0) { sep2 = \":\"; }\n if (precision === void 0) { precision = 0; }\n return _formatSexagesimal(angnorm(angleRad) * R2D, false, 3, sep1, sep2, precision);\n}\n//# sourceMappingURL=index.js.map","import { render } from \"./Embed.vue?vue&type=template&id=24c8362f&ts=true\"\nimport script from \"./Embed.vue?vue&type=script&lang=ts\"\nexport * from \"./Embed.vue?vue&type=script&lang=ts\"\n\nimport \"./Embed.vue?vue&type=style&index=0&id=24c8362f&lang=less\"\n\nimport exportComponent from \"../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createApp } from \"vue\";\n\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport {\n faAdjust,\n faCompress,\n faExpand,\n faMountain,\n faPlay,\n faPause,\n faRedo,\n faSearchMinus,\n faSearchPlus,\n faSlidersH,\n faUndoAlt,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';\n\nimport VueSlider from 'vue-slider-component';\nimport 'vue-slider-component/theme/default.css';\nimport Popper from \"vue3-popper\";\n\nimport { EmbedSettings } from \"@wwtelescope/embed-common\";\nimport { wwtPinia, WWTComponent } from \"@wwtelescope/engine-pinia\";\n\nimport Embed from \"./Embed.vue\";\n\nlibrary.add(faAdjust);\nlibrary.add(faCompress);\nlibrary.add(faExpand);\nlibrary.add(faMountain);\nlibrary.add(faPlay);\nlibrary.add(faPause);\nlibrary.add(faRedo);\nlibrary.add(faSearchMinus);\nlibrary.add(faSearchPlus);\nlibrary.add(faSlidersH);\nlibrary.add(faUndoAlt);\n\nconst queryParams = new URLSearchParams(window.location.search);\nconst settings = EmbedSettings.fromQueryParams(queryParams.entries());\n\ncreateApp(Embed, {\n wwtNamespace: \"wwt-engine\",\n embedSettings: settings\n })\n .use(wwtPinia)\n .component('WorldWideTelescope', WWTComponent)\n .component('Popper', Popper)\n .component('font-awesome-icon', FontAwesomeIcon)\n .component('vue-slider', VueSlider)\n .provide('wwtNamespace', 'wwt-embed')\n .provide('embedSettings', settings)\n .mount(\"#app\");\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_wwtelescope_embed\"] = self[\"webpackChunk_wwtelescope_embed\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [999], () => (__webpack_require__(76)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["root","factory","module","exports","self","__WEBPACK_EXTERNAL_MODULE__19__","__WEBPACK_EXTERNAL_MODULE__648__","__webpack_modules__","__unused_webpack_module","c","sfc","props","target","__vccOpts","key","val","__webpack_module_cache__","moduleId","cachedModule","undefined","d","definition","o","Object","defineProperty","enumerable","get","g","globalThis","this","Function","e","window","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","p","ImageSetLayerState","ImagesetInfo","SpreadSheetLayerInfo","WWTAwareComponent","WWTComponent","engineStore","wwtPinia","currentScript","document","src","match","extendStatics","b","setPrototypeOf","__proto__","Array","__extends","TypeError","String","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","_","label","sent","trys","ops","verb","iterator","v","op","pop","push","tslib_es6_values","m","__read","ar","error","SuppressedError","external_commonjs_vue_commonjs2_vue_root_Vue_","lib_isVue2","lib_set","isArray","Math","max","splice","getDevtoolsGlobalHook","getTarget","__VUE_DEVTOOLS_GLOBAL_HOOK__","navigator","isProxyAvailable","Proxy","HOOK_SETUP","HOOK_PLUGIN_SETTINGS_SET","supported","perf","activePinia","isPerformanceSupported","_a","performance","perf_hooks","now","Date","ApiProxy","plugin","hook","targetQueue","onQueue","defaultSettings","settings","id","item","defaultValue","localSettingsSaveId","currentSettings","raw","localStorage","getItem","data","JSON","parse","fallbacks","getSettings","setSettings","setItem","stringify","on","pluginId","proxiedOn","_target","args","method","proxiedTarget","keys","includes","setRealTarget","setupDevtoolsPlugin","pluginDescriptor","setupFn","descriptor","enableProxy","enableEarlyProxy","__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__","proxy","list","__VUE_DEVTOOLS_PLUGINS__","emit","setActivePinia","pinia","piniaSymbol","isPlainObject","toString","toJSON","MutationType","IS_CLIENT","USE_DEVTOOLS","_global","global","HTMLElement","bom","blob","autoBom","test","type","Blob","fromCharCode","download","url","name","opts","xhr","XMLHttpRequest","open","responseType","onload","saveAs","response","onerror","console","send","corsEnabled","status","click","node","dispatchEvent","MouseEvent","evt","createEvent","initMouseEvent","_navigator","userAgent","isMacOSWebView","HTMLAnchorElement","downloadSaveAs","msSaveAs","fileSaverSaveAs","a","createElement","rel","href","origin","location","URL","createObjectURL","setTimeout","revokeObjectURL","msSaveOrOpenBlob","popup","title","innerText","force","isSafari","isChromeIOS","FileReader","reader","onloadend","Error","replace","readAsDataURL","toastMessage","message","piniaMessage","__VUE_DEVTOOLS_TOAST__","warn","log","isPinia","checkClipboardAccess","checkNotFocusedError","toLowerCase","async","actionGlobalCopyState","clipboard","writeText","state","actionGlobalPasteState","loadStoresState","readText","actionGlobalSaveState","fileInput","getFileOpener","openFile","onchange","files","file","text","oncancel","accept","actionGlobalOpenStateFile","storeState","formatDisplay","display","_custom","PINIA_ROOT_LABEL","PINIA_ROOT_ID","formatStoreForInspectorTree","store","$id","formatStoreForInspectorState","storeNames","from","_s","storeMap","map","storeId","editable","getters","filter","_getters","reduce","$state","getterName","_customProperties","size","customProperties","formatEventData","events","event","operations","oldValue","newValue","operation","formatMutationType","direct","patchFunction","patchObject","isTimelineActive","componentStateTypes","MUTATIONS_LAYER_ID","INSPECTOR_ID","assign$1","getStoreType","registerPiniaDevtools","app","logo","packageName","homepage","api","addTimelineLayer","color","addInspector","icon","treeFilterPlaceholder","actions","action","tooltip","sendInspectorTree","sendInspectorState","nodeActions","nodeId","$reset","inspectComponent","payload","ctx","componentInstance","_pStores","piniaStores","values","forEach","instanceData","_isOptionsAPI","toRaw","getInspectorTree","inspectorId","stores","concat","rootNodes","getInspectorState","inspectedStore","editInspectorState","path","unshift","has","set","editComponentState","startsWith","addStoreToDevtools","logStoreChanges","bind","$onAction","after","onError","groupId","runningActionId","addTimelineEvent","layerId","time","subtitle","activeAction","logType","watch","unref","notifyComponentUpdate","deep","$subscribe","eventData","detached","flush","hotUpdate","_hotUpdate","markRaw","newStore","info","$dispose","patchActionForGrouping","actionNames","wrapWithProxy","storeActions","actionName","_actionId","trackedStore","Reflect","retValue","devtoolsPlugin","options","originalHotUpdate","_hmrPayload","createPinia","scope","effectScope","run","ref","_p","toBeInstalled","install","provide","config","globalProperties","$pinia","use","_e","Map","noop","addSubscription","subscriptions","callback","onCleanup","removeSubscription","idx","indexOf","getCurrentScope","onScopeDispose","triggerSubscriptions","slice","fallbackRunWithContext","fn","mergeReactiveObjects","patchToApply","Set","add","subPatch","targetValue","isRef","isReactive","skipHydrateSymbol","skipHydrateMap","WeakMap","shouldHydrate","pinia_assign","isComputed","effect","createOptionsStore","hot","initialState","setup","localState","toRefs","computedGetters","computed","_r","createSetupStore","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","debuggerEvents","actionSubscriptions","hotState","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","nextTick","newState","stop","delete","wrapAction","afterCallbackList","onErrorCallbackList","ret","catch","partialStore","stopWatcher","reactive","runWithContext","setupStore","actionValue","nonEnumerable","writable","configurable","extender","extensions","hydrate","defineStore","idOrOptions","setupOptions","isSetupStore","useStore","hasContext","hasInjectionContext","inject","mapState","keysOrMapper","reduced","storeKey","mapActions","AltTypes","AltUnits","BandPass","Classification","CoordinatesType","DataTypes","FadeType","FolderGroup","FolderRefreshType","FolderType","ImageSetType","MarkerScales","PlotTypes","PointScaleTypes","ProjectionType","RAUnits","ReferenceFrames","ReferenceFrameTypes","ScaleTypes","SolarSystemObjects","PI","R2D","D2R","R2H","H2R","D2H","engine_root_wwtlib_","layerSettingNames","copyLayerSettings","source","dest","e_2","layerSettingNames_2","layerSettingNames_2_1","e_2_1","return","LayerState","get_astronomical","astronomical","set_astronomical","get_color","set_color","get_enabled","enabled","set_enabled","get_endTime","endTime","set_endTime","get_fadeSpan","fadeSpan","set_fadeSpan","get_fadeType","fadeType","set_fadeType","get_name","set_name","get_opacity","opacity","set_opacity","get_opened","opened","set_opened","get_referenceFrame","referenceFrame","set_referenceFrame","get_startTime","startTime","set_startTime","get_version","version","set_version","justImageSetLayerSettingNames","applyImageSetLayerSetting","layer","setting","funcName","copyImageSetLayerSettings","justImageSetLayerSettingNames_2","justImageSetLayerSettingNames_2_1","imagesetlayer_ImageSetLayerState","_super","_this","get_colorMapperName","colorMapperName","set_colorMapperName","get_overrideDefaultLayer","overrideDefaultLayer","set_overrideDefaultLayer","justSpreadSheetLayerSettingNames","applySpreadSheetLayerSetting","copySpreadSheetLayerSettings","justSpreadSheetLayerSettingNames_2","justSpreadSheetLayerSettingNames_2_1","SpreadSheetLayerState","get_altColumn","altColumn","set_altColumn","get_altType","altType","set_altType","get_altUnit","altUnit","set_altUnit","get_barChartBitmask","barChartBitmask","set_barChartBitmask","get_beginRange","beginRange","set_beginRange","get_cartesianCustomScale","cartesianCustomScale","set_cartesianCustomScale","get_cartesianScale","cartesianScale","set_cartesianScale","get_colorMapColumn","colorMapColumn","set_colorMapColumn","get_coordinatesType","coordinatesType","set_coordinatesType","get_decay","decay","set_decay","get_dynamicColor","dynamicColor","set_dynamicColor","get_dynamicData","dynamicData","set_dynamicData","get_endDateColumn","endDateColumn","set_endDateColumn","get_endRange","endRange","set_endRange","get_geometryColumn","geometryColumn","set_geometryColumn","get_hyperlinkColumn","hyperlinkColumn","set_hyperlinkColumn","get_hyperlinkFormat","hyperlinkFormat","set_hyperlinkFormat","get_latColumn","latColumn","set_latColumn","get_lngColumn","lngColumn","set_lngColumn","get_markerColumn","markerColumn","set_markerColumn","get_markerIndex","markerIndex","set_markerIndex","get_markerScale","markerScale","set_markerScale","get_nameColumn","nameColumn","set_nameColumn","get_normalizeColorMap","normalizeColorMap","set_normalizeColorMap","get_normalizeColorMapMax","normalizeColorMapMax","set_normalizeColorMapMax","get_normalizeColorMapMin","normalizeColorMapMin","set_normalizeColorMapMin","get_normalizeSize","normalizeSize","set_normalizeSize","get_normalizeSizeClip","normalizeSizeClip","set_normalizeSizeClip","get_normalizeSizeMax","normalizeSizeMax","set_normalizeSizeMax","get_normalizeSizeMin","normalizeSizeMin","set_normalizeSizeMin","get_plotType","plotType","set_plotType","get_pointScaleType","pointScaleType","set_pointScaleType","get_raUnits","raUnits","set_raUnits","get_scaleFactor","scaleFactor","set_scaleFactor","get_showFarSide","showFarSide","set_showFarSide","get_sizeColumn","sizeColumn","set_sizeColumn","get_startDateColumn","startDateColumn","set_startDateColumn","get_timeSeries","timeSeries","set_timeSeries","get_xAxisColumn","xAxisColumn","set_xAxisColumn","get_xAxisReverse","xAxisReverse","set_xAxisReverse","get_yAxisColumn","yAxisColumn","set_yAxisColumn","get_yAxisReverse","yAxisReverse","set_yAxisReverse","get_zAxisColumn","zAxisColumn","set_zAxisColumn","get_zAxisReverse","zAxisReverse","set_zAxisReverse","annotationSettingNames","copyAnnotationSettings","annotationSettingNames_2","annotationSettingNames_2_1","AnnotationState","get_id","set_id","get_label","set_label","get_showHoverLabel","showHoverLabel","set_showHoverLabel","get_tag","tag","set_tag","justCircleAnnotationSettingNames","copyCircleAnnotationSettings","justCircleAnnotationSettingNames_2","justCircleAnnotationSettingNames_2_1","CircleAnnotationState","get_fill","fill","set_fill","get_fillColor","fillColor","set_fillColor","get_lineColor","lineColor","set_lineColor","get_lineWidth","lineWidth","set_lineWidth","get_radius","radius","set_radius","get_skyRelative","skyRelative","set_skyRelative","engineSettingNames","copyEngineSettings","engineSettingNames_2","engineSettingNames_2_1","EngineState","get_actualPlanetScale","actualPlanetScale","set_actualPlanetScale","get_constellationArtFilter","constellationArtFilter","set_constellationArtFilter","get_constellationBoundariesFilter","constellationBoundariesFilter","set_constellationBoundariesFilter","get_constellationFigureColor","constellationFigureColor","set_constellationFigureColor","get_constellationFiguresFilter","constellationFiguresFilter","set_constellationFiguresFilter","get_constellationBoundryColor","constellationBoundryColor","set_constellationBoundryColor","get_constellationNamesFilter","constellationNamesFilter","set_constellationNamesFilter","get_constellations","constellations","set_constellations","get_constellationSelectionColor","constellationSelectionColor","set_constellationSelectionColor","get_constellationsEnabled","constellationsEnabled","set_constellationsEnabled","get_crosshairsColor","crosshairsColor","set_crosshairsColor","get_earthCutawayView","earthCutawayView","set_earthCutawayView","get_galacticMode","galacticMode","set_galacticMode","get_localHorizonMode","localHorizonMode","set_localHorizonMode","get_locationAltitude","locationAltitude","set_locationAltitude","get_locationLat","locationLat","set_locationLat","get_locationLng","locationLng","set_locationLng","get_milkyWayModel","milkyWayModel","set_milkyWayModel","get_minorPlanetsFilter","minorPlanetsFilter","set_minorPlanetsFilter","get_planetOrbitsFilter","planetOrbitsFilter","set_planetOrbitsFilter","get_showAltAzGrid","showAltAzGrid","set_showAltAzGrid","get_showAltAzGridText","showAltAzGridText","set_showAltAzGridText","get_showConstellationBoundries","showConstellationBoundries","set_showConstellationBoundries","get_showConstellationFigures","showConstellationFigures","set_showConstellationFigures","get_showConstellationLabels","showConstellationLabels","set_showConstellationLabels","get_showConstellationPictures","showConstellationPictures","set_showConstellationPictures","get_showConstellations","showConstellations","set_showConstellations","get_showConstellationSelection","showConstellationSelection","set_showConstellationSelection","get_showCrosshairs","showCrosshairs","set_showCrosshairs","get_showEarthSky","showEarthSky","set_showEarthSky","get_showEcliptic","showEcliptic","set_showEcliptic","get_showEclipticGrid","showEclipticGrid","set_showEclipticGrid","get_showEclipticGridText","showEclipticGridText","set_showEclipticGridText","get_showEclipticOverviewText","showEclipticOverviewText","set_showEclipticOverviewText","get_showElevationModel","showElevationModel","set_showElevationModel","get_showEquatorialGridText","showEquatorialGridText","set_showEquatorialGridText","get_showGalacticGrid","showGalacticGrid","set_showGalacticGrid","get_showGalacticGridText","showGalacticGridText","set_showGalacticGridText","get_showGrid","showGrid","set_showGrid","get_showHorizon","showHorizon","set_showHorizon","get_showISSModel","showISSModel","set_showISSModel","get_showPrecessionChart","showPrecessionChart","set_showPrecessionChart","get_showSkyGrids","showSkyGrids","set_showSkyGrids","get_showSkyOverlays","showSkyOverlays","set_showSkyOverlays","get_showSkyOverlaysIn3d","showSkyOverlaysIn3d","set_showSkyOverlaysIn3d","get_showSkyNode","showSkyNode","set_showSkyNode","get_showSolarSystem","showSolarSystem","set_showSolarSystem","get_smoothPan","smoothPan","set_smoothPan","get_solarSystemCMB","solarSystemCMB","set_solarSystemCMB","get_solarSystemCosmos","solarSystemCosmos","set_solarSystemCosmos","get_solarSystemLighting","solarSystemLighting","set_solarSystemLighting","get_solarSystemMilkyWay","solarSystemMilkyWay","set_solarSystemMilkyWay","get_solarSystemMinorPlanets","solarSystemMinorPlanets","set_solarSystemMinorPlanets","get_solarSystemMultiRes","solarSystemMultiRes","set_solarSystemMultiRes","get_solarSystemOrbits","solarSystemOrbits","set_solarSystemOrbits","get_solarSystemOverlays","solarSystemOverlays","set_solarSystemOverlays","get_solarSystemPlanets","solarSystemPlanets","set_solarSystemPlanets","get_solarSystemScale","solarSystemScale","set_solarSystemScale","get_solarSystemStars","solarSystemStars","set_solarSystemStars","get_solarSystemMinorOrbits","solarSystemMinorOrbits","set_solarSystemMinorOrbits","justPolyAnnotationSettingNames","copyPolyAnnotationSettings","justPolyAnnotationSettingNames_2","justPolyAnnotationSettingNames_2_1","PolyAnnotationState","justPolyLineAnnotationSettingNames","copyPolyLineAnnotationSettings","justPolyLineAnnotationSettingNames_2","justPolyLineAnnotationSettingNames_2_1","PolyLineAnnotationState","justVoTableLayerSettingNames","copyVoTableLayerSettings","justVoTableLayerSettingNames_2","justVoTableLayerSettingNames_2_1","VoTableLayerState","get_autoUpdate","autoUpdate","set_autoUpdate","get_dataSourceUrl","dataSourceUrl","set_dataSourceUrl","SavedPromise","WWTInstance","readyPromises","readyFired","arrivePromises","arriveSeqnum","collectionLoadedPromises","collectionRequests","tourReadyPromises","tourReadySeqnum","tourEndedCallback","builder","WWTControlBuilder","elId","startInternalRenderLoop","startRenderLoop","freestandingAssetBaseurl","freestandingMode","startLatDeg","startLngDeg","zoom","startZoomDeg","initialView","startMode","initialMode","si","ctl","WWTControl","singleton","lm","LayerManager","stc","SpaceTimeController","applySetting","add_ready","_si","e_1","_b","_c","e_1_1","add_arrived","_args","add_tourReady","e_3","e_3_1","TourPlayer","add_tourEnded","_tpclass","tp","getActiveTourPlayer","waitForReady","makeArrivePromise","instantResolve","e_4","seq","e_4_1","gotoRADecZoom","raRad","decRad","zoomDeg","instant","rollRad","timeToRADecZoom","gotoTarget","place","noZoom","trackObject","addImagesetToRepository","imgset","addImageSetToRepository","loadImageCollection","loadChildFolders","curState","holder_1","Wtml","getWtmlFile","addImageSetLayer","_reject","mode","goto","setImageSetLayerOrder","order","stretchFitsLayer","get_layerList","ImageSetLayer","setImageScalePhysical","stretch","vmin","vmax","fits","getFitsImage","get_imageSet","get_fitsProperties","transparentBlack","setFitsLayerColormap","applyFitsLayerSettings","e_5","e_5_1","updateTableLayer","SpreadSheetLayer","updateData","dataCsv","applyTableLayerSettings","e_6","e_6_1","addCatalogHipsByName","getImagesetByName","renderContext","addCatalogHips","getCatalogHipsDataInView","imageset","limit","msg","setBackgroundImageByName","imagesetName","setForegroundImageByName","setForegroundOpacity","setupForImageset","bkg","imageHeightDeg","background","getDefaultImageset","foreground","get_dataSetType","get_bandPass","get_levels","get_baseTileDegrees","get_offsetY","Place","set_type","set_backgroundImageset","set_studyImageset","sky","set_RA","get_centerX","set_dec","get_centerY","set_zoomLevel","earth","planet","set_lng","set_lat","uiController","getIsTourPlaying","_player","get_playing","loadTour","e_7","_d","e_7_1","loadAndPlayTour","e_8","playTour","e_8_1","getEffectiveTourTimecode","player","tour","get_tour","get_currentTourstopIndex","base","elapsedTimeTillTourstop","get_tourStops","delta","get_tweenPosition","get_duration","runTime","get_runTime","seekToTourTimecode","stops","index","tStart","playFromTourstop","captureFrame","width","height","format","captureVideo","wwtControl","videoStream","ReadableStream","start","controller","stream","received","enqueue","totalFrames","close","framesPerSecond","WWTGlobalState","inst","onLinkedCallbacks","link","cb","unlink","description","extension","fromImageset","get_url","get_creditsText","get_extension","get_hipsProperties","get_catalogSpreadSheetLayer","setName","guidText","scaleType","lowerCut","upperCut","colormapName","colorMapName","getGuid","activeLayersList","wwt","layers","accum","entries","childMaps","_f","_g","sublm","rootlm","get_allMaps","getCurrentReferenceFrame","availableImagesets","getImageSets","activeLayers","backgroundImageset","clockDiscontinuities","clockRate","currentTime","foregroundImageset","foregroundOpacity","imagesetLayers","isTourPlayerActive","isTourPlaying","renderType","spreadSheetLayers","timeAtStartup","tourCompletions","tourRunTime","tourStopStartTimes","tourTimecode","showWebGl2Warning","lookupImageset","_state","$wwt","findRADecForScreenPoint","pt","coords","getCoordinatesForScreenPoint","x","ra","dec","findScreenPointForRADec","getScreenPointForCoordinates","imagesetStateForLayer","guidtext","activeImagesetLayerStates","states","guid","layerState","catalogLayerKey","catalog","imagesetForLayer","imagesetLayerById","layerById","layerForHipsCatalog","Guid","createFrom","spreadSheetLayerById","spreadsheetStateForHipsCatalog","spreadsheetStateById","spreadSheetLayer","spreadsheetState","internalLinkToInstance","internalUnlinkFromInstance","internalUpdate","getRA","getDec","viewCamera","rotation","bg","get_backgroundImageset","get_now","fg","get_foregroundImageset","isUsingWebGl2","internalIncrementTourCompletions","factor","move","tilt","_tilt","setTime","set_now","setClockRate","rate","get_timeRate","set_timeRate","setClockSync","isSynced","get_syncToClock","set_syncToClock","startTour","play","toggleTourPlayPauseState","pauseTour","setTourPlayerLeaveSettingsWhenStopped","set_leaveSettingsWhenStopped","viewAsTourXml","editor","tourXml","createTour","tourEdit","addSlide","saveToBlob","readAsText","waitThenResolve","setTrackedObject","set_solarSystemTrack","nStops","deleteLayer","stringId","fromString","deleteLayerByID","wwtLayer","loadFitsLayer","addImageSetLayerOptions","createTableLayer","prom","createSpreadsheetLayer","meters","hips","find","removeCatalogHipsByName","addAnnotation","ann","removeAnnotation","clearAnnotations","clearTileCache","TileCache","clearCache","_hoisted_1","render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","uniqueId","class","idCounter","Componentvue_type_script_lang_ts","defineComponent","wwtNamespace","default","required","wwtFreestandingAssetBaseurl","customId","renderLoopId","methods","created","uid","defineProperties","mounted","requestAnimationFrame","renderOneFrame","_tp","unmounted","cancelAnimationFrame","exportHelper","__exports__","Component","wwtActiveLayers","wwtAvailableImagesets","wwtBackgroundImageset","wwtCurrentTime","wwtClockDiscontinuities","wwtClockRate","wwtDecRad","wwtForegroundImageset","wwtForegroundOpacity","wwtImagesetLayers","wwtIsTourPlayerActive","wwtIsTourPlaying","wwtRARad","wwtRenderType","wwtRollRad","wwtShowWebGl2Warning","wwtSpreadSheetLayers","wwtTourCompletions","wwtTourRunTime","wwtTourStopStartTimes","wwtTourTimecode","wwtZoomDeg","Annotation","Circle","Poly","PolyLine","_typesystem_js__WEBPACK_IMPORTED_MODULE_0__","_ss_js__WEBPACK_IMPORTED_MODULE_1__","_double3d_js__WEBPACK_IMPORTED_MODULE_2__","_graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_3__","_graphics_tessellator_js__WEBPACK_IMPORTED_MODULE_4__","_color_js__WEBPACK_IMPORTED_MODULE_5__","_coordinates_js__WEBPACK_IMPORTED_MODULE_6__","addedToPrimitives","annotationDirty","_opacity","_showHoverLabel","pointList","lineList","triangleFanPointList","triangleList","batchDirty","prepBatch","PointList","LineList","TriangleFanList","TriangleList","set_depthBuffered","depthBuffered","drawBatch","gl","draw","drawLines","separation","Alpha1","Delta1","Alpha2","Delta2","cos","sin","z","vvalue","atan2","sqrt","colorToUint","col","colorToUintAlpha","Annotation$","_id","_tag","_label","hitTest","RA","get_center","center","set_center","_fill$1","_skyRelative$1","_strokeWidth$1","_radius$1","_lineColor$1","Colors","get_white","_fillColor$1","_ra$1","_dec$1","registerType","Circle$","Color","load","fromName","setCenter","Coordinates","raDecTo3d","onScreen","rad","get_fovScale","screenSpacePnt","WVP","transform","Vector3d","dot","get_viewPoint","up","xNormal","cross","yNormal","segments","radiansPerSegment","vertexList","j","lineColorWithOpacity","_clone","round","addLine","Dates","fillColorWithOpacity","pos","addShape","device","save","globalAlpha","beginPath","arc","fillStyle","strokeStyle","stroke","restore","ss","emptyString","_points$1","Poly$","addPoint","indexes","Tessellator","tesselateSimplePoly","addSubdividedTriangles","first","$enum1","enumerate","moveNext","pnt","current","moveTo","lineTo","closePath","PolyLine$","AstroCalc","AstroRaDec","RiseSetDetails","_util_js__WEBPACK_IMPORTED_MODULE_2__","_astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__","_astrocalc_date_js__WEBPACK_IMPORTED_MODULE_4__","_astrocalc_nutation_js__WEBPACK_IMPORTED_MODULE_5__","_astrocalc_parallax_js__WEBPACK_IMPORTED_MODULE_6__","_astrocalc_physical_jupiter_js__WEBPACK_IMPORTED_MODULE_7__","_astrocalc_rise_transit_set_js__WEBPACK_IMPORTED_MODULE_8__","_astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_9__","_astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_10__","_astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_11__","galDetails","GMDS","jupDetails","EPD","jupPhisical","CAAPhysicalJupiterDetails","jDateLast","dist","shadow","eclipsed","distance","AstroRaDec$","bValid","Rise","Transit","neverRises","rise","transit","bNeverRises","RiseSetDetails$","getPlanet","jDate","planetIn","locLat","locLong","locHeight","Details","ELL","calculate","corrected","CAAParallax","equatorial2Topocentric","apparentGeocentricRA","apparentGeocentricDeclination","apparentGeocentricDistance","lat","CAAMoon","eclipticLatitude","lng","eclipticLongitude","dis","radiusVector","epsilon","CAANutation","trueObliquityOfEcliptic","CT","ec2Eq","CAAPhysicalJupiter","GM","xTemp","yTemp","jupiterDiameter","scale","atan","raScale","xMoon","yMoon","zMoon","satellite1","apparentRectangularCoordinates","bInEclipse","bInShadowTransit","satellite2","satellite3","satellite4","apparentShadowRectangularCoordinates","radians","getJulianDay","year","month","day","DT","dateToJD","truncate","eclipticToJ2000","l","jNow","radec","galacticToJ2000","g2Eq","j2000ToGalactic","galactic","eq2G","getRiseTrinsitSet","jd","ra1","dec1","ra2","dec2","ra3","dec3","alt","RiseTransitSetTime","CAARiseTransitSet","Util","sign","AstroCalc$","ABR","ACFT","_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_1__","_sun_js__WEBPACK_IMPORTED_MODULE_2__","L2","L3","L4","L5","L6","L7","L8","Ldash","D","Mdash","F","xsin","xsint","xcos","xcost","ysin","ysint","ycos","ycost","zsin","zsint","zcos","zcost","l2","l3","l4","l5","l6","l7","l8","ldash","mdash","ACFT$","g_ACft","earthVelocity","JD","T","velocity","C3D","nAberrationCoefficients","Argument","eclipticAberration","Lambda","Beta","aberration","COR","Tsquared","pi","k","SunLongitude","CAASun","geometricEclipticLongitude","d2R","equatorialAberration","Alpha","Delta","cosAlpha","sinAlpha","cosDelta","sinDelta","r2H","r2D","ABR$","ASEP","h2R","positionAngle","alpha1","delta1","alpha2","delta2","DeltaAlpha","demoninator","tan","numerator","distanceFromGreatArc","Alpha3","Delta3","X1","X2","Y1","Y2","Z1","Z2","A","B","C","asin","abs","ASEP$","COR$","C3D$","eq2Ec","Epsilon","Ecliptic","Equatorial","eq2H","LocalHourAngle","Latitude","Horizontal","h2Eq","Azimuth","Altitude","h2D","Galactic","d2H","Degrees","Radians","Hours","m360","floor","m24","HourAngle","dmS2D","Minutes","Seconds","dmS2Dp","bPositive","assert","CT$","CalD","DAY_OF_WEEK","_ss_js__WEBPACK_IMPORTED_MODULE_0__","_typesystem_js__WEBPACK_IMPORTED_MODULE_1__","CalD$","SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","m_dblJulian","m_bGregorianCalendar","Year","Month","Day","bGregorianCalendar","createHMS","Hour","Minute","Second","createJD","setJD","Y","M","isLeap","afterPapalReform","afterPapalReformJD","dayOfYearJD","daysInMonthForMonth","bLeap","MonthLength","INT","DT$","julian","hour","minute","second","dblDay","setInGregorianCalendar","bAfterPapalReform","tempZ","Z","alpha","E","dayOfWeek","dayOfYear","daysInMonth","daysInYear","leap","inGregorianCalendar","fractionalYear","DaysInYear","DYT","_date_js__WEBPACK_IMPORTED_MODULE_2__","deltaTTable","deltaT","date","Index","nLookupSize","DYT$","CAAEarth","VSC","VSC$","g_L0EarthCoefficients","g_L1EarthCoefficients","g_L2EarthCoefficients","g_L3EarthCoefficients","g_L4EarthCoefficients","g_L5EarthCoefficients","g_B0EarthCoefficients","g_B1EarthCoefficients","g_B2EarthCoefficients","g_B3EarthCoefficients","g_B4EarthCoefficients","g_R0EarthCoefficients","g_R1EarthCoefficients","g_R2EarthCoefficients","g_R3EarthCoefficients","g_R4EarthCoefficients","g_L1EarthCoefficientsJ2000","g_L2EarthCoefficientsJ2000","g_L3EarthCoefficientsJ2000","g_L4EarthCoefficientsJ2000","g_B1EarthCoefficientsJ2000","g_B2EarthCoefficientsJ2000","g_B3EarthCoefficientsJ2000","g_B4EarthCoefficientsJ2000","rho","rhosquared","rhocubed","rho4","rho5","nL0Coefficients","L0","nL1Coefficients","L1","nL2Coefficients","nL3Coefficients","nL4Coefficients","nL5Coefficients","nB0Coefficients","B0","nB1Coefficients","B1","nB2Coefficients","B2","nB3Coefficients","B3","nB4Coefficients","B4","nR0Coefficients","R0","nR1Coefficients","R1","nR2Coefficients","R2","nR3Coefficients","R3","nR4Coefficients","R4","sunMeanAnomaly","Tcubed","eccentricity","eclipticLongitudeJ2000","eclipticLatitudeJ2000","CAAEarth$","CAAEclipticalElementDetails","CAAEclipticalElements","w","omega","CAAEclipticalElementDetails$","i0","w0","omega0","JD0","tsquared","tcubed","i0rad","omega0rad","eta","sini0rad","cosi0rad","sinomega0rad_pi","cosomega0rad_pi","sineta","coseta","irad","details","cosi","phi","deltaw","fK4B1950ToFK5J2000","L","J","cosJ","sinJ","W","cosW","sinW","CAAEclipticalElements$","EPO","mercuryMeanLongitude","mercurySemimajorAxis","UnnamedParameter1","mercuryEccentricity","mercuryInclination","mercuryLongitudeAscendingNode","mercuryLongitudePerihelion","venusMeanLongitude","venusSemimajorAxis","venusEccentricity","venusInclination","venusLongitudeAscendingNode","venusLongitudePerihelion","earthMeanLongitude","earthSemimajorAxis","earthEccentricity","earthInclination","earthLongitudePerihelion","marsMeanLongitude","marsSemimajorAxis","marsEccentricity","marsInclination","marsLongitudeAscendingNode","marsLongitudePerihelion","jupiterMeanLongitude","jupiterSemimajorAxis","jupiterEccentricity","jupiterInclination","jupiterLongitudeAscendingNode","jupiterLongitudePerihelion","saturnMeanLongitude","saturnSemimajorAxis","saturnEccentricity","saturnInclination","saturnLongitudeAscendingNode","saturnLongitudePerihelion","uranusMeanLongitude","uranusSemimajorAxis","uranusEccentricity","uranusInclination","uranusLongitudeAscendingNode","uranusLongitudePerihelion","neptuneMeanLongitude","neptuneSemimajorAxis","neptuneEccentricity","neptuneInclination","neptuneLongitudeAscendingNode","neptuneLongitudePerihelion","mercuryMeanLongitudeJ2000","mercuryInclinationJ2000","mercuryLongitudeAscendingNodeJ2000","mercuryLongitudePerihelionJ2000","venusMeanLongitudeJ2000","venusInclinationJ2000","venusLongitudeAscendingNodeJ2000","venusLongitudePerihelionJ2000","earthMeanLongitudeJ2000","earthInclinationJ2000","earthLongitudeAscendingNodeJ2000","earthLongitudePerihelionJ2000","marsMeanLongitudeJ2000","marsInclinationJ2000","marsLongitudeAscendingNodeJ2000","marsLongitudePerihelionJ2000","jupiterMeanLongitudeJ2000","jupiterInclinationJ2000","jupiterLongitudeAscendingNodeJ2000","jupiterLongitudePerihelionJ2000","saturnMeanLongitudeJ2000","saturnInclinationJ2000","saturnLongitudeAscendingNodeJ2000","saturnLongitudePerihelionJ2000","uranusMeanLongitudeJ2000","uranusInclinationJ2000","uranusLongitudeAscendingNodeJ2000","uranusLongitudePerihelionJ2000","neptuneMeanLongitudeJ2000","neptuneInclinationJ2000","neptuneLongitudeAscendingNodeJ2000","neptuneLongitudePerihelionJ2000","EPO$","EO","EOD","EOE","_baseutil_js__WEBPACK_IMPORTED_MODULE_1__","_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_2__","_earth_js__WEBPACK_IMPORTED_MODULE_3__","_fk5_js__WEBPACK_IMPORTED_MODULE_4__","_nutation_js__WEBPACK_IMPORTED_MODULE_5__","_sun_js__WEBPACK_IMPORTED_MODULE_6__","_mercury_js__WEBPACK_IMPORTED_MODULE_7__","_venus_js__WEBPACK_IMPORTED_MODULE_8__","_mars_js__WEBPACK_IMPORTED_MODULE_9__","_jupiter_js__WEBPACK_IMPORTED_MODULE_10__","_saturn_js__WEBPACK_IMPORTED_MODULE_11__","_uranus_js__WEBPACK_IMPORTED_MODULE_12__","_neptune_js__WEBPACK_IMPORTED_MODULE_13__","_pluto_js__WEBPACK_IMPORTED_MODULE_14__","_aberration_js__WEBPACK_IMPORTED_MODULE_15__","_kepler_js__WEBPACK_IMPORTED_MODULE_16__","_double3d_js__WEBPACK_IMPORTED_MODULE_17__","jdEquinox","meanAnnomolyOut","_create","br","tmp","readSingle","EOE$","apparentGeocentricLongitude","apparentGeocentricLatitude","apparentLightTime","EPD$","heliocentricRectangularEquatorial","heliocentricRectangularEcliptical","heliocentricEclipticLongitude","heliocentricEclipticLatitude","trueGeocentricRA","trueGeocentricDeclination","trueGeocentricDistance","trueGeocentricLightTime","astrometricGeocenticRA","astrometricGeocentricDeclination","astrometricGeocentricDistance","astrometricGeocentricLightTime","elongation","phaseAngle","EOD$","SUN","MERCURY","VENUS","MARS","JUPITER","SATURN","URANUS","NEPTUNE","PLUTO","distanceToLightTime","Distance","oobject","cosB0","Lrad","Brad","cosB","cosL","R","bRecalc","bFirstRecalc","LPrevious","BPrevious","RPrevious","geometricEclipticLatitude","CAAMercury","CAAVenus","CAAMars","CAAJupiter","CAASaturn","CAAUranus","CAANeptune","CAAPluto","x2","y2","Aberration","DeltaLong","CAAFK5","correctionInLongitude","correctionInLatitude","NutationInLongitude","nutationInLongitude","ApparentEqu","semiMajorAxisFromPerihelionDistance","q","meanMotionFromSemiMajorAxis","calculateRectangularJD","elements","sinEpsilon","cosEpsilon","sinOmega","cosOmega","sini","G","H","Q","CAAKepler","calculateRectangular","meanAnomoly","calculateElements","meanObliquityOfEcliptic","SunCoord","equatorialRectangularCoordinatesAnyEquinox","u","cosu","sinu","psi","nu","sigma","RES","acos","instantaneousVelocity","velocityAtPerihelion","velocityAtAphelion","lengthOfEllipse","cometMagnitude","log10","minorPlanetMagnitude","PhaseAngle","phi1","exp","pow","phi2","ELL$","EOT","_nutation_js__WEBPACK_IMPORTED_MODULE_2__","_sun_js__WEBPACK_IMPORTED_MODULE_3__","SunLong","apparentEclipticLongitude","SunLat","apparentEclipticLatitude","EOT$","Longitude","convertVSOPToFK5J2000","convertVSOPToFK5B1950","convertVSOPToFK5AnyEquinox","JDEquinox","zeta","cossigma","coszeta","cosphi","sinsigma","sinzeta","sinphi","xx","xy","xz","yx","yy","yz","zx","zy","zz","CAAFK5$","GMD","_jupiter_js__WEBPACK_IMPORTED_MODULE_4__","_elliptical_js__WEBPACK_IMPORTED_MODULE_5__","_elements_planetary_orbit_js__WEBPACK_IMPORTED_MODULE_6__","meanLongitude","trueLongitude","tropicalLongitude","equatorialLatitude","eclipticRectangularCoordinates","trueRectangularCoordinates","bInTransit","bInOccultation","GMD$","GMDS$","sunlong","sunlongrad","beta","betarad","DELTA","PreviousEarthLightTravelTime","EarthLightTravelTime","JD1","bIterate","lrad","brad","details1","calculateHelper","fillInPhenomenaDetails","SunLightTravelTime","details2","PreviousLightTravelTime","LightTravelTime","lambda0","beta0","l1","l1rad","l2rad","l3rad","l4rad","pi1","pi2","pi3","pi4","w1","w1rad","w2","w2rad","w3","w3rad","w4","w4rad","GAMMA","philambda","Gdash","Sigma1","Sigma2","Sigma3","Sigma4","T0","I","Irad","X3","X4","X5","Y3","Y4","Y5","Z3","Z4","Z5","A6","B6","C6","north","abc","rotations","X","eclipticCoord","A1","C1","A2","C2","A3","C3","A4","C4","JupiterRadiiToAU","A5","B5","C5","detail","GM$","CAAGlobe","rhoSinThetaPrime","GeographicalLatitude","Height","U","rhoCosThetaPrime","radiusOfParallelOfLatitude","sinGeo","radiusOfCurvature","distanceBetweenPoints","GeographicalLatitude1","GeographicalLongitude1","GeographicalLatitude2","GeographicalLongitude2","lambda","sinG","cosG","cosF","sinF","sinLambda","cosLambda","S","Hprime","Hprime2","CAAGlobe$","IFR","phaseAngle2","phaseAngleRectangular","illuminatedFraction","illuminatedFraction2","mercuryMagnitudeMuller","I_50","venusMagnitudeMuller","marsMagnitudeMuller","jupiterMagnitudeMuller","saturnMagnitudeMuller","DeltaU","sinB","uranusMagnitudeMuller","neptuneMagnitudeMuller","mercuryMagnitudeAA","i2","i3","venusMagnitudeAA","marsMagnitudeAA","jupiterMagnitudeAA","saturnMagnitudeAA","uranusMagnitudeAA","neptuneMagnitudeAA","plutoMagnitudeAA","IFR$","INTP","interpolate","interpolate2","K","N2","N3","N4","interpolateToHalves","lagrangeInterpolate","pX","pY","V","zero","n0prev","n0","zeroB","n0prev2","n0prev3","n0prev4","zero2","deltan0","zero2B","N","INTP$","_earth_js__WEBPACK_IMPORTED_MODULE_2__","g_L0JupiterCoefficients","g_L1JupiterCoefficients","g_L2JupiterCoefficients","g_L3JupiterCoefficients","g_L4JupiterCoefficients","g_L5JupiterCoefficients","g_B0JupiterCoefficients","g_B1JupiterCoefficients","g_B2JupiterCoefficients","g_B3JupiterCoefficients","g_B4JupiterCoefficients","g_B5JupiterCoefficients","g_R0JupiterCoefficients","g_R1JupiterCoefficients","g_R2JupiterCoefficients","g_R3JupiterCoefficients","g_R4JupiterCoefficients","g_R5JupiterCoefficients","nB5Coefficients","nR5Coefficients","R5","CAAJupiter$","calculateIter","nIterations","CAAKepler$","g_L0MarsCoefficients","g_L1MarsCoefficients","g_L2MarsCoefficients","g_L3MarsCoefficients","g_L4MarsCoefficients","g_L5MarsCoefficients","g_B0MarsCoefficients","g_B1MarsCoefficients","g_B2MarsCoefficients","g_B3MarsCoefficients","g_B4MarsCoefficients","g_R0MarsCoefficients","g_R1MarsCoefficients","g_R2MarsCoefficients","g_R3MarsCoefficients","g_R4MarsCoefficients","CAAMars$","g_L0MercuryCoefficients","g_L1MercuryCoefficients","g_L2MercuryCoefficients","g_L3MercuryCoefficients","g_L4MercuryCoefficients","g_L5MercuryCoefficients","g_B0MercuryCoefficients","g_B1MercuryCoefficients","g_B2MercuryCoefficients","g_B3MercuryCoefficients","g_B4MercuryCoefficients","g_R0MercuryCoefficients","g_R1MercuryCoefficients","g_R2MercuryCoefficients","g_R3MercuryCoefficients","CAAMercury$","MoonCoefficient1","MoonCoefficient2","_nutation_js__WEBPACK_IMPORTED_MODULE_3__","MoonCoefficient1$","MoonCoefficient2$","g_MoonCoefficients1","g_MoonCoefficients2","g_MoonCoefficients3","g_MoonCoefficients4","T4","meanElongation","meanAnomaly","argumentOfLatitude","meanLongitudeAscendingNode","meanLongitudePerigee","trueLongitudeAscendingNode","TrueAscendingNode","LdashDegrees","nLCoefficients","SigmaL","ThisSigma","NutationInLong","nBCoefficients","SigmaB","nRCoefficients","SigmaR","radiusVectorToHorizontalParallax","RadiusVector","horizontalParallaxToRadiusVector","Parallax","CAAMoon$","MIFR","geocentricElongation","ObjectAlpha","ObjectDelta","SunAlpha","SunDelta","GeocentricElongation","EarthObjectDistance","EarthSunDistance","Alpha0","Delta0","MIFR$","CAAMoonNodes","passageThroNode","D2","D4","Mdash2","CAAMoonNodes$","CAAMoonPerigeeApogee","MPAC","MPAC$","g_MoonPerigeeApogeeCoefficients1","g_MoonPerigeeApogeeCoefficients2","g_MoonPerigeeApogeeCoefficients3","g_MoonPerigeeApogeeCoefficients4","meanPerigee","meanApogee","truePerigee","MeanJD","nPerigeeCoefficients","Sigma","trueApogee","nApogeeCoefficients","perigeeParallax","apogeeParallax","CAAMoonPerigeeApogee$","CAAMoonPhases","meanPhase","T2","T3","truePhase","E2","A7","A8","A9","A10","A11","A12","A13","A14","kint","kfrac","DeltaJD","DeltaJD2","CAAMoonPhases$","g_L0NC","g_L1NC","g_L2NC","g_L3NC","g_L4NC","g_B0NC","g_B1NC","g_B2NC","g_B3NC","g_B4NC","g_R0NC","g_R1NC","g_R2NC","g_R3NC","CAANeptune$","NUC","Mprime","sincoeff1","sincoeff2","coscoeff1","coscoeff2","mprime","NUC$","g_NuC","nCoefficients","argument","radargument","nutationInObliquity","nutationInRightAscension","Obliquity","NutationInObliquity","nutationInDeclination","Usquared","Ucubed","U4","U5","U6","U7","U8","U9","U10","CAANutation$","CAATopocentricEclipticDetails","_globe_js__WEBPACK_IMPORTED_MODULE_2__","_sidereal_js__WEBPACK_IMPORTED_MODULE_3__","semidiameter","CAATopocentricEclipticDetails$","g_AAParallax_C1","equatorial2TopocentricDelta","RhoSinThetaPrime","RhoCosThetaPrime","theta","CAASidereal","apparentGreenwichSiderealTime","cosH","sinH","DeltaTopocentric","sinpi","Topocentric","ecliptic2Topocentric","Semidiameter","sine","cose","cosBeta","sinBeta","sintheta","cosTopocentricLambda","parallaxToDistance","distanceToParallax","CAAParallax$","DE","DS","geometricw1","geometricw2","apparentw1","apparentw2","CAAPhysicalJupiterDetails$","T1","alpha0","alpha0rad","delta0","delta0rad","W1","W2","l0","l0rad","b0","b0rad","e0","e0rad","alphas","deltas","alpharad","deltarad","xi","NutationRA","alphadash","alphadashrad","NutationDec","deltadash","deltadashrad","alpha0dash","alpha0dashrad","delta0dash","delta0dashrad","CAAPhysicalJupiter$","CAAPhysicalMars","CAAPhysicalMarsDetails","_earth_js__WEBPACK_IMPORTED_MODULE_4__","_mars_js__WEBPACK_IMPORTED_MODULE_5__","_elliptical_js__WEBPACK_IMPORTED_MODULE_6__","_illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_7__","_moon_illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_8__","CAAPhysicalMarsDetails$","Lambda0","Lambda0rad","Beta0","Beta0rad","JD2","lambdarad","Nrad","ldashrad","bdash","bdashrad","PoleEquatorial","ApparentPoleEquatorial","ApparentMars","SunLambda","SunBeta","SunEquatorial","CAAPhysicalMars$","CAAPhysicalSun","CAAPhysicalSunDetails","CAAPhysicalSunDetails$","SunLongDash","timeOfStartOfRotation","JED","CAAPhysicalSun$","PlutoCoefficient1","PlutoCoefficient2","PlutoCoefficient1$","PlutoCoefficient2$","g_PlutoArgumentCoefficients","g_PlutoLongitudeCoefficients","g_PlutoLatitudeCoefficients","g_PlutoRadiusCoefficients","nPlutoCoefficients","CAAPluto$","CAAPrecession","precessEquatorial","precessEquatorialFK4","precessEcliptic","equatorialPMToEcliptic","PMAlpha","PMDelta","cosb","adjustPositionUsingUniformProperMotion","adjustPositionUsingMotionInSpace","DeltaR","DeltaX","DeltaY","DeltaZ","CAAPrecession$","CAARiseTransitSetDetails","_dynamical_time_js__WEBPACK_IMPORTED_MODULE_2__","_interpolate_js__WEBPACK_IMPORTED_MODULE_3__","_sidereal_js__WEBPACK_IMPORTED_MODULE_4__","CAARiseTransitSetDetails$","h0","theta0","Delta2Rad","LatitudeRad","h0Rad","cosH0","H0","M0","M1","M2","theta1","DeltaM","CAARiseTransitSet$","g_L0SaturnCoefficients","g_L1SaturnCoefficients","g_L2SaturnCoefficients","g_L3SaturnCoefficients","g_L4SaturnCoefficients","g_L5SaturnCoefficients","g_B0SaturnCoefficients","g_B1SaturnCoefficients","g_B2SaturnCoefficients","g_B3SaturnCoefficients","g_B4SaturnCoefficients","g_B5SaturnCoefficients","g_R0SaturnCoefficients","g_R1SaturnCoefficients","g_R2SaturnCoefficients","g_R3SaturnCoefficients","g_R4SaturnCoefficients","g_R5SaturnCoefficients","CAASaturn$","CAASaturnRingDetails","CAASaturnRings","_fk5_js__WEBPACK_IMPORTED_MODULE_2__","_elliptical_js__WEBPACK_IMPORTED_MODULE_3__","_nutation_js__WEBPACK_IMPORTED_MODULE_4__","_earth_js__WEBPACK_IMPORTED_MODULE_5__","_saturn_js__WEBPACK_IMPORTED_MODULE_6__","deltaU","CAASaturnRingDetails$","omegarad","U1","U2","GeocentricEclipticSaturn","GeocentricEclipticNorthPole","CAASaturnRings$","_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_3__","meanGreenwichSiderealTime","JDMidnight","TSquared","TCubed","Value","MeanObliquity","TrueObliquity","CAASidereal$","CAAStellarMagnitudes","combinedMagnitude","m1","m2","combinedMagnitude2","Magnitudes","pMagnitudes","brightnessRatio","magnitudeDifference","CAAStellarMagnitudes$","_fk5_js__WEBPACK_IMPORTED_MODULE_3__","geometricEclipticLongitudeJ2000","geometricEclipticLatitudeJ2000","geometricFK5EclipticLongitude","geometricFK5EclipticLatitude","SunLatCorrection","eclipticRectangularCoordinatesMeanEquinox","eclipticRectangularCoordinatesJ2000","coslatitude","equatorialRectangularCoordinatesJ2000","equatorialRectangularCoordinatesB1950","CAASun$","g_L0UranusCoefficients","g_L1UranusCoefficients","g_L2UranusCoefficients","g_L3UranusCoefficients","g_L4UranusCoefficients","g_B0UranusCoefficients","g_B1UranusCoefficients","g_B2UranusCoefficients","g_B3UranusCoefficients","g_B4UranusCoefficients","g_R0UranusCoefficients","g_R1UranusCoefficients","g_R2UranusCoefficients","g_R3UranusCoefficients","g_R4UranusCoefficients","CAAUranus$","g_L0VenusCoefficients","g_L1VenusCoefficients","g_L2VenusCoefficients","g_L3VenusCoefficients","g_L4VenusCoefficients","g_L5VenusCoefficients","g_B0VenusCoefficients","g_B1VenusCoefficients","g_B2VenusCoefficients","g_B3VenusCoefficients","g_B4VenusCoefficients","g_R0VenusCoefficients","g_R1VenusCoefficients","g_R2VenusCoefficients","g_R3VenusCoefficients","g_R4VenusCoefficients","CAAVenus$","BasePlanets","_double3d_js__WEBPACK_IMPORTED_MODULE_1__","_graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_2__","drawPointPlanet","zOrder","ppList","minSize","copy","splitString","split","parts","end","found","substring","stringContains","chars","getHashCode","hash","charCodeAt","compare","logN","num","parseTimeSpan","timespan","parseInt","parseFloat","xmlDuration","duration","hours","min","sec","xmlDate","getHours","amPm","getMonth","getDate","getFullYear","getMinutes","getSeconds","selectSingleNode","parent","childNodes","child","nodeName","getInnerText","cn","textContent","getWrappedText","lines","toHex","number","substr","fromHex","toUpperCase","_openUrl","Util$","BlendState","_switchedTime","_targetState","_delayTime","delayTime","temp","BlendState$","get_state","ts","set_state","get_targetState","set_targetState","get_delayTime","set_delayTime","CameraParameters","InterpolationType","_coordinates_js__WEBPACK_IMPORTED_MODULE_3__","sun","mercury","venus","mars","jupiter","saturn","uranus","neptune","pluto","moon","io","europa","ganymede","callisto","ioShadow","europaShadow","ganymedeShadow","callistoShadow","sunEclipsed","custom","registerEnum","linear","easeIn","easeOut","easeInOut","exponential","defaultV","angle","raDec","viewTarget","opactity","targetReferenceFrame","sinh","to","alphaIn","fastDirectionMove","easeCurve","alphaBIn","alphaB","lerp","interpolateGreatCircle","left","geoTo3dDouble","right","mid","slerp","midV2","cartesianToLatLng","CameraParameters$","get_RA","get_dec","equals","canCast","cam","fromArgb","_fromArgbColor","pieces","fromSimpleHex","_fromWindowsNamedColor","fromInt","Color$","toFormat","toSimpleHex","get_black","get_blue","get_brown","get_cyan","get_darkGray","get_gray","get_green","get_lightGray","get_magenta","get_orange","get_purple","get_red","get_transparent","get_yellow","Colors$","ConstellationFilter","_blend_state_js__WEBPACK_IMPORTED_MODULE_2__","bits","oldBits","blendState","internal","settingsOwned","families","bitIDs","buildConstellationFilters","all","get_allConstellation","get_zodiacal","get_ursaMajorFamily","get_perseusFamily","get_herculesFamily","get_orionFamily","get_heavenlyWaters","get_bayerFamily","get_laCaileFamily","saveCustomFilters","sb","StringBuilder","$dict1","$key2","kv","append","appendLine","setAll","zodiacal","uma","Perseus","hercules","orion","waters","bayer","LaCaile","cf","$e1","ConstellationFilter$","_saveBits","_isChanged","_checkChanged","_fireChanged","isEnabled","abbrev","bitID","isSet","bit","setBits","getBits","cloneFilter","clone","newFilter","combine","remove","Constellations","Linepoint","Lineset","PointType","_data_globals_js__WEBPACK_IMPORTED_MODULE_3__","_graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_4__","_blend_state_js__WEBPACK_IMPORTED_MODULE_5__","_color_js__WEBPACK_IMPORTED_MODULE_6__","_constellation_filter_js__WEBPACK_IMPORTED_MODULE_7__","_coordinates_js__WEBPACK_IMPORTED_MODULE_8__","_settings_js__WEBPACK_IMPORTED_MODULE_9__","_sky_text_js__WEBPACK_IMPORTED_MODULE_10__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_11__","_web_file_js__WEBPACK_IMPORTED_MODULE_12__","line","dash","_name","points","Lineset$","pointType","Linepoint$","formatDMS","_pointCount","_boundry","_noInterpollation","readOnly","_drawCount","_constellationVertexBuffers","RC","_maxSeperation","containment","_constToDraw","selectedSegment","_artFile","artwork","boundries","pictureBlendStates","createBasic","_url","fullNames","abbrv","boundry","noInterpollation","resource","getFile","drawConstellationNames","drawColor","_namesBatch","initializeConstellationNames","constellationCentroids","Text3dBatch","Settings","get_active","get_constellationLabelsHeight","centroid","raDecTo3dAu","replaceString","Text3d","drawArtwork","get_fovAngle","bs","get_constellation","reverse","drawImageSet","get_studyImageset","makeNewFolder","loadFromUrl","URLHelpers","coreStaticUrl","_onArtReady","childLoadCallback","_loadArtList","get_places","initializeConstellations","engineAssetUrl","_webFileConstNames","WebFile","onStateChange","_loadNames","alert","get_message","_centroidsReady","getText","abbreviations","rows","row","createPlace","fullName","keyExists","abbreviation","Constellations$","_webFile","fileStateChange","_loadConstellationData","lineSet","abrv","abrvOld","lastRa","trim","starName","$e2","showOnlySelected","focusConsteallation","clearExisting","lsSelected","ls","_drawSingleConstellation","count","linelist","SimpleLineList","currentPoint","get_globalSettings","_drawSingleConstellationOld","lastPoint","linePending","newPoint","findConstellationForPoint","inside","_baseutil_js__WEBPACK_IMPORTED_MODULE_2__","_double3d_js__WEBPACK_IMPORTED_MODULE_3__","ascention","declination","_ascention","_declination","RCRA","_rotationMatrix","geoTo3d","geoTo3dRad","au","raDecTo3dMat","mat","_transformCoordinate","raDecTo3dPointRad","point","sterographicTo3d","standardLat","meridean","falseEasting","falseNorthing","re","rere","c1","len","equitorialToHorizon","equitorial","utc","hourAngle","mstFromUTC2","get_lng","ha","get_lat","sinAlt","altitude","cosAzimith","azimuth","altAz","set_az","get_az","horizonToEquitorial","haLocal","_altAzToRaDec","get_alt","fromRaDec","hrAngle","Vector2d","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","julianDays","julianCenturies","mst","cartesianToSpherical","vector","XZ","cartesianToSpherical2","longitude","latitude","cartesianToSphericalSky","sphericalSkyToCartesian","cartesianToSpherical3","formatDMSSign","degrees","minutes","seconds","signString","twoPlaces","formatDMSWide","formatHMS","parseRA","parseDec","fromLatLng","dmsToDegrees","degreesToRadians","radiansToDegrees","radiansToHours","hoursToRadians","hoursToDegrees","degreesToHours","mapTo0To360Range","mapTo0To24Range","j2000toGalactic","J2000RA","J2000DEC","J2000pos","Galacticpos","GalacticL2","GalacticB2","galacticTo3dDouble","galactictoJ2000","Coordinates$","pointB","y1","x1","distance3d","pnt1","pnt2","pntDiff","subtractVectors","set_alt","globalScriptInterface","globalWWTControl","layerManagerGetAllMaps","loadWtmlFile","makeNewHipsProperties","setManagerVisibleLayerList","set_createPlace","set_freestandingMode","set_globalScriptInterface","set_globalWWTControl","set_layerManagerGetAllMaps","set_loadWtmlFile","set_makeNewFolder","set_makeNewHipsProperties","set_setManagerVisibleLayerList","set_tourDocumentFromUrlRaw","tourDocumentFromUrlRaw","ConvexHull","DoubleUtilities","LocationHint","Matrix2d","Matrix3d","PlaneD","PositionColored","PositionColoredTextured","PositionNormalTextured","PositionNormalTexturedTangent","PositionNormalTexturedX2","PositionTexture","SphereHull","Vector4d","_color_js__WEBPACK_IMPORTED_MODULE_2__","_render_globals_js__WEBPACK_IMPORTED_MODULE_3__","coords_cartesianToSpherical2","slash","backslash","top","tu","tv","position","createPos","tileUvMultiple","createPosRaw","createPosSize","xvalue","yvalue","zvalue","PositionTexture$","makeCopy","PositionColoredTextured$","PositionColored$","normal","texCoord","tangent","nx","ny","nz","tanx","tany","tanz","PositionNormalTexturedTangent$","get_normal","set_normal","get_position","set_position","get_texCoord","set_texCoord","get_tangent","set_tangent","valueX","valueY","valueZ","negate","vec","midPoint","midPointByLength","normalize","multiply","get_empty","addVectors","getLength","getLengthSq","interpolater","midpoint","middle","multiplyScalar","scalingFactor","subtract","newVector","vector3d","Vector3d$","lengthSq","rotateX","zTemp","rotateZ","rotateY","toSpherical","toRaDec","distanceToLine","t1","t2","t3","d1","t4","d2","_transformByMatrics","lookAtAdjust","average3d","pntLeft","pntRight","pntOut","Vector2d$","get_length","extend","_m11","_m12","_m13","_m14","_m21","_m22","_m23","_m24","_m31","_m32","_m33","_m34","_offsetX","_offsetY","_offsetZ","_m44","_isNotKnownToBeIdentity","m11","m12","m13","m14","m21","m22","m23","m31","m32","m33","m34","offsetX","offsetY","offsetZ","m44","get_identity","_s_identity","multiplyMatrix","matrix1","matrix2","get__isDistinguishedIdentity","lookAtLH","cameraPosition","cameraTarget","cameraUpVector","zaxis","xaxis","yaxis","_createIdentity","matrixd","set__isDistinguishedIdentity","get_isIdentity","get_m11","get_m12","get_m13","get_m14","get_m21","get_m22","get_m23","get_m24","get_m31","get_m32","get_m33","get_m34","get_offsetX","get_offsetZ","get_m44","fromMatrix2d","mat3d","set_m11","set_m12","set_m13","set_m21","set_m22","set_m23","set_m31","set_m32","set_m33","rotationYawPitchRoll","heading","pitch","roll","matX","_rotationX","matY","_rotationY","matZ","_rotationZ","matNew","_scaling","_translationXYZ","set_offsetX","set_offsetY","set_offsetZ","perspectiveFovLH","fieldOfViewY","aspectRatio","znearPlane","zfarPlane","h","perspectiveOffCenterLH","bottom","invertMatrix","matrix3d","invert","translation","getMapMatrix","fieldWidth","fieldHeight","scaleX","scaleY","scaling","Matrix3d$","setIdentity","floatArray","array","prepend","matrix","_multiply","_setScaleMatrix","scalePrepend","scaleAt","_setScaleMatrixCenter","scaleAtPrepend","num3","num2","translate","offset","_setTranslationMatrix","translatePrepend","get_isAffine","num4","_transformTo","input","output","transformArray","_multiplyPoint","projectArrayToScreen","affine","projectToScreen","get_determinant","_getNormalizedAffineDeterminant","num6","num5","num10","num9","num8","num7","get_hasInverse","isZero","_invertCore","transpose","that","set_m14","set_m24","set_m34","get_m41","set_m41","get_m42","set_m42","get_m43","set_m43","set_m44","multiplyVector","_normalizedAffineInvert","num11","num20","num19","num18","num17","num16","num15","num14","num13","num12","num24","num23","num22","num21","rotateAt","matT0","matR","matT1","Matrix2d$","_transformPoints","multiplyPoint","valuePointA","valuePointB","valuePointC","valuePointD","isOne","clamp","PlaneD$","valueW","Vector4d$","tu1","tv1","create2UV","nor","u1","v1","createLong2UV","nxvalue","nyvalue","nzvalue","get_strideSize","PositionNormalTexturedX2$","createLong","createShort","createUV","uv","PositionNormalTextured$","Center","Radius","SphereHull$","findEnclosingSphereFast","findEnclosingSphere","dx","dy","dz","rad_sq","xspan","yspan","zspan","maxspan","old_to_p","old_to_p_sq","old_to_new","xmin","xmax","ymin","ymax","zmin","zmax","dia1","dia2","ConvexHull$","EquirectangularTile","_render_globals_js__WEBPACK_IMPORTED_MODULE_2__","_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__","_render_triangle_js__WEBPACK_IMPORTED_MODULE_5__","_tile_js__WEBPACK_IMPORTED_MODULE_6__","_tileDegrees$1","_topDown$1","_subDivisionLevel$1","Tile","level","dataset","tileX","tileY","get_bottomsUp","computeBoundingSphere","EquirectangularTile$","latMin","latMax","lngMin","lngMax","latCenter","lngCenter","sphereCenter","topLeft","bottomRight","topRight","bottomLeft","distVect","sphereRadius","computeBoundingSphereBottomsUp","tileDegrees","createGeometry","_renderTriangleLists","_createGeometryBottomsUp$1","tileDegreesX","tileDegreesY","verts","textureStep","triangleCount","quarterDivisions","part","p1","p2","p3","RenderTriangle","texture","_vertexBuffer","tilePrepDevice","createBuffer","bindBuffer","WEBGL","ARRAY_BUFFER","f32array","Float32Array","buffer","addVertex","bufferData","STATIC_DRAW","ui16array","Uint16Array","indexArray","_indexBuffers","ELEMENT_ARRAY_BUFFER","FastMath","pI4_A","pI4_B","pI4_C","m_1_PI","_mulsign","_sign","_isnan","_isinf","Number","POSITIVE_INFINITY","_atanhelper","_atan2k","NaN","_sincoshelper","FastMath$","FitsProperties","power","squareRoot","histogramEqualization","bZero","bScale","containsBlanks","blankValue","MIN_VALUE","maxVal","minVal","MAX_VALUE","onMainImageLoaded","mainImageLoadedEventHasFired","FitsProperties$","_fireMainImageLoaded","image","Folder","_data_globals_js__WEBPACK_IMPORTED_MODULE_2__","_baseutil_js__WEBPACK_IMPORTED_MODULE_3__","_interfaces_js__WEBPACK_IMPORTED_MODULE_4__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_5__","_folder_up_js__WEBPACK_IMPORTED_MODULE_6__","_imageset_js__WEBPACK_IMPORTED_MODULE_7__","_place_js__WEBPACK_IMPORTED_MODULE_8__","_tour_js__WEBPACK_IMPORTED_MODULE_9__","_web_file_js__WEBPACK_IMPORTED_MODULE_10__","explorer","search","constellation","view","goTo","community","context","voTable","imageStack","interval","conditionalGet","viewChange","panorama","isProxy","_versionDependent","_readOnly","_dirty","_thumbnail","_proxyFolder","_lastUpdate","_childList","_itemsField","_imagesets","_tours","_folders","_places","_groupField","_refreshTypeField","_refreshTypeFieldSpecified","_browseableField","_browseableFieldSpecified","_searchableField","_typeField","_communityIdField","_componentIdField","_permissionField","Folder$","_nameField","get_versionDependent","set_versionDependent","folder","get_readOnly","set_readOnly","get_dirty","set_dirty","loadFromUrlWithErrorCallback","complete","_onError","_onComplete","rewrite","_loadData","getXml","doc","_clearChildren","_parseXML","get_imagesets","attributes","getNamedItem","nodeValue","_urlField","_thumbnailUrlField","_fromXml","Imageset","fromXMLNode","get_tours","Tour","addChildFolder","removeChildFolder","addChildPlace","removeChildPlace","get_thumbnail","set_thumbnail","get_bounds","_bounds","set_bounds","get_isImage","get_isTour","get_isFolder","get_isCloudCommunityItem","refresh","_childReadyCallback","get_children","folderUp","FolderUp","get_folders","$enum2","imset","$enum3","$enum4","get_refreshType","_refreshIntervalField","get_msrCommunityId","set_msrCommunityId","get_msrComponentId","set_msrComponentId","get_permission","set_permission","set_folders","set_places","set_imagesets","set_tours","get_group","set_group","set_url","get_thumbnailUrl","set_thumbnailUrl","set_refreshType","set_refreshTypeSpecified","get_refreshTypeSpecified","get_refreshInterval","set_refreshInterval","get_browseable","set_browseable","get_browseableSpecified","set_browseableSpecified","get_searchable","set_searchable","get_type","get_subType","_subTypeField","set_subType","IThumbnail","FolderBrowser","ThumbnailSize","_double3d_js__WEBPACK_IMPORTED_MODULE_4__","_folder_js__WEBPACK_IMPORTED_MODULE_5__","_render_triangle_js__WEBPACK_IMPORTED_MODULE_9__","_tour_js__WEBPACK_IMPORTED_MODULE_10__","_util_js__WEBPACK_IMPORTED_MODULE_11__","small","big","_items","_indexTouchDown","_mouseDown","_lastX","_lastY","_ignoreClick","_thumbnailSize","_horzSpacing","_vertSpacing","_thumbHeight","_thumbWidth","_horzMultiple","_rowCount","_colCount","_dragging","_startIndex","_startOffset","_selectedItem","_hoverItem","showAddButton","_addButtonHover","imageClicked","_downloading","_imagesLoaded","_imageLoadCount","canvas","loadImages","FolderBrowser$","addEventListener","onTouchStart","ev","preventDefault","targetTouches","pageX","pageY","_getItemIndexFromCursor","onTouchMove","tiles","newHover","onTouchEnd","_handleClick","onClick","$this","globalRenderContext","get_tourUrl","onDoubleClick","renderingOn","onGestureChange","onMouseDown","Mouse","onMouseMove","onMouseUp","_bmpBackground","_bmpBackgroundHover","_bmpBackgroundWide","_bmpBackgroundWideHover","_bmpDropInsertMarker","get_thumbnailSize","set_thumbnailSize","_updatePaginator","innerWidth","paint","get_rowCount","set_rowCount","get_colCount","set_colCount","get_itemsPerPage","get_currentPage","get_pageCount","getContext","fillRect","rectf","netHeight","netWidth","Rectangle","drawImage","textBrush","bmpThumb","rect","font","fillText","testPointIn","testPoint","xpos","xPart","ypos","yPart","_addItems","_interfaces_js__WEBPACK_IMPORTED_MODULE_1__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_2__","_util_js__WEBPACK_IMPORTED_MODULE_3__","FolderUp$","Fxyf","_healpix_tables_js__WEBPACK_IMPORTED_MODULE_2__","_healpix_utils_js__WEBPACK_IMPORTED_MODULE_3__","_hploc_js__WEBPACK_IMPORTED_MODULE_4__","fx","fy","face","HealpixTables","_halfpi$1","_inv_halfpi$1","_twothird$1","_fromHploc$1","loc","za","tt","HealpixUtils","fmodulo","temp1","temp2","jp","jm","ifp","ifm","face_num","ntt","have_sth","sth","fromVector","Hploc","Fxyf$","toHploc","nr","jr","jrll","jpll","toVec3","IndexBuffer","KeplerVertexBuffer","PositionColoredTexturedVertexBuffer","PositionColoredVertexBuffer","PositionNormalTexturedTangentVertexBuffer","PositionNormalTexturedVertexBuffer","PositionTextureVertexBuffer","PositionVertexBuffer","ShortIndexBuffer","TimeSeriesLineVertexBuffer","TimeSeriesPointVertexBuffer","VertexBufferBase","_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__","ShortIndexBuffer$","IndexBuffer$","dispose","deleteBuffer","IDisposable","VertexBufferBase$","vertexBuffer","_verts$1","PositionVertexBuffer$","lock","unlock","PositionTextureVertexBuffer$","PositionNormalTexturedVertexBuffer$","PositionNormalTexturedTangentVertexBuffer$","items","KeplerVertexBuffer$","ABC","abc1","pointSize","orbitPos","orbits","TimeSeriesLineVertexBuffer$","TimeSeriesPointVertexBuffer$","PositionColoredVertexBuffer$","PositionColoredTexturedVertexBuffer$","CullMode","DataItem","OrbitLineList","TimeSeriesLineVertex","TimeSeriesPointVertex","_color_js__WEBPACK_IMPORTED_MODULE_3__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_4__","_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__","_gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__","_texture_js__WEBPACK_IMPORTED_MODULE_7__","_shaders_js__WEBPACK_IMPORTED_MODULE_8__","none","counterClockwise","clockwise","constant","stellarMagnitude","DataItem$","getColor","startDate","endDate","empty","Dates$","_zBuffer","_linePoints","_usingLocalCenter","aaFix","pure2D","viewTransform","_lineBuffers","_lineBufferCounts","useLocalCenters","SimpleLineList$","get_depthBuffered","v2","_emptyLineBuffer","clear","_initLineBuffer","viewPoint","firstPoint","secondPoint","lineBuffer","SimpleLineShader2D","SimpleLineShader","drawArrays","LINES","linePointList","_localCenter","countLeft","counter","thisCount","_lineColors","OrbitLineList$","c2","OrbitLineShader","useNonRotatingFrame","_lineDates","LineList$","addLineNoDate","LineShaderNormalDates","div2","_trianglePoints","_triangleColors","_triangleDates","writeZbuffer","autoTime","_dataToDraw","_triangleBuffers","_triangleBufferCounts","TriangleList$","addTriangle","v3","_emptyTriangleBuffer","subdivisions","v12","v23","v31","addQuad","v4","_initTriangleBuffer","triangleBuffer","triPointList","div3","cull","triBuffer","TRIANGLES","_shapes","_colors","_dates","_buffers","_bufferCounts","TriangleFanList$","shapePoints","_initBuffer","TRIANGLE_FAN","shape","_points","_sizes","_imageReady","_init","_pointBuffers","_pointBufferCounts","_device","starTexture","PointList$","_emptyPointBuffer","pointBuffer","_starProfile","_worldList","_transformedList","tranformed","Texture","fromUrl","half","matInv","get_world","get_view","TimeSeriesPointSpriteShader","texture2d","POINTS","drawTextured","TimeSeriesLineVertex$","TimeSeriesPointVertex$","EllipseShader","FitsShader","ImageShader","ImageShader2","KeplerPointSpriteShader","ModelShader","ModelShaderTan","ShapeSpriteShader","SpriteShader","TextShader","TileShader","_webgl_constants_js__WEBPACK_IMPORTED_MODULE_4__","_texture_js__WEBPACK_IMPORTED_MODULE_5__","vertLoc","initialized","_prog","init","fragShaderText","vertexShaderText","_frag","createShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","_vert","VERTEX_SHADER","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","useProgram","getAttribLocation","lineColorLoc","getUniformLocation","projMatLoc","mvMatLoc","enable","BLEND","blendFunc","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","vertex","useDepth","mvMat","uniformMatrix4fv","get_projection","uniform4f","space","disable","DEPTH_TEST","disableVertexAttribArray","enableVertexAttribArray","vertexAttribPointer","FLOAT","SimpleLineShader$","SimpleLineShader2D$","colorLoc","OrbitLineShader$","timeLoc","jNowLoc","decayLoc","zBuffer","uniform1f","LineShaderNormalDates$","pointSizeLoc","getShaderInfoLog","sampLoc","cameraPosLoc","scaleLoc","skyLoc","showFarSideLoc","minSizeLoc","camera","getEmpty","uniform1i","uniform3f","activeTexture","TEXTURE0","bindTexture","TEXTURE_2D","ONE","TimeSeriesPointSpriteShader$","abcLoc","abcLoc1","weLoc","nTLoc","azLoc","orbitLoc","mmLoc","opacityLoc","worldView","MM","KeplerPointSpriteShader$","angleLoc","matWVPLoc","matPositionLoc","positionNowLoc","semiMajorAxisLoc","eccentricityLoc","eccentricAnomalyLoc","semiMajorAxis","eccentricAnomaly","world","positionNow","WVPPos","EllipseShader$","normalLoc","textureLoc","sunPosition","minLightingBrightness","atmosphereColor","stat","stat1","sunLoc","minBrightnessLoc","atmosphereColorLoc","set_tileUvMultiple","set_tileDemEnabled","noDepth","stride","lighting","mvInv","sp","ModelShader$","ModelShaderTan$","centerScreenLoc","centerWorldLoc","centerWorld","wvp","centerScreen","TileShader$","errorF","errorV","blank","bzero","bscale","minLoc","maxLoc","transparentBlackLoc","containsBlanksLoc","scalingLocation","FitsShader$","ImageShader$","ImageShader2$","SpriteShader$","ShapeSpriteShader$","TextShader$","Sprite2d","_shaders_js__WEBPACK_IMPORTED_MODULE_3__","vertCount","Sprite2d$","triangleStrips","update","TRIANGLE_STRIP","DYNAMIC_DRAW","bufferSubData","inputList","results","tess","process","Tessellator$","_isLeftOfHalfSpace","pntA","pntB","pntTest","_insideTriangle","pntC","_canClipEar","poly","bn","nv","_url_helpers_js__WEBPACK_IMPORTED_MODULE_3__","imageElement","_ready","_errored","createTexture","texImage2D","RGBA","UNSIGNED_BYTE","Uint8Array","tex","isPowerOfTwo","fitPowerOfTwo","Texture$","cleanUp","deleteTexture","xdomimg","makeTexture","hasAttribute","setAttribute","new_url","activateProxy","crossOrigin","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","LINEAR_MIPMAP_NEAREST","generateMipmap","ACTIVE_ATTRIBUTE_MAX_LENGTH","ACTIVE_ATTRIBUTES","ACTIVE_TEXTURE","ACTIVE_UNIFORM_MAX_LENGTH","ACTIVE_UNIFORMS","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","ALPHA","ALPHA_BITS","ALWAYS","ARRAY_BUFFER_BINDING","ATTACHED_SHADERS","BACK","BLEND_COLOR","BLEND_DST_ALPHA","BLEND_DST_RGB","BLEND_EQUATION","BLEND_EQUATION_ALPHA","BLEND_EQUATION_RGB","BLEND_SRC_ALPHA","BLEND_SRC_RGB","BLUE_BITS","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","BUFFER_SIZE","BUFFER_USAGE","BYTE","CCW","COLOR_ATTACHMENT0","COLOR_BUFFER_BIT","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","COMPRESSED_TEXTURE_FORMATS","CONSTANT_ALPHA","CONSTANT_COLOR","CULL_FACE","CULL_FACE_MODE","CURRENT_PROGRAM","CURRENT_VERTEX_ATTRIB","CW","DECR","DECR_WRAP","DELETE_STATUS","DEPTH_ATTACHMENT","DEPTH_BITS","DEPTH_BUFFER_BIT","DEPTH_CLEAR_VALUE","DEPTH_COMPONENT","DEPTH_COMPONENT16","DEPTH_FUNC","DEPTH_RANGE","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_WRITEMASK","DITHER","DONT_CARE","DST_ALPHA","DST_COLOR","ELEMENT_ARRAY_BUFFER_BINDING","EQUAL","EXTENSIONS","FASTEST","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","FRAMEBUFFER","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","FRAMEBUFFER_BINDING","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_UNSUPPORTED","FRONT","FRONT_AND_BACK","FRONT_FACE","FUNC_ADD","FUNC_REVERSE_SUBTRACT","FUNC_SUBTRACT","GENERATE_MIPMAP_HINT","GEQUAL","GREATER","GREEN_BITS","HIGH_FLOAT","HIGH_INT","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","INCR","INCR_WRAP","INFO_LOG_LENGTH","INT_VEC2","INT_VEC3","INT_VEC4","INVALID_ENUM","INVALID_FRAMEBUFFER_OPERATION","INVALID_OPERATION","INVALID_VALUE","INVERT","KEEP","LEQUAL","LESS","LINE_LOOP","LINE_STRIP","LINE_WIDTH","LINEAR","LINEAR_MIPMAP_LINEAR","LOW_FLOAT","LOW_INT","LUMINANCE","LUMINANCE_ALPHA","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_RENDERBUFFER_SIZE","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_SIZE","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MEDIUM_FLOAT","MEDIUM_INT","MIRRORED_REPEAT","NEAREST","NEAREST_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","NEVER","NICEST","NO_ERROR","NONE","NOTEQUAL","NUM_COMPRESSED_TEXTURE_FORMATS","ONE_MINUS_CONSTANT_ALPHA","ONE_MINUS_CONSTANT_COLOR","ONE_MINUS_DST_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_SRC_COLOR","OUT_OF_MEMORY","PACK_ALIGNMENT","POLYGON_OFFSET_FACTOR","POLYGON_OFFSET_FILL","POLYGON_OFFSET_UNITS","RED_BITS","RENDERBUFFER","RENDERBUFFER_ALPHA_SIZE","RENDERBUFFER_BINDING","RENDERBUFFER_BLUE_SIZE","RENDERBUFFER_DEPTH_SIZE","RENDERBUFFER_GREEN_SIZE","RENDERBUFFER_HEIGHT","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_RED_SIZE","RENDERBUFFER_STENCIL_SIZE","RENDERBUFFER_WIDTH","RENDERER","REPEAT","REPLACE","RGB","RGB8","RGB5_A1","RGB565","RGBA8","RGBA16I","RED_INTEGER","RED","R32F","R16I","RGBA4","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_BUFFERS","SAMPLE_COVERAGE","SAMPLE_COVERAGE_INVERT","SAMPLE_COVERAGE_VALUE","SAMPLER_2D","SAMPLER_CUBE","SAMPLES","SCISSOR_BOX","SCISSOR_TEST","SHADER_COMPILER","SHADER_SOURCE_LENGTH","SHADER_TYPE","SHADING_LANGUAGE_VERSION","SHORT","SRC_ALPHA_SATURATE","SRC_COLOR","STENCIL_ATTACHMENT","STENCIL_BACK_FAIL","STENCIL_BACK_FUNC","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_BACK_WRITEMASK","STENCIL_BITS","STENCIL_BUFFER_BIT","STENCIL_CLEAR_VALUE","STENCIL_FAIL","STENCIL_FUNC","STENCIL_INDEX","STENCIL_INDEX8","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_REF","STENCIL_TEST","STENCIL_VALUE_MASK","STENCIL_WRITEMASK","STREAM_DRAW","SUBPIXEL_BITS","TEXTURE","TEXTURE_BINDING_2D","TEXTURE_BINDING_CUBE_MAP","TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Z","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","UNPACK_FLIP_Y_WEBGL","TEXTURE_MAG_FILTER","TEXTURE1","TEXTURE10","TEXTURE11","TEXTURE12","TEXTURE13","TEXTURE14","TEXTURE15","TEXTURE16","TEXTURE17","TEXTURE18","TEXTURE19","TEXTURE2","TEXTURE20","TEXTURE21","TEXTURE22","TEXTURE23","TEXTURE24","TEXTURE25","TEXTURE26","TEXTURE27","TEXTURE28","TEXTURE29","TEXTURE3","TEXTURE30","TEXTURE31","TEXTURE4","TEXTURE5","TEXTURE6","TEXTURE7","TEXTURE8","TEXTURE9","UNPACK_ALIGNMENT","UNSIGNED_INT","UNSIGNED_SHORT","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","VALIDATE_STATUS","VENDOR","VERSION","VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","VERTEX_ATTRIB_ARRAY_ENABLED","VERTEX_ATTRIB_ARRAY_NORMALIZED","VERTEX_ATTRIB_ARRAY_POINTER","VERTEX_ATTRIB_ARRAY_SIZE","VERTEX_ATTRIB_ARRAY_STRIDE","VERTEX_ATTRIB_ARRAY_TYPE","VIEWPORT","ZERO","Grids","_astrocalc_coordinate_transformation_js__WEBPACK_IMPORTED_MODULE_5__","_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_6__","_graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_7__","_graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_8__","_graphics_texture_js__WEBPACK_IMPORTED_MODULE_9__","_graphics_shaders_js__WEBPACK_IMPORTED_MODULE_10__","_color_js__WEBPACK_IMPORTED_MODULE_11__","_data_globals_js__WEBPACK_IMPORTED_MODULE_12__","_render_globals_js__WEBPACK_IMPORTED_MODULE_13__","_utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_14__","_coordinates_js__WEBPACK_IMPORTED_MODULE_15__","_sky_text_js__WEBPACK_IMPORTED_MODULE_16__","_planets_js__WEBPACK_IMPORTED_MODULE_17__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_18__","_star_js__WEBPACK_IMPORTED_MODULE_19__","_web_file_js__WEBPACK_IMPORTED_MODULE_20__","_galaxyImageIndexBuffer","_galaxyImageTriangleCount","_milkyWayImage","_starSprites","_starCount","_starsDownloading","_stars","_hipparcosIndex","_limitingMagnitude","_galaxyTextures","_galaxyVertexCounts","_largeSet","_cosmosReady","_cosmos","_downloadingGalaxy","_eclipticCount","_eclipticYear","_monthDays","_monthNames","_eclipticTextYear","_createGalaxyImage","subdivs","_galaxyImageVertexBuffer","latDegrees","lngDegrees","ecliptic","get_jNow","textureStepX","textureStepY","drawGalaxyImage","distAlpha","drawElements","drawStars3D","initStarVertexBuffer","getStarFile","star","radDec","absoluteMagnitude","initializeStarDB","Star","magnitude","par","_webFileStar","starFileStateChange","getGalaxyFile","_webFileGalaxy","galaxyFileStateChange","mainBlob","getBlob","chunck","BinaryReader","initializeCosmos","readAsArrayBuffer","drawCosmos3D","initCosmosVertexBuffer","_cosmosSprites","_downloadCosmosFile","_createCosmosVertexBuffer","bucketCount","ij","indexList","galaxy","bucket","eTypeBucket","Galaxy","drawEquitorialGrid","_equLineList","drawEquitorialGridText","_makeEquitorialGridText","_equTextBatch","drawEcliptic","_eclipticOverviewLineList","obliquity","daysPerYear","jYear","utcToJulian","daysThisMonth","sunRaDec","Planets","getPlanetLocationJD","sunEcliptic","dd","drawEclipticText","_makeEclipticText","_eclipOvTextBatch","drawPrecessionChart","_makePrecessionChart","_precTextBatch","_precLineList","drawAltAzGrid","zenithAltAz","zenith","get_location","raPart","decPart","_altAzLineList","matOldWorld","matOldWorldBase","get_worldBase","set_worldBase","set_world","makeFrustum","drawAltAzGridText","_makeAltAzGridText","_altAzTextBatch","lc","drawEclipticGrid","_eclipticLineList","drawEclipticGridText","_makeEclipticGridText","_eclipticTextBatch","drawGalacticGrid","_galLineList","drawGalacticGridText","_makeGalacticGridText","_galTextBatch","drawPlanetGrid","_planetLineList","drawPlanetGridText","_makePlanetGridText","_planetTextBatch","Grids$","ctab","utab","xoffset","yoffset","HealpixTables$","HealpixTile","Xyf","_util_js__WEBPACK_IMPORTED_MODULE_4__","_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_5__","_fxyf_js__WEBPACK_IMPORTED_MODULE_7__","_web_file_js__WEBPACK_IMPORTED_MODULE_8__","_ui_tools_js__WEBPACK_IMPORTED_MODULE_9__","_tile_js__WEBPACK_IMPORTED_MODULE_10__","ix","iy","Xyf$","ipix","indexBuffer","_vertexList$1","_nside$1","_tileIndex$1","_face$1","_faceX$1","_faceY$1","_step$1","_subDivided$1","_catalogRows$1","parentTile","isCatalogTile","get_properties","_computeBoundingSphere$1","_galacticMatrix$1","HealpixTile$","get_URL","_url$1","_getUrl$1","_setStep$1","_calcSphere$1","_setCorners$1","_populateVertexList$1","vert","_setIndexBufferForQuadrant$1","exception","_processIndexBuffer$1","_getHipsFileExtension$1","tileTextureIndex","subDirIndex","isTileBigEnough","arcPixels","_boundaries$1","nside","xyf","dc","xc","yc","draw3D","drawCatalogTile","renderedGeneration","currentRenderGeneration","tilesTouched","inViewFrustum","onlyDrawChildren","readyToRender","errored","tileCacheAddTileToQueue","partCount","trianglesRendered","anythingToRender","childRendered","childIndex","children","tileCacheGetTile","isTileInFrustum","get_frustum","renderChildPart","renderedAtOrBelowGeneration","tilesInView","renderPart","anyChildInFrustum","removeCatalogTile","_addCatalogTile$1","removeTileRows","get_key","addTileRows","_extractCatalogTileRows$1","headerRemoved","_catalogData$1","rowData","UiTools","get__table","delimiter","getDataInView","catalogSpreadSheetLayer","requestImage","allChildrenReady","downloading","_loadCatalogData$1","requestPending","tileCacheRemoveFromQueue","texReady","getIndexBuffer","accomidation","isPointInTile","_isLeftOfHalfSpace$1","getSurfacePointAltitude","lastDeepestLevel","retVal","_getAltitudeFromLatLng$1","DistanceCalc","getUVFromInnerPoint","uud","vvd","uu","vv","va","demArray","ul","ur","ll","lr","get__demScaleFactor","demAverage","removeFromParent","_returnBuffers$1","_vertexOfLastRow$1","_fast_math_js__WEBPACK_IMPORTED_MODULE_1__","check","cond","errtxt","isqrt","arg","res","cosdist_zphi","z1","z2","HealpixUtils$","HipsProperties","_web_file_js__WEBPACK_IMPORTED_MODULE_3__","_layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_5__","_layers_vo_table_js__WEBPACK_IMPORTED_MODULE_6__","_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_7__","_properties","_catalogColumnInfo","_catalogSpreadSheetLayer","CatalogSpreadSheetLayer","_downloadComplete","_datasetName","_download","HipsProperties$","set_catalogSpreadSheetLayer","get_catalogColumnInfo","set_catalogColumnInfo","get_downloadComplete","_onPropertiesDownloadComplete","_parseProperties","VoTable","hips_data_range","hips_pixel_cut","_onDownloadComplete","_onCatalogMetadataDownloadComplete","useHeadersFromVoTable","addSpreadsheetLayer","setDownloadCompleteListener","listener","whitespace","_fast_math_js__WEBPACK_IMPORTED_MODULE_2__","xl","Hploc$","st","_baseutil_js__WEBPACK_IMPORTED_MODULE_4__","_interfaces_js__WEBPACK_IMPORTED_MODULE_5__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_6__","_coordinates_js__WEBPACK_IMPORTED_MODULE_7__","_fits_properties_js__WEBPACK_IMPORTED_MODULE_8__","_layers_fits_image_js__WEBPACK_IMPORTED_MODULE_9__","_equirectangular_tile_js__WEBPACK_IMPORTED_MODULE_10__","_healpix_tile_js__WEBPACK_IMPORTED_MODULE_11__","_mercator_tile_js__WEBPACK_IMPORTED_MODULE_12__","_plot_tile_js__WEBPACK_IMPORTED_MODULE_13__","_tangent_tile_js__WEBPACK_IMPORTED_MODULE_14__","_sky_image_tile_js__WEBPACK_IMPORTED_MODULE_15__","_toast_tile_js__WEBPACK_IMPORTED_MODULE_16__","mercator","equirectangular","toast","spherical","skyImage","plotted","healpix","solarSystem","sandbox","gamma","xRay","ultraviolet","visible","hydrogenAlpha","IR","microwave","radio","visibleNight","_projection","_imageSetID","_baseTileDegrees","_widthFactor","demUrl","_levels","_mercator","_bottomsUp","_baseLevel","_quadTreeTileMap","_centerX","_centerY","_rotation","_meanRadius","_dataSetType","_bandPass","_altUrl","_singleImage","_fitsProperties","_matrixComputed","_sparse","_thumbnailUrl","_generic","_defaultSet","_elevationModel","getNewTile","newTile","MercatorTile","ToastTile","SkyImageTile","PlotTile","set_hipsProperties","TangentTile","projection","Enums","bandPass","wf","boolean","createGeneric","fileType","thumbnailUrl","thumbUrl","stockSet","elevationModel","alturl","creditText","credits","creditsUrl","meanRadius","baseTileLevel","tileLevels","baseDegreesPerTile","bottomsUp","quadTreeMap","centerX","centerY","sparse","saveToXml","xmlWriter","alternateUrl","_writeStartElement","_writeAttributeString","get_generic","toXml","get_demUrl","get_baseLevel","get_quadTreeTileMap","get_rotation","get_sparse","get_elevationModel","get_defaultSet","get_widthFactor","get_meanRadius","_writeElementString","_writeEndElement","dataSetType","_extension","_matrix","imageSetID","baseLevel","levels","tileSize","baseTileDegrees","defaultSet","demUrlIn","setInitialParameters","Imageset$","get_wcsImage","_wcsImage","set_wcsImage","set_projection","_referenceFrame","get_imageSetID","set_imageSetID","set_baseTileDegrees","set_widthFactor","set_demUrl","set_extension","set_levels","set_bottomsUp","get_mercator","set_mercator","set_baseLevel","set_quadTreeTileMap","set_centerX","_computeMatrix","set_centerY","set_rotation","set_meanRadius","set_bandPass","set_dataSetType","get_altUrl","set_altUrl","get_singleImage","set_singleImage","_hipsProperties","set_fitsProperties","get_stockImageSet","get_matrix","set_matrix","set_sparse","set_generic","set_elevationModel","set_defaultSet","_creditsText","set_creditsText","get_creditsUrl","_creditsUrl","set_creditsUrl","get_isMandelbrot","_calcViewCenterCoordinate","isX","rot","crot","srot","effWidth","effHeight","get_viewCenterX","get_viewCenterY","_guessZoomSetting","currentZoom","FOV_FACTOR","aswcs","safeCast","FitsImage","get_sizeY","get_scaleY","IFolder","IPlace","ISettings","IUIServicesCallbacks","IUiController","IUndoStep","IViewMover","KeplerVertex","_sine","_cose","_degrad","KeplerVertex$","ee","baseDate","ColorMapContainer","_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_3__","colors","colorTextures","fromArgbList","color_list","fromStringList","fromNamedColormap","viridis","plasma","inferno","magma","cividis","greys","gray","purples","blues","greens","oranges","reds","rdYlBu","_getTextureFromName","colorMapContainer","_initColorTexture","bindColorMapTexture","colorTexture","colorBuffer","_extractColorArray","ColorMapContainer$","findClosestColor","_web_file_js__WEBPACK_IMPORTED_MODULE_2__","_wcs_image_js__WEBPACK_IMPORTED_MODULE_4__","callMeBack","numAxis","histogramMaxCount","sourceBlob","header","bufferSize","_parseSuccessful$1","WcsImage","fitsProperties","_callBack$1","filename","_readFromBlob$1","naN","FitsImage$","_webFile$1","readFromBin","DataView","_readByteString$1","dataView","getUint8","_validateFitsSimple$1","keyword","trimEnd","foundEnd","_addKeyword$1","axisSize","axis","bitpix","readDataUnit","sizeX","sizeY","histogram","computeHistogram","computeWcs","dataUnit","readDataUnitFloat64","readDataUnitFloat32","readDataUnitUint8","readDataUnitInt16","readDataUnitInt32","byteLength","getFloat64","physicalValue","getFloat32","getInt16","getInt32","hasRotation","hasScale","referenceX","referenceY","hasPixel","hasSize","hasLocation","cd1_1","cd1_2","cd2_1","cd2_2","calculateRotationFromCD","calculateScaleFromCD","set_validWcs","applyDisplaySettings","populateHistogram","maxCounter","buckets","drawHistogram","clearRect","logMax","FitsImageJs","HistogramEqualization","ScaleLinear","ScaleLog","ScaleMap","ScalePow","ScaleSqrt","_utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_2__","_utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_3__","_color_map_container_js__WEBPACK_IMPORTED_MODULE_4__","_fits_image_js__WEBPACK_IMPORTED_MODULE_5__","byteT","int16T","int32T","floatT","doubleT","ScaleMap$","_min$1","_max$1","_factor$1","_logFactor$1","ScaleLinear$","ScaleLog$","_powFactor$1","ScalePow$","_sqrtFactor$1","ScaleSqrt$","_maxHistogramValue$1","_histogram$1","_lookup$1","totalCounts","get_sizeX","sum","HistogramEqualization$","dataType","_color$2","isTiledFits","createTiledFits","FitsImageJs$","_readDataUnitFloat64$2","_readDataUnitFloat32$2","_readDataUnitUint8$2","_readDataUnitInt16$2","_readDataUnitInt32$2","_dataBuffer$2","readByte","readSByte","Float64Array","getBitmap","getScaledBitmap","colorMapper","_getBitmapByte$2","getBitmapShort","_getBitmapInt$2","_getBitmapFloat$2","_getBitmapDouble$2","Bitmap","_setPixelWithColorMap$2","bmp","pixel_value","isNaN","setPixel","pixel_color","buf","page","indexY","datR","datG","datB","dataValue","_populateHistogramByte$2","_populateHistogramInt16$2","_populateHistogramInt32$2","_populateHistogramFloat$2","_populateHistogramDouble$2","FitsImageTile","_fits_image_js__WEBPACK_IMPORTED_MODULE_1__","FitsImageTile$","layerFromXml","_layer_js__WEBPACK_IMPORTED_MODULE_1__","_great_circle_route_layer_js__WEBPACK_IMPORTED_MODULE_2__","_grid_layer_js__WEBPACK_IMPORTED_MODULE_3__","_imageset_layer_js__WEBPACK_IMPORTED_MODULE_4__","_object3d_js__WEBPACK_IMPORTED_MODULE_5__","_orbit_layer_js__WEBPACK_IMPORTED_MODULE_6__","_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_7__","_vo_table_layer_js__WEBPACK_IMPORTED_MODULE_8__","layerNode","someFlag","layerClassName","overLayType","newLayer","GreatCirlceRouteLayer","GridLayer","Object3dLayer","OrbitLayer","VoTableLayer","initFromXml","Layer","fromXml","_layer_js__WEBPACK_IMPORTED_MODULE_4__","_triangleList$1","_latStart$1","_lngStart$1","_latEnd$1","_lngEnd$1","_width$1","_percentComplete$1","GreatCirlceRouteLayer$","getTypeName","flat","_initializeRoute$1","steps","dir","startNormal","lastLeft","lastRight","firstTime","cl","cr","getParams","getParamNames","setParams","paramList","get_latStart","set_latStart","get_lngStart","set_lngStart","get_latEnd","set_latEnd","get_lngEnd","set_lngEnd","get_width","set_width","get_percentComplete","set_percentComplete","writeLayerProperties","initializeFromXml","_grids_js__WEBPACK_IMPORTED_MODULE_1__","_layer_js__WEBPACK_IMPORTED_MODULE_2__","GridLayer$","_utilities_histogram_js__WEBPACK_IMPORTED_MODULE_4__","_color_map_container_js__WEBPACK_IMPORTED_MODULE_5__","_fits_image_js__WEBPACK_IMPORTED_MODULE_6__","_fits_image_js_js__WEBPACK_IMPORTED_MODULE_7__","_imageset_js__WEBPACK_IMPORTED_MODULE_8__","_layer_js__WEBPACK_IMPORTED_MODULE_9__","_imageSet$1","_extension$1","_overrideDefaultLayer$1","_loaded$1","isl","ImageSetLayer$","set_imageSet","_isFitsImageset$1","hasFitsExt","imageSetNode","set_viewBase","addFilesToCabinet","fc","get_filename","fileName","tempDirectory","get_packageID","addFile","setImageScale","setImageScaleRaw","Histogram","updateScale","newMin","newMax","setImageZ","updateImage","useGlVersion2","updateColorMapper","get_colorMapper","loadData","tourDoc","fi","getFileBlob","doneLoading","wcsImage","ISSLayer","_data_globals_js__WEBPACK_IMPORTED_MODULE_4__","_object3d_js__WEBPACK_IMPORTED_MODULE_7__","issGuid","_loading$2","_issmodel$2","_doc$2","loadBackground","createSpaceStation","o3d","Object3d","issLayer","ISSLayer$","object3d","viewportHeight","p11","p34","p44","pixelsPerUnit","radiusInPixels","getPrimaryUI","DomainValue","LayerCollection","pako__WEBPACK_IMPORTED_MODULE_0__","pako__WEBPACK_IMPORTED_MODULE_0___default","_typesystem_js__WEBPACK_IMPORTED_MODULE_2__","_color_js__WEBPACK_IMPORTED_MODULE_4__","_util_js__WEBPACK_IMPORTED_MODULE_6__","feet","inches","miles","kilometers","astronomicalUnits","lightYears","parsecs","megaParsecs","fadeIn","fadeOut","both","customMarker","DomainValue$","newGuid","loadedFromTour","tourDocument","_startTime","_endTime","_fadeSpan","_fadeType","Layer$","getFileStreamUrl","getFileStream","compareDates","findClosest","closestPlace","hoverCheckScreenSpace","cursor","clickCheckScreenSpace","preDraw","purgeOld","purgeAll","hasHeader","upadteData","canCopyToClipboard","copyToClipboard","getEditUI","getProps","colorChanged","get_colorValue","set_colorValue","getStringFromGzipBlob","dataReady","inflate","err","errString","LayerCollection$","FrameTarget","GroundOverlayLayer","LayerMap","SkyOverlays","_astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_5__","_utilities_histogram_js__WEBPACK_IMPORTED_MODULE_6__","_utilities_simple_input_js__WEBPACK_IMPORTED_MODULE_7__","_utilities_color_picker_js__WEBPACK_IMPORTED_MODULE_8__","_utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_9__","_color_js__WEBPACK_IMPORTED_MODULE_10__","_fits_image_js__WEBPACK_IMPORTED_MODULE_11__","_imageset_js__WEBPACK_IMPORTED_MODULE_12__","_planets_js__WEBPACK_IMPORTED_MODULE_13__","_settings_js__WEBPACK_IMPORTED_MODULE_14__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_15__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_16__","_util_js__WEBPACK_IMPORTED_MODULE_17__","_web_file_js__WEBPACK_IMPORTED_MODULE_18__","_layer_js__WEBPACK_IMPORTED_MODULE_19__","_reference_frame_js__WEBPACK_IMPORTED_MODULE_20__","_great_circle_route_layer_js__WEBPACK_IMPORTED_MODULE_21__","_grid_layer_js__WEBPACK_IMPORTED_MODULE_22__","_imageset_layer_js__WEBPACK_IMPORTED_MODULE_23__","_iss_layer_js__WEBPACK_IMPORTED_MODULE_24__","_orbit_js__WEBPACK_IMPORTED_MODULE_25__","_orbit_layer_js__WEBPACK_IMPORTED_MODULE_26__","_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_27__","_vo_table_layer_js__WEBPACK_IMPORTED_MODULE_28__","_tours_tour_stop_js__WEBPACK_IMPORTED_MODULE_29__","_tours_tour_player_js__WEBPACK_IMPORTED_MODULE_30__","identity","_version","_tourLayers","_layerMaps","_layerMapsTours","_allMaps","_allMapsTours","_currentMap","_layerList","_layerListTours","_moonfile","_selectedLayer","_lastMenuClick","get_frameWizardDialog","_frameWizardDialog","get_dataVizWizardDialog","_dataVizWizardDialog","get_referenceFramePropsDialog","_referenceFramePropsDialog","get_greatCircleDlg","_greatCircleDialog","get_tourLayers","set_tourLayers","initLayers","_clearLayers","loadTree","refreshLayerManagerNow","get_layerMaps","set_layerMaps","set_allMaps","get_currentMap","set_currentMap","set_layerList","oneTimeInitialization","_webFileMoons","getMoonFile","PushPin","triggerLoadSprite","iss","doISS","frame","epoch","_twoLineDateToJulian","referenceFrameType","inclination","longitudeOfAscendingNode","meanAnomolyAtEpoch","meanDailyMotion","argumentOfPeriapsis","semiMajorAxisUnits","oblateness","showOrbitPath","webFile","isstle","coreDynamicUrl","fromTLE","addChild","_addMoons","_addAllMaps","_addIss","Language","getLocalizedText","maps","clearKeys","moonFileStateChange","_systemGenerated","rotationalPeriod","showAsPoint","set_representativeColor","addVoTableLayer","table","addVoTableLayerWithPlotType","addFitsImageSetLayer","addImageSetLayerCallback","isNonHipsTiledFits","getNextFitsName","_getNextName","getNextImageSetName","currentNumber","$e3","_closeAllTourLoadedLayers","purgeTargets","purgeMapsNames","purgeLayerMapDeep","topLevel","_cleanAllTourLoadedLayers","mergeToursLayers","OverWrite","CollisionChecked","newMap","connectAllChildren","ID","updateTree","_getFrameTarget","TrackingFrame","targetPoint","mapList","reference","matOld","matOldNonRotating","get_worldBaseNonRotating","matOldBase","oldNominalRadius","get_nominalRadius","setupPlanetMatrix","computeFrame","useRotatingParentFrame","worldMatrix","set_worldBaseNonRotating","set_nominalRadius","lookAt","lookUp","_prepTourLayers","get_currentTourStop","updateTweenPosition","get_keyFramed","_updateLayerOpacity","frameOpacity","frameParams","_draw","nested","cosmos","thisMap","keyCount","pass","skipLayer","layerStart","layerEnd","fadeOpacity","tsl","get_orbit","set_orbit","Orbit","get_elements","get_representativeColor","matSaved","_getVisibleLayerList","previous","LayerInfo","startOpacity","endOpacity","startParams","endParams","setVisibleLayerList","_preDraw","layerSelectionChanged","selected","setTimeSlider","setTimeSliderValue","showLayerMenu","selectedLayer","_contextMenu","ContextMenuStrip","renameMenu","ToolStripMenuItem","Expand","Collapse","copyMenu","deleteMenu","saveMenu","publishMenu","colorMenu","opacityMenu","propertiesMenu","scaleMenu","lifeTimeMenu","spacer1","ToolStripSeparator","down","showViewer","spacer2","defaultImageset","_top_Click","_up_Click","_down_Click","_bottom_Click","_saveMenu_Click","_publishMenu_Click","_expand_Click","_collapse_Click","_copyMenu_Click","_colorMenu_Click","_deleteMenu_Click","_renameMenu_Click","_propertiesMenu_Click","scaleMenu_click","_defaultImageset_Click","_opacityMenu_Click","_lifeTimeMenu_Click","_showViewer_Click","get_hasTreeViewNodes","checked","_show","Dome","Sky","trackFrame","showOrbit","newMenu","newLayerGroupMenu","addMenu","newLight","addGridLayer","addGreatCircle","addMpc","deleteFrameMenu","pasteMenu","popertiesMenu","spacer0","asReferenceFrame","asOrbitalLines","_trackFrame_Click","_goTo_Click","_addMpc_Click","_asOrbitalLines_Click","dropDownItems","_addMenu_Click","_newLayerGroupMenu_Click","_pasteLayer_Click","_newMenu_Click","_deleteFrameMenu_Click","_framePropertiesMenu_Click","_addGreatCircle_Click","_addGirdLayer_Click","get_solarSystemMode","sandboxMode","spacerNeeded","_showOrbit_Click","ssObj","_showOrbitPlanet_Click","sender","set_trackingFrame","targetCamera","_importTLEFile","_makeLayerGroupNow","_makeLayerGroup","ReferenceFrame","show","referenceFrameWizardFinished","pasteFromTle","line1","line2","isTLECheckSumGood","EventArgs","SimpleInput","picker","ColorPicker","callBack","_deleteSelectedLayer","hist","displayVoTableLayer","lastIndexOf","loadFromString","_addGreatCircleLayer","retry","showDialog","_getMpc","Cursor","_getMpcAsTLE","startform","lastForm","formpart","_getValueByID","TLE","toTLE","_loadOrbitsFile","orbit","valStart","valEnd","currentMap","loadString","LayerManager$","LayerMap$","SkyOverlays$","GroundOverlayLayer$","FrameTarget$","LayerUI","LayerUIMenuItem","LayerUITreeNode","_type","LayerUI$","getTreeNodes","getNodeContextMenu","setUICallbacks","callbacks","_isChecked","_isEnabled","_subMenus","LayerUIMenuItem$","get_checked","set_checked","add_menuItemSelected","__menuItemSelected","bindAdd","remove_menuItemSelected","bindSub","fireMenuItemSelected","get_subMenus","_parent","_level","_open","_bold","_color","_nodes","LayerUITreeNode$","add_nodeChecked","__nodeChecked","remove_nodeChecked","fireNodeChecked","add_nodeUpdated","__nodeUpdated","remove_nodeUpdated","fireNodeUpdated","add_nodeSelected","__nodeSelected","remove_nodeSelected","fireNodeSelected","add_nodeActivated","__nodeActivated","remove_nodeActivated","fireNodeActivated","get_parent","set_parent","get_level","set_level","get_referenceTag","_referenceTag","set_referenceTag","get_bold","set_bold","get_nodes","DataVizWizard","FrameWizard","GreatCircleDialog","ReferenceFrameProps","_utilities_dialog_js__WEBPACK_IMPORTED_MODULE_1__","_layer_manager_js__WEBPACK_IMPORTED_MODULE_2__","Dialog","FrameWizard$","OK","ReferenceFrameProps$","GreatCircleDialog$","DataVizWizard$","Group","Material","Mesh","Object3dLayerUI","ObjectNode","VertexPosition","_render_globals_js__WEBPACK_IMPORTED_MODULE_4__","_graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_6__","_graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_7__","_graphics_shaders_js__WEBPACK_IMPORTED_MODULE_8__","_utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_9__","_baseplanets_js__WEBPACK_IMPORTED_MODULE_10__","_interfaces_js__WEBPACK_IMPORTED_MODULE_11__","_settings_js__WEBPACK_IMPORTED_MODULE_12__","_util_js__WEBPACK_IMPORTED_MODULE_13__","_layer_js__WEBPACK_IMPORTED_MODULE_14__","_layer_ui_js__WEBPACK_IMPORTED_MODULE_15__","specularSharpness","isDefault","Material$","_primaryUI$1","_heading$1","_flipV$1","_flipHandedness$1","_smooth$1","_twoSidedGeometry$1","_pitch$1","_roll$1","_scale$1","_translate$1","_lightID$1","_dirty$1","objType","_xHandle$1","_yHandle$1","_zHandle$1","_hprHandles$1","_uiScale$1","_showEditUi$1","_dragMode$1","_pntDown$1","_valueOnDown$1","_valueOnDown2$1","_hitDist$1","_lockPreferedAxis$1","_preferY$1","_translateUI$1","_translateUILines$1","_scaleUI$1","_rotateUi$1","_initTranslateUI$1","twoPi","pnt3","_initRotateUI$1","_initScaleUI$1","_makeCube$1","tl","dark","med","pnt4","Object3dLayer$","get_flipV","set_flipV","flipV","_reload","get_flipHandedness","set_flipHandedness","flipHandedness","get_smooth","set_smooth","smooth","get_twoSidedGeometry","set_twoSidedGeometry","get_heading","set_heading","get_pitch","set_pitch","get_roll","set_roll","get_scale","set_scale","get_translate","set_translate","get_lightID","set_lightID","add_propertiesChanged","__propertiesChanged$1","remove_propertiesChanged","fireChanged","oldWorld","set_twoSidedLighting","endsWith","pointToView","clientHeight","clientWidth","viewWidth","renderEngine","preRender","mouseDown","shiftKey","mouseUp","mouseMove","distX","distY","set_current","Cursors","get_sizeNS","get_sizeWE","get_sizeAll","mouseClick","mouseDoubleClick","keyDown","keyUp","hover","startIndex","indexCount","materialIndex","Group$","boundingSphere","vertices","indices","mesh","createTangent","tangentVertices","Mesh$","tangentVertexBuffer","setObjects","objects","_objects","commitToDevice","Uint32Array","beginDrawing","_setVertexBuffer","_setIndexBuffer","drawSubset","drawHierarchy","nodes","depth","drawGroup","group","get_objects","set_objects","VertexPosition$","_mesh","_meshMaterials","_meshTextures","_meshSpecularTextures","_meshNormalMaps","meshFilenames","_textureCache","_matFiles","_matFileIndex","_matLib","_textureLib","_tourDocument","_readyToRender","useCurrentAmbient","_loadMeshFromObj","_loadMeshFrom3ds","_compareVector3","v0","_compareVector","_getMaterialID","material","materialNames","_disposeTextureList","textures","Object3d$","_calculateVertexNormalsMerged","creaseAngleRad","vertexPositions","vertexIndex","vp","sort","vertexMap","uniqueVertexCount","vertexInstanceCounts","uniqueIndex","vertexInstances","faceIndex","faceNormals","i1","edge0","edge1","newVertexCount","vertexNormals","cosCreaseAngle","faceNormal","_calculateVertexTangents","partials","m00","m01","m10","determinant","invDeterminant","n00","n01","tangents","du","_calculateVertexNormals","vertexCount","_addMaterial","_loadColorChunk","chunkID","readUInt16","chunkLength","readUInt32","readBytes","_loadPercentageChunk","percentage","_readObjMaterialsFromBin","_loadMatLib","matFiles","lineraw","matFile","_readObjFromBin","objectFound","currentObject","vertList","normList","uvList","currentMaterialIndex","currentMaterial","currentGroup","currentIndex","diffuse","ambient","specular","materialName","getCachedTexture2d","indexiesA","_getIndexies","indexiesB","indexiesC","partIndex","degtorag","newVertexList","rootDummy","_readMatLibFromBin","textureFilename","indecies","_read3dsFromBin","sectionID","sectionLength","attributeID","exit","normalMapFound","objHierarchy","objNames","objectTable","startMapIndex","startTriangleIndex","triCount","aa","bb","cc","b1","applyList","applyLists","applyListsIndex","localMat","matName","b2","strength","dummyCount","pivotPoint","seekRelative","newIndexList","materialGroups","matId","$enum5","triangleIndex","nodeStack","Stack","nodeTreeRoot","currentLevel","peek","dummy","$enum6","tangentIndexList","tangentIndex","$enum7","tvertex","_offsetObjects","offsetMat","offsetPoint","matLoc","setupLighting","objPosition","objToLight","get_reflectedLightPosition","get_sunPosition","cosPhaseAngle","reflectedLightFactor","hemiLightFactor","sunlightFactor","get_occludingPlanetRadius","objAltitude","get_occludingPlanetPosition","sunToPlanet","objToPlanet","hemiLightDirection","set_hemisphereLightUp","objToSun","sunPlanetDistance","shadowAxisPoint","solarRadius","penumbraRadius","umbraRadius","minimumShadow","occlusion","set_sunlightColor","set_reflectedLightColor","get_reflectedLightColor","set_hemisphereLightColor","get_hemisphereLightColor","unitScale","savedSunlightColor","get_sunlightColor","savedReflectedColor","savedHemiColor","get_current","set_ambientLightColor","setMaterial","set_mainTexture","ObjectNode$","_layer$1","_opened$1","_callbacks$1","Object3dLayerUI$","_loadTree$1","_node_NodeChecked$1","_node_NodeSelected$1","showRowData","EllipseRenderer","_graphics_shaders_js__WEBPACK_IMPORTED_MODULE_4__","_graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_5__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_8__","thickness","_elements","_orbitColor","_scale","_segmentCount","_orbitalToWwt","_initBegun","Orbit$","get_boundingRadius","centerPoint","orbitalPlaneOrientation","drawEllipse","drawEllipseWithPosition","_ellipseShader","_ellipseVertexBuffer","createEllipseVertexBuffer","savedWorld","_ellipseWithoutStartPointVertexBuffer","createEllipseVertexBufferWithoutStartPoint","vb","EllipseRenderer$","OrbitLayerUI","_layer_ui_js__WEBPACK_IMPORTED_MODULE_5__","_orbit_js__WEBPACK_IMPORTED_MODULE_6__","_reference_frame_js__WEBPACK_IMPORTED_MODULE_7__","_frames$1","_pointOpacity$1","_pointColor$1","_filename$1","_dataFile$1","OrbitLayer$","get_frames","set_frames","get_pointOpacity","set_pointOpacity","get_pointColor","set_pointColor","dataFile","OrbitLayerUI$","_astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_2__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_5__","fixedSherical","orbital","trajectory","synodic","orbitalYears","observingLocation","parentsRoationalBase","zeroRotationDate","representativeColor","stationKeeping","_orbit","checksum","charAt","toTLEExponential","toExponential","tleNumberString","formated","toFixed","computeTLECheckSum","ReferenceFrame$","getIndentifier","importTrajectory","gravity","revs","julianToTwoLineDate","set_elements","_computeOrbital","_computeFixedSherical","_computeFrameTrajectory","_computeFixedRectangular","get_altitude","localScale","rotationCurrent","pointInstantLater","direction","look","KmlCoordinate","KmlLineList","_render_globals_js__WEBPACK_IMPORTED_MODULE_5__","_graphics_texture_js__WEBPACK_IMPORTED_MODULE_8__","_graphics_tessellator_js__WEBPACK_IMPORTED_MODULE_9__","_coordinates_js__WEBPACK_IMPORTED_MODULE_11__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_12__","_ui_tools_js__WEBPACK_IMPORTED_MODULE_13__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_14__","_color_map_container_js__WEBPACK_IMPORTED_MODULE_15__","_layer_js__WEBPACK_IMPORTED_MODULE_16__","_table_js__WEBPACK_IMPORTED_MODULE_17__","KmlCoordinate$","extrude","KmlLineList$","parseWkt","geoText","option","coordinates","getCenterPoint","_pinTextureCache","_pins","getPushPinTexture","pinId","PushPin$","_dataDirty$1","_lastNormalizeSizeColumnIndex$1","_lastDynamicColorColumnIndex$1","_table_backcompat$1","_barChartBitmask$1","_barScaleFactor$1","_meanRadius$1","_table$1","Table","isLongIndex","shapeVertexCount","fixedSize","_dynamicData$1","_autoUpdate$1","_dataSourceUrl$1","_beginRange$1","_endRange$1","markerDomainValues","colorDomainValues","_coordinatesType$1","_xAxisColumn$1","_yAxisColumn$1","_zAxisColumn$1","_xAxisReverse$1","_yAxisReverse$1","_zAxisReverse$1","_altType$1","_markerMix$1","_raUnits$1","colorMap","_dynamicColorColumnName$1","_markerColumn$1","_plotType$1","_markerIndex$1","_showFarSide$1","_markerScale$1","_altUnit$1","_cartesianScale$1","_cartesianCustomScale$1","_normalizeSizeColumnName$1","_hyperlinkFormat$1","_hyperlinkColumn$1","positions","bufferIsFlat","dirty","lastVersion","_circleTexture$1","_getDatafromFeed$1","_executeQuery$1","parseDate","dt","execlToDateTime","excelDate","es","get__circleTexture$1","SpreadSheetLayer$","get_header","dynamicUpdate","guessHeaderAssignments","computeDateDomainRange","removeColumn","_fileName$1","_prepareBackCompatTable$1","normalizedPointSize","normalizePointSize","addColumn","pointColors","normalizeColorMapValue","headerName","_guessHeaderAssignment$1","guessHeaderAssignmentsFromVoTable","votable","decColumn","getDecColumn","raColumn","getRAColumn","magColumn","getMagColumn","column","columnStart","columnEnd","sucsess","dateTimeStart","dateTimeEnd","$e4","checkState","getMaxValue","getDomainValues","domainValues","_isPointInFrustum$1","frustum","centerV4","getTableDataInView","prepVertexBuffer","lineList2d","triangleList2d","colorLocal","mr","pointColor","pointStartTime","pointEndTime","Xcoord","Ycoord","Zcoord","distParces","getScaleFactor","xyzScale","get_colorMap","_parseColor$1","dateTime","_parseGeometry$1","$e5","gs","polyColor","commandPart","parens","command","mods","_parsePolygon$1","_parseLineString$1","shapes","_addPolygon$1","_addPolygonFlat$1","single","_splitShapes$1","shapeList","nesting","geo","vertexListGround","colorText","defaultColor","AltUnit","set__table","unit","isUpdate","purgeByTime","columnToUse","threasholdTime","colDate","cleanUpBase","get_markerMix","set_markerMix","set_colorMap","new_value","adjustedScale","_addedTiles$2","CatalogSpreadSheetLayer$","tileKey","catalogRows","_ui_tools_js__WEBPACK_IMPORTED_MODULE_3__","locked","Table$","purge","headerLine","cloned_table","remove_index","ColorMaps","CoordinatesTypes","MarkerMixes","TimeSeriesLayer","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_2__","_layer_js__WEBPACK_IMPORTED_MODULE_3__","rectangular","seaLevel","terrain","same_For_All","group_by_Values","per_Column_Literal","gaussian","circle","square","pushPin","screen","_colorMap$1","_colorMapColumn$1","TimeSeriesLayer$","set__colorMap","get__colorMap","Primitives","VoColumn","VoRow","_web_file_js__WEBPACK_IMPORTED_MODULE_4__","voBoolean","voBit","voUnsignedByte","voShort","voInt","voLong","voChar","voUnicodeChar","voFloat","voDouble","voFloatComplex","voDoubleComplex","voUndefined","columns","loadFilename","sampId","selectedRow","errorText","xParser","DOMParser","parseFromString","loadFromXML","VoTable$","xml","tableData","columnData","getColumnByUcd","ucd","toLocaleLowerCase","getDistanceColumn","owner","VoRow$","getColumnData","get_item","precision","dimentions","sizes","getType","indexer","dim","lenString","Type","VoColumn$","_graphics_texture_js__WEBPACK_IMPORTED_MODULE_4__","_place_js__WEBPACK_IMPORTED_MODULE_7__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_9__","_layer_js__WEBPACK_IMPORTED_MODULE_10__","_vo_table_js__WEBPACK_IMPORTED_MODULE_11__","_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_12__","VoTableLayer$","fName","defaultPlace","searchPoint","closestItem","colValue","siapSet","isSiapResultSet","stcsCol","lastItem","_addSiapStcRow$1","stcsColName","stcs","get_table","set_table","copyright","_validWcs","keywords","_colorCombine","WcsImage$","get_copyright","set_copyright","get_validWcs","get_keywords","set_keywords","get_description","set_description","get_scaleX","set_scaleX","set_scaleY","get_referenceX","get_referenceY","set_referenceX","set_referenceY","set_sizeX","set_sizeY","get_cd1_1","set_cd1_1","get_cd1_2","set_cd1_2","get_cd2_1","set_cd2_1","get_cd2_2","set_cd2_2","adjustScale","rot2","set_filename","get_colorCombine","set_colorCombine","_latMin$1","_latMax$1","_lngMin$1","_lngMax$1","getCentrePointOffsetAsTileRatio","lon","metersX","absoluteLonToMetersAtZoom","relativeXIntoCell","metersY","absoluteLatToMetersAtZoom","relativeYIntoCell","relativeMetersToLatAtZoom","metersPerPixel","metersPerPixel2","_radToDeg$1","relativeMetersToLonAtZoom","sinLat","_degToRad$1","absoluteMetersToLatAtZoom","absoluteMetersToLonAtZoom","absoluteLonToMetersAtZoomTile","absoluteLatToMetersAtZoomTile","absoluteMetersToLonAtZoomByTileY","deg","MercatorTile$","demReady","demData","_getAltitudeAtLatLng$1","indexX","geometryCreated","geoTo3dWithAlt","demIndex","tri","_getDemSample$1","createDemFromParent","demSize","sample","MinorPlanets","_astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_3__","_graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_6__","_graphics_shaders_js__WEBPACK_IMPORTED_MODULE_7__","_blend_state_js__WEBPACK_IMPORTED_MODULE_8__","_color_js__WEBPACK_IMPORTED_MODULE_9__","_data_globals_js__WEBPACK_IMPORTED_MODULE_10__","_kepler_vertex_js__WEBPACK_IMPORTED_MODULE_11__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_13__","_web_file_js__WEBPACK_IMPORTED_MODULE_15__","mpcList","_mpcBlendStates","_mpcVertexBuffer","_mpcCount","getMpcFile","_webMpcFile","_readFromBin","initMPCVertexBuffer","drawMPC3D","matrixWV","_startInit","mpcVertexBufferTemp","lists","listID","MinorPlanets$","_camera_parameters_js__WEBPACK_IMPORTED_MODULE_5__","_interfaces_js__WEBPACK_IMPORTED_MODULE_6__","_ui_tools_js__WEBPACK_IMPORTED_MODULE_7__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_8__","_coordinates_js__WEBPACK_IMPORTED_MODULE_9__","_imageset_js__WEBPACK_IMPORTED_MODULE_10__","_planets_js__WEBPACK_IMPORTED_MODULE_11__","supernova","blackHole","neutronStar","doubleStar","multipleStars","asterism","openCluster","globularCluster","nebulousCluster","nebula","emissionNebula","planetaryNebula","reflectionNebula","darkNebula","giantMolecularCloud","supernovaRemnant","interstellarDust","quasar","spiralGalaxy","irregularGalaxy","ellipticalGalaxy","knot","plateDefect","clusterOfGalaxies","otherNGC","unidentified","unfiltered","stellar","stellarGroupings","nebulae","other","_camParams","_location3d","htmlDescription","_constellation","_classification","_magnitude","_distnace","angularSize","annotation","_thumbNail","_studyImageset","_backgroundImageSet","_searchDistance","_elevation","classification","zoomFactor","set_classification","createCameraParams","camParams","set_target","newPlace","descriptionNode","backgroundImageSet","imageSet","study","_properCaps","ProperName","Place$","get_names","set_names","getNamesStringFromArray","get_camParams","get_classification","getPlanetLocation","set_camParams","updatePlanetLocation","getPlanet3dLocationJD","get_target","getPlanetTargetPoint","get_location3d","set_constellation","get_magnitude","set_magnitude","get_distance","set_distance","get_zoomLevel","get_annotation","set_annotation","get_searchDistance","set_searchDistance","get_elevation","set_elevation","_thumbnailField","_saveToXml","elementName","_writeCData","BodyAngles","KeplerianElements","_astrocalc_earth_js__WEBPACK_IMPORTED_MODULE_3__","_astrocalc_mercury_js__WEBPACK_IMPORTED_MODULE_4__","_astrocalc_venus_js__WEBPACK_IMPORTED_MODULE_5__","_astrocalc_mars_js__WEBPACK_IMPORTED_MODULE_6__","_astrocalc_jupiter_js__WEBPACK_IMPORTED_MODULE_7__","_astrocalc_saturn_js__WEBPACK_IMPORTED_MODULE_8__","_astrocalc_uranus_js__WEBPACK_IMPORTED_MODULE_9__","_astrocalc_neptune_js__WEBPACK_IMPORTED_MODULE_10__","_astrocalc_pluto_js__WEBPACK_IMPORTED_MODULE_11__","_astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_12__","_astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_13__","_astrocalc_js__WEBPACK_IMPORTED_MODULE_14__","_graphics_texture_js__WEBPACK_IMPORTED_MODULE_15__","_graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_16__","_baseplanets_js__WEBPACK_IMPORTED_MODULE_17__","_camera_parameters_js__WEBPACK_IMPORTED_MODULE_18__","_color_js__WEBPACK_IMPORTED_MODULE_19__","_coordinates_js__WEBPACK_IMPORTED_MODULE_20__","_settings_js__WEBPACK_IMPORTED_MODULE_21__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_22__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_23__","ea","KeplerianElements$","poleRa","poleDec","primeMeridian","rotationRate","BodyAngles$","_jNow","_planetAngles","_lastPlanetCenterID","_orbitalSampleRate","_obliquity","_drawOrder","earthMatrix","earthMatrixInv","_planetSprite","_planetPoints","_planet3dLocations","loadPlanetTexture","getPlanet3dLocation","getPlanet3dSufaceAltitude","getAdjustedPlanetRadius","centerRaDec","getPlanetIDFromName","_planetLocations","planetName","getNameFrom3dId","updatePlanetLocations","threeDee","updateOrbits","_planetDiameters","planetColors","lightYellow","orangeRed","_planetTilts","planetRotationPeriod","_planetScales","_planetDrawOrder","planetCenter","finalDistance","planetsReady","_orbits","_eclipticTilt","planetOrbitalYears","readOrbits","centerId","moone","planetRaDec","dumpOrbitsFile","drawPlanets","_planetTextures","_loadPlanetTextures","elong","_geocentricElongation","raDif","_phaseAngle","_positionAngle","dista","distb","sunMoonDist","coronaOpacity","moonEffect","_drawPlanet","planetId","baseUrl","getPlanetOrientationAtEpoch","planetID","obliquityOfEcliptic","matNonRotating","_setupMatrixForPlanetGeometry","matLocal","orientationAtEpoch","getPlanetRadiusInMeters","getPlanetPositionDirect","galileanInfo","eclPos","eclipticOfDateRotation","_stateVectorToKeplerian","mu","rmag","vmag","sma","ecc","cosNu","sinNu","orientation","diameter","planetPosition","brush","get_showMoonsAsPointSource","raRadius","clip","_drawPlanetPhase","phase","Planets$","Planets3d","_graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_4__","_graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_5__","_graphics_texture_js__WEBPACK_IMPORTED_MODULE_6__","_baseutil_js__WEBPACK_IMPORTED_MODULE_8__","_baseplanets_js__WEBPACK_IMPORTED_MODULE_9__","_planets_js__WEBPACK_IMPORTED_MODULE_12__","_render_triangle_js__WEBPACK_IMPORTED_MODULE_13__","_triangle_js__WEBPACK_IMPORTED_MODULE_15__","_ui_tools_js__WEBPACK_IMPORTED_MODULE_16__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_17__","_layers_orbit_js__WEBPACK_IMPORTED_MODULE_18__","_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_19__","_ringsTriangleLists","_ringImage","_triangleCountRings","_ringsVertexBuffer","getImageSetNameNameFrom3dId","initPlanetResources","drawPlanets3D","distss","solarSystemToMeters","get_solarSystemCameraDistance","fade","ii","_drawSingleOrbit","distVector","distVectorEarth","_drawPlanet3d","eclipticColor","startAngle","planetNow","muSun","muEarth","muMoon","muJupiter","planetDropped","pointTest","matWV","WV","alphaD","lastColor","r0","r1","_drawSingleOrbitElements","xstartAngle","el","currentPosition","isPlanetInFrustum","planetWidth","set_sunPosition","sizeIndexParam","sizeIndex","oldLighting","drawSaturnsRings","_drawSphere","_drawRings","front","ringSize","TopLeft","TopRight","BottomLeft","BottomRight","Width","childTriangleList","Triangle","newList","subDivideNoNormalize","miter","createWithMiter","worldLocal","wv","td","cullInside","_initRings","_ringsTexture","inner","outer","radStep","rads1","rads2","_baseplanets_js__WEBPACK_IMPORTED_MODULE_4__","_coordinates_js__WEBPACK_IMPORTED_MODULE_5__","_star_js__WEBPACK_IMPORTED_MODULE_6__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_7__","_tile_js__WEBPACK_IMPORTED_MODULE_9__","_childTriangleList$1","_stars$1","set__demScaleFactor","PlotTile$","_initializeGrids$1","bounds","calcSphere","demTile","_loadData$1","firstRow","xIndex","yIndex","_midpoint$1","positionNormalTextured","positionNormalTextured_2","a1","a1uv","Pointing","_healpix_utils_js__WEBPACK_IMPORTED_MODULE_2__","Pointing$","normalizeTheta","InViewReturnMessage","RenderContext","_baseutil_js__WEBPACK_IMPORTED_MODULE_5__","_camera_parameters_js__WEBPACK_IMPORTED_MODULE_8__","_coordinates_js__WEBPACK_IMPORTED_MODULE_10__","_imageset_js__WEBPACK_IMPORTED_MODULE_11__","_layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_16__","_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_17__","aborted","InViewReturnMessage$","_viewPoint","_fovAngle","_fovScale","_nominalRadius","_mainTexture","viewMover","az","targetAlt","targetAz","_backgroundImageset","_foregroundImageset","_activeCatalogHipsImagesets","_targetHeight","targetAltitude","_galactic","_galacticMatrix","_firstTimeInit","_useSolarSystemTilt","customTrackingParams","_cameraOffset","_fovLocal","perspectiveFov","nearPlane","_frustumDirty","_frustum","_ambientLightColor","_hemiLightColor","_hemiLightUp","_sunlightColor","_sunPosition","_reflectedLightColor","_reflectedLightPosition","_occludingPlanetRadius","_occludingPlanetPosition","_lightingStateDirty","_twoSidedLighting","_skyColor","back","getTilesYForLevel","maxY","getTilesXForLevel","maxX","RenderContext$","viewport","rAtoViewLng","set_fovScale","_view","set_view","get_viewBase","_viewBase","_world","_getScreenTexture","_worldBase","_worldBaseNonRotating","get_mainTexture","onTarget","setTexture","viewModeChanged","_freezeView","clampZooms","set_foregroundImageset","get_catalogHipsImagesets","onComplete","onHeaderInfoLoad","_tryGetAllDataInView","anyTileStillDownloading","tile","tileAndChildrenReady","returnMessage","onLoad","removeCatalogHips","getCatalogHipsByName","getAltitudeForLatLongForPlanet","viewLat","viewLong","getEarthAltitude","ViewLat","ViewLong","EarthMat","getMetersAltitudeForLatLong","getScaledAltitudeForLatLong","_getTileAtLatLong","_setupMatricesLand3d","WorldMatrix","heightNow","rotLocal","m_nearPlane","_setMatrixes","setupMatricesSpace3d","canvasWidth","canvasHeight","gPoint","camLocal","currentRaDec","localZoomFactor","get_solarSystemTrack","get_sandboxMode","get_trackingFrame","get_fovLocal","set_fovLocal","setupMatricesOverlays","lookFrom","setupMatricesSolarSystem","forStars","cameraDistance","trackingMatrix","viewAdjust","get_ambientLightColor","get_hemisphereLightUp","set_reflectedLightPosition","set_occludingPlanetRadius","set_occludingPlanetPosition","get_twoSidedLighting","viewProjection","inverseWorld","_initGL","getExtension","freezeView","diffuseTex","specularTex","normalMap","inc_tileCacheAccessID","set_globalRenderContext","set_tileCacheAddTileToQueue","set_tileCacheGetCachedTile","set_tileCacheGetTile","set_tileCacheRemoveFromQueue","set_tilePrepDevice","set_useGl","set_useGlVersion2","tileCacheGetCachedTile","tileDemEnabled","useGl","tileCacheAccessID","expansionInPixels","tileLevel","_ta","_tb","_tc","_expandedS0","_expandedS1","_expandedS2","_contractionInPixels","trianglesCulled","_factor","_hw","_qw","_hh","_qh","img","_texture","makeNormal","expansion","_getMiterPoint","edgeOffset","edge2","sineHalfAngle","net","_miterPoint","p1x","p1y","p2x","p2y","p3x","p3y","ExpansionInPixels","e1x","e1y","e2x","e2y","deltax","deltay","_miterPointOut","RenderTriangle$","_checkBackface","ab","ac","cp","_drawTriangle","im","x0","y0","sx0","sy0","sx1","sy1","sx2","sy2","intersects","denom","h4","lineRectangleIntersect","top_intersection","bottom_intersection","toptrianglepoint","bottomtrianglepoint","topoverlap","botoverlap","AnnotationClickEventArgs","ArrivedEventArgs","CollectionLoadedEventArgs","ScriptInterface","SlideChangedEventArgs","_annotation_js__WEBPACK_IMPORTED_MODULE_5__","_layers_fits_image_js__WEBPACK_IMPORTED_MODULE_6__","_layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_7__","_layers_imageset_layer_js__WEBPACK_IMPORTED_MODULE_9__","_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_10__","_folder_js__WEBPACK_IMPORTED_MODULE_11__","caption","set_caption","SlideChangedEventArgs$","get_caption","_caption$2","_ra$2","_dec$2","_zoom$2","set_zoom","ArrivedEventArgs$","get_zoom","AnnotationClickEventArgs$","_id$2","_url$2","CollectionLoadedEventArgs$","_missedReady","hideTourFeedback","_smoothAnimation","_showCaptions","_containsFitsLikeExtentsion","lowerCaseUrl","_addImageSet","loaded","imagesetLayer","_addFitsLayer","wcsLoaded","ScriptInterface$","__ready","remove_ready","_fireReady","add_collectionLoaded","__collectionLoaded","remove_collectionLoaded","_fireCollectionLoaded","add_colorPickerDisplay","__colorPickerDisplay","remove_colorPickerDisplay","add_voTableDisplay","__voTableDisplay","remove_voTableDisplay","add_refreshLayerManager","__refreshLayerManager","remove_refreshLayerManager","__arrived","remove_arrived","add_clicked","__clicked","remove_clicked","add_annotationClicked","__annotationClicked","remove_annotationClicked","add_imageryLoaded","__imageryLoaded","remove_imageryLoaded","__tourReady","remove_tourReady","add_tourError","__tourError","remove_tourError","add_tourPaused","__tourPaused","remove_tourPaused","add_tourResumed","__tourResumed","remove_tourResumed","__tourEnded","remove_tourEnded","add_slideChanged","__slideChanged","remove_slideChanged","add_timeScrubberHook","__timeScrubberHook","remove_timeScrubberHook","setTimeScrubberPosition","posLeft","showColorPicker","pickerInstance","_fireTourReady","_fireTourError","ex","_fireTourPaused","_fireTourResume","_fireTourEnded","_fireImageryLoaded","_fireClick","_fireArrived","_fireAnnotationclicked","Dec","_fireSlideChanged","endInit","gotoRaDecZoom","getLayers","addCatalogHipsByNameWithCallback","setCutsForFits","setColorMapForFits","setScaleTypeForFits","hideUI","hide","loadFits","getImageSetByUrl","get_hideTourFeedback","set_hideTourFeedback","playCurrentTour","stopTour","stopCurrentTour","_imageUrl","_imageFileLoaded","createFolder","createPolygon","createPolyLine","createCircle","_addAnnotation","_removeAnnotation","_clearAnnotations","get_smoothAnimation","set_smoothAnimation","get_showCaptions","set_showCaptions","loadVOTable","useCurrentView","get_fov","SettingParameter","StockSkyOverlayTypes","_color_js__WEBPACK_IMPORTED_MODULE_1__","_constellation_filter_js__WEBPACK_IMPORTED_MODULE_2__","_interfaces_js__WEBPACK_IMPORTED_MODULE_3__","equatorialGrid","equatorialGridText","galacticGrid","galacticGridText","eclipticGrid","eclipticGridText","eclipticOverview","eclipticOverviewText","precessionChart","altAzGrid","altAzGridText","constellationFigures","constellationBoundaries","constellationFocusedOnly","constellationNames","constellationPictures","fadeToBlack","fadeToLogo","fadeToGradient","screenBroadcast","fadeRemoteOnly","skyGrids","solarSystemAsteroids","showEarthCloudLayer","showAtmosphere","multiResSolarSystemBodies","auroraBorialis","earthCutAway","clouds8k","filedOfView","mpcZone1","mpcZone2","mpcZone3","mpcZone4","mpcZone5","mpcZone6","mpcZone7","orbitFilters","edgeTrigger","targetState","SettingParameter$","autoRepeatTour","_localHorizonMode","_galacticMode","_constellationBoundryColor","_constellationSelectionColor","_constellationFigureColor","_showConstellationFigures","_showConstellationBoundries","_showConstellationSelection","_showCrosshairs","_crosshairsColor","_showEcliptic","_locationLat","_locationLng","_locationAltitude","_showFiledOfView","_actualPlanetScale","_fovCamera","_fovEyepiece","_fovTelescope","_showClouds","_showGrid","_showHorizon","_showHorizonPanorama","_showMoonsAsPointSource","_showSolarSystem","_solarSystemStars","_solarSystemMilkyWay","_solarSystemCosmos","_solarSystemOrbits","_solarSystemOverlays","_solarSystemLighting","_solarSystemMultiRes","_solarSystemScale","_smoothPan","_showElevationModel","_showEquatorialGridText","_showGalacticGrid","_showGalacticGridText","_showEclipticGrid","_showEclipticGridText","_showEclipticOverviewText","_showAltAzGrid","_eclipticGridColor","_galacticGridColor","_altAzGridColor","_precessionChartColor","_eclipticColor","_equatorialGridColor","_showAltAzGridText","_showPrecessionChart","_showConstellationPictures","_showConstellationLabels","_constellationLabelsHeight","_solarSystemCMB","_solarSystemMinorPlanets","_solarSystemPlanets","_showEarthSky","_solarSystemMinorOrbits","_constellationsEnabled","_constellationFiguresFilter","_constellationBoundariesFilter","_constellationNamesFilter","_constellationArtFilter","_showSkyOverlays","_showConstellations","_showSkyNode","_showSkyGrids","_showSkyOverlaysIn3d","_earthCutawayView","_showISSModel","_milkyWayModel","_minorPlanetsFilter","_planetOrbitsFilter","_constellations","_active","tourSettings","Settings$","get_fovCamera","get_fovEyepiece","get_fovTelescope","get_showClouds","get_showFieldOfView","get_showHorizonPanorama","get_eclipticGridColor","set_eclipticGridColor","get_galacticGridColor","set_galacticGridColor","get_altAzGridColor","set_altAzGridColor","get_precessionChartColor","set_precessionChartColor","get_eclipticColor","set_eclipticColor","get_equatorialGridColor","set_equatorialGridColor","set_constellationLabelsHeight","getSetting","_layers_wcs_image_js__WEBPACK_IMPORTED_MODULE_3__","_tangent_tile_js__WEBPACK_IMPORTED_MODULE_4__","pixelCenterX","pixelCenterY","geoTo3dTan","SkyImageTile$","getLatLngEdges","edges","LatLngEdges","naturalHeight","naturalWidth","Alignment","GlyphCache","GlyphItem","_graphics_texture_js__WEBPACK_IMPORTED_MODULE_7__","_tours_text_object_js__WEBPACK_IMPORTED_MODULE_9__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_10__","_glyphVersion","_textObject","TextObject","_vertCount","Text3dBatch$","newItem","drawHeight","t3d","screenSpaceTop","rotate","textBaseline","tm","measureText","_glyphCache","prepareBatch","ready","get_texture","getCache","fontSize","fntAdjust","getGlyphItem","extents","charsLeft","addGlyphPoints","uvRect","vertBuf","glyph","referenceCount","_fromXML","GlyphItem$","addRef","release","_cellHeight","_gridSize","_glyphItems","textObject","_textureDirty","_caches","_allGlyphs","cleanUpAll","GlyphCache$","get_height","_glyphXmlReady","_loadXmlGlyph","glyphItem","_makeTexture","_calcOrMake","_calculateGlyphDetails","addGlyph","fontsize","bank","_matInit","alignment","Text3d$","upTan","get_left","get_right","get_top","get_bottom","lookAtInv","_rtbMat","_astrocalc_date_js__WEBPACK_IMPORTED_MODULE_2__","_astrocalc_js__WEBPACK_IMPORTED_MODULE_3__","_coordinates_js__WEBPACK_IMPORTED_MODULE_4__","_settings_js__WEBPACK_IMPORTED_MODULE_5__","frameDumping","cancelFrameDump","currentFrameNumber","_offset","_syncToClock","_timeRate","_altitude","updateClock","justNow","get_metaNow","getTime","last","ticks","_now","getTimeForFutureTime","future","getJNowForFutureTime","_metaNow","set_metaNow","nextFrame","setMilliseconds","getMilliseconds","get_doneDumping","syncTime","set_altitude","_location","set_location","julianToUtc","ms","pre1950","days","fraction","dateToTwoLineDate","fullYear","dayofyear","sDay","tleDayString","SpaceTimeController$","_ss","_nop","isValue","_value","parseBoolean","parseRegExp","endSlashIndex","expression","flags","RegExp","parseNumber","ceil","today","_popStackFrame","stack","lineNumber","stackFrames","currentFrame","pattern","shift","nextFrameParts","join","errorInfo","innerException","fail","eval","toArray","removeItem","Enumerator","lookup","reset","_nopEnumerator","getEnumerator","Stack$","contains","Queue","_cleanQueue","Queue$","dequeue","string","arg1","arg2","compareStrings","s1","s2","ignoreCase","_formatPlaceHolderRE","_formatters","cultureOrFormat","culture","neutralCulture","str","formatter","typeName","formatSpec","formatIndex","toLocaleString","tc","trimStart","prefix","suffix","padLeft","totalWidth","ch","padRight","removeString","insertString","_bindList","fnList","_fnList","cache","$$b","binding","bindExport","multiUse","valueOf","detach","CancelEventArgs","cancel","IEnumerable","IEnumerator","IObserver","IApplication","IContainer","IObjectFactory","IEventManager","IInitializable","_parts","isEmpty","Empty","StringBuilder$","_observerStack","_observerRegistration","_captureObservers","observers","registeredObservers","observerCount","observer","_invalidateObservers","invalidateObserver","Observable","_v","_observers","Observable$","getValue","setValue","ObservableCollection","registerObserver","ObservableCollection$","set_item","_updated","insert","removeAt","Task","_continuations","Task$","get_completed","changeWith","continuation","task","continueWith","_updateTask","doneCallback","failCallback","continuations","_joinTasks","tasks","any","joinTask","seen","timeout","deferred","delay","timerTask","nf","nan","neg","negInf","posInf","gw","ds","per","perGW","perDD","perDS","perGS","perPP","perNP","cur","curGW","curDD","curDS","curGS","curNP","curPP","dtf","am","pm","gmt","uni","ld","sd","lt","day0","sday","mday","mon","smon","currentCulture","_commaFormatNumber","groups","decimal","comma","decimalPart","decimalIndex","negative","groupIndex","groupSize","fs","_dateFormatRE","toISOString","fnName","lastIndex","exec","getDay","getTimezoneOffset","_modules","_classMarker","_interfaceMarker","createType","typeInfo","typeRegistry","baseType","anonymous","$base","$interfaces","$type","$name","isClass","isInterface","typeOf","instance","ctor","nsIndex","ns","_typeNames","Boolean","canAssign","otherType","interfaces","instanceOf","instanceType","ss_module","implementation","registry","createRegistry","regexp","modules","neutral","BMV","sa","_makeColor","_makeDistanceAndMagnitude","Star$","get_coordinates","stars","newish","bmv","sdssID","readInt64","_eTypeBuckets","getEType","Galaxy$","_tile_js__WEBPACK_IMPORTED_MODULE_7__","LatLngEdges$","TangentTile$","fac1","fitsImage","getTexture","globalCenter","leftCenter","rightCenter","topCenter","bottomCenter","_util_js__WEBPACK_IMPORTED_MODULE_8__","_blend_state_js__WEBPACK_IMPORTED_MODULE_9__","_layers_color_map_container_js__WEBPACK_IMPORTED_MODULE_11__","_layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_12__","_layers_fits_image_tile_js__WEBPACK_IMPORTED_MODULE_13__","localCenter","_demScaleFactor","demDownloading","accessCount","_isHdTile","_topLeftScreen","_bottomRightScreen","_topRightScreen","_bottomLeftScreen","requestHits","_key","_tileId","_vertexCount","tileTargetX","tileTargetY","tileTargetLevel","frustumList","callCount","useAccomidation","maxLevel","meshComplexity","imageQuality","deepestLevel","getFrustumList","get_subDivisions","Tile$","useLocalCenter","rev","geoTo3dWithAltitude","get_dataset","_loadDemData","demFile","fv","requestDem","get_demURL","xMax","yOffset","xOffset","_computeAccomidation","accVal","norm","light","removeChild","corners","topLength","bottomLength","leftLength","rightLength","lengthMax","get_sphereRadius","get_sphereCenter","onCreateVertexBuffer","set_dataset","getTileKey","rewritten_url","returnUrl","getServerID","getTileID","server","netLevel","netX","netY","tileMap","mask","get_vertexCount","set_vertexCount","_tile_js__WEBPACK_IMPORTED_MODULE_5__","_imageset_js__WEBPACK_IMPORTED_MODULE_6__","_queue","_tiles","openThreads","readyToRenderCount","maxTileCacheSize","maxReadyToRenderSize","_maxTotalToPurge","get_queueCount","getTile","retTile","getCachedTile","getReadyToRenderTileCount","notReadyCullList","readyCullList","processQueue","minDistance","overlayTile","maxKey","vectTemp","distTemp","thisIsOverlay","workTile","addTileToQueue","hitValue","removeFromQueue","purgeQueue","purgeLRU","totalToPurge","decimateQueue","TileCache$","_render_triangle_js__WEBPACK_IMPORTED_MODULE_6__","_triangle_js__WEBPACK_IMPORTED_MODULE_8__","_util_js__WEBPACK_IMPORTED_MODULE_9__","slashIndexBuffer","backSlashIndexBuffer","rootIndexBuffer","_cloneArray$1","indexArrayNew","ToastTile$","partArray","_processAccomindations$1","gridMap","arrayX","arrayY","sections","calculateFullSphere","_backslashYIndex$1","_tempBackslashYIndex$1","_tempBackslashXIndex$1","_slashYIndex$1","_tempSlashYIndex$1","_tempSlashXIndex$1","subDivide","_getMappedVertex","_backslashXIndex$1","_slashXIndex$1","vertOut","latLng","yy1","xx1","yy2","xx2","userLevel","averageRating","lengthInSecs","_tourUrl","authorEmail","author","authorURL","authorImageUrl","organizationUrl","organizationName","relatedTours","Tour$","set_tourUrl","FileCabinet","FileEntry","_utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_3__","FileEntry$","_currentOffset","_packageID","clearFileList","callMe","_callMe","FileCabinet$","set_packageID","_fileDirectory","fe","fileList","packageFiles","XmlTextWriter","formatting","_writeProcessingInstruction","entry","_writeFullEndElement","_close","sizeText","blobs","cabBlob","_loadCabinet","_mainBlob","_getSize","extract","cab","getFileEntry","ext","get_masterFile","clearTempFiles","AudioOverlay","AudioType","BitmapOverlay","FlipbookOverlay","LoopTypes","Overlay","OverlayAnchor","ShapeOverlay","ShapeType","TextOverlay","_graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_5__","_baseutil_js__WEBPACK_IMPORTED_MODULE_6__","_color_js__WEBPACK_IMPORTED_MODULE_7__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_9__","_ui_tools_js__WEBPACK_IMPORTED_MODULE_10__","_text_object_js__WEBPACK_IMPORTED_MODULE_12__","music","voice","rectagle","donut","arrow","openRectagle","loop","upDown","upDownOnce","once","begin","isDynamic","isDesignTimeOnly","nextId","_owner","_linkID","_domeMatrix","_domeMatX","_domeMatY","_domeAngle","_animate","_tweenFactor","_endX","_endY","_endOpacity","_endColor","_endWidth","_endHeight","_endRotationAngle","_anchor","_x","_y","_width","_height","_rotationAngle","currentRotation","_interpolationType","defaultAnchor","clipboardFormat","overlay","overlayClassName","newOverlay","_initOverlayFromXml","Overlay$","get_owner","set_owner","get_zOrder","get_overlays","get_linkID","set_linkID","pause","seek","makePosition","designTime","initializeTexture","initializeGeometry","updateRotation","prepMultimedia","cleanUpGeometry","get_x","get_y","get_rotationAngle","get_animate","set_animate","get_tweenFactor","set_tweenFactor","get_anchor","set_anchor","set_x","set_y","set_height","red","green","blue","set_rotationAngle","tempPoints","get_interpolationType","set_interpolationType","saveKeys","writeOverlayProperties","_textureReady$1","_sprite$1","getNextDefaultName","addCachedFile","BitmapOverlay$","newBmpOverlay","getCachedTexture","get_workingDirectory","bitmap","_ctx$1","_ce$1","_calculateTextSize$1","TextOverlay$","foregroundColor","_drawCanvasText$1","fontName","formatDistance","baseline","lineSpace","maxWidth","_shapeType$1","_triangleStrip$1","currentTourStop","shapeType","ShapeOverlay$","get_shapeType","set_shapeType","_drawCircleGeometry$1","_drawRectGeometry$1","_drawOpenRectGeometry$1","_drawStarGeometry$1","_drawDonutGeometry$1","_drawArrowGeometry$1","_drawLineGeometry$1","_createCircleGeometry$1","_createOpenRectGeometry$1","_createStarGeometry$1","_createDonutGeometry$1","_createArrowGeometry$1","_createLineGeometry$1","segmentsHigh","totalPoints","_pnts$1","rads","circumference","_audio$1","_audioReady$1","_wantPlaying$1","_volume$1","_mute$1","_position$1","_trackType$1","ao","AudioOverlay$","get_mute","set_mute","set_volume","get_volume","volume","appendChild","get_trackType","set_trackType","audio","_loopType$1","_startFrame$1","_framesList$1","_framesX$1","_framesY$1","_currentFrame$1","_cellHeight$1","_cellWidth$1","_timeStart$1","_playing$1","FlipbookOverlay$","get_loopType","set_loopType","get_startFrame","set_startFrame","get_frameSequence","_frameSequence$1","set_frameSequence","get_framesX","set_framesX","get_framesY","set_framesY","newFlipbookOverlay","flipbook","frameCount","Selection","SelectionAnchor","_graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_3__","_singleSelectHandles","_multiSelectHandles","_focusHandles","selectionSet","_focus","_ratio","_sprite","Selection$","clearSelection","addSelection","addSelectionRange","overlays","ov","isOverlaySelected","setSelection","get_multiSelect","setSelectionRange","get_focus","set_focus","transparancy","_drawSelectionHandles","handleTexture","handles","makeHandles","handle","pointToSelectionSpace","pntIn","pointToScreenSpace","handleSize","TextBorderStyle","tight","medium","large","bold","italic","underline","borderStyle","forgroundColor","backgroundColor","newTextObject","TextObject$","_writeString","TourDocument","UserLevel","_graphics_texture_js__WEBPACK_IMPORTED_MODULE_5__","_utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_7__","_view_mover_js__WEBPACK_IMPORTED_MODULE_9__","_layers_reference_frame_js__WEBPACK_IMPORTED_MODULE_10__","_file_cabinet_js__WEBPACK_IMPORTED_MODULE_11__","_tour_stop_js__WEBPACK_IMPORTED_MODULE_12__","_tour_player_js__WEBPACK_IMPORTED_MODULE_13__","_layers_layer_js__WEBPACK_IMPORTED_MODULE_14__","_layers_imageset_layer_js__WEBPACK_IMPORTED_MODULE_15__","_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_16__","beginner","intermediate","advanced","educator","professional","_tourDirty","_workingDirectory","_tagId","_representativeThumbnailTourstop","_title","_runTime","_lastDirtyCheck","_description","_attributesAndCredits","_authorEmailOther","_authorEmail","_authorUrl","_authorPhone","_authorContactText","_orgName","_orgUrl","_author","_authorImageUrl","_authorImage","_organizationUrl","_filename","_taxonomy","_keywords","_editMode","explicitTourLinks","implicitTourLinks","_tourStops","_currentTourstopIndex","_textureList","_textureList2d","_fileCache","dontCleanUpTempFiles","get_baseWorkingDirectory","_cabinet","fromUrlRaw","TourDocument$","get_tourDirty","set_tourDirty","set_workingDirectory","_loadXmlDocument","master","set_title","set_author","set_orgName","TourStops","tourStop","addTourStop","TourStop","Frames","newFrame","Layers","imageSetLayer","saveToDataUrl","excludeAudio","getTourXML","_addFilesToCabinet","masterList","_createLayerMasterList","get_orgName","timeLineTour","_isTimelineTour","referencedFrames","_getReferenceFrameList","get_tagId","set_tagId","get_authorThumbnailFilename","get_tourThumbnailFilename","get_tourStopThumbnailFilename","get_title","_calculateRunTime","get_attributesAndCredits","set_attributesAndCredits","get_authorEmailOther","set_authorEmailOther","get_authorEmail","set_authorEmail","get_authorUrl","set_authorUrl","get_authorPhone","set_authorPhone","get_authorContactText","set_authorContactText","get_orgUrl","set_orgUrl","get_author","get_authorImageUrl","set_authorImageUrl","get_authorImage","set_authorImage","get_organizationUrl","set_organizationUrl","get_fileName","set_fileName","get_taxonomy","set_taxonomy","get_editMode","set_editMode","set_tourStops","set_currentTourstopIndex","insertTourStop","insertAfterTourStop","removeTourStop","totalTime","get__transition","get_endTarget","slew","ViewMoverSlew","get_moveTime","elapsedTimeSinceLastMaster","masterOut","get_masterSlide","MasterTime","getMasterSlideForIndex","getTourStopIndexByID","set_currentTourStop","TourEditTab","_utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_8__","_place_js__WEBPACK_IMPORTED_MODULE_10__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_11__","_ui_tools_js__WEBPACK_IMPORTED_MODULE_12__","_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_13__","_overlay_js__WEBPACK_IMPORTED_MODULE_14__","_undo_js__WEBPACK_IMPORTED_MODULE_15__","_tour_stop_js__WEBPACK_IMPORTED_MODULE_16__","_tour_player_js__WEBPACK_IMPORTED_MODULE_17__","_tour_editor_js__WEBPACK_IMPORTED_MODULE_18__","musicTrack","SoundEditor","voiceTrack","_tour","tourStopList","TourStopList","tourEditorUI","TourEditor","nextSlideCallback","playing","_defultColor","TourEditTab$","setUiStrings","set_tour","selectedItem","setEditMode","tour_CurrentTourstopChanged","OverlayList","_updateOverlayList","selection","setFocusedChild","selectCurrent","tourEdit_Load","playNow","fromStart","setPlayPauseMode","_tourPlayer_TourEnded","_endTour_CloseTour","_endTour_LaunchTour","tourStopList_ItemClicked","_playFromHere_Click","tourStopList_ItemDoubleClicked","showSlideStartPosition","syncSettings","set_tweenPosition","tourStopList_MouseClick","multipleSelection","_dispose","selectAllMenu","cutMenu","sep1","clipboardType","sep2","insertSlide","sep3","sep4","sep5","sep6","sep7","insertDuplicate","insertSlideshow","playFromHere","captureThumbnail","setSkyPosition","setEndSkyPosition","showSkyPosition","showEndSkyPosition","masterSlide","linkString","get_nextSlide","setNextSlide","trackSpaceTime","fadeInOverlays","properties","interpolation","Linear","Ease","EaseIn","EaseOut","Exponential","get_hasTime","get_fadeInOverlays","clientX","clientY","_selectAllMenu_Click","selectAll","_interpolation_Click","_nextSlideChosen","_selectDialog","get_OK","set_nextSlide","_setNextSlide_Click","SelectLink","_insertDuplicate_Click","Undo","UndoTourSlidelistChange","set_endTarget","set_fadeInOverlays","_fadeInOverlays_Click","_insertSlideshow_Click","_trackSpaceTime_Click","UndoTourStopChange","set_hasTime","_masterSlide_Click","set_masterSlide","playFromCurrentTourstop","_showSkyPosition_Click","_showEndSkyPosition_Click","gotoTargetFull","_setEndSkyPosition_Click","TimeLine","refreshUi","_setSkyPosition_Click","captureSettings","_captureThumbnail_Click","_captureThumbnail","_properties_Click","tourStopList_AddNewSlide","ensureAddVisible","_addNewSlide_Click","_insertNewSlide_Click","get_waitCursor","placeName","newTourStop","findItem","get_defaultV","selectedItems","_pasteMenu_Click","clipboardData","pasteStack","curIndex","writer","_cutMenu_Click","preview_Click","set__mover","playerTimer_Tick","insertShapeCircle_Click","insertShapeRectangle_Click","insertShapeLine_Click","insertDonut_Click","_addArrow_Click","insertVideo_Click","insertAudio_Click","insertHyperlink_Click","colorPicker_Click","tourEditTab_Leave","editTourProperties_Click","saveTour_Click","addVideo_Click","addPicture_Click","addShape_Click","_addOpenRectangle_Click","_addStar_Click","addText_Click","preview_EnabledChanged","preview_MouseEnter","preview_MouseLeave","preview_MouseUp","preview_MouseDown","tourStopList_ItemHover","undoStep","peekAction","stepBack","redoStep","peekRedoAction","stepForward","tourStopList_ShowEndPosition","tourStopList_ShowStartPosition","tourStopList_KeyDown","ctrlKey","keyCode","TourEdit","_undoStep","_beep","_redoStep","_ensureSelectedVisible","ensureSelectedVisible","_utilities_color_picker_js__WEBPACK_IMPORTED_MODULE_5__","_utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_6__","_utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_8__","_interfaces_js__WEBPACK_IMPORTED_MODULE_9__","_render_globals_js__WEBPACK_IMPORTED_MODULE_10__","_settings_js__WEBPACK_IMPORTED_MODULE_11__","_selection_js__WEBPACK_IMPORTED_MODULE_15__","_undo_js__WEBPACK_IMPORTED_MODULE_16__","_tour_stop_js__WEBPACK_IMPORTED_MODULE_17__","_selectionAction","_needUndoFrame","_contextPoint","_dragCopying","_brokeThreshold","editTextCallback","_defaultColor","capturing","currentEditor","TourEditor$","_updateOverlayListSelection","_pointDown","hit","button","showSelectionContextMenu","_showNoSelectionContextMenu","moveX","moveY","undoFrame","actionText","addOverlay","aspect","set_actionText","get_sizeNWSE","get_sizeNESW","_insertShapeCircle_Click","_insertShapeRectangle_Click","_insertShapeLine_Click","_insertDonut_Click","multiSelect","bringToFront","sendToBack","bringForward","sendBackward","editText","animateMenu","linkID","pickColor","flipbookProperties","interpolateMenu","Default","Align","AlignTop","AlignBottom","AlignLeft","AlignRight","AlignHorizon","AlignVertical","AlignCenter","_editText_Click","_editText","_alignVertical_Click","xCenter","_alignHorizon_Click","yCenter","_alignCenter_Click","_alignRight_Click","_alignLeft_Click","_alignBottom_Click","_alignTop_Click","_linkSlideChosen","selectDialog","_linkID_Click","_flipbookProperties_Click","_animateMenu_Click","animate","_url_Click","_pickColor_Click","_volume_Click","vol","PopupVolume","removeOverlay","OverlayProperties","_bringForward_Click","_getSortedSelection","_sendBackward_Click","_sendToBack_Click","_bringToFront_Click","sorted","_doneEditing","textObj","increment","_selectLast","_selectNext","altKey","_selectCurrent","getNextOverlay","getPerviousOverlay","addPicture","addFlipbook","addAudio","set_musicTrack","set_voiceTrack","addVideo","addText","ol","srcShapeOverlay","srcTxtOverlay","srcBmpOverlay","srcFlipbookOverlay","getCurrentColor","setCurrentColor","OverlayList$","TourEdit$","SoundEditor$","refreshCallback","hitType","TourStopList$","TimeLine$","_blend_state_js__WEBPACK_IMPORTED_MODULE_4__","_data_globals_js__WEBPACK_IMPORTED_MODULE_7__","_settings_js__WEBPACK_IMPORTED_MODULE_8__","_view_mover_js__WEBPACK_IMPORTED_MODULE_10__","_overlay_js__WEBPACK_IMPORTED_MODULE_11__","_overlayBlend","_onTarget","_currentMasterSlide","_callStack","_leaveSettingsWhenStopped","_playing","_switchedToFullScreen","noRestoreUIOnStop","set_playing","TourPlayer$","updateSlideStates","_slideStartTime","get_musicTrack","get_voiceTrack","ViewMoverKenBurnsStyle","aspectNow","nextSlide","get_isLinked","_stopCurrentMaster","_hideUI","get_leaveSettingsWhenStopped","_playMasterForCurrent","currentMaster","elapsed","noSwitchBackFullScreen","slideChanging","slideElapsedTime","faderOpacity","elapsedSeconds","set_crossFadeFrame","get__transitionHoldTime","get__transitionTime","nextTrans","nextTransTime","get__transitionOutTime","tween","linkItem","_closeTour","_playNextSlide","_playPreviousSlide","MasterTime$","TransitionType","_constellation_filter_js__WEBPACK_IMPORTED_MODULE_6__","_interfaces_js__WEBPACK_IMPORTED_MODULE_7__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_10__","_overlay_js__WEBPACK_IMPORTED_MODULE_12__","crossFade","crossCut","fadeOutIn","_tourStopType","_keyFramed","_tweenPosition","_transition","_transitionTime","_transitionHoldTime","_transitionOutTime","_nextSlide","_fadeInOverlays","_masterSlide","_duration","_hasLocation","_hasTime","_showFieldOfView","_thumbnailString","_overlays","_musicTrack","_voiceTrack","getXmlText","endTarget","_endTarget","musicNode","voiceNode","_loadLayerList","TourStop$","get_tourStopType","set_tourStopType","set__transition","set__transitionTime","set__transitionHoldTime","set__transitionOutTime","set_duration","get_hasLocation","set_hasLocation","getOverlayById","saveContent","_writeLayerList","_writeValue","baseName","suffixId","layersNode","innerHTML","LayerInfo$","_undoXml","_redoXml","_currentIndex","_actionText","_targetTour","UndoTourStopChange$","get_actionText","undo","tsRedo","parser","redo","UndoStep","UndoTourPropertiesChange","_interfaces_js__WEBPACK_IMPORTED_MODULE_2__","_undoStack","_redoStack","peekActionString","peekRedoActionString","Undo$","UndoStep$","_undoList","UndoTourSlidelistChange$","_redoList","_undoDomeMode","_undoLevel","_redoDomeMode","_redoLevel","_undoTitle","_undoAuthor","_undoAuthorEmail","_undoDescription","_undoAuthorImage","_undoOrganizationUrl","_undoOrgName","_undoKeywords","_undoTaxonomy","UndoTourPropertiesChange$","_redoTitle","_redoAuthor","_redoAuthorEmail","_redoDescription","_redoAuthorImage","_redoOrganizationUrl","_redoOrgName","_redoKeywords","_redoTaxonomy","Triangle$","triList","b1uv","c1uv","aIndex","bIndex","cIndex","enumTypes","typeinfo","enumType","enumString","Enums$","kilometersPerAu","auPerParsec","auPerLightYear","ssmUnitConversion","names","delim","SolarSystemCameraDistance","metersToSolarSystemDistance","metersToZoom","km","ly","mpc","formatDecimalHours","dayFraction","nestingLevel","delimiters","UiTools$","URLRewriteMode","DomainHandling","wwtFlagship","localhost","neverProxy","tryNoProxy","asIfAbsolute","originRelative","_origin_protocol","protocol","_force_https","_origin_domain","hostname","_domain_handling","_core_static_baseurl","_core_dynamic_baseurl","_engine_asset_baseurl","_flagship_static_lcpaths","URLHelpers$","overrideAssetBaseurl","baseurl","rwmode","lcproto","url_no_protocol","domain","rest","slash_index","lcdomain","lcpath","rewrite_domain","encodeURIComponent","is_static","subpath","DialogResult","Keys","PopupColorPicker","uuid__WEBPACK_IMPORTED_MODULE_5__","Rectangle$","_between","n1","n2","_guid","random","Guid$","element","me","offsetParent","offsetLeft","offsetTop","Language$","style","Cursor$","get_arrow","get_cross","get_hand","get_help","get_hSplit","get_iBeam","get_no","get_upArrow","get_vSplit","Cursors$","modifiers","lButton","rButton","mButton","xButton1","xButton2","tab","lineFeed","clearKey","returnKey","enter","controlKey","menu","capital","capsLock","kanaMode","hanguelMode","hangulMode","junjaMode","finalMode","hanjaMode","kanjiMode","escape","imeConvert","imeNonconvert","imeAccept","imeAceept","imeModeChange","prior","pageUp","pageDown","home","select","print","execute","snapshot","printScreen","insertKey","deleteKey","help","d0","d3","d4","d5","d6","d7","d8","d9","lWin","rWin","apps","sleep","numPad0","numPad1","numPad2","numPad3","numPad4","numPad5","numPad6","numPad7","numPad8","numPad9","separator","divide","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","f13","f14","f15","f16","f17","f18","f19","f20","f21","f22","f23","f24","numLock","scroll","lShiftKey","rShiftKey","lControlKey","rControlKey","lMenu","rMenu","browserBack","browserForward","browserRefresh","browserStop","browserSearch","browserFavorites","browserHome","volumeMute","volumeDown","volumeUp","mediaNextTrack","mediaPreviousTrack","mediaStop","mediaPlayPause","launchMail","selectMedia","launchApplication1","launchApplication2","oemSemicolon","oem1","oemplus","oemcomma","oemMinus","oemPeriod","oemQuestion","oem2","oemtilde","oem3","oemOpenBrackets","oem4","oemPipe","oem5","oemCloseBrackets","oem6","oemQuotes","oem7","oem8","oemBackslash","oem102","processKey","packet","attn","crsel","exsel","eraseEof","noName","pa1","oemClear","control","_return","_next","_linkSlide","_slide","_ok","set_next","SelectLink$","get_returnCaller","set_returnCaller","get_next","get_linkToSlide","set_linkToSlide","set_OK","PopupVolume$","PopupColorPicker$","OverlayProperties$","lineToPoint","dUpper","dLower","dVert","dRight","dLeft","dHoriz","DistanceCalc$","arraybuf","_data","BinaryReader$","get_endOfStream","readRemainingI16","i16Remaining","readInt16","readByteString","readUInt16LittleEndian","littleEndian","readInt32","_render_globals_js__WEBPACK_IMPORTED_MODULE_1__","_graphics_webgl_constants_js__WEBPACK_IMPORTED_MODULE_2__","_graphics_texture_js__WEBPACK_IMPORTED_MODULE_3__","_buffer","Bitmap$","ColorPicker$","nonMenuClick","getColorFromClick","getElementById","pixels","getImageData","TagMe","ContextMenuStrip$","_nonMenuClick","removeEventListener","firstChild","_menuItemClicked","currentTarget","itemTag","className","md","it","_openSubMenu","parentNode","tsmi","ToolStripMenuItem$","ToolStripSeparator$","TagMe$","Dialog$","add_showDialogHook","__showDialogHook","remove_showDialogHook","dialogArgs","_layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_5__","_dropDown","_downPosition","_lowPosition","_highPosition","_center","_ignoreNextClick","_dragType","selectedCurveStyle","low","hi","Histogram$","closeBtn","ignoreMe","curveStyleSelected","selectedIndex","setUpdateTimer","onPointerDown","setPointerCapture","pointerId","cancelBubble","onPointerMove","hWidth","adCenter","moved","onPointerUp","srcElement","releasePointerCapture","Curve","diff","jump","_textElement","SimpleInput$","simpleInputElement","modalElement","marginLeft","marginTop","titleDiv","labelDiv","okButton","cancelButton","_okCallback","okClicked","cancelClicked","textChanged","Formatting","indented","_elementStack","_pending","_currentName","_attributes","XmlTextWriter$","_pushNewElement","_writePending","fullClose","closed","VideoOutputType","fps","waitDownload","VideoOutputType$","_camera_parameters_js__WEBPACK_IMPORTED_MODULE_3__","_settings_js__WEBPACK_IMPORTED_MODULE_6__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_7__","fromDateTime","toDateTime","interpolationType","_toTargetTime","_dateTimeSpan","_complete","_midpointFired","_fromDateTime","_toDateTime","_from","_to","_fromTime","ViewMoverKenBurnsStyle$","get_complete","get_currentPosition","_midpoint","get_currentDateTime","retDate","get_midpoint","set_midpoint","_upTargetTime","_downTargetTime","_upTimeFactor","_downTimeFactor","_travelTimeFactor","createUpDown","upDowFactor","ViewMoverSlew$","travelTime","zoomUpTarget","lngDist","latDist","rotateTime","logDistUp","logDistDown","_fromTop","_toTop","VizLayer","_dateColumn","_latColumn","_lngColumn","_depthColumn","_magColumn","earthRadius","VizLayer$","gotHeader","prepare","eventTime","StateType","pending","_triedOnce","WebFile$","_CORS","_message","textReceived","_loadBlob","_blobdata","_error","_timeOut","_xhr","onreadystatechange","readyState","statusText","responseText","FolderDownloadAction","_imageset_js__WEBPACK_IMPORTED_MODULE_4__","_place_js__WEBPACK_IMPORTED_MODULE_5__","_folder_js__WEBPACK_IMPORTED_MODULE_6__","_wwt_control_js__WEBPACK_IMPORTED_MODULE_7__","_numLoadingFolders","FolderDownloadAction$","_folderLoaded","startingNewFolderLoad","loadImagesets","folderDownloadAction","imageSetName","Wtml$","WWTElementEvent","_util_js__WEBPACK_IMPORTED_MODULE_7__","_double3d_js__WEBPACK_IMPORTED_MODULE_8__","_graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_9__","_graphics_sprite2d_js__WEBPACK_IMPORTED_MODULE_10__","_annotation_js__WEBPACK_IMPORTED_MODULE_11__","_camera_parameters_js__WEBPACK_IMPORTED_MODULE_12__","_constellations_js__WEBPACK_IMPORTED_MODULE_13__","_coordinates_js__WEBPACK_IMPORTED_MODULE_14__","_grids_js__WEBPACK_IMPORTED_MODULE_15__","_imageset_js__WEBPACK_IMPORTED_MODULE_16__","_minor_planets_js__WEBPACK_IMPORTED_MODULE_17__","_place_js__WEBPACK_IMPORTED_MODULE_18__","_planets_js__WEBPACK_IMPORTED_MODULE_19__","_settings_js__WEBPACK_IMPORTED_MODULE_20__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_21__","_render_triangle_js__WEBPACK_IMPORTED_MODULE_22__","_tile_js__WEBPACK_IMPORTED_MODULE_23__","_tile_cache_js__WEBPACK_IMPORTED_MODULE_24__","_video_output_type_js__WEBPACK_IMPORTED_MODULE_25__","_ui_tools_js__WEBPACK_IMPORTED_MODULE_26__","_view_mover_js__WEBPACK_IMPORTED_MODULE_27__","_tours_tour_player_js__WEBPACK_IMPORTED_MODULE_28__","_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_29__","_tours_tour_document_js__WEBPACK_IMPORTED_MODULE_30__","_tours_tour_edit_js__WEBPACK_IMPORTED_MODULE_31__","_planets_3d_js__WEBPACK_IMPORTED_MODULE_32__","_script_interface_js__WEBPACK_IMPORTED_MODULE_33__","_annotations","_hoverText","_hoverTextPoint","_lastMouseMove","_frameCount","_zoomMax","_zoomMaxSolarSystem","_zoomMin","_zoomMinSolarSystem","_fadePoints","fader","_crossFadeFrame","_crossFadeTexture","_milkyWayBackground","capturingVideo","_videoBlobReady","dumpFrameParams","_videoBlobQueue","_videoQueueIndex","_emptyFrames","_beginZoom","_hasTwoTouches","_pointerIds","_pinchingZoomRect","_moved","_zooming","_rotating","_dragThreshold","_foregroundCanvas","_fgDevice","_tracking","_trackingObject","_solarSystemTrack","_moving","_targetStudyImageset","_targetBackgroundImageset","_crossHairs","imageSets","showDataLayers","_renderNeeded","constellationsFigures","constellationsBoundries","solarSystemObjectsNames","imagesetToAdd","get_renderNeeded","set_renderNeeded","initControl","DivId","initControl2","initControlParam","webgl_ignored","initControl6","startLat","startLng","startZoom","scriptInterface","_createCanvasElement","div","useUserLocation","geolocation","getCurrentPosition","_getLocation","_getLocationError","setBackgroundImageName","setForegroundImageName","showLayers","WWTControl$","_annotationclicked","note","_annotationHover","get_zoomMax","set_zoomMax","setSolarSystemMaxZoom","get_zoomMin","set_zoomMin","setSolarSystemMinZoom","_notifyMoveComplete","get_crossFadeFrame","_fadeFrame","VideoBlobReady","FramesPerSecond","TotalFrames","Format","sizeChange","get__mover","newCam","currentAltAz","_updateViewParameters","milkyWayBlend","milkyWayBlendIn","matOldMW","matLocalMW","_drawSkyOverlays","oldCamera","vt","saveDevice","get_planetLike","get_space","worldSave","viewSave","projSave","_drawCrosshairs","raDecDown","_drawHoverText","tilesAllLoaded","captureFrameForVideo","oneMinusDragCoefficient","minDelta","onGestureStart","onGestureEnd","stopPropagation","t0","touches","newRect","radialDirection1","radialDirection2","radialDot1","radialDot2","radialComponent1","radialComponent2","angularComponent1","angularComponent2","radialMagnitude","angularMagnitude","oldDist","getDistance","newDist","ratio","oldCenterDelta1","oldCenterDelta2","newCenterDelta1","newCenterDelta2","cross1","crossProductZ","cross2","angle1","angle2","curX","curY","pe","cnv","msSetPointerCapture","newDist0","ratio0","abslog0","isFinite","newDist1","ratio1","abslog1","onMouseWheel","deltaY","wheelDelta","onKeyDown","onContextMenu","PickRayDir","transformPickPointToWorldSpace","ptCursor","backBufferWidth","backBufferHeight","vPickRayDir","transformWorldPointToPickSpace","worldPoint","vz","vx","vy","cartesian","_setupComplete","_cameraParametersFromRADecZoom","cameraParams","timeToTargetFull","gotoTarget3","jumpTime","camTo","vect","fromParams","toVector","solarMover","_tooCloseForSlewMove","studyImageSet","_mover_Midpoint","_slewTimeBetweenTargets","mover","fadeInImageSet","newImageSet","_getRealImagesetFromGeneric","imageSetType","generic","setupTour","pauseCurrentTour","newBackground","newForeground","catalogHips","halfLength","halfHeight","halfWidth","blobReady","captureCurrentFrame","frameNumber","forVideo","containsIndex","needRender","imageAspect","clientAspect","cw","cx","cy","msToBlob","toBlob","toDataURL","rc","divId","_divId","_startRenderLoop","_startLat","_startLng","_startZoom","_freestandingAssetBaseurl","_startMode","WWTControlBuilder$","asset_baseurl","trueStartMode","WWTElementEvent$","__unused_webpack_exports","deflate","constants","pako","zlib_deflate","utils","strings","ZStream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_SYNC_FLUSH","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","chunkSize","windowBits","memLevel","strategy","opt","gzip","ended","chunks","strm","avail_out","deflateInit2","deflateSetHeader","dictionary","dict","string2buf","deflateSetDictionary","_dict_set","deflator","deflateRaw","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","chunk","flattenChunks","zlib_inflate","GZheader","Inflate","inflateInit2","inflateGetHeader","inflateSetDictionary","inflator","inflateRaw","next_out_utf8","tail","utf8str","allowBufError","binstring2buf","Z_NEED_DICT","Z_BUF_ERROR","utf8border","buf2string","arraySet","inflateEnd","ungzip","TYPED_OK","Int32Array","_has","sources","subarray","fnTyped","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","STR_APPLY_OK","STR_APPLY_UIA_OK","_utf8len","m_pos","str_len","buf_len","out","c_len","utf16buf","adler32","adler","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","makeTable","crcTable","crc32","crc","configuration_table","trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","flush_pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","head","ins_h","hash_shift","hash_mask","deflate_stored","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","func","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","hcrc","extra","comment","os","level_flags","bstate","_tr_align","_tr_stored_block","avail","tmpDict","dictLength","deflateInfo","xflags","extra_len","BAD","TYPE","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","inflate_fast","inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","zswap32","InflateState","havedict","total","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","lenfix","distfix","virgin","fixedtables","sym","updatewindow","put","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","inf_leave","dictid","inflateInfo","MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","incr","curr","drop","used","huff","base_index","offs","extra_index","STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","code","bi_flush","gen_bitlen","desc","xbits","stree","overflow","gen_codes","next_code","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lx","build_tree","scan_tree","curlen","prevlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb","_validate_js__WEBPACK_IMPORTED_MODULE_0__","uuid","arr","__WEBPACK_DEFAULT_EXPORT__","ROTL","sha1","bytes","unescape","_i","_i2","_t","_t2","byteToHex","DNS","_stringify_js__WEBPACK_IMPORTED_MODULE_1__","_parse_js__WEBPACK_IMPORTED_MODULE_0__","stringToBytes","hashfunc","generateUUID","namespace","_v35_js__WEBPACK_IMPORTED_MODULE_0__","_sha1_js__WEBPACK_IMPORTED_MODULE_1__","v5","_regex_js__WEBPACK_IMPORTED_MODULE_0__","validate","getter","__esModule","_astrocalc_aberration_js__WEBPACK_IMPORTED_MODULE_18__","_astrocalc_angular_separation_js__WEBPACK_IMPORTED_MODULE_4__","_sky_text_js__WEBPACK_IMPORTED_MODULE_91__","_layers_time_series_layer_js__WEBPACK_IMPORTED_MODULE_126__","_layers_layer_js__WEBPACK_IMPORTED_MODULE_107__","_annotation_js__WEBPACK_IMPORTED_MODULE_66__","_script_interface_js__WEBPACK_IMPORTED_MODULE_138__","_astrocalc_js__WEBPACK_IMPORTED_MODULE_47__","_tours_overlay_js__WEBPACK_IMPORTED_MODULE_119__","_imageset_js__WEBPACK_IMPORTED_MODULE_88__","_utilities_binary_reader_js__WEBPACK_IMPORTED_MODULE_56__","_utilities_bitmap_js__WEBPACK_IMPORTED_MODULE_54__","_blend_state_js__WEBPACK_IMPORTED_MODULE_42__","_planets_js__WEBPACK_IMPORTED_MODULE_94__","_astrocalc_earth_js__WEBPACK_IMPORTED_MODULE_5__","_astrocalc_ecliptical_elements_js__WEBPACK_IMPORTED_MODULE_20__","_astrocalc_fk5_js__WEBPACK_IMPORTED_MODULE_6__","_astrocalc_globe_js__WEBPACK_IMPORTED_MODULE_25__","_astrocalc_jupiter_js__WEBPACK_IMPORTED_MODULE_12__","_astrocalc_kepler_js__WEBPACK_IMPORTED_MODULE_17__","_astrocalc_mars_js__WEBPACK_IMPORTED_MODULE_11__","_astrocalc_mercury_js__WEBPACK_IMPORTED_MODULE_9__","_astrocalc_moon_js__WEBPACK_IMPORTED_MODULE_28__","_astrocalc_moon_nodes_js__WEBPACK_IMPORTED_MODULE_30__","_astrocalc_moon_perigee_apogee_js__WEBPACK_IMPORTED_MODULE_31__","_astrocalc_moon_phases_js__WEBPACK_IMPORTED_MODULE_32__","_astrocalc_neptune_js__WEBPACK_IMPORTED_MODULE_15__","_astrocalc_nutation_js__WEBPACK_IMPORTED_MODULE_7__","_astrocalc_parallax_js__WEBPACK_IMPORTED_MODULE_33__","_astrocalc_physical_jupiter_js__WEBPACK_IMPORTED_MODULE_35__","_astrocalc_physical_mars_js__WEBPACK_IMPORTED_MODULE_36__","_astrocalc_physical_sun_js__WEBPACK_IMPORTED_MODULE_37__","_astrocalc_pluto_js__WEBPACK_IMPORTED_MODULE_16__","_astrocalc_precession_js__WEBPACK_IMPORTED_MODULE_38__","_astrocalc_rise_transit_set_js__WEBPACK_IMPORTED_MODULE_39__","_astrocalc_saturn_js__WEBPACK_IMPORTED_MODULE_13__","_astrocalc_saturn_rings_js__WEBPACK_IMPORTED_MODULE_40__","_astrocalc_sidereal_js__WEBPACK_IMPORTED_MODULE_34__","_astrocalc_stellar_magnitudes_js__WEBPACK_IMPORTED_MODULE_41__","_astrocalc_sun_js__WEBPACK_IMPORTED_MODULE_8__","_astrocalc_uranus_js__WEBPACK_IMPORTED_MODULE_14__","_astrocalc_venus_js__WEBPACK_IMPORTED_MODULE_10__","_camera_parameters_js__WEBPACK_IMPORTED_MODULE_67__","_layers_spreadsheet_layer_js__WEBPACK_IMPORTED_MODULE_127__","_place_js__WEBPACK_IMPORTED_MODULE_95__","_color_js__WEBPACK_IMPORTED_MODULE_43__","_layers_color_map_container_js__WEBPACK_IMPORTED_MODULE_73__","_utilities_color_picker_js__WEBPACK_IMPORTED_MODULE_104__","_constellation_filter_js__WEBPACK_IMPORTED_MODULE_68__","_constellations_js__WEBPACK_IMPORTED_MODULE_92__","_utilities_context_menu_strip_js__WEBPACK_IMPORTED_MODULE_55__","_double3d_js__WEBPACK_IMPORTED_MODULE_45__","_coordinates_js__WEBPACK_IMPORTED_MODULE_59__","_graphics_primitives3d_js__WEBPACK_IMPORTED_MODULE_52__","_util_js__WEBPACK_IMPORTED_MODULE_46__","_astrocalc_dynamical_time_js__WEBPACK_IMPORTED_MODULE_19__","_layers_fits_image_js_js__WEBPACK_IMPORTED_MODULE_76__","_layers_manager_dialogs_js__WEBPACK_IMPORTED_MODULE_131__","_utilities_dialog_js__WEBPACK_IMPORTED_MODULE_105__","_astrocalc_elliptical_js__WEBPACK_IMPORTED_MODULE_22__","_astrocalc_equation_of_time_js__WEBPACK_IMPORTED_MODULE_23__","_astrocalc_elements_planetary_orbit_js__WEBPACK_IMPORTED_MODULE_21__","_layers_orbit_js__WEBPACK_IMPORTED_MODULE_113__","_graphics_shaders_js__WEBPACK_IMPORTED_MODULE_51__","_equirectangular_tile_js__WEBPACK_IMPORTED_MODULE_81__","_fast_math_js__WEBPACK_IMPORTED_MODULE_60__","_tours_file_cabinet_js__WEBPACK_IMPORTED_MODULE_118__","_layers_fits_image_js__WEBPACK_IMPORTED_MODULE_75__","_layers_fits_image_tile_js__WEBPACK_IMPORTED_MODULE_77__","_fits_properties_js__WEBPACK_IMPORTED_MODULE_69__","_folder_js__WEBPACK_IMPORTED_MODULE_134__","_folder_browser_js__WEBPACK_IMPORTED_MODULE_135__","_wtml_js__WEBPACK_IMPORTED_MODULE_140__","_folder_up_js__WEBPACK_IMPORTED_MODULE_96__","_utilities_xml_text_writer_js__WEBPACK_IMPORTED_MODULE_58__","_layers_layer_manager_js__WEBPACK_IMPORTED_MODULE_129__","_fxyf_js__WEBPACK_IMPORTED_MODULE_64__","GFX","_astrocalc_galilean_moons_js__WEBPACK_IMPORTED_MODULE_24__","_star_js__WEBPACK_IMPORTED_MODULE_70__","_layers_great_circle_route_layer_js__WEBPACK_IMPORTED_MODULE_109__","_layers_grid_layer_js__WEBPACK_IMPORTED_MODULE_110__","_grids_js__WEBPACK_IMPORTED_MODULE_97__","_layers_object3d_js__WEBPACK_IMPORTED_MODULE_112__","_healpix_tables_js__WEBPACK_IMPORTED_MODULE_61__","_healpix_tile_js__WEBPACK_IMPORTED_MODULE_82__","_healpix_utils_js__WEBPACK_IMPORTED_MODULE_62__","_hips_properties_js__WEBPACK_IMPORTED_MODULE_136__","_utilities_histogram_js__WEBPACK_IMPORTED_MODULE_106__","_hploc_js__WEBPACK_IMPORTED_MODULE_63__","_astrocalc_illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_26__","_astrocalc_interpolate_js__WEBPACK_IMPORTED_MODULE_27__","_interfaces_js__WEBPACK_IMPORTED_MODULE_65__","_layers_iss_layer_js__WEBPACK_IMPORTED_MODULE_125__","_layers_imageset_layer_js__WEBPACK_IMPORTED_MODULE_111__","_render_context_js__WEBPACK_IMPORTED_MODULE_137__","_graphics_gl_buffers_js__WEBPACK_IMPORTED_MODULE_48__","_kepler_vertex_js__WEBPACK_IMPORTED_MODULE_98__","_tangent_tile_js__WEBPACK_IMPORTED_MODULE_85__","_tours_tour_stop_js__WEBPACK_IMPORTED_MODULE_121__","_layers_layer_ui_js__WEBPACK_IMPORTED_MODULE_108__","_astrocalc_moon_illuminated_fraction_js__WEBPACK_IMPORTED_MODULE_29__","_tours_tour_player_js__WEBPACK_IMPORTED_MODULE_124__","_mercator_tile_js__WEBPACK_IMPORTED_MODULE_83__","_layers_orbit_layer_js__WEBPACK_IMPORTED_MODULE_115__","_tours_tour_editor_js__WEBPACK_IMPORTED_MODULE_123__","_plot_tile_js__WEBPACK_IMPORTED_MODULE_84__","_pointing_js__WEBPACK_IMPORTED_MODULE_99__","_layers_vo_table_js__WEBPACK_IMPORTED_MODULE_117__","_layers_reference_frame_js__WEBPACK_IMPORTED_MODULE_114__","_render_triangle_js__WEBPACK_IMPORTED_MODULE_80__","_tours_selection_js__WEBPACK_IMPORTED_MODULE_120__","_settings_js__WEBPACK_IMPORTED_MODULE_89__","_utilities_simple_input_js__WEBPACK_IMPORTED_MODULE_57__","_sky_image_tile_js__WEBPACK_IMPORTED_MODULE_86__","_space_time_controller_js__WEBPACK_IMPORTED_MODULE_93__","_web_file_js__WEBPACK_IMPORTED_MODULE_72__","_layers_table_js__WEBPACK_IMPORTED_MODULE_116__","_graphics_tessellator_js__WEBPACK_IMPORTED_MODULE_50__","_tours_text_object_js__WEBPACK_IMPORTED_MODULE_90__","_graphics_texture_js__WEBPACK_IMPORTED_MODULE_49__","_tile_js__WEBPACK_IMPORTED_MODULE_78__","_tile_cache_js__WEBPACK_IMPORTED_MODULE_79__","_toast_tile_js__WEBPACK_IMPORTED_MODULE_87__","_tour_js__WEBPACK_IMPORTED_MODULE_100__","_tours_tour_document_js__WEBPACK_IMPORTED_MODULE_132__","_tours_tour_edit_js__WEBPACK_IMPORTED_MODULE_133__","_url_helpers_js__WEBPACK_IMPORTED_MODULE_44__","_ui_tools_js__WEBPACK_IMPORTED_MODULE_71__","_tours_undo_js__WEBPACK_IMPORTED_MODULE_122__","_video_output_type_js__WEBPACK_IMPORTED_MODULE_101__","_view_mover_js__WEBPACK_IMPORTED_MODULE_102__","_viz_layer_js__WEBPACK_IMPORTED_MODULE_103__","_layers_vo_table_layer_js__WEBPACK_IMPORTED_MODULE_128__","_wwt_control_js__WEBPACK_IMPORTED_MODULE_139__","_layers_wcs_image_js__WEBPACK_IMPORTED_MODULE_74__","_render_globals_js__WEBPACK_IMPORTED_MODULE_53__","_typesystem_js__WEBPACK_IMPORTED_MODULE_141__","_data_globals_js__WEBPACK_IMPORTED_MODULE_142__","exploreRoot","PlanetaryBodies","CreditMode","keysOf","enumLookup","stringEnum","enumKey","EmbedSettings","backgroundImagesetName","foregroundImagesetName","creditMode","showCoordinateReadout","tourUrl","wtmlUrl","wtmlPlace","fromQueryParams","qp","qp_1","qp_1_1","asSettings","EmbedQueryStringBuilder","threeDMode","planetaryBody","toQueryItems","defaults","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_component_WorldWideTelescope","_component_font_awesome_icon","_component_Popper","_component_vue_slider","wwtComponentLayout","isLoadingState","startInteractive","isReadyToStartState","coordText","embedSettings","placement","interactive","content","selectTool","showCrossfader","showBackgroundChooser","showPlaybackControls","showToolMenu","doZoom","fullscreenModeActive","toggleFullscreen","fullscreenAvailable","currentTool","curBackgroundImagesetName","backgroundImagesets","displayName","tourPlaybackIcon","tourPlaybackButtonClicked","twoWayTourTimecode","marks","formatTimecode","adsorb","contained","TWOPI","angnorm","angleRad","_formatSexagesimal","showPlus","padWhole","whole","remainder","wText","padStart","mText","sText","rText","fmtHours","fmtDegLat","fmtDegLon","ComponentState","skyBackgroundImagesets","BackgroundImageset","defaultWindowShape","extends","componentState","LoadingResources","tourPlaybackJustEnded","windowShape","ReadyToStart","wwtHeight","pl","backgroundWasInitialized","bgName","isPanorama","foundBG","bgi","Started","onFullscreenEvent","onResizeEvent","destroyed","zoomIn","$el","newView","curHeight","_newCount","_oldCount","queryParams","URLSearchParams","Embed","component","mount","__webpack_require__","O","chunkIds","priority","notFulfilled","Infinity","every","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}